문제: 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가
시리얼을 비교하는 것이므로, ollydbg를 사용하면 될 듯 하다.
ollydbg에서 문자열을 확인함으로써 문제를 풀 수 있을 듯 하다.
근데 주어진 문자열을 다 넣어봤는데도 풀리지 않았다.
그래서 일단 특정한 문자열로 이동해보았다.
Well Done이 나오려면 00401117로 이동하도록 해야한다는 것을 확인했다.
그러려면 EAX와 0이 같아야 한다.
일단 serial을 입력하는 칸에 아무거나 넣어보도록 한다.
나는 그냥 1004를 넣어봤다.
근데, String1이 달라졌음을 확인했다.
이제 시리얼넘버에 무엇을 넣어야 둘이 같아지는지는 유추해낼 수 있다.
String1을 넣으면 되는 듯 하다.
근데 auth에 이대로 넣어도 Incorrect라고 나온다..
그래서 문제를 다시 봤다.
문제: 컴퓨터 C 드라이브의 이름이 CodeEngn 일경우 시리얼이 생성될때 CodeEngn은 'ß어떤것'으로 변경되는가
그래서 name이 들어간 게 있는지 확인을 해보았다.
00401092에서, 'VolumeNameBuffer'가 07.0040225C로 되어있다.
찾아보니, 'VolumeNameBuffer'는 이름을 저장하는 버퍼였다.
거기에 '4562-ABEX'를 추가되어, Ykpfows4562-ABEX가 되었음을 확인할 수 있다.
따라서, 추가된 걸 뺀 값이 정답임을 유추해낼 수 있다.
근데 C드라이브 이름이 CodeEngn일 경우, 위의 영어는 EqfgEngn로 된다.
'리버싱' 카테고리의 다른 글
[CodeEngn]코드엔진 basic RCE L06 (0) | 2020.07.23 |
---|---|
[CodeEngn]코드엔진 basic RCE L08 (0) | 2020.07.22 |
[CodeEngn]코드엔진 basic RCE L05 (0) | 2020.07.22 |
[CodeEngn]코드엔진 basic RCE L04 (0) | 2020.07.21 |
[CodeEngn]코드엔진 basic RCE L 03 (0) | 2020.07.20 |