티스토리 뷰

** 분석 중 문제 함수가 지역 변수 접근에 EBP 를 사용하지 않았음. (ESP 를 대신 사용함.)

Immunity Debugger 에서 LOCAL.n Prefix 를 사용하지 못함. IDA 를 이용해 스택 주소를 확인함.


1.

mp3 파일을 열어서 재생한다.

1분 이상으로 듣지 못하고, 모든 체크 루틴을 우회하면 플래그를 볼 수 있다고 하였음.

VB6으로 제작되었으며, 분석을 용이하게 하기 위해서 ida pro visua basic 6.0 스크립트를 통해 IDA 가 CallBack 등 함수를 제대로 나타날 수 있게 해준다.

(VB6 Decompiler 를 통해서 빠른 분석도 가능하다.)



2.

1분 이상 듣게 되면, "1분 미리ㅣ듣기만 가능합니다." 라는 메세지가 출력된다.

이때 프로그램을 Suspend 해서, MessageBox 가 호출된 코드를 찾는다. (타이머 콜백 함수)

00403B0D 에서 실행이 계속되는데, 조금 더 위로 올라가보면 하나의 큰 분기문을 찾을 수 있다.

0040455D 에서 특정 값을 비교해서, 60000보다 크면 아까의 오류 메세지를 표시하는 구문을 보게 된다.

그부분을 바꾸어 jmp 로 수정하고 실행해본다.



3.

"Invalid Property Value" 라는 오류와 함께 프로그램이 종료된다.

Immunity Debugger 로 Attach 후, Call stack 을 조사해서 타이머 콜백 함수에서의 call 이 실행된 주소를 찾는다.

해당 주소 위의 jge 구문을 jmp로 변경하고 실행하면, 문제없이 코드가 실행되고, 답을 찾을 수 있다.


'Reversing > * reversing.kr' 카테고리의 다른 글

reversing.kr - Ransomware  (0) 2016.07.22
reversing.kr - ImagePrc  (0) 2016.07.22
reversing.kr - Easy Keygen  (0) 2016.07.20
reversing.kr - Replace  (0) 2016.07.19
reversing.kr - Easy Unpack  (0) 2016.07.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함