开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 95755|回复: 887
收起左侧

[易语言纯源码] 易语言DLL劫持生成 最新劫持技术

    [复制链接]
发表于 2021-2-9 13:55:07 | 显示全部楼层 |阅读模式   广东省惠州市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
本帖最后由 梦优勿扰m 于 2021-2-9 14:48 编辑

DLL劫持算是一个很古老的技术了,早在XP时代就有臭名昭著的lpk.dll劫持,病毒通过伪装系统lpk.dll达到注入目标进程,为什么会被劫持呢?因为在程序执行的时候会在当前目录搜索lpk.dll文件,如果文件存在就会被加载到进程地址空间。

DLL劫持原理:
  DLL劫持技术当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中。
  由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录中查找,最后是在环境变量中列出的各个目录下查找。利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统DLL被劫持(hijack)了。
  伪造的dll制作好后,放到程序当前目录下,这样当原程序调用原函数时就调用了伪造的dll的同名函数,进入劫持DLL的代码,处理完毕后,再调用原DLL此函数。
  这种补丁技术,对加壳保护的软件很有效,选择挂接的函数最好是在壳中没有被调用的,当挂接函数被执行时,相关的代码已被解压,可以直接补丁了。在有些情况下,必须用计数器统计挂接的函数的调用次数来接近OEP。此方法巧妙地绕过了壳的复杂检测,很适合加壳程序的补丁制作。
  一些木马或病毒也会利用DLL劫持技术搞破坏,因此当在应用程序目录下发现系统一些DLL文件存在时,如lpk.dll ,应引起注意。

思路:
我们拿winmm.dll劫持做演示,通常的劫持技术是导出和winmm.dll同样的函数并提供相同的参数,当程序运行后加载winmm.dll会事先在当前目录查找,此时如果你编写的伪装winmm.dll在当前目录就会被加载到进程空间,如果程序还调用了里面的函数就会调用你编写的函数你必须保证可以正常运行你得调回原winmm.dll中的函数。
这样来回调用大大降低了效率,而且易语言导出的函数的特殊性大大降低了效率甚至部分程序还不能正常的回调。
那有没有办法解决这个问题呢? 于是我想到了能不能调用函数的时候直接跳转到原函数呢 这样大大降低了劫持影响的效率  比如 程序a.exe调用 a.dll 里面的 test函数 劫持后 程序a.exe调用a.dll里面的test的时候 会先调用我们劫持的dll里面的test然后跳转到a.dll里面的test 这样就相当于调用一个函数变成了调用两个函数 我们完全可以这样 调用我们的test的时候 直接跳转到原函数 而且我们的导出函数不需要提供任何参数跟返回值 这简直太棒了!! DLL公开的子程序就是只用作导出函数请不要加任何代码没有意义。

例程:
1232.png
直接上winmm.dll劫持源码: winmm.e (29.63 KB, 下载次数: 1995)
456.png

点评

是我易语言有问题吗 下载的生成源码是空白的..   江西省赣州市  发表于 2021-2-11 02:16

评分

参与人数 42好评 +34 精币 +68 收起 理由
rszhao + 1 请问我要修改被劫持函数内容怎么搞呢?
ghost12 + 1 支持开源~!感谢分享
1051496412 + 1 + 2 支持开源~!感谢分享
ziyoulang168 + 1 整体思路挺不错,值得学习,但是有很多兼容性的问题
Aesgb + 1 + 2 支持开源~!感谢分享
被封禁言 + 1 支持开源~!感谢分享
YangJunkeji + 1 谢谢大佬,为网络安全知识支持了一份力
明靓 + 1 + 1 新技能已get√
小言T默默 + 2 支持开源~!感谢分享
维斯 + 1 + 2 新技能已get√
douyixiaaa + 1 感谢发布原创作品,一定好好学习,天天向上
忧郁之子 + 1 + 2 支持开源~!感谢分享
inat + 1 + 2 感谢分享,很给力!~
lcx850483315 + 1 共同努力,共同进步
梦幻岛主 + 1 + 2 新技能已get√
以帅服人 + 1 + 2 感谢发布原创作品,一定好好学习,天天向上
feiyu2005 + 1 支持开源~!感谢分享
易语言资源网 + 1 + 5 支持开源~!感谢分享
傻妞 + 1 支持开源~!感谢分享
怪兽叔叔 + 1 + 2 支持开源~!感谢分享
734108950 + 1 + 2 很赞同,谢谢!
cosset + 1 + 1 支持开源~!感谢分享
皮皮驴 + 1 + 1 支持开源~!感谢分享
Danceee + 1 新技能已get√
ttioo7 + 1 + 2 新技能已get√
顾本 + 1 好神奇!
haoyunlai + 1 + 2 支持开源~!感谢分享
ノ朽默℡ + 1 + 1 牛啊!牛啊!
凌哥 + 1 + 5 支持开源~!感谢分享
超级の赛亚人 + 1 + 2 新技能已get√
i77 + 1 支持开源~!感谢分享
2936878706 + 1 + 2 这么厉害!必须给个红包鼓励下~
fengshou + 1 奉上小小红包希望笑纳
已注销541904 + 1 + 2 新技能已get√
夜的静night + 1 + 3 新技能已get√
天涯阿肯 + 1 + 2 新技能已get√
司徒西 + 1 + 2 支持开源~!感谢分享
Efly + 1 + 3 新技能已get√
ForeverXJie + 1 + 2 感谢分享,很给力!~
冰点 + 1 + 5 感谢发布原创作品,精易因你更精彩!
ycsyywl + 1 如果程序用绝对目录呢 还能用吗
2179743 + 1 牛逼牛逼 无视所有驱动保护

查看全部评分


本帖被以下淘专辑推荐:

签到天数: 3 天

发表于 2024-5-16 13:39:56 高大上手机用户 | 显示全部楼层   广东省广州市
dll劫持代码生成器
回复 支持 反对

使用道具 举报

发表于 2024-4-15 23:36:00 | 显示全部楼层   云南省普洱市
6666666666666666
回复 支持 反对

使用道具 举报

发表于 2024-4-15 23:35:28 | 显示全部楼层   云南省普洱市
下来看看!!!!!!!
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2024-3-27 11:51:00 | 显示全部楼层   福建省漳州市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 1 天

发表于 2024-1-29 13:57:56 | 显示全部楼层   四川省成都市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

发表于 2024-1-15 18:09:47 | 显示全部楼层   四川省成都市
太棒了  需要这个东西
回复 支持 反对

使用道具 举报

发表于 2023-12-15 04:38:56 | 显示全部楼层   贵州省黔西南布依族苗族自治州
鬼娃娃给哈哈
回复 支持 反对

使用道具 举报

发表于 2023-12-15 04:32:30 | 显示全部楼层   贵州省黔西南布依族苗族自治州
福娃福娃法王噶额我尴尬而
回复 支持 反对

使用道具 举报

签到天数: 1 天

发表于 2023-11-23 14:09:37 | 显示全部楼层   福建省莆田市
回复 支持 反对

使用道具 举报

签到天数: 6 天

发表于 2023-11-23 09:10:06 | 显示全部楼层   广东省湛江市
什么东西是一只免费
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表