zhaohj999 发表于 2015-5-21 15:41

Themida或WinLicense中解码表及DLL基址表的获取

本帖最后由 zhaohj999 于 2015-5-21 18:20 编辑

Themida或WinLicense中解码表及DLL基址表的获取壳只会对导入表中来自kernel32.dll、user32.dll、advapi32.dll 三个dll中的函数作加密变形.外壳程序会把要执行的代码变在VirtualAlloc 分配的地址空间去执行,执行完了再VirtualFree。壳初始化的时候会申请很多的临时内存空间,从这点可以肯定它会调用VirtualAlloc函数,我们现在先对这个函数下断点:bp VirtualAlloc+19,下断在函数返回处。Od载入程序,CTRL+G,输入:VirtualAlloc+19,F2下断,F9运行。eax得到的VirtualAlloc 分配的地址。ALT+M看一下
F9连续3次,ALT+M,连续分配的3块内存就是壳加载的kernel32.dll、user32.dll、advapi32.dll我们用LordPE的“区域转存”功能dump下来看一下
用LordPE打开刚转存的文件
看到VirtualAlloc的偏移是0x8ef1也就是说壳先加载了自己的3个dll文件,以后对VirtualAlloc的访问将使用壳自己加载的api函数。这就是0x8ef1偏移数据的来源。下面就在壳的VirtualAlloc下硬件执行断点(取消原来的F2断点),F9,直到EAX返回一个PE的前一个断点,就是最佳返回时机。其它两个内存分配区域转存的dump文件


【视频】下载地址:
**** Hidden Message *****





Shark恒 发表于 2015-5-21 17:51

zhaohj999 发表于 2015-5-21 17:02
感谢版主!文档中插入图片还是没学会。

这是因为你的上传方式错了,不应该上传附件,而是上传图片,然后在文字中(想插入图片的位置)点击上传的图片,就可以插入到对应位置了。

fy88 发表于 2015-5-21 15:43

图片是不是没弄好。前面的链接是什么

北丶Coi7 发表于 2015-5-21 15:44

看不懂啊   

zhaohj999 发表于 2015-5-21 15:46

本帖最后由 zhaohj999 于 2015-5-21 16:13 编辑

竟然不会排版,看附件的文档及录像吧。也不知道怎么取消下载附件需要的积分,请版主处理一下吧。

Themida或WinLicense所有版本,只要获取了这两张表,并理解解码表格式中每个DWORD的含义,脱壳就很简单了。只要在这两张表下“内存访问断点”及代码段下“内存写入断点”,根据我上一篇的脚本修改一下数据就可以跑完。

Shark恒 发表于 2015-5-21 16:54

zhaohj999 发表于 2015-5-21 15:46
竟然不会排版,看附件的文档及录像吧。也不知道怎么取消下载附件需要的积分,请版主处理一下吧。

Themid ...

OK啦,我已经帮你重新上传附件了,导出了视频教程,转移到了视频区

zhaohj999 发表于 2015-5-21 17:02

Shark恒 发表于 2015-5-21 16:54
OK啦,我已经帮你重新上传附件了,导出了视频教程,转移到了视频区

感谢版主!文档中插入图片还是没学会。

gujin162 发表于 2015-5-21 17:18


向楼主学习,像楼主致敬~

钢棍泄师傅 发表于 2015-5-21 17:42

虽然不懂什么意思,但是很喜欢这样的技术帖子,非常感谢

zhaohj999 发表于 2015-5-21 18:21

学会了插图,谢谢恒大版主!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: Themida或WinLicense中解码表及DLL基址表的获取