1. ВВЕДЕНИЕ
Описание программы2. РАСПАКОВКА
Прежде всего необходимо определить, чем прога запакована. Для этого можно воспользоваться утилитой pe-scan 3.31, хотя можно просто открыть её через F3 в FAR'е и обнаружить там секцию с названием WWP32, так что можно догадаться, что это WWPack32 (оф. сайт http://www.webmedia.pl/. Поскольку готового распаковщика для этой шняги нет, придётся сделать это самим (вообще-то он без проблем распаковывается универсальным анпакером GUW32, который можно скачать с сайта Unpacking Gods, но распаковать его вручную будет полезно для общего развития). Итак, загружаем файл SAMInside.exe в TRW жмём F10 и оказываемся здесь:019F:0041E000 PUSH EBX 019F:0041E001 PUSH EBP 019F:0041E002 MOV EBP,EAX 019F:0041E004 XOR EBX,EBX 019F:0041E006 JMP SHORT 0041E068 019F:0041E008 OR EAX,570A0D0A 019F:0041E00D PUSH EDI 019F:0041E00E PUSH EAX 019F:0041E00F POPAДалее есть два способа добраться до OEP - быстрый и классический:
019F:0041E068 CALL 0041E06D 019F:0041E06D POP EAX 019F:0041E06E SUB EAX,6D 019F:0041E073 PUSH EAX 019F:0041E074 PUSHA 019F:0041E075 XOR ECX,ECX 019F:0041E077 PUSH EAX 019F:0041E078 POP EAX 019F:0041E079 PUSH EAX 019F:0041E07A PUSH EAX 019F:0041E07B MOV EBP,EAX 019F:0041E07D PUSH ECXТеперь надо прокрутить окно кода немного вниз, пока не дойдём до команды POPA 1:
019F:0041E27B JZ 0041E265 019F:0041E27D ADD ESI,EDX 019F:0041E27F JMP SHORT 0041E271 019F:0041E281 POP EAX 019F:0041E282 POPA 019F:0041E283 POP EAX 019F:0041E284 MOV EBP,EAX 019F:0041E286 ADD EAX,[CS:EBP+0295] 019F:0041E28D ADD EAX,0299 019F:0041E292 POP EBP 019F:0041E293 POP EBX 019F:0041E294 JMP 004010E0 <--- Прыжок на OEP 019F:0041E299 ADD [EAX],AL 019F:0041E29B INC EAX 019F:0041E29C ADD [EAX],ALТеперь ставим бряк на 41E282 и F5, брякаемся жмём F10 несколько раз, пока не дойдём до джампа и оказываемся здесь:
019F:004010DD RET 08 019F:004010E0 PUSH BYTE +00 019F:004010E2 CALL `KERNEL32!GetModuleHandleA` 019F:004010E7 MOV [00413A5C],EAX 019F:004010EC MOV [00413A04],EAX 019F:004010F1 PUSH BYTE +0B 019F:004010F3 PUSH EAX 019F:004010F4 CALL `USER32!LoadBitmapA`
3. СНЯТИЕ ОГРАНИЧЕНИЙ
Теперь приступим непосредственно к увеличению алфавита: для этого открываем распакованный файл dumped.exe в HIEW и ищем строчку ABCDEF, после неё идёт много нулей, так что можно добавить к ней новые символы, я дописал 0123456789. Теперь надо сохранить изменения, найти где-нибудь файлы SAM и system и запустить перебор. Но нетрудно заметить, что в переборе участвуют только латинские буквы, несмотря на то, что в файле SAMInside.ini появилась строка Alphabet=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789..text:00401C45 loc_0_401C45: ; CODE XREF: start+990.j .text:00401C45 ; start+B44.j .text:00401C45 mov eax, 1Ah .text:00401C4A mov dword_0_413988, eax .text:00401C4F pxor mm0, mm0 .text:00401C52 mov esi, offset word_0_414169 .text:00401C57 movq qword ptr [esi], mm0 .text:00401C5A movq qword ptr [esi+7], mm0 .text:00401C5E push esi ; lParam .text:00401C5F push 0Fh ; wParam .text:00401C61 push 0Dh ; Msg .text:00401C63 push dword_0_413958 ; hWnd .text:00401C69 call SendMessageA .text:00401C6E .text:00401C6E loc_0_401C6E: ; CODE XREF: start+B9D.j .text:00401C6E lodsb .text:00401C6F cmp al, 20h .text:00401C71 jb short loc_0_401CAE .text:00401C73 mov edi, offset aAbcdefghijklmn ; "ABCDEFGHIJKLMNOPQRSTUVWXYZ" .text:00401C78Тут всё очевидно - надо просто открыть файл dumped.exe в HIEW и исправить mov eax, 1Ah на mov eax, 24h (24 HEX = 36 DEC). Теперь прога подбирает пароли состоящие из латинских букв и цифр !!!
Материалы находятся на сайте http://cracklab.narod.ru/doc/