woonadz :)

[CodeEngn Advance] RCE L04 문제 풀이 및 분석_nabi 본문

IT/codeengn 문제 풀이

[CodeEngn Advance] RCE L04 문제 풀이 및 분석_nabi

C_scorch 2022. 12. 21. 17:03
반응형

RCE L04 문제

 

 

RCE L04 문제풀이

 

exe 파일 실행화면
ollydbg에 파일을 올렸을 때 화면

Entry point 관련 정보를 찾을 수 없다. 패킹 된 것으로 추측된다.

 

Entry point로 가기 위한 JMP 명령어
Ollyginal Entry point

push 0으로 스택을 초기화하는 것으로 보아 해당 주소가 Original Entry point 이다.

패킹이 되어있어 어딘가에 BP를 걸어도 초기화되고 프로그램이 끝까지 실행된다.

 

API를 찾는 방식으로 문제풀이를 진행하겠다.

Ollydbg 시작 지점에서 한줄씩 실행시키면 해당 프로그램에서 사용하는 API가 담긴 주소 목록을 확인할 수 있다.

 

lstrcmp 함수에 BP

lstrcmp 함수는 두개의 문자열을 비교할 때 사용하는 함수로 사용자가 입력한 serial과 하드코딩된 serial 값을 비교할 때 자주 사용되는 API이다. GetModuleHandleA API로 사용자가 입력한 Serial을 받아와서 lstrcmp로 문자열을 비교하는 것으로 추측할 수 있다. 이제 lstrcmp에 BP를 걸고 실행시켜보겠다.

 

입력값
스택 부분에 비교할 문자열이 push 된 것을 확인

프로그램에서 Test 버튼을 누르자 lstrcmp 함수 이전 주소까지 실행된 후 멈춘다. 스택부분을 확인하면 String1과 String2를 비교하는 것을 볼 수 있다. String1에 적인 LOD-59919-A0024900 이 Serial 값이라고 추측할 수 있다.

 

정답 확인

정답 : LOD-59919-A0024900

반응형