Лан хрен с ними - типовиками, надо отдыхать!! =)
Если кто-нибудь знает какой-нибудь тутор по распаковке этого протектора, киньте ссылочку.
Извини что выкладываю ответ, но чёт никто ничего не пишет.
Запускаем программу и мы тут:
Код:
004050D4 > EB 01 JMP SHORT CrackMe_.004050D7
трассируем по f9.
программа запускается после вот этого:
Код:
004001C1 FFFF ??? ; Unknown command
004001C3 FFFF ??? ; Unknown command
004001C5 FFFF ??? ; Unknown command
004001C7 FFFF ??? ; Unknown command
Как всегда, ставим бряк на esp-4, доходим до этого места, Shift-F9, и мы тут:
Код:
00406ADA F7D2 NOT EDX ; ntdll.KiFastSystemCallRet
00406ADC 39C2 CMP EDX,EAX
00406ADE F7C0 74E7F921 TEST EAX,21F9E774
00406AE4 0FACC2 48 SHRD EDX,EAX,48 ; Shift constant out of range 1..31
Т.к. я знаю на чем ты кодишь(это тоже важная инфа), мне показался подозрительным следующий код:
Код:
00406B14 31C2 XOR EDX,EAX
00406B16 68 6A1E3E44 PUSH 443E1E6A
00406B1B 812C24 4E05FE43 SUB DWORD PTR SS:[ESP],43FE054E
00406B22 68 2C6B4000 PUSH CrackMe_.00406B2C
00406B27 -E9 A6A6FFFF JMP CrackMe_.004011D2 ; JMP to MSVBVM60.ThunRTMain
Чтобы убедится, что я прав распаковываем твой старый крякмис. И смотрим начало.
Код:
004011A4 68 78224000 PUSH CrackMe!.00402278
004011A9 E8 F0FFFFFF CALL CrackMe!.0040119E ; JMP to MSVBVM60.ThunRTMain
004011AE 0000 ADD BYTE PTR DS:[EAX],AL
004011B0 0000 ADD BYTE PTR DS:[EAX],AL
004011B2 0000 ADD BYTE PTR DS:[EAX],AL
Чтож так оно и есть. MSVBVM60.ThunRTMain должен находится в начале программы.
Я не сталкивался с этим потектором и подумал, что это спёртые байты(возможно так оно и есть).
Дошёл до JMP CrackMe_.004011D2 и зашёл в него.
Я оказался тут:
Код:
004011C0 .-FF25 58104000 JMP DWORD PTR DS:[401058] ; MSVBVM60.EVENT_SINK_QueryInterface
004011C6 .-FF25 40104000 JMP DWORD PTR DS:[401040] ; MSVBVM60.EVENT_SINK_AddRef
004011CC .-FF25 50104000 JMP DWORD PTR DS:[401050] ; MSVBVM60.EVENT_SINK_Release
004011D2 .-FF25 88104000 JMP DWORD PTR DS:[401088] ; MSVBVM60.ThunRTMain
004011D8 00 DB 00
004011D9 00 DB 00
004011DA 00 DB 00
004011DB 00 DB 00
004011DC 00 DB 00
004011DD 00 DB 00
004011DE 00 DB 00
004011DF 00 DB 00
Таблица импорта сразу понял я.
Поднявшись выше, я увидел:
Код:
00401166 $-FF25 44104000 JMP DWORD PTR DS:[401044] ; MSVBVM60.__vbaStrCmp
Хм, гдет я это видел =)
Ставим бряк на доступ.
снимаем бряк с esp-4, и по f9.
Прога запустилась.
Вводим в эдитконтрол "Я крут" =). И на кнопку.
Код:
00401166 $-FF25 44104000 JMP DWORD PTR DS:[401044] ; MSVBVM60.__vbaStrCmp
Смотрим в окошко пониже:
Код:
DS:[00401044]=660E8A03 (MSVBVM60.__vbaStrCmp)
Local call from 004026CA
Идём на 004026CA
Видим следующие строки:
Код:
004026BC . 50 PUSH EAX
004026BD . E8 B6EAFFFF CALL CrackMe_.00401178 ; JMP to MSVBVM60.__vbaHresultCheckObj
004026C2 > FF75 E8 PUSH DWORD PTR SS:[EBP-18]
004026C5 . 68 0C234000 PUSH CrackMe_.0040230C ; UNICODE "Unicode"
004026CA . E8 97EAFFFF CALL CrackMe_.00401166 ; JMP to MSVBVM60.__vbaStrCmp
004026CF . 8BF8 MOV EDI,EAX
004026D1 . 8D4D E8 LEA ECX,DWORD PTR SS:[EBP-18]
004026D4 . F7DF NEG EDI
004026D6 . 1BFF SBB EDI,EDI
004026D8 . 47 INC EDI
Чтож должен признаться UNICODE "Unicode" усыпило моё внимание, но не надолго.
1. vbaStrCmp - это единственный вызов.
2. гдет читал про троян, который шифрует файлы по их адресам(адрес в смысле путь).
Короче
Unicode - это и есть пасс.
Registred!