리버싱 입문

[리버싱 입문](7)[abex crackme 4]

황올뱀 2025. 2. 11. 18:44

 

abex crackme 4

 

이번에는 시리얼을 입력하고 만약 시리얼이 맞다면 register버튼이 활성화되고 클릭하면 correct가 뜬다.

 

시리얼이 틀리다면 아예 버튼이 활성화되지 않고 멈춰버려서 버튼을 누르고 check 부분을 찾는 방법을 쓸 수 없다.

따라서 멈추는 부분을 보겠다.

EAX, ECX를 인수로 받는 vbaStrCmp에서 계속 프로그램이 멈추는 것을 알았다.

 

vbaStrCmp 알아보기

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/strcomp-function

여길 보면 알 수 있듯, 이 함수는 문자열 2개를 입력받아 비교하고,

문자열이 같다면 0을 반환한다.

따라서 문자열이 같다면 JZ로 인해

register버튼이 활성화되고 correct를 띄울 수 있는 것이다.

따라서 EAX와 비교되는 ECX레지스터를 보니 2125200이라는 문자열이 있길래 입력했더니 풀렸다.

그러나 시리얼은 프로그램을 실행할 때마다 바뀌는 것 같으므로 차라리 JZ 조건문을 망가뜨리는 것이 더 나은 것 같다.

 

728x90
반응형