보안 27

취약점 진단 - 문자열 변경

Hello world 의 메세지 변경하기   dbg 다운로드 https://sourceforge.net/projects/x64dbg/files/snapshots/ x64dbg - Browse /snapshots at SourceForge.netA platform built for a new way of working The Work OS that lets you shape workflows, your waysourceforge.net  1. 실행의 흐름으로 찾는 방법 2. 메모리를 찾는 방법     -hello world 더블 클릭   /  문자열 찾는 방법 ctrl + G 문자열 변경하기  파일 패치 > 다른 이름으로 저장 하기문자열 변경 완료

어셈블리어 함수

OpenProcess : 실행중인 프로세스를 여는 함수 TerminateProcess : 내가 가져온 프로세스를 반환함CreateToolHelp32Snapahot : 지정된 프로세스의 스냅샷 이러한 프로세스에서 사용되는 힙, 모듈 및 스레드를 사용Process32First : 시스템 스냅샷 발생한 첫 번째 프로세스에 대한 정보를 검색 api 찾아보기  https://learn.microsoft.com/ko-kr/windows/win32/api/atlthunk/nf-atlthunk-atlthunk_allocatedata AtlThunk_AllocateData 함수(atlthunk.h) - Win32 appsATL 썽크에 대한 메모리 공간을 할당합니다.learn.microsoft.com

악성코드2

f2 bp  브레이크 포인트 설정f7 코드 한 줄 실행(call의 경우에는 함수 진입)f8  코드 한 줄 실행(call그냥 지나침)f9  프로그램 실행ctrl + g 주소 이동 -, + 이전, 다음 주소로 이동enter 분기문에서 target 주소로 이동space 어셈블리 코드 수정     문자열 참조 - 이 위치가 참조하는 문자열 위치를 찾아냄 0040100B: 55 - push ebp > EBP 레지스터의 값을 스택에 push (함수의 시작에서 호출자의 bp 보존하는데 사용)0040100C: 8BEC - mov ebp, esp > ESP 값을 EBP 레지스터로 이동( 새로운 스택 프레임의 베이스 포인터를 설정)0040100E: 53 - push ebx > ebx 레지스터의 값을 스택에 push(함수가..

악성코드 분석 - 명령어

데이터 이동 lea : 데이터를 직접 읽지 않고 주소만 계산해서 레지스터에 저장을 하는 명령어mov : 메모리에서 직접 데이터를 읽어오는 명령어    산술연산inc : 레지스터나 메모리 값에 1을 더한다dec : 레지스터나 메모리 값에서 1을 뺸다  add : 두 값(레지스터, 소스) 을 더한다sub : 두 값을 뺀다 > 목적지 - 소스 논리 연산and : 두 값의 비트 단위로 and 연산을 수행함, 둘 다 1인 경우에만 1을 반환한다.or : 두 값의 비트 단위로 or 연산을 수행함, 둘 중 하나라도 1이면 1을 반환한다.xor : 두 값의 비트 단위로 xor 연산을 수행함, 두 값이 다르면 0을 반환한다not : 비트를 반전시킴,  즉 1은 0 으로 , 0은 1로 반전시킨다. 분기jmp : 무조건 특..