Reverse_engineering/CodeEngn

Code engn basic-3

KSJ._.seven11 2023. 1. 20. 16:44

이제야 좀 난이도 있는 문제가 올라온 거 같다.

 

먼저 x32dbg로 파일을 까보자.

 

우선 Search for을 통해 불러내는 모듈들을 확인해보자.

 

위를 통하여 부르는 모듈들을 확인할 수가 있다.

 

우측을 보며 문자열을 비교하는 함수를 찾아낼 수 있을 것이다.

 

C언어 같은 경우는 Strcmp 함수를 활용한다.

 

어셈블리어에서의 비교 연산은 cmp를 활용한다.

 

위와 상관없이 우선 프로그램을 실행해보자.

 

결과가 틀리다면 위와 같은 메세지 박스를 호출하는데 해당 부분 근처를 x32dbg로 확인해보면

 

이쪽일 거다. 위와 같이 보면 Call <JMP . &_VbaStrCmp > 가 굉장히 수상해 보인다.

 

그 뿐만 아니라 위에 2G 뭐시기 또한 확인할 수 있는데 이는 시리얼 넘버를 나타내지 않을까? 라는 생각에 프로그램을 실행하여 해당값을 넣어봤다.

 

패스워드가 맞았다는 것을 확인할 수 있다.

 

그렇다면 저 주석부분 아래에서 바로 Call을 때리는 VbaStrCmp가 비주얼 베이직에서 문자열 비교 함수라는 것을 알 수 있다.