Write-Up/Reversing

Abexcm1.exe

NONE_31D 2019. 3. 23. 15:15


USER32.MessageBoxA 함수 호출.(USER32 dll에서 함수 호출)

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-messagebox

int MessageBox(

HWND hWnd,

LPCTSTR lpText,

LPCTSTR lpCaption,

UINT uType

);

사진에서 첫번째 PUSH의 0은 마지막 변수, 두번째 PUSH의 0은 맨 첫번째 변수. 좌측 하단에서 push 한 값들 스택으로 확인할 수 있음.

F8로 한줄씩 실행, call 들어가서 프로그램이 실행 된 모습.



KERNEL32.GetDriveTypeA

https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getdrivetypea

UINT GetDriveTypeA(

LPCSTR lpRootPathName

);

return value 확인해보면


HDD는 3을 리턴, CDROM은 5로 리턴.

CMP문 확인. eax, esi 값 비교하는 것을 알 수 있음.

F8로 CMP문까지 이동한다.

//F2 는 브레이크 포인트 설정


1. 진입 조건문 JNE로 변경하기

오른쪽클릭→바이너리→edit

어셈블리 레퍼런스에 JNE 는 75.


위와 같이 수정.



F9로 실행 확인.


2. EAX값을 ESI 값과 동일하게 바꾸기



더블클릭하여 CMP문에 들어가기 직전 EAX값을 ESI 값과 동일하게 바꿔줌.

F9로 실행하면 위와 같이 성공한다.


'Write-Up > Reversing' 카테고리의 다른 글

[disass] structure.c  (0) 2019.10.02
disassembly 실습_190925  (0) 2019.09.25
Abexcm3.exe  (0) 2019.03.23