##### ##### ## # ## ## # ### ## #: ## # ## # # # :: . :# . # #% .# # .%# #% # :# # . . #% # :: # #: # . . :#:%:## ##%:#:# :% % . . #%:## #:%:# #: : . . . . . D . E . Н . R . U . M . E . R . . . . . . . . version 1.0 . . . . (c) Dark Lion Небольшая история создания COM DEHRUMERa. На днях Pyrodex заканчивал 4К INTRO под стильным названием DAZZLE для Constuction Chaos'999. Объем ee был чуть больше 5 килобайт и паковался DIET'om и PKlit'om херово, но Pyrodex как большой генератор идей хотел уместить еще дофига в свою интруху. Понятно, что был нужен новый крутой пакер COM'ов. У Ash'a сразу появилась идея использовать HRUST ver1.2 by Hrumer (Best packer on Speccy), пакует он хорошо , но нужен был распаковщик на PC... Через пару дней я эту проблему решил и зашел к Pyrodex'y взять на испытания его недоделанную, тогда, интру. Зaпaчив в эмуле сей файл я обрадовался, что не зря все ето дело было затеяно, но на PC распаковщик находился в дохлом состоянии,потому как был совсем не oптиmизeн. Это состояние не смутило Ash'a (a он как раз заканчивал работу над своей газетой) и таким образом DeHrust оказался в приложении первого номера Нег... HeReSy. При оптимизации депакера тесты показали, что все это хуйня (длинна депакера 305 байт), но не все потеряно есть еще HRUM verЗ.5i и депакер там поменьше на 100 байт, я бысто переписал его на PC в результате DeHrumer улез в 170 байт. HAPPY END !!! Правила использования: 1. К nakyemomy файлу добавляем в конце 5 любых байт 2. Пакуем в HRUM'e файл 3. Копируем файл в MS-DOS 4. Используем ComDeHrumer Ниже приведены результаты тестов c разными пакерами: +----------------------------------------------------+ | Название | Нормальная | Длина после | Используемый | | интры | длина | паковки | пакер | +==========+============+=============+==============+ | | | 4491 | PKLite | | DAZZLE | 5337 | 4172 | Diet | | | | 4094 | Hrum | +----------+------------+-------------+--------------+ | | | 4026 | PKLite | | AXE | 5493 | 3771 | Diet | | | | 3659 | Hrum | +----------+------------+-------------+--------------+ | | | 4110 | PKLite | | BORNFAT | 5233 | 3836 | Diet | | | | 3740 | Hrum | +----------+------------+-------------+--------------+ Исходник депакера (170 байт). ; Code by Dark Lion on june 1999 IDEAL P486 SEGMENT CODESG PARA 'CODE' ASSUME CS:CODESG,DS:CODESG ORG 100h PROC DEPACK FOX: cli mov sp,65500 push bp mov bp,30000 ;куда распаковывать push bp mov dh,3 mov si,OFFSET SAVE1+2 ;откуда mov bx,01010h mov cx,OFF13h L25009: lodsb mov [bp],al inc bp L25014: call SAVE L25020: jc L25009 mov dl,1 L25024: mov al,128 L25026: call SAVE L25031: rcl al,1 jc L25026 cmp al,dh jc L25042 add al,dl mov dl,al xor al,bl jnz L25024 L25042: add al,dl cmp al,dh cmc jnc L25056 sbb al,dh jz L25090 adc al,dh L25051: call SAVE L25056: xchg cx,di mov [byte ptr FOX],al mov ch,255 dec al mov al,63 jz L25069 jnc L25082 and al,11011111b ;res 5,a L25069: xchg cx,di L25070: call SAVE rcl al,1 jnc L25070 xchg cx,di jz L25084 mov ch,al L25082: lodsb L25084: mov cl,al add cx,bp LDIR: mov ah,[ecx] inc cx mov [bp],ah inc bp dec [byte ptr FOX] jnz LDIR xchg cx,di jmp L25014 L25090: lodsb and al,al jnz L25051 pop si pop bp mov di,256 mov eax,0C3A4F357h mov cx,ax mov bx,65530 mov [bx],eax push bx ret ENDP DEPACK PROC SAVE lahf ;save Z flag ror ah,1 add cx,cx rcl ah,1 sahf pushf dec bh jnz SAVE1 xchg cx,ax lodsw xchg cx,ax mov bh,bl SAVE1: popf ret ENDP SAVE ENDS CODESG END DEPACK