본문 바로가기

WARGAME/codeengn

코드엔진 베이직 12

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

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



다이얼로그 창의 입력폼에 어떤 숫자를 적으면 0040105E 주소의 GetDlgItemInt() API가 이를 hex값으로 바꿔 EAX로 리턴해준다.

그 뒤 임의의 어떤 문자열을 4바이트씩 잘라서 00401073 주소의 함수에서 연산을 한다. (문자열 널포인터를 만날때 까지)


그런데 막상 루프가 끝나고 EAX 값을 확인해 보면 내가 입력했던 값이 hex값으로 그대로 들어있다. 


따라서, 0040107D 주소에서 CMP EAX, 7A2896BF 비교를 하게 되고, 성공 메시지를 띄운다. 


따라서, 키 값은 0x7A2896BF의 10진수 값인 2049480383이다. 


그리고 HxD로 열어서 성공 메시지 위치에 len(2049480383)+1 (널포인터 포함) 길이만큼 덮어써주면 된다.





Key 값 : 2049480383

주소 영역 : 0x0D3B ~ 0x0D45

'WARGAME > codeengn' 카테고리의 다른 글

코드엔진 베이직 14  (0) 2014.12.14
코드엔진 베이직 13  (0) 2014.12.13
코드엔진 베이직 11  (0) 2014.12.13
코드엔진 베이직 10  (0) 2014.12.13
코드엔진 베이직 9  (0) 2014.12.13