abex crack me #1
* SWING CTF STUDY_REVERSING + 2021-2 REVERSING STUDY
주어진 exe파일을 실행하면 위와 같은 메세지 창이 뜬다. '너의 HD가 CD-ROM이라고 생각하게 하라'
하지만 확인 버튼을 누르면 아래와 같은 메세지 창이 뜬다.
디버거로 까서 명령어를 바꿔주면 다른 메세지창을 열 수 있을 것 같았다.
Immunity Debugger로 해당 파일을 열어보았더니 아까 본 메세지 박스 외에 "YEAH"라는 타이틀을 가진 메세지 박스가 있음을 알 수 있었다.
F8를 눌러 하나씩 실행해 보면 현재는 Error 창이 떴다.
코드를 자세히 보면 JE SHORT abex' _cr.0040103D라는 게 보이는데 해당 주소로 가면 YEAH창에 대한 내용이 들어 있음을 볼 수 있다.
JE는 비교하는 값이 같으면 해당 주소로 jump한다. 위에서 EAX,ESI를 cmp로 비교하고 있는데 이 둘의 값이 다르기 때문에 40103D로 이동하지 않고 Error를 출력했던 것이다.
따라서 JE 대신 JNE를 넣어주거나
JE(JZ) | a==b, 제로플래그 1 |
JNE(JNZ) | a!=b, 제로플래그 0 |
EAX값과 ESI값이 같도록 바꿔주면 된다.
Ctrl+F2를 눌러 다시 실행하였고 00401026의 JE를 JNE로 바꾸어 주었는데 자동적으로 JMZ로 바뀌었다.
그 후 다시 하나하나 실행을 해 보니 이번에는 0040103D가 실행되었고 아래처럼 메세지 창에"Ok, I really think that your HD is a CD-ROM! :p"이 출력되었다.