728x90

Challenges : Basic 12


Author : Basse 2002


Korean : 
Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다 
이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 
0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 

문제 : Key값과 + 주소영역을 찾으시오 
Ex) 7777777???????? 


English : 
You will see a success message after finding the key. 
If you would want the Key itself to replace the success message in the MessageBox, 
open up a Hex Editor and overwrite the key value in the offset range 0x???? ~ 0x????. 

Q : find the key value and the offset range and write the solution in this format : key???????? 
(first ???? for the start and the next 4 ?s for the end). 

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


심플 합니다. 심플한 키젠입니다. PEiD로 확인해 보시면 알겠지만

패킹도 안되어 있습니다. 사정없이 디버거로 벗겨(?) 봅시다.




이것 저것 breakpoint를 걸어보며 살펴보았지만 제가 적은 문자열은 어디에서도 찾아볼 

수 없었습니다. 그래서 함수기능을 찾아보던중 위 화면에 "GetDlgItemInt"라는 함수가

텍스트를 정수형으로 변환하는 함수라는 것을 알게되었습니다. 그래서 저 함수에 break를

걸고 실행해 보았습니다.


입력후 Check 버튼을 누르면


함수 호출후...


반환값이 저장되는 EAX의 레지스터 값이 200

즉 10진수로 512가 저장되는 것을 확인했습니다.


그리고 밑에보니 올바른 키값일 경우의 메시지박스로 가는 분기점을 찾았고

저 분기점에서의 EAX레지스터 값을 확인해보니


그대로 였습니다. 결국 키값은 분기점에서 EAX와 비교하는 저 값인 것을 알게되었습니다.

저 값을 10진수로 변환하면 되겠죠?


그리고 문제대로 성공메시지박스의 내용을 수정합시다. (원래는 키값으로 수정)


끝!

728x90

+ Recent posts