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 *****
zhaohj999 发表于 2015-5-21 17:02
感谢版主!文档中插入图片还是没学会。
这是因为你的上传方式错了,不应该上传附件,而是上传图片,然后在文字中(想插入图片的位置)点击上传的图片,就可以插入到对应位置了。 图片是不是没弄好。前面的链接是什么 看不懂啊 本帖最后由 zhaohj999 于 2015-5-21 16:13 编辑
竟然不会排版,看附件的文档及录像吧。也不知道怎么取消下载附件需要的积分,请版主处理一下吧。
Themida或WinLicense所有版本,只要获取了这两张表,并理解解码表格式中每个DWORD的含义,脱壳就很简单了。只要在这两张表下“内存访问断点”及代码段下“内存写入断点”,根据我上一篇的脚本修改一下数据就可以跑完。
zhaohj999 发表于 2015-5-21 15:46
竟然不会排版,看附件的文档及录像吧。也不知道怎么取消下载附件需要的积分,请版主处理一下吧。
Themid ...
OK啦,我已经帮你重新上传附件了,导出了视频教程,转移到了视频区 Shark恒 发表于 2015-5-21 16:54
OK啦,我已经帮你重新上传附件了,导出了视频教程,转移到了视频区
感谢版主!文档中插入图片还是没学会。
向楼主学习,像楼主致敬~ 虽然不懂什么意思,但是很喜欢这样的技术帖子,非常感谢 学会了插图,谢谢恒大版主!