快速提取程序中的DLL(不是100%成功)
本帖最后由 保安 于 2022-1-1 00:26 编辑逆向环境:物理机WIN10
涉及工具:7-zip、任务管理器(系统自带)、(x32dbg)
教程类型:攻防战
是否讲解思路和原理:是
以下为图文内容:
1.普通无壳程序(例如 易 C++ 等。不包含.net)我这里使用的是7-zip,可能需要一样,如果使用其他工具也能实现请回帖告知
先写一个demo程序
1-1.导入资源表
1-2.调用该资源(如果不调用依旧无法提取 并且程序体积不会包含该dll)
然后编译
1-3.使用7-zip打开
这里点击# 或者#:e都可以,但是#只会列出资源表内第一个dll。如果点击#:e则会列出所有
这里直接提取即可获取到dll
原理:当你把dll添加进引用资源表,并且编译后,由于该文件是一个动态链接库,包含了PE头格式,所以当你尝试使用zip格式打开时,则会出现资源表里面的文件(dll/exe)
----------我是一条分割线----------
1.解决方法(未加壳)
1-1.加密过程
1-2.点击按钮后输出了一个加密dll
1-3.注入时解密过程
先引用已加密的dll
1-4.使用7-zip打开,已经无法看见加密后的dll
原理:当你将该文件(dll)加密时,PE头已发生变化(已经变成非动态链接库),此时(7-zip)不会再显示该文件
虽然dll已经加密,但是依旧可以看到解密密码,能不能成功解密,只能看逆向者的毅力(需要慢慢找dll的大小,并且拷贝出来解密。但是如果大小不一样,解密结果也会跟正常的不一样。)——并不是说无法逆向,只是提高了逆向难度
----------我是一条分割线----------
2.加了VMP的(易-未加密DLL)(不含.net)
2-1.去掉加密过程,以免影响结果(添加’号进行注释)
2-2.将注入方式改回直接注入并编译
2-3.加上VMP3.5(保护全开)
2-4.打开该程序后,打开任务管理器(快捷键Ctrl+Shift+Esc,也可以通过右键任务栏(默认在底部)-任务管理器 打开)
右键该进程,点击“创建转储文件”
**** Hidden Message *****
2022-01-01这里补上一个内存运行模块,方便大家研究:https://wwi.lanzouw.com/ibNQey7defi易语言的关键数据应该都在.rdata区段里,建议(dump后)直接在里面搜索本人不太会表达,如有疏漏,请多多包涵
请留下你的hb{:5_193:}
教程用心 看得出来 支持 讲解原理便是精华!感谢你的作品,为大家带来知识!
简单xor +btc就够了,资源放加密的,进程中动态解密写出够了,虽然结局还是一样要写出文件,只要对文件做个加密通讯,比如rsa 4096往上 组合加密都可以 感谢分享看开隐藏
Shark恒 发表于 2021-12-29 23:44
讲解原理便是精华!感谢你的作品,为大家带来知识!
感谢恒大支持 狐白小刺客 发表于 2021-12-29 23:52
简单xor +btc就够了,资源放加密的,进程中动态解密写出够了,虽然结局还是一样要写出文件,只要对文件做个 ...
如果是内存注入的方式,可以直接在内存里面解密,不用写出文件,这样可以大大减少被dump的几率。但是远程线程注入貌似必须写出dll,较容易被提出
不过感谢大牛提点 我再学习学习{:5_193:} 谢谢分享,受教了 来看看谢谢分享 ST手怎么白了 发表于 2021-12-30 00:19
教程用心 看得出来 支持
感谢大牛支持{:5_193:}