본문 바로가기

[Riversing]/[코드엔진] ADVANCE

[코드엔진] advance04

코드엔진 사이트에 들어가 advance04 문제를 다운로드 받고 압축을 푼다(비밀번호 : codeengn)

 

 

name 이 주어졌고 시리얼번호를 구하는 문제이다.

 

프로그램을 실행시켜 보면 아래 그림과 같이 이름과 시리얼번호를 입력하는 창이 뜨는 간단한 프로그램이다.

 

 

PEiD로 분석 ㄱㄱ

 

 

흠 Exeinfo PE 로도 봐야겠다;

 

 

self write 코드란다. 이런건 처음 봤다.

 

Ollydbg로 분석해보자.

 

intermodular calls 도 text strings 도 나오지 않는다.

 

색다른 방식으로 패킹이 되어 있는 듯 하다.

 

 

프로그램이 위의 그림처럼 00401006 주소로 JMP 하는 루프로 시작되는데 

아무래도 이 00401006 주소가 OEP 인 듯 하다.

 

이 주소로 이동해서 덤프시켜주자.

 

 

위 그림과 같이 Rebuild Import 박스를 체크 해제 해주고 덤프시킨다.

 

덤프시킨 파일을 올리로 열어보니

 

아래 그림처럼 Intermodular calls 가 떴고, 거기에 유니코드를 비교하는 IstrcmpA 가 보인다.

 

이동 ㄱㄱ 

 

 

IstrcmpA 함수에 bp 를 걸고 F9 키로 진행을 했다.

 

시리얼 값은 임의로 55 라고 입력하였다.

 

 

위 그림처럼 내가 입력한 55와 의심스러운 문자열을 비교한 뒤 다르면 Error 쪽으로 점프한다.

 

이 값을 프로그램에 시리얼 넘버로 입력해 보았더니?

 

 

성공!

 

'[Riversing] > [코드엔진] ADVANCE' 카테고리의 다른 글

[코드엔진] advance03  (0) 2020.04.07
[코드엔진] advance02  (0) 2020.04.07
[코드엔진] advance01  (0) 2020.04.07