티스토리 뷰

Reversing

abex' crackme #1

xxvd 2018. 6. 27. 02:17


실행파일을 실행하면 이렇게 됩니다.








                                                             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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함