728x90


Challenges : Basic 07


Author : abex

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

English 

Assuming the drive name of C is CodeEngn, what does CodeEngn transform into in the process of the serial construction 

------------------------------------------------------------------------------

실행해 보니 역시나 올바른 키값을 요구합니다.

주저없이 디버거로 열어 봅시다.


코드는 생각보다 짧습니다.

문제를 보면 c드라이브의 이름을 구해서 변경하는 부분이 있을 것 같습니다.

먼저 구하는 곳을 찾아보면


이부분의 이 함수가 왠지 수상합니다. 함수를 검색해보니

드라이브 정보들의 주소를 함수의 인자들에게 리턴해 줍니다. 그중 드라이브 이름은



여기에 리턴 됩니다. 0040225C


그러나 애석하게도 드라이브에 이름따윈 지정하지 않았습니다.

그 다음 lstrcatA 함수로 드라이브이름이 저장된 문자열 다음에 요상한 시리얼 문자열을 붙입니다.


그다음 DL에 2를 넣어 루프로 40225C의 문자열의 앞 4바이트를 2씩 더합니다.

(+1씩 2번)




00402000 영역에 L2C....를 붙이고 0040225C를 붙여 제가 입력한 123456값과 비교하여


맞으면 맞았다고 틀리면 틀렸다고 메시지박스를 띄웁니다.


물론 답은 CodeEngn문자열이 변한 값이니 쉽게 유추할 수 있습니다.

728x90

+ Recent posts