1. 문제
1) 문제확인
2. 접근방법
문자열을 따라가보면 eax와 esi값을 비교하여 분기하는 것을 확인, 이제 디버깅을 통해서 저 부분을 확인해보자
3. 문제풀이
문제에서 Name이 "CodeEngn"일 때 Serial값을 구하는 거니 위 사진처럼 입력 값을 넣어 보았다.
입력 값이 저장되어 있는 0x403138
을 파라미터로 주고 sub_40183()
을 호출하면 리턴 값으로 0x4D2
로 변환된 것을 알 수 있다. 그리고 eax값과 esi값을 비교하는데 이 때 esi값은 0x129A1
이다.
이제 알아내야 하는 것은 Serial값을 0x129A1
로 만들기 위해 입력 값을 어떻게 넣는가인데 생각해보면 "1234"를 넣는데 0x4D2(1234)
로 나오는 것을 보면 sub_40183()
의 역할은 문자열을 받아서 헥사 값으로 리턴해주는 기능인 것 같다. 따라서, 0x129A1
을 만들기 위해서 76,193
을 넣으면 될 것이다.
Uploaded by Notion2Tistory v1.1.0