Basic RCE L05

HelloMG
|2020. 2. 10. 17:39

Basic RCE L05 문제

프로그램의 등록키는 무엇인가 입니다!

Ollydbg로 올려보겠습니다 :D

PUSHAD

처음부터 PUSHAD 명령어가 보입니다.

생소한 시작이네요..

 

PUSHAD 명령어로 시작한다는 것은 현재 프로그램이 Packing 되어 있다는 것을 의미합니다 :D

PEiD라는 툴이 있는데 이는 프로그램의 상태를 보여줍니다!

PEiD_v0.95.zip
0.42MB
PEiD

"UPX 0.89.6 ~~ "로 시작되어 있는거 보이시나요 :D

그리고 EP Section이 현재 UPX1으로 나타납니다!

이는 UPX Packer로 Packing 되어 있다는 얘기죠!

 


블로깅 전에는 Google을 이용하여 스스로 공부하시길 바랍니다 :D

아주 잘 나와있어용 !


 

https://github.com/upx/upx/releases/tag/v3.94

 

upx/upx

UPX - the Ultimate Packer for eXecutables. Contribute to upx/upx development by creating an account on GitHub.

github.com

명령프롬프트로 upx 프로그램이 존재하는 경로까지 이동해줍시다.

그리고 "upx.exe"를 입력하면 옵션을 볼 수 있습니다 :D

upx.exe

저희는 unpacking 해줘야 하기 때문에

"upx.exe -d 프로그램이름"

이용해줍니다!

 

+ 언팩킹하실 때 권한이 없다고 뜨신다면, 05.exe 프로그램이 동작 중인지 확인하시기 바랍니다 :D

unpacking

unpacking이 되었다면 PEiD로 확인해봅시다 :D

Unpacking 후 PEiD

쨘! Borland Delphi 4.0 -5.0 로 바뀌었죠 :D ?

그리고 EP Section 또한 Code로 변경되었습니다!

이제 순조롭게 분석을 시작해보도록 합시다 :D

EP

EP입니다. 빠르고 쉽게 분석하기 위해 앞서 알게된

[Search for] - [All referenced text strings] 옵션을 이용해봅시다 :D

[Search for] - [All referenced text strings]

내려가 보니 시리얼로 보이는 부분과 성공, 실패 시 출력되는 문구같은 곳을 발견할 수 있었습니다 :D

Point

그래서 실행시켜보니 프로그램이 실행이되고 유저 이름과 시리얼 번호를 적는 칸이 존재하더군요 !

아무값이나 시도해보았는데 자꾸 실패가 됩니다 : (

 

그래서 분석결과 표시된 CALL 함수에서 확인 후 JNZ에서 넘어가게 됩니다 !

그럼 CALL 함수로 들어가봅시다!

CALL 분석

CALL 내부로 들어가니 어떤 두개의 값을 비교합니다 !

제가 입력한 값과 "Unregistered..." 비교값인 "Registered User"을 비교하는군요 :D

Registered User

그리고 마저실행하니 예상대로 실패 메시지 박스가 실행됩니다.

실패

그래서 "Unregistered..." -> "Registered User"로 변경을 하였습니다.

그런데 또 무언가를 비교하는군요 ?

앞에 이름을 비교하는것처럼 똑같은 방식으로 시리얼을 비교하고 있습니다 :D

Serial Number

그럼 ASCII로 나타나있는 저 시리얼 번호가 진짜 번호겠죠 :D ?

입력해봅시다!

성공

이렇게 간단히 찾을 수 있었습니다 :D

 

이번 문제에서는 Packing부분을 알아야 풀 수 있는 문제가 아니었나 생각이 듭니다 :D

 

여기서 중요한 것은 Packing이 되어 있다고 해서 분석을 못하는 것은 아닙니다!

Packing되어있는 부분을 진행시키다 보면 OEP를 마주하게 되고

그때부터는 Unpacking되어 있는 것처럼 분석이 가능하니까요 :D

그러나 편의상 upx 프로그램을 이용하여 언패킹해서 문제를 풀어보았습니다!

 

반드시 Packing 되어 있는 상태에서 직접 분석 해보시기를 바랍니다 :D

또 하나의 공부로써 도움이 많이 되걸랑요 >_<

 

그럼 5번문제 풀이를 마치겠습니다!

'CTF > CodeEngn.kr' 카테고리의 다른 글

Basic RCE L07  (0) 2020.02.13
Basic RCE L06  (0) 2020.02.12
Basic RCE L04  (0) 2020.02.09
Basic RCE L03  (0) 2020.02.07
Basic RCE L02  (0) 2020.02.03