티스토리 뷰

CodeEngn Basic RCE의 16번 문제입니다.





이 문제도 앞에 문제들과 같이 Name값에 따라 Serial값이 변하는 키젠 문제입니다.


먼저 프로그램을 다운로드 받아보겠습니다.






'16.exe'라는 이름의 파일입니다.


실행시켜보면..






틀린 Serial값을 입력하니 실패 문자열을 출력합니다.


먼저 PEID로 파일의 정보를 확인하겠습니다.






C++로 만들어진 프로그램이고 패킹은 되어있지 않습니다.






성공 문자열 위에 EAX값과 EBP-0x3C 주소에 있는 4byte만큼의 값을 비교하고 일치한다면 성공 문자열을, 다르다면 실패 문자열을 출력해주는 조건문이 있습니다.


조건문에 BP를 걸고 실행시켜보겠습니다.






실행시킨 후 Name값에는 CodeEngn을, Serial값에는 1234를 입력해주니..






EAX에 4D2가 저장되었습니다.


4D2를 10진수로 나타내면 1234입니다.


그렇다면 EAX는 사용자가 입력한 Serial값이고, EBP-0x3C 주소에 있는 4byte만큼의 값은 입력받은 Name값을 이용해서 만들어낸 Serial값이라는 것을 알 수 있습니다.






EBP-0x3C 주소로 가서 확인해보니 E4 C6 0D 97이 저장되어있습니다.


그렇다면 이제 해당 값을 10진수로 바꿔서 프로그램에 인증해보겠습니다.






정답입니다.


이제 코드엔진 사이트에도 정답을 인증해보겠습니다.








댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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
글 보관함