Iriton's log
[CodeEngn] Basic RCE - L07 본문
컴퓨터 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 |