Распаковка файла - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. у меня возникла необходимость распаковать файл "exe" из у всей инфы, которую удалось найти в инете, я понял. что сделать это с помощью какого бы то ни было распаковщика мне не удастся, единственный способ - это распаковать в ручную. как оказалось я не в состоянии сделать этого сам . поэтому прошу вашей помощи. сразу скажу во избежание лишних вопросов: этот файл уже был у меня в не запакованном виде, но был утрачен пару лет назад. сейчас на просторах инета я не смог найти его. у друга оказалась эта программа, но в запакованном варианте. эта программа представляет из себя (эмулятор) игрового автомата Coldfire2 Gaminator прилагаю сам EXE Аваст на него ругается(не знаю, на что) там например в комплекте еще идет DLL так в ней построено управление клавишами по принципу клавиатурного перехватчика, а здесь не знаю почему. может так упакован.

Решение задачи: «Распаковка файла»

textual
Листинг программы
.adata:00883025
.adata:00883025                 public start
.adata:00883025 start           proc near
.adata:00883025                 pusha
.adata:00883026                 pushf
.adata:00883027                 push    offset ModuleName ; "kernel32.dll"
.adata:0088302C                 call    GetModuleHandleA
.adata:00883032                 push    offset ProcName ; "OutputDebugStringA"
.adata:00883037                 push    eax             ; hModule
.adata:00883038                 call    GetProcAddress
.adata:0088303E                 mov     ds:dword_883046, eax
.adata:00883044                 jmp     short loc_88304A
.adata:00883044 ; ---------------------------------------------------------------------------
.adata:00883046 dword_883046    dd 0                    ; DATA XREF: start+19w
.adata:00883046                                         ; start:loc_883060r ...
.adata:0088304A ; ---------------------------------------------------------------------------
.adata:0088304A
.adata:0088304A loc_88304A:                             ; CODE XREF: start+1Fj
.adata:0088304A                 push    offset flOldProtect ; lpflOldProtect
.adata:0088304F                 push    40h             ; flNewProtect
.adata:00883051                 push    10h             ; dwSize
.adata:00883053                 push    eax             ; lpAddress
.adata:00883054                 call    VirtualProtect
.adata:0088305A                 jmp     short loc_883060
.adata:0088305A ; ---------------------------------------------------------------------------
.adata:0088305C ; DWORD flOldProtect
.adata:0088305C flOldProtect    dd 0                    ; DATA XREF: start:loc_88304Ao
.adata:00883060 ; ---------------------------------------------------------------------------
.adata:00883060
.adata:00883060 loc_883060:                             ; CODE XREF: start+35j
.adata:00883060                 mov     eax, ds:dword_883046
.adata:00883065                 mov     byte ptr [eax], 68h
.adata:00883068                 mov     dword ptr [eax+1], offset loc_88307A
.adata:0088306F                 mov     byte ptr [eax+5], 0C3h
.adata:00883073                 popf
.adata:00883074                 popa
.adata:00883075                 jmp     short loc_8830CF
.adata:00883075 ; ---------------------------------------------------------------------------
.adata:00883077                 align 4
.adata:00883078                 db 2 dup(0)
.adata:0088307A ; ---------------------------------------------------------------------------
.adata:0088307A
.adata:0088307A loc_88307A:                             ; DATA XREF: start+43o
.adata:0088307A                 jmp     short loc_88307D
.adata:0088307A ; ---------------------------------------------------------------------------
.adata:0088307C byte_88307C     db 0                    ; DATA XREF: start:loc_88307Dr
.adata:0088307C                                         ; start:loc_8830BDw
.adata:0088307D ; ---------------------------------------------------------------------------
.adata:0088307D
.adata:0088307D loc_88307D:                             ; CODE XREF: start:loc_88307Aj
.adata:0088307D                 cmp     ds:byte_88307C, 1
.adata:00883084                 jnz     short loc_8830BD
.adata:00883086                 mov     ss:(dword_869000+0DFF6h - 877006h)[ebp], 0C3727D79h
.adata:0088308D                 mov     ss:(dword_869000+0DFE2h - 877006h)[ebp], 0FC9CAB28h
.adata:00883094                 mov     ss:(dword_869000+0DFE6h - 877006h)[ebp], 58C21AD9h
.adata:0088309B                 mov     ss:(dword_869000+0DFEAh - 877006h)[ebp], 7FDAEAFAh
.adata:008830A2                 mov     ss:(dword_869000+0DFEEh - 877006h)[ebp], 0D6C5EB09h
.adata:008830A9                 pusha
.adata:008830AA                 mov     eax, ds:dword_883046
.adata:008830AF                 mov     dword ptr [eax], 1B8h
.adata:008830B5                 mov     dword ptr [eax+4], 4C200h
.adata:008830BC                 popa
.adata:008830BD
.adata:008830BD loc_8830BD:                             ; CODE XREF: start+5Fj
.adata:008830BD                 inc     ds:byte_88307C
.adata:008830C3                 mov     eax, 1
.adata:008830C8                 retn    4
.adata:008830C8 ; ---------------------------------------------------------------------------
.adata:008830CB dword_8830CB    dd 0                    ; DATA XREF: start+B1w
.adata:008830CB                                         ; sub_8830ED+2r
.adata:008830CF ; ---------------------------------------------------------------------------
.adata:008830CF
.adata:008830CF loc_8830CF:                             ; CODE XREF: start+50j
.adata:008830CF                 pusha
.adata:008830D0                 pushf
.adata:008830D1                 mov     eax, VirtualProtect
.adata:008830D6                 mov     ds:dword_8830CB, eax
.adata:008830DB                 mov     VirtualProtect, offset sub_8830ED
.adata:008830E5                 popf
.adata:008830E6                 popa
.adata:008830E7                 push    offset sub_877000
.adata:008830EC                 retn
.adata:008830EC start           endp
.adata:008830EC
.adata:008830ED
.adata:008830ED ; =============== S U B R O U T I N E =======================================
.adata:008830ED
.adata:008830ED
.adata:008830ED sub_8830ED      proc near               ; DATA XREF: start+B6o
.adata:008830ED                 pusha
.adata:008830EE                 pushf
.adata:008830EF                 mov     ebx, ds:dword_8830CB
.adata:008830F5                 mov     VirtualProtect, ebx
.adata:008830FB                 mov     byte ptr [eax+4E6A4h], 68h
.adata:00883102                 mov     byte ptr [eax+4E6A9h], 0C3h
.adata:00883109                 mov     dword ptr [eax+4E6A5h], offset sub_883141
.adata:00883113                 nop
.adata:00883114                 nop
.adata:00883115                 nop
.adata:00883116                 nop
.adata:00883117                 nop
.adata:00883118                 nop
.adata:00883119                 nop
.adata:0088311A                 nop
.adata:0088311B                 nop
.adata:0088311C                 nop
.adata:0088311D                 nop
.adata:0088311E                 nop
.adata:0088311F                 nop
.adata:00883120                 nop
.adata:00883121                 nop
.adata:00883122                 nop
.adata:00883123                 nop
.adata:00883124                 nop
.adata:00883125                 nop
.adata:00883126                 nop
.adata:00883127                 nop
.adata:00883128                 nop
.adata:00883129                 nop
.adata:0088312A                 nop
.adata:0088312B                 nop
.adata:0088312C                 nop
.adata:0088312D                 nop
.adata:0088312E                 nop
.adata:0088312F                 nop
.adata:00883130                 nop
.adata:00883131                 nop
.adata:00883132                 nop
.adata:00883133                 nop
.adata:00883134                 nop
.adata:00883135                 nop
.adata:00883136                 nop
.adata:00883137                 nop
.adata:00883138                 nop
.adata:00883139                 popf
.adata:0088313A                 popa
.adata:0088313B                 jmp     VirtualProtect
.adata:0088313B sub_8830ED      endp
.adata:0088313B
.adata:00883141
.adata:00883141 ; =============== S U B R O U T I N E =======================================
.adata:00883141
.adata:00883141
.adata:00883141 sub_883141      proc near               ; DATA XREF: sub_8830ED+1Co
.adata:00883141                 mov     dword ptr [ebp-4], 0EC09EB1Ch
.adata:00883148                 mov     eax, [ebp-4]
.adata:0088314B                 pop     esi
.adata:0088314C                 mov     esp, ebp
.adata:0088314E                 pop     ebp
.adata:0088314F                 retn    8
.adata:0088314F sub_883141      endp ; sp-analysis failed
.adata:0088314F
.adata:0088314F ; ---------------------------------------------------------------------------
.adata:00883152                 align 1000h
.adata:00884000                 dd offset dword_401000+9A56Eh
.adata:00884004                 dd offset dword_401000+9A564h
.adata:00884008                 dd offset dword_401000+9A554h
.adata:0088400C                 dd offset dword_401000+9A544h
.adata:00884010                 dd offset dword_401000+9A538h
.adata:00884014                 dd offset dword_401000+9A528h
.adata:00884018                 dd offset dword_401000+9A516h
.adata:0088401C                 dd offset dword_401000+9A504h
.adata:00884020                 dd offset dword_401000+9A4F8h
.adata:00884024                 dd offset dword_401000+9A57Eh
.adata:00884028                 dd 0
.adata:0088402C                 dd offset dword_401000+99D90h
.adata:00884030                 dd offset dword_401000+99DA0h
.adata:00884034                 dd offset dword_401000+99DB0h
.adata:00884038                 dd offset dword_401000+99DBEh
.adata:0088403C                 dd offset dword_401000+99DCCh
.adata:00884040                 dd offset dword_401000+99DDCh
.adata:00884044                 dd offset dword_401000+99DF2h......

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы