abex crackme 6
이번엔 cmd 창이 떠서 숫자로 된 비밀번호를 입력하고 만약 맞다면 correct를 띄운다.

일단 correct, wrong 문자열부터 검색해보면
"password: "밑에 CMP와 JNE가 보인다.
아마 그 위에 있는 call 00428310에서 뭔가 할 것이라 예상할 수 있다.
그래서 값이 같지 않으면 wrong으로 점프하는 것이다.
또한 vba~~같은 함수 주석이 달리지 않고 지냥 주소로만 함수 지정을 해서 알기 어렵다.
각 함수의 동작을 따져보겠다.
call 0043C248: 1줄씩 실행해본 결과 cmd창에 글자를 쓰는 함수임을 알게 되었다.

call 00428310: 아마 함수 내부에서 글자를 입력할 때까지 동작이 멈추는 부분이 있는 것으로 보아
사용자 입력을 받고 스택에 저장하는 함수라 추측된다.
결국은 ebp-4에 있는 값과 7F97E56C를 비교해 같게 만들어야 한다.
ebp-4에 있는 값을 보면 내가 아무거나 쳐서 넣은 123456이다.

비번이 숫자 뿐이라고 했으니까 7F97E56C를 문자열로 바로 넣는게 아니라 16진수 -> 10진수 변환을 해줘 2140661100를 넣어보면 correct가 뜬다.
728x90
반응형
'리버싱 입문' 카테고리의 다른 글
[리버싱 입문](11)[abex crackme 8] (0) | 2025.02.21 |
---|---|
[리버싱 입문](10)[abex crackme 7] (0) | 2025.02.20 |
[리버싱 입문](8)[abex crackme 5] (0) | 2025.02.18 |
[리버싱 입문](7)[abex crackme 4] (0) | 2025.02.11 |
[리버싱 입문](6)[함수 호출 규약] (0) | 2025.02.10 |