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
'ctf + wargame > 코드엔진' 카테고리의 다른 글
코드엔진 Challenges : Basic 10 (0) | 2014.12.07 |
---|---|
코드엔진 Challenges : Basic 08 (0) | 2014.12.07 |
코드엔진 Challenges : Basic 06 (0) | 2014.11.30 |
코드엔진 Challenges : Basic 05 (0) | 2014.11.30 |
코드엔진 Challenges : Basic 04 (0) | 2014.11.30 |