学习Enigma脱壳Enigma过注册的一点笔记
-
相关简介:学习Enigma脱壳Enigma过注册的一点笔记 懒得存了,就扔在这里,有兴趣的可以看看。。。。 一,Enigma壳的识别: 区段特征: 推荐一款识别率超高的enigma识别软件: EnigmaInfo.exe 这软件我跟其它文件放在一起在CSDN中供下载。 一,Enigma脱壳: 1,OEP查找: 这种方法就不说了,各种编译器特征码,敏感API都可以实现,基本上Enigma都是通过jmp eax到达OEP的。 2,bypass crc: 在跟踪过程中,先把CRC给bypass了,这样下断或i
-
文章来源:股海网作者:股海网发布时间:2017-08-29浏览次数:
学习Enigma脱壳Enigma过注册的一点笔记
懒得存了,就扔在这里,有兴趣的可以看看。。。。
一,Enigma壳的识别:
区段特征:
推荐一款识别率超高的enigma识别软件:
EnigmaInfo.exe
这软件我跟其它文件放在一起在CSDN中供下载。
一,Enigma脱壳:
1,OEP查找:
这种方法就不说了,各种编译器特征码,敏感API都可以实现,基本上Enigma都是通过jmp eax到达OEP的。
2,bypass crc:
在跟踪过程中,先把CRC给bypass了,这样下断或inline patch就简单了。
如上图,所有的enigma版本的CRC都是一样的,把灰色部分NOP掉即可。
2,修复IAT Redirection
只要把以上灰色部分给NOP掉即可强制不使用IAT Redirection,跟踪方法一般是通过看IAT什么时候被Redirection来定位具体代码位置(通过搜索FF 25等方法)。
3,阻止API Emulation
注意上面的TEST EDI,20的关键字,通常可以用来定位API Emulation。 把灰色部分NOP掉即可阻止API Emulation。
4,Fix Data Relocation等。
这个东西根据实际情况修复即可。
二,Inline patch HWID过Enigma注册.
在一些比较复杂的情况下,比如说软件大量使用SDK,或者不需要脱壳只需要过注册即可,那么脱壳就无必要,只要Inline patch就足够满足要求了。
由于图片较多,我把其具体过程都放在附件中供下载分析,这里就列个目录:
(一),找到Inline patch 地址
1,下内存写入断点。
2,中断解码过程。
3,存为DLL文件,找到EP_RegHardwareID。
4,最终地址:MOV EAX,DWORD PTR DS:[EDI]
(二),Inline Patch hwid 思路以及模板制作
1,Inline Patch 思路。
2,patch 代码解析。
Enigma所有版本过注册 高版本通过PATCH HWID方式
V2.0以下的貌似只要跳过注册框即可,无需解码。(以下内容摘自本人发自upk的原创,并非抄袭)
以下以V3.7为例子PATCH HWID:
一,查找HWID生成地址:
1,
先在.rsrc和.data中间的这个区段(0101B000)下内存写入断点,这个区段其实就是Enigma自己验证的一个dll(DLL_Loader.dll)。,
2,
类似1428B2C 行的REP ……就是解码部分。解码完毕后:
3.
存为DLL文件:
双击0101B000区段,保存数据到文件,选择为dll文件。此时即可把 5.jpg
Enigma自身的DLL_Loader.dll给保存起来,如果输出表打不开,那么需要修正RAW地址。(3.7版本的保存后可以直接打开不用修正)
4,在DLL_Loader.dll中可以看到EP_RegHardwareID的RVA,
V3.7版本以下的:
0C80F4 +0101B000 (IMAGE BASE)即是程序中的地址,下断点,断完之后可以通过慢慢跟踪获得机器码的位置。
也可以使用搜索所有 MOV EAX,DWORD PTR DS:[EDI]命令,下全部断点后运行,中断后可获得机器码位置。
V3.7版本: EP_RegHardwareID的实际偏移地址为:0x0C253C。 而不是dll所看到的偏移值。
下断 IMAGEBASE + 0xC253C 即可断在实际的EP_RegHardwareID函数上。
如这个例子实际应该下断: HE 0C253C + 0101B000
断点后通过搜索MOV EAX,DWORD PTR DS:[EDI]命令即可断在机器码生成处。
以上只是一种快捷方法,通过一步步跟踪也可到达。
论坛上某位老师的软件的几个地址
这3行nop
0134488C ^\75 F0 jnz short 0134487E
0134488E 83F0 FF xor eax, 0xFFFFFFFF
01344891 EB 02 jmp short 01344895
最后一行nop
013C112B 8B55 FC mov edx, dword ptr [ebp-0x4]
013C112E 8B4D F0 mov ecx, dword ptr [ebp-0x10]
013C1131 894C82 04 mov dword ptr [edx+eax*4+0x4], ecx