Korea :
OEP를 구한 후 "등록성공"으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE
EX) 00400000EB03
English :
After finding the OEP, find the OPCODE of the branch instruction going to the "goodboy routine"
The solution should be in this format : OEP + Serial
EX) 00400000EB03
문제를 보면 역시나 Packing이 되어 있다는 것을 알 수 있다.
하지만 이몸은 이미 UPX에 익숙해져 있는 몸!ㅋㅋㅋ
쉽게 해주마!!
그래서 일단 프로그램을 다운 받고 PEiD를 돌려봤다.
왐마…. 요건 뭐냐;;; ASPack이당ㅠㅠ 댄장… CodeEngn이 나를 여러 방면으로 키워 주는구나!!
그리고 실행을 해봤더니…. 뭐야;; 이름이랑 시리얼이 쳐지지도 않네!!ㅋㅋㅋ
어쩌냐ㅋㅋㅋ
올디로 열어보니 UPX와 똑같이 PUSHAD로 시작하고 있었다. 어쩐지 전부는 아니더라도 다른 Packer들도 PUSHAD로 시작하는 것이 몇 개 있을 거 같다.
그리고 똑같이 F8->Dump->HP 하고 보니 POPAD아래로 떨어졌다. 흠 여기까지는 같네??
그리고 소스를 보니 어쩐지 다 된거 같다.
근데 나중에 검색해 보니 저렇게 된게 맞고
http://blog.naver.com/kodoi486?Redirect=Log&logNo=70026289264참조
6) JNZ 로 시작하는 명령에서 실행이 멈춤
7) Step into (F7)을 2번 더 누름
8) Push로 시작되는 명령줄 밑 retn에 도달해 잇어야함
9) F7을 한번 더 누름
10) AS pack으로 암호화(?)된 문자열들 앞으로 이동함 (여기가 OEP)
11) Ctrl + A (Analyse Coed)를 누름
12) 코드가 제대로 보임
위와 같은 과정이 더 필요하다는 것을 알게 되었다.
위와 같은 코드가 ctrl+a를 누름으로써 알아 볼 수 있는 코드로 바뀌었다.
오호ㅋ 신기하다ㅋㅋ 곧 풀 수 있을 것 같다. ㅋㅋ
패킹을 한 후 텍스트를 보면 아래와 같은 문자열을 찾을 수 있다.
답이 곧 나올거 같다 bp를 걸고 진행해 보자
그럼 그림과 같은 곳에서 프로그램이 멈추게 된다.. 흠… 답은 저기 근처에 있다. ㅋ
Bloger: moltak.net
'Security > Reversing' 카테고리의 다른 글
CodeEngn 12 (0) | 2010.04.12 |
---|---|
CodeEngn 11 (0) | 2010.04.12 |
CodeEngn 09 (0) | 2010.04.12 |
CodeEngn 08 (0) | 2010.04.12 |
CodeEngn 07 (0) | 2010.04.12 |