2017. 7. 28. 08:11ㆍ0x02 Reverse Engineer/0x02. Reversing.kr
This MP3 Player is limited to 1 minutes.
You have to play more than one minute.
There are exist several 1-minute-check-routine.
After bypassing every check routine, you will see the perfect flag.
1분 마다 체크 루틴이 있는데 이걸 다 우회해서 플래그를 찾아랑~~
비주얼 베이직 문제구나~~
우선 , mp3파일 아무거나 하나 구해서 열고
vb의 함수를 알아야 풀수 있겠는데?
msv~ 어쩌고의 내부는 들어가지 않아도 되네.. 여기서 헤맷네
7295D1F2 FF15 7C129472 call near dword ptr [<&KERNEL32.lstrcpyA>] ; kernel32.lstrcpyA
경로 복사
7295D1F8 8D85 FCFEFFFF lea eax,dword ptr [ebp-0x104]
7295D1FE 57 push edi
7295D1FF 50 push eax
7295D200 FF15 48129472 call near dword ptr [<&KERNEL32.lstrcatA>] ; kernel32.lstrcatA
dll명 추가
7295D206 8D85 FCFEFFFF lea eax,dword ptr [ebp-0x104]
7295D20C 50 push eax
7295D20D FF15 74119472 call near dword ptr [<&KERNEL32.LoadLibraryA>] ; kernel32.LoadLibraryA
프로그램이 실행되는 위치 인 것 같음
7294363F E8 7E6E0000 call msvbvm60.7294A4C2
72943646 E8 B48F0000 call msvbvm60.7294C5FF
004045D7 . 52 push edx ; rtcMsgBox 왓다가 어디로 리턴하는지 보자
004045D8 . FF15 4C104000 call near dword ptr [<&MSVBVM60.#595>] ; msvbvm60.rtcMsgBox
기존 EAX는 2D1 이걸 EA60보다 크게 하자. 왜 2D1(DEC= 721)일까도 생각을 해보면 좋겠다.
EA60이 DEC로 60000M/S -> 60초
(코드패치) EA60을 2BF20로 !!
00404563 . 3D 60EA0000 cmp eax,0xEA60 ; EAX를 확인해야겠네
00404568 . 8945 E8 mov dword ptr [ebp-0x18],eax
0040456B . 0F8C 8D000000 jl Music_Pl.004045FE ; eax가 0xEA60보다 작으면 점프 승낙
004045FE > \83F8 FF cmp eax,-0x1 ; 여기서 위로 쭉 타고 올라가는 루틴이 있다
00404601 . /0F84 C3000000 je Music_Pl.004046CA
00404607 . |8B0E mov ecx,dword ptr [esi]
00404609 . |50 push eax
0040460A . |56 push esi
코드패치를 하니 노래는 잘 ~~ 나온다~~ 야호야호 !!
하지만.. 런타임 에러(308)가 뜬다. 구글링 해보니 런타임 오류 380: 잘못 된 속성 값"는 기존 FRx 문서 블록 (행, 열, 카탈로그 또는 트리) 열 때이 오류가 발생 합니다.
속성 값이 잘못되었다고 한다. 당연히 내가 2BF20으로 바꾸었으니 속성 값이 잘못 된 거라고 생각한다.
그럼 이제 이 경고창을 우회해야한다.. 하 .. 어쩌지 또 한번 멘탈이 나가는건가`~`
메시지 박스 4개 인가 5개에 hardware bp 걸어뿌자
00403B07 . FF15 4C104000 call near dword ptr [<&MSVBVM60.#595>] ; msvbvm60.rtcMsgBox
004046A7 . 85C0 test eax,eax
004046A9 . DBE2 fclex
004046AB EB 12 jmp short Music_Pl.004046BF ; 코드패칭
004046AD . 68 BC000000 push 0xBC
004046B2 . 68 582B4000 push Music_Pl.00402B58
004046B7 . 57 push edi
004046B8 . 50 push eax
004046B9 . FF15 3C104000 call near dword ptr [<&MSVBVM60.__vbaHresultCheckOb>; msvbvm60.__vbaHresultCheckObj
004046BF > 8D4D E0 lea ecx,dword ptr [ebp-0x20]
004046C2 . FF15 28114000 call near dword ptr [<&MSVBVM60.__vbaFreeObj>] ; msvbvm60.__vbaFreeObj
Password is ??????
'0x02 Reverse Engineer > 0x02. Reversing.kr' 카테고리의 다른 글
CRC1 (0) | 2018.01.05 |
---|---|
PEpasswd (0) | 2017.12.01 |
RansomWare (0) | 2017.07.28 |
EasyUnpackMe (0) | 2017.07.28 |
EasyKeygen (0) | 2017.07.28 |