본문 바로가기

[Riversing]/[코드엔진] BASIC

[코드엔진] basic10

코드엔진 사이트에 들어가 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