Iriton's log

[CodeEngn] Basic RCE - L07 본문

Reversing/Wargame

[CodeEngn] Basic RCE - L07

Iriton 2024. 5. 7. 00:20

컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가

 

프로그램을 실행하면 시리얼 넘버를 입력하라 하고

틀린 값 입력시,

the serial you entered is not correct!

문자열을 띄운다.

 

이번에도 디버거로 열어서 all referenced text string을 확인한다.

 

맨 위에 두 값이 시리얼 넘버 같은데 일단 해당 오류 메세지로 가보자

 

시리얼 넘버로 추측했던 문자열이 나오는 context를 보면 stringtoadd 즉 문자열에 추가가 되는 형식인 거 같다.

어떤 동작을 하는지는 직접 실행해보면서 확인해 봐야겠다.

 

처음엔 GetVolumeInformation 함수로 인해 디스크 이름을 가져오고 그 뒤에  4563-ABEX 문자열이 붙은 후

 

이 함수들로 인해서 

앞의 4글자가 +1씩 붙는다.

여기서 나는 C의 이름을 아무것도 지정하지 않아서 

위와 같이 덧셈 연산이 된 건데 임의의 문자열을 입력했으면 아스키코드로 환산하여 +1이 될 것이다.

덧셈 과정을 총 두 번 수행한 뒤에 L2C... 문자열이 맨 앞에 추가된 게 시리얼 값이다.

CodeEngn이었다고 하면,

code에 +2씩 된 값이 EqfgEngn가 된다.

 

로컬 디스크 이름을 바꿀 수 있다는 걸 모른 채로 풀어서 제대로 된 동작을 파악하는 데 시간이 꽤 걸렸다...

'Reversing > Wargame' 카테고리의 다른 글

[Reversing.kr] ImagePrc  (0) 2024.05.15
[Reversing.kr] Music Player  (0) 2024.05.15
[CodeEngn] Basic RCE - L03  (0) 2024.05.07
[Dreamhack] Beginner: simple-operation  (0) 2024.04.02
[Dreamhack] Reversing Basic Challenge #1  (0) 2024.03.27
Comments