精易论坛

标题: 易语言DLL劫持生成 最新劫持技术 [打印本页]

作者: 梦优勿扰m    时间: 2021-2-9 13:55
标题: 易语言DLL劫持生成 最新劫持技术
本帖最后由 梦优勿扰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公开的子程序就是只用作导出函数请不要加任何代码没有意义。

例程:
直接上winmm.dll劫持源码: winmm.e (29.63 KB, 下载次数: 2128) 使用黑月编译
测试劫持:易语言核心支持库(krnln.fne) 微信 QQ Steam QQ飞车 CF 英雄联盟 一切正常。测试只是为了得到劫持效果仅供参考,请勿用于非法用途。

[attach]1080630[/attach]
DLL劫持生成工具:

由于时间关系先到这里,后续再更。。。



补充内容 (2021-2-12 02:41):
如果想自己回调某个函数拦截修改功能,请把pszProcName数组变量对应的成员名称给删除 然后自己修改对应的导出函数 提供原函数同样的参数跟返回值

补充内容 (2021-12-26 11:04):
[更新]梦优勿扰的DLL劫持生成工具2.0 支持查看x86/x64函数 https://125.confly.eu.org/forum.php?mod=viewthread&tid=14711957

补充内容 (2022-8-19 08:04):
已更新:https://125.confly.eu.org/forum.php?mod=viewthread&tid=14711957

456.png (22.16 KB, 下载次数: 122)

456.png

作者: ycsyywl    时间: 2021-2-9 14:14
第一第一、、、
作者: 汉族    时间: 2021-2-9 14:20
看看            
作者: fengshou    时间: 2021-2-9 14:20
感谢,看看隐藏内容
作者: ssxpvicp    时间: 2021-2-9 14:22
由于时间关系先到这里,后续再更。。
作者: 350246356    时间: 2021-2-9 14:22
看看            
作者: 昨夜的雨    时间: 2021-2-9 14:24
等更新
作者: aijianli    时间: 2021-2-9 14:25
继续关注 不但长知识还能白嫖
作者: 春林    时间: 2021-2-9 14:27
厉害了
作者: Bszk    时间: 2021-2-9 14:27
挺不错的,修改函数入口数据,类似hook的跳转
作者: ﹎z°    时间: 2021-2-9 14:28
有点意思
作者: 天外孤鸿PLUS    时间: 2021-2-9 14:33
最新劫持技术
作者: 缺1份矜持ゝ    时间: 2021-2-9 14:35
注:仅供学习和交流,请勿非法使用。
作者: ycsyywl    时间: 2021-2-9 14:35
如果程序用绝对目录呢 还能用吗
作者: 13266750    时间: 2021-2-9 14:35
6666666666666666
作者: 315215    时间: 2021-2-9 14:36
厉害,先生回复看看
作者: 易雨同舟    时间: 2021-2-9 14:36
{:7_456:}
作者: heckvo    时间: 2021-2-9 14:37
支持开源,感谢分享
作者: 53770zhang    时间: 2021-2-9 14:38
学习学习
作者: 2179743    时间: 2021-2-9 14:39
ycsyywl 发表于 2021-2-9 14:35
如果程序用绝对目录呢 还能用吗

DLL在哪里就放哪里一样可以的
作者: 不苦小和尚    时间: 2021-2-9 14:46
确定能用吗?谢谢分享
作者: 17688167987    时间: 2021-2-9 14:46
scsddfdb fbf
作者: ycsyywl    时间: 2021-2-9 14:46
2179743 发表于 2021-2-9 14:39
DLL在哪里就放哪里一样可以的

winmm.dll这个系统文件,程序用的是绝对目录 exe目录下的不调用。难道要把winmm.dll放到系统目录里面吗,那其他程序一起被劫持了
作者: 梦优勿扰m    时间: 2021-2-9 15:14
不苦小和尚 发表于 2021-2-9 14:46
确定能用吗?谢谢分享

你用了就知道
作者: 杂草    时间: 2021-2-9 15:18
好东西,看起来不错。。。。
作者: AdGame    时间: 2021-2-9 15:20
看起来不错。。
作者: ycsyywl    时间: 2021-2-9 15:22
2179743 发表于 2021-2-9 14:39
DLL在哪里就放哪里一样可以的

winmm.dll是系统目录的 程序用的绝对目录 生成的文件放到exe同目录下不调用,
你的意思是替换系统目录下的文件?那这样其他程序都被劫持了啊
作者: ycsyywl    时间: 2021-2-9 15:24
梦优勿扰m 发表于 2021-2-9 15:14
你用了就知道

大佬 程序如果用决绝目录 该怎么办。exe同目录下不调用
作者: 梦优勿扰m    时间: 2021-2-9 15:27
ycsyywl 发表于 2021-2-9 15:24
大佬 程序如果用决绝目录 该怎么办。exe同目录下不调用

如果winmm.dll不调用根目录的 你可以换成其他DLL 查看他根目录调用了哪些DLL直接生成一个
作者: ycsyywl    时间: 2021-2-9 15:33
梦优勿扰m 发表于 2021-2-9 15:27
如果winmm.dll不调用根目录的 你可以换成其他DLL 查看他根目录调用了哪些DLL直接生成一个 ...


楼主你看这样对吗。
加_m的是原文件,我看你源码里没有加后缀。源文件改名也没加后缀。你看这样对吗

作者: cf2006a    时间: 2021-2-9 15:36
看看什么好东西!!

作者: 梦优勿扰m    时间: 2021-2-9 15:37
ycsyywl 发表于 2021-2-9 15:33
楼主你看这样对吗。
加_m的是原文件,我看你源码里没有加后缀。源文件改名也没加后缀。你看这样对吗
...

源码里面加载的时候可以不加.dll后缀名 文件名可以加.dll后缀名
作者: 老衲无悔    时间: 2021-2-9 15:37
易语言DLL劫持生成 最新劫持技术
作者: 天空c    时间: 2021-2-9 15:37
感谢分享!
作者: 已注销474226    时间: 2021-2-9 15:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: ycsyywl    时间: 2021-2-9 15:47
梦优勿扰m 发表于 2021-2-9 15:37
源码里面加载的时候可以不加.dll后缀名 文件名可以加.dll后缀名




按照你说的源码不加后缀,源文件加后缀了。
exe调用的是目录下bin文件里面的dll   exe同目录没有dll
我在源码里加上这个bin目录了 然后输出看了一下 目录好像是对了
但是m_hModule等于0
大佬你看看哪里错了

作者: 凌哥    时间: 2021-2-9 15:50
疑问:为啥是jmp到这个地址呢

原DLL函数地址 - 当前DLL函数地址 - 5


作者: 2446789312    时间: 2021-2-9 15:56
如果程序用绝对目录呢 还能用吗
作者: w1398113241    时间: 2021-2-9 15:56
12345623456765432
作者: cf2006a    时间: 2021-2-9 15:56
凌哥 发表于 2021-2-9 15:50
疑问:为啥是jmp到这个地址呢

原DLL函数地址 - 当前DLL函数地址 - 5

有可能是 call 地址  jmp 地址 一般都是5个字节  可能 在-5的位置写入  call 地址  指令 或 jmp 地址指令

具体你要用od跟下
作者: 杨总    时间: 2021-2-9 16:08
拿走看看
作者: 梦优勿扰m    时间: 2021-2-9 16:10
ycsyywl 发表于 2021-2-9 15:47
按照你说的源码不加后缀,源文件加后缀了。
exe调用的是目录下bin文件里面的dll   exe同目录没有dll
...

那很有可能是LoadLibrary加载那个原始DLL失败  你换个DLL试试
作者: ycsyywl    时间: 2021-2-9 16:15
梦优勿扰m 发表于 2021-2-9 16:10
那很有可能是LoadLibrary加载那个原始DLL失败  你换个DLL试试

基本上都试了 全是这个问题
作者: 不苦小和尚    时间: 2021-2-9 16:16
32位和64位dll 都可以吗?
作者: 韩小杰112    时间: 2021-2-9 16:19
666666666666666666666666666666
作者: ycsyywl    时间: 2021-2-9 16:23
梦优勿扰m 发表于 2021-2-9 16:10
那很有可能是LoadLibrary加载那个原始DLL失败  你换个DLL试试

找到一个m_hModule不等于0的 但是进不去游戏 信息框提示完 游戏就结束了
作者: 如梦入秋o    时间: 2021-2-9 16:25
感谢大佬分享
作者: 梦优勿扰m    时间: 2021-2-9 16:26
ycsyywl 发表于 2021-2-9 16:15
基本上都试了 全是这个问题

可能是DLL做了保护措施  你可以在加载前把劫持DLL改名其他的 然后把他原始DLL改名回来 然后再加载试试
作者: 执铭    时间: 2021-2-9 16:30
11111111111111111
作者: 梦优勿扰m    时间: 2021-2-9 16:31
ycsyywl 发表于 2021-2-9 16:23
找到一个m_hModule不等于0的 但是进不去游戏 信息框提示完 游戏就结束了

我刚回复的可能有敏感词在审核。你可以试试在加载前把文件名字还原然后加载试试 文件更名()
作者: cjf19970621    时间: 2021-2-9 16:37
学习学习学习学习
作者: 吃最野的牛    时间: 2021-2-9 16:40
6666666666666
作者: ycsyywl    时间: 2021-2-9 16:45
本帖最后由 ycsyywl 于 2021-2-9 16:49 编辑
梦优勿扰m 发表于 2021-2-9 16:31
我刚回复的可能有敏感词在审核。你可以试试在加载前把文件名字还原然后加载试试 文件更名() ...

有点不太懂 楼主能说详细一些吗 或者有源码更好
作者: 梦优勿扰m    时间: 2021-2-9 16:46
不苦小和尚 发表于 2021-2-9 16:16
32位和64位dll 都可以吗?

易语言只有32位!!
作者: 不苦小和尚    时间: 2021-2-9 16:48
测试通过,谢谢楼主,加载的时候就会执行自己的函数了,太棒了
作者: a524666979    时间: 2021-2-9 16:52

作者: openssl    时间: 2021-2-9 16:53
DLL劫持原理:

作者: chr8828    时间: 2021-2-9 16:56
学习学习学习学习
作者: 天涯海角II    时间: 2021-2-9 16:58
测试只是为了得到劫持效果仅供参考,请勿用于非法用途。
作者: kmskik    时间: 2021-2-9 16:59
看一看学习下
作者: Code123    时间: 2021-2-9 16:59
        牛逼牛逼 无视所有驱动保护
作者: 酒醒黄昏    时间: 2021-2-9 17:03
下载看看 学习学习
作者: 2161045897    时间: 2021-2-9 17:05
gxfx~~~~~~~~~~
作者: 菜就多多练    时间: 2021-2-9 17:19
易语言核心支持库(krnln.fne)
作者: 黑白之翼    时间: 2021-2-9 17:24
看看在说
作者: ForeverXJie    时间: 2021-2-9 17:35
下载学习,感谢楼主
作者: 内存Hook专业户    时间: 2021-2-9 17:36
        感谢发布原创作品,精易因你更精彩!
作者: bianyuan456    时间: 2021-2-9 17:36
看看,对我帮助很大。
作者: littlerobot    时间: 2021-2-9 17:38
不管咋样   先下载看看
作者: Kyu    时间: 2021-2-9 17:39
学习了
作者: hdt6zf    时间: 2021-2-9 17:42
和各个环节价格和计划
作者: Efly    时间: 2021-2-9 17:43
神操作,新技能已get
作者: eavesyang    时间: 2021-2-9 17:48
兼容性咋样?
作者: ttyyy06    时间: 2021-2-9 17:50
咔咔咔咔咔咔
作者: Loserecall    时间: 2021-2-9 17:51
感谢分享 下载学习
作者: 小飞爱精易    时间: 2021-2-9 17:52
牛逼牛逼 无视所有驱动保护
作者: 猥琐小胖子    时间: 2021-2-9 17:53
感谢分享
作者: 全村人的骄傲    时间: 2021-2-9 17:56
感谢分享     
作者: q2593197351    时间: 2021-2-9 17:59
看看666666666666666666
作者: 匿名i    时间: 2021-2-9 17:59
感谢分享,很给力!~
作者: Fate    时间: 2021-2-9 18:12
感谢分享

作者: 戴眼镜的小狼    时间: 2021-2-9 18:13
好像不加载
作者: 戴眼镜的小狼    时间: 2021-2-9 18:14
没加载啊
作者: 醉酒成梦°    时间: 2021-2-9 18:27
学学一下
作者: 妹子·哥来了    时间: 2021-2-9 18:32
易语言核心支持库(krnln.fne)
作者: ゞωǒ天堂牧心    时间: 2021-2-9 18:33
无视所有驱动保护
作者: futiem    时间: 2021-2-9 18:34
#在这里快速回复#易语言核心支持库
作者: static101    时间: 2021-2-9 18:35
这个感觉挺厉害的
作者: 撩唇笔    时间: 2021-2-9 18:45
新技能已get√
作者: kmd24lmk    时间: 2021-2-9 18:45
4575474574575475475475475474545g4h4htttt
作者: 441209945    时间: 2021-2-9 18:46
新技能已get√
作者: kmd24lmk    时间: 2021-2-9 18:46
yrjrthtgerhterstrrd54y54634636346437436534654354654756u6574g54gy6rj67tytuygtfthty7kitrhn6r6b6redujtrj5r7k6bth6765i76j6t
作者: 人生如戏不甘    时间: 2021-2-9 18:49

学学一下
作者: 日勿日勿    时间: 2021-2-9 19:03
感谢发布原创作品,精易因你更精彩!
作者: 哑巴ii    时间: 2021-2-9 19:06
6666666666666
作者: xSerendipity    时间: 2021-2-9 19:24
感谢分享
作者: oycs429    时间: 2021-2-9 19:25
让 江小白 来看看帖子里藏了啥好东西~~~
作者: 枕风宿雪多年    时间: 2021-2-9 19:26

新技能已get√
作者: weiyoucg    时间: 2021-2-9 19:28
补丁技术,对加壳保护的软件很有效
作者: 破解神器    时间: 2021-2-9 19:38
牛逼牛逼   我草




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4