⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 脱壳要点.txt

📁 加密解密2配套光盘,内有加密解密第二版书内提及的软件.
💻 TXT
字号:
《加密与解密》(第二版)配套习题(www.pediy.com)
==============================================================================================
由于篇幅,此例没放进书里。

脱壳要点:

1、找OEP大概11个SEH调用后,再跟几步就能找到。
2、DUMP取数据
由于UnpackMe.exe内存映像有9M之多,因此Dump后必须将其减肥。将Dump取的境像文件最后两个区块删除(即
偏移地址为0xd000后的数据全删)

或直接抓取前0xD000大小的数据:PAGEIN D 400000 D000 \??\C:\dump.exe

3、输入表
外壳模拟Windows装载器填充IAT时,会对IAT成员加密(即Hook API),此时IAT的成员指向的是外壳代码。
由于加入了许多垃圾代码干扰,此时用ImportREC是不能重建得到输入表的。
所以第一步就是要得到没加密的IAT。

方法如下:

bpm 4062E4(记事本程序的IAT位置是4062E4)
同时观察数据窗口DD 4062E4 变化

或用这个断点:bpx getprocadress

会来到如下代码处:
001B:0040D2A9  46                  INC       ESI
001B:0040D2AA  8A0E                MOV       CL,[ESI]
001B:0040D2AC  0AC9                OR        CL,CL
001B:0040D2AE  750A                JNZ       0040D2BA
001B:0040D2B0  8A4E03              MOV       CL,[ESI+03]
001B:0040D2B3  80F980              CMP       CL,80
001B:0040D2B6  7402                JZ        0040D2BA
001B:0040D2B8  EB4C                JMP       0040D306
001B:0040D2BA  8B06                MOV       EAX,[ESI]
001B:0040D2BC  3D00000080          CMP       EAX,80000000
001B:0040D2C1  760B                JBE       0040D2CE
001B:0040D2C3  25FFFFFF0F          AND       EAX,0FFFFFFF
001B:0040D2C8  50                  PUSH      EAX
001B:0040D2C9  83C604              ADD       ESI,04
001B:0040D2CC  EB08                JMP       0040D2D6
001B:0040D2CE  56                  PUSH      ESI
001B:0040D2CF  46                  INC       ESI
001B:0040D2D0  8A0E                MOV       CL,[ESI]
001B:0040D2D2  84C9                TEST      CL,CL
001B:0040D2D4  75F9                JNZ       0040D2CF
001B:0040D2D6  FFB585040000        PUSH      DWORD PTR [EBP+00000485]
001B:0040D2DC  FF9534060000        CALL      [EBP+00000634]
001B:0040D2E2  8B8D89040000        MOV       ECX,[EBP+00000489]
001B:0040D2E8  890F                MOV       [EDI],ECX              // 此行,下A命令改成mov [edi],eax
001B:0040D2EA  C601B8              MOV       BYTE PTR [ECX],B8
001B:0040D2ED  41                  INC       ECX
001B:0040D2EE  8901                MOV       [ECX],EAX
001B:0040D2F0  83C104              ADD       ECX,04
001B:0040D2F3  66C701FFE0          MOV       WORD PTR [ECX],E0FF
001B:0040D2F8  83C102              ADD       ECX,02
001B:0040D2FB  898D89040000        MOV       [EBP+00000489],ECX
001B:0040D301  83C704              ADD       EDI,04
001B:0040D304  EBA3                JMP       0040D2A9
 
在001B:0040D2E8一行,此时EAX中是getprocadress返回的函数地址,EDI指向的IAT,因此将代码改成mov [edi],eax,这样外壳会将正确
的函数地址填充到IAT结构中。程序运行后,再用ImportREC重建输入表。



 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -