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
반응형
'리버싱 입문' 카테고리의 다른 글
[리버싱 입문](9)[abex crackme 6] (0) | 2025.02.19 |
---|---|
[리버싱 입문](8)[abex crackme 5] (0) | 2025.02.18 |
[리버싱 입문](6)[함수 호출 규약] (0) | 2025.02.10 |
[리버싱 입문](5)[abex crackme 3] (0) | 2025.02.07 |
[리버싱 입문](4)[abex crackme 2] (1) | 2025.02.06 |