코드엔진 Basic RCE L

코드엔진 Basic RCE L06 풀이

Lamed_Dhhd 2023. 2. 2. 00:34
반응형

2023-02-02에 쓸 예정

CodeEngn Challenge 링크 https://ch.codeengn.com/

 

CodeEngn.com [코드엔진]

코드엔진은 국내 리버스엔지니어링 정보공유를 위해 2007년 부터 리버스엔지니어링 컨퍼런스 및 세미나, 워크숍을 현업 실무자들과 함께 운영하고 있는 비영리 커뮤니티입니다.

ch.codeengn.com

Basic RCE L06
Unpack을 한 후 Serial을 찾으시오.
정답인증은 OEP + Serial
Ex) 00400000PASSWORD


Author: Raz0r
File Password: codeengn

동영상: https://www.youtube.com/watch?v=sfPhEEzbUCc 

상세설명

Unpack을 한 후 Serial을 찾으시오.
정답인증은 OEP + Serial
Ex) 00400000PASSWORD

EP는 프로그램이 시작하는 어셈블리어의 주소라고 보면된다.

줄여서 진입점(EntryPoint)

OEP에 O는 Original을 의미하며 원본 파일에 보안(protect)이나 압축(pack)을하여 시작점이 바뀌었지만 원래 진입점으로 가는 특성을 이용한다.

보면 패커: UPX(3.03)로 보입니다.

https://upx.kr.uptodown.com/windows/download

upx303w.zip
0.31MB

 

UPX 3.03을 위한 Windows을 다운로드하세요 | Uptodown.com

탄탄하고 용도가 다양하며, 맞춤 설정도 가능한 브라우저 컴퓨터 작업 손쉽게 자동화하기 사용중이거나, 보호되고 있거나 금지된 파일들을 삭제하세요 컴퓨터에서 마우스 클릭을 자동화하세요

upx.kr.uptodown.com

언팩하고 x64dbg나 ida로 시작 주소를 보면 참고로 ida는 왼쪽에 함수에서 start가 시작입니다.

이렇게 00401360이란 OEP 주소를 얻었습니다.

보시면 떠오르는 함수가 두개있습니다. Messagebox와 GetDlgItem 있는지는 DIE로 확인해봅시다.

있으니 두개를 기준으로 함수를 찾거나 아니면 ida로 winmain에서 추적해도됩니다.

GetDlgItemText로 Str2에 입력한 문자를 넣고 

strcmp로 문자열을 비교하는걸보니 str1이 정답이겠네요

보면 따란  Str1            db 'AD46DFS547',0로 'AD46DFS547'라는 문자열이 입력이 정답을 하는 문자열입니다.

 

반응형