본문 바로가기

CodeEngn

[CodeEngn]Advance RCE 04 Write Up

문제 설명

이번에도 03번 문제처럼 name에 CodeEngn을 입력한 후 적절한 Serial 값 입력을 찾아내는 문제인듯 하다

문제를 풀어보기 전 detect it easy를 통해 패킹여부를 확인해보자 

따로 패킹은 되어있지 않다 

올리디버거를 통해 분석해보자 

여태까지 봐온 모습과는 조금 다르다 

일단 F8을 통해 어느 문구로 이동하는지 살펴보는 도중

오류 발생

오류가 발생하는 것을 확인할 수 있다

설명을 읽어보니 breakpoint는 코드의 명령어 경계에 설정되어야 제대로 작동하는데,

만약 코드가 아닌 데이터나 명령어 중간에 브레이크포인트를 설정하려고 할 때

예기치 않은 오류가 발생한다고 알려주는듯 하다 

그래서 x32dbg로 이동후 한 번 실행을 해보았다

F9으로 엔트리포인트를 찾아주고, F8을 누르다보면 

이 부분에서 jne 명령어에 의해 몇번씩 반복하는 걸 보게 된다

우리는 현재 serial number를 찾는게 목표이므로, 004011C7 부분에 F4를 눌러 탈출하도록 하자

그 후에 F8을 눌러보면 다른 부분이 등장하는데

우리가 원하는 문자열이 등장하는 것을 볼 수 있다

Valid Serial 부분을 찾은 후에 strcmp 부분에 breakpoint를 걸어 어떠한 값과 비교하는지 확인해보자 

이름이 CodeEngn일 때, Serial number는 LOD~ 라고 되있는 부분이다

push를 통해 스택에 넣고, strcmp 함수로 비교한 뒤 둘의 값이 같으면 0을 반환한다

(eax가 함수의 반환값을 저장)

따라서 문제의 Serial Number는

더보기

LOD-59919-A0024900 

 

'CodeEngn' 카테고리의 다른 글

[CodeEngn]Advance RCE 06 Write Up  (5) 2024.10.31
[CodeEngn]Advance RCE 05 Write Up  (8) 2024.10.30
[CodeEngn]Advance RCE 03 Write Up  (1) 2024.09.11
[CodeEngn]Advance RCE 02 Write Up  (2) 2024.09.09
[CodeEngn]Advance RCE 01 Write Up  (2) 2024.09.07