CodeEngn Basic 07

Kail-KM
|2015. 6. 1. 00:56

문제확인



파일을 실행할 경우 아래와 같이 틀린 시리얼에 의하여 프로그램이 바로 종료가 된다.





풀이


손쉽게 성공분기점을 찾을 수가 있으며, 이를 통하여 우리는 GetVolumeInformationA 와 lstrcat과 lstrcmp를 볼 수가 있다.  하지만 여기서 중요한 것은 바로 4562-ABEX 밑 부분에 알고리즘이 있다는 것이다. 이 알고리즘은 4562의 숫자를 1씩 총 두번 상승 시키므로 인하여 결국 6784-ABEX가 위치하게 된다.


알고리즘을 거친 문자열은 L2C-5781뒤에 덧붙여 지게 되어 시리얼을 형성하는 것을 볼수가 있다.

여기서 GetVolumeInformationA에서 VolumeNameBuffer의 위치에 바로 드라이브의 이름이 위치하는 것을 볼 수가 있다. 따라서 드라이브의 이름이 CodeEngn일 경우 Code-Engn이 위치하게 되어 앞의 Code부분이 2칸씩 상승하게 되고 그러한 상승이 이루어진뒤에 기존의 문자열에 덧붙여져 이번 문제를 풀 수가 있다.


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

CodeEngn Basic 09  (0) 2015.06.01
CodeEngn Basic 08  (0) 2015.06.01
CodeEngn Basic 06  (0) 2015.06.01
CodeEngn Basic 05  (0) 2015.05.31
CodeEngn Basic 04  (0) 2015.05.31