프로그램을 실행시켜 보면 Serial 값을 입력하라고 한다
아마 값을 입력하면 비교후에 일치 불일치 메세지를 띄어주는것 같다.
그래서 OllyDBG로 열어보았다.
현재 사용되고 있는 함수를 검색하기 위해 Search for에 Intermodularcalls를 들어가서 확인 해보았으나 무언가 이상하다. 패킹이 되어있는거 같아서 PEID로 패킹의 유무를 확인한 후 UPX로 언패킹을 진행하였다.
언패킹을 진행한 후에 문자열을 비교하는곳을 찾아보기 위해서 Text String을 검색해보았다.
성공 문자열과 실패 문자열이 눈에 보인다.
그래서 해당 문자열이 실행되는 함수 내부로 들어가 보았다.
0040106E 주소를 보면 "AD46DFS547" 이라는 문자열을 PUSH하고 있다.
EDX에 AD46DF547라는 문자열이 들어간다.
따라서 한번 실행시키고 난 후에 AD46DF5S47를 넣어보았다.
성공문자열을 보여준다.
하지만 문제에서 OEP + 시리얼 값이라고 했으니까
OEP를 찾아줘야 한다.
OEP는 언패킹을하고 나서의 시작주소를 의미한다.
'CTF > Reversing' 카테고리의 다른 글
Code Engn Basic RCE level 8 (0) | 2020.12.04 |
---|---|
Code Engn Basic RCE level 7 (0) | 2020.12.03 |
Code Engn Basic RCE level 5 (0) | 2020.08.16 |
Code Engn Basic RCE level4 (0) | 2020.08.16 |
Code Engn Basic RCE level3 (0) | 2020.08.12 |