Skip to main content Link Menu Expand (external link) Document Search Copy Copied

TAG

reversing Study

Abexcm2

해당 프로그램을 그냥 실행시켜 보자.

image

이름과 시리얼을 입력해서 통과하는 프로그램으로 보인다.

나는 이름, 옳은 시리얼 값을 찾는 것을 목표로 두지 않고, check버튼을 눌렀을 때 바로 통과하도록 목표를 잡았다.

image

해당 프로그램의 디스어셈 코드다. 아래 코드에 main구조체 호출이 있는 것으로 보아, 해당 프로그램은 VB로 작성된 코드이다. 따라서 버튼 이벤트 코드를 찾아 문제를 해결하면 될 것으로 보인다.

image

사용된 문자열을 통해 분기점에 접근해보자.

문자열중에 이름 4글자 입력하라는 문자열이 있는 것으로 보아, 구조는 다음과 같을 것으로 예상된다.

  1. Check버튼 이벤트 발생
  2. 이름 문자열 길이 검사
  3. 시리얼 검사

그러면 처음 이벤트 발생 할 떄인 문자열 길이 검사 부분을 찾기 위해 해당 에러 문구로 가보자.

image

해당 코드 위쪽에 이벤트 발생 함수가 있을 것으로 예상 되므로, 살펴보자.

image

위로 계속 올리다 보면 있다.

또한, 글자수 비교한 후 분기는 내려가다 보면 찾아 볼 수 있다.

image

해당 부분을 test문을 cmp eax, eax로 바꿔주고, je문의 주소를 옳은 시리얼 값을 입력했을 때 출력되는 메시지 박스 호출 문 전의 분기문 다음 주소로 바꿔주면 된다.

image

해당 목표 주소이다.

image

패치 이후 실행해 보면 다음과 같다.

image

이로써 문제는 해결되었다.


Author

Reverser & Pwner