kaka09
code engn basic 12 본문
[사진]1-1
이번 문제는 특정 key값을 구한 다음 성공메세지를 키값으로 변경시킬수 있는지 물어보는 문제다. 즉 키값과 성공메세지 부분을 찾아야 한다. 올리 디버거로 해당 문제를 디버깅 해보자
[사진]1-2
올리 디버거로 살펴본 결과 하단 부분에 "In the Bin" "Congraturation~" 문자열을 볼 수 있다. 키값만 찾으면 해당 문자열을 덮어 씌우면 된다. 문제는 키값인데 키값은 생각보다 어렵지 않게 찾을 수 있다. 바로 CMP EAX, 7A2896BF 구문인데 비교문이 일치하면 밑에 성공메세지를 출력하는 영역으로 분기한다.
[사진]1-3
7A2896BF를 10진수로 바꾸면 2049480383이다. 10진수로 변환한 값을 넣어야 제대로 비교가 되고 참고로 해당 문제에서는 숫자 이외의 값은 들어가지 않는다.
[사진]1-4
키값을 정확히 입력하면 다음과 같은 성공 메세지를 볼 수 있다. 만약 키값이 틀리면 프로그램은 어떠한 반응도 하지 않는다. 이제는 키값도 찾았으니 hxd를 이용하여 성공메세지 부분을 키값으로 overwrite 시켜 보자
[사진]1-5
hxd로 해당 프로그램을 연 다음 성공 메세지 문자열을 찾아보면 D3B~D61 까지임을 알 수 있다. 성공 메세지를 지우고 키값인 2049480383으로 덮어 씌워보자
[사진]1-6
값을 바꾼 다음 실행시켜보면 성공메세지 대신 키값을 확인할 수 있다.
'Reversing' 카테고리의 다른 글
code engn basic 14 (0) | 2017.08.02 |
---|---|
code engn basic 13 (0) | 2017.08.02 |
code engn basic 11 (0) | 2017.08.01 |
code engn basic 10 (0) | 2017.08.01 |
code engn basic 9 (0) | 2017.08.01 |