티스토리 뷰

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






해당 프로그램의 OEP를 구한 후 "등록성공"으로 가는 분기점의 OPCODE를 구하는 문제입니다.


※OPCODE(연산코드)란?


프로세서가 수행 할 연산과 실행 할 동작을 정의하는 코드입니다. 올리디버거로 열었을 때 Hex dump 칸에 있는 코드들이 OPCODE입니다.


먼저 파일을 다운로드 받겠습니다.






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


실행시켜보면..






이런 창이 뜹니다.


이제 프로그램 분석을 시작하겠습니다.


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






ASPack 패킹이 되어있습니다.


올리디버거로 직접 언패킹을 해보겠습니다.






올리디버거로 열고 Ctrl + F 를 눌러서 'retn 0c'를 검색해줍니다.






RETN 0xC 밑에 있는 두 줄에 BP를 걸고 F9를 눌러 실행시켜줍니다.






그러면 다음과 같이 OEP 주소로 변경되고 아래 RTEN을 통해서 OEP 코드가 있는곳으로 이동합니다.






새로운 코드들이 보입니다.


이곳에서 Ctrl + A를 누르면 본래 코드들이 나옵니다.






본래 코드를 찾았으니 이제 올리덤프를 이용해서 저장 시켜줍니다.






실행이 잘됩니다.


언패킹을 성공적으로 마쳤습니다.


이제 언패킹한 파일을 분석해서 "등록성공"으로 가는 분기점의 OPCODE를 알아내겠습니다.






문자열들을 살펴 보던 중에 "등록성공" 문자열로 보이는 문자열을 찾았습니다.


클릭해서 이동해보겠습니다.






그렇다면 저 점프문이 "등록성공" 문자열로 가는 코드겠군요.


코드엔진 사이트에 OEP와 "등록성공"으로 가능 OPCODE를 인증해주면...








'Reversing > CodeEngn' 카테고리의 다른 글

[CodeEngn] Basic RCE - Level 12 풀이  (109) 2017.11.13
[CodeEngn] Basic RCE - Level 11 풀이  (109) 2017.11.08
[CodeEngn] Basic RCE - Level 09 풀이  (111) 2017.11.07
[CodeEngn] Basic RCE - Level 08 풀이  (126) 2017.11.03
[CodeEngn] Basic RCE - Level 07 풀이  (121) 2017.11.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함