코드엔진 사이트에 들어가 basic10 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn)
OEP를 구하고 등록성공으로 가는 분기점의 주소를 주하는 문제이다.
OEP를 구하는걸로 봐서 역시나 언패킹 문제인 것을 알 수 있다.
Exeinfor PE를 이용해 확인 ㄱㄱ
이전 문제까지는 UPX 패킹이 주로 되어 있었으나 이번에는 Aspack이다.
크게 UPX와 크게 다르지 않으니 겁먹지 않고 Ollydbg로 확인 ㄱㄱ
#이전 문제들과 같이 PUSHAD 에서 F8 키로 한번 진행 한 뒤, 스택에 저장한 주소를 찾아 하드웨어에 bp를 건 뒤 실행시키면 POPAD를 찾을 수 있다. 자세한 설명은 이전 글 참고.
2020/03/25 - [[Riversing] 코드엔진] - [코드엔진] basic6
[코드엔진] basic6
코드엔진 사이트에 들어가 basic6 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn ) Unpack을 한 후에 시리얼 번호를 찾는 문제이다. Exeinfo Pe 프로그램으로 파일을 분석해보면 UPX패킹이 되어있다고..
zero-min.tistory.com
POPAD를 찾아가 보면
위 사진과 같이 JNZ 분기문 밑에 00445834 주소를 PUSH 한다.
이렇게 JNZ 밑에 특정 주소를 PUSH 하게 되면 RETN때 이 주소(OEP)로 이동하게 된다.
F8로 RETN 까지 이동하게 되면 아래와 같이 OEP로 이동하는데
여기서 Ctrl+A 키를 누르게 되면
음, 다 복구가 되지는 않았지만 일정부분 복구가 되었다.
여기서 올리의 All referenced text strings 를 확인해보면 아래와 같이 분기점이 나온다.
빨간 밑줄 친 곳으로 이동하면
위 사진과 같이 점프 분기점을 확인 할 수 있고
코드엔진이 원하는 OPCODE는 75 55 이다.
'[Riversing] > [코드엔진] BASIC' 카테고리의 다른 글
[코드엔진] basic12 (0) | 2020.03.31 |
---|---|
[코드엔진] basic11 (0) | 2020.03.31 |
[코드엔진] basic9 (0) | 2020.03.31 |
[코드엔진] basic8 (0) | 2020.03.31 |
[코드엔진] basic7 (0) | 2020.03.31 |