본문 바로가기

리버싱/CodeEngn 문제풀이

CodeEngn basic 12번 문제 풀이

SMALL

CodeEngn basic 12

Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다

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

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

Ex) 7777777????????

 

간단하게 Key값을 찾으면 될 것 같다.

성공구문이 보인다. 저기로 가보겠다.

성공구문 윗부분에 분기점을 찾았다. 

EAX값과 7A2896BF를 비교하는 것을 볼 수 있다.

브레이크포인트를 걸고 실행하겠다.

Key 값으로 123을 입력하겠다.

실행을 하니 EAX에 7B가 들어간 것을 볼 수 있다.

어셈블리어는 기본 16진수로 표현한다. 7B를 10진수로 하면 123이다. 내가 입력한 Key값을 EAX에 넣었고 

7A2896BF와 비교하는 것을 보니 7A2896BF이 키값인 것을 알 수 있다.

7A2896BF를 10진수로 바꾸면 2049480383인 것을 알 수 있다.

이제 HexEdit로 Key값을 메시지박스에 overwrite하려면 성공구문을 Key값으로 바꾸면 된다.

그렇기 때문에 0x0D3B ~ 0x0D62까지를 다 지우고 키값을 입력하여 0x0D3B ~ 0x0D44까지 쓰면된다.

하지만 문자열을 쓰고 마지막에 null값을 써줘야 문자열의 끝을 나타내기 때문에 0x0D45까지 overwrite을 해야한다.

즉, Key값은 2049480383이고 overwrite해야하는 영역은 0x0D3B ~ 0x0D45인 것을 알 수 있다.

 

답 : 20494803830D3B0D45

LIST