Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

kaka09

code engn basic 12 본문

Reversing

code engn basic 12

kaka09 2017. 8. 2. 02:34

[사진]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