티스토리 뷰
실행파일을 실행하면 이렇게 됩니다.
Ollydbg로 디버깅 해보겠습니다.
이 부분은 문자열을 MessageBOX() 에 넘겨주는 부분입니다.
저기 MB_OK는 MessageBOX() 창에서 OK 버튼 하나만 출력해 주는 거라고 합니다
잘못 캡처했는데 여기가 MessageBoxA를 호출하고, GetDriveTypeA 도 호출하는 부분입니다.
여기서 리턴값(EAX)는 3(DRIVE_FIXED) 입니다 즉 EAX = 3 이거죠
그리고 ESI를 MessageBoxA()에서 FFFFFF. 즉, -1로 세팅합니다
INC 는 1 증가, DEC는 1 감소 입니다.
ESI와 EAX를 INC, DEC 하면서 마지막에 EAX,ESI를 비교하는데
이 두 값이 같으면 0040103D로 분기하고, 아니면 밑의 문장을 실행 합니다.
바로 밑 문장이 여기 error 메세지 띄워주는 부분이기 때문에 ESI 랑 EAX가 다르면 여기가 실행됩니다.
같으면? 이 부분이 실행되겠네요
저는 ESI와 EAX를 검사하고, 같으면 0040103D로 분기하는 명령어를 그냥 JMP 0040103D. 바로 메세지를 출력해주는 쪽으로
분기하도록 Assemble 명령어로 바꿔주겠습니다.
이렇게 바뀐것을 볼 수 있네요
실행해 보니 이렇게 제대로 크랙이 됐네요!
'Reversing' 카테고리의 다른 글
IA32 Basics (0) | 2017.12.20 |
---|---|
Reversing 기초(what is reversing?) (0) | 2017.12.20 |
댓글