12번 문제입니다. 먼저 실행해보도록 하겠습니다.
위와 같이 MessageBox가 나오고 key를 적는 박스가 있습니다. 여기에 어떤 입력을 해도 반응이 없습니다.
ollydbg로 분석하면 ESI에 403000에 있는 긴 아스키 문자를 넣고 while문(분기문)으로 ESI가 0이 되면 분기문은 끝이납니다. 만약 아닐시엔 ESI에 4를 더합니다.
즉, 무한루프에서 나오지 못한다는 겁니다.
그리고 40107D를 보면 EAX와 7A2896BF를 비교해서 congratulation이 나오는 곳으로 jmp합니다. 7A2896BF를 10진수로 변환하면 2049480383 입니다. 이게 우리가 찾는 key입니다.
그리고 문제에서 원하는 Hxd에서 congratulation..이 나오는 부분을 2049480383으로 바꾸면 됩니다.
0D3B에서 0D45까지가 overwrite한 영역입니다. 마지막은 Null이 포함된것입니다.
'Wargame > CodeEngn challenge' 카테고리의 다른 글
CodeEngn basic Level 11 풀이 (0) | 2016.09.30 |
---|---|
CodeEngn basic Level 10 풀이 (0) | 2016.09.30 |
CodeEngn basic Level 9 풀이 (0) | 2016.09.13 |
CodeEngn basic Level 8 풀이 (0) | 2016.09.12 |
CodeEngn basic Level 7 풀이 (0) | 2016.09.12 |