开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 32591|回复: 256
打印 上一主题 下一主题
收起左侧

[2021开源大赛(第六届)] 使用 LdrLoadDll 注入DLL, 2021-12-17 支持注入64位dll

    [复制链接]

结帖率:100% (9/9)
跳转到指定楼层
楼主
发表于 2021-12-16 17:52:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   广西壮族自治区崇左市
本帖最后由 福仔 于 2021-12-17 13:32 编辑



dll注入 2021-12-17.zip (91.58 KB, 下载次数: 1010)


源码是c++代码翻译过来的, 所以, 那些指针读写的偏移我就不做过多的讲解.....
那些偏移都是对应某个成员.... 众所周知, 易语言的数据类型是个坑, 所以, 申请一块空间当成一个结构使用了
愿意研究的话, 结构是这个
typedef struct CALL_ARGUMENT_DATA
{
    PFN_RtlInitUnicodeString    fnRtlInitUnicodeString;     // 加载unicode字符串
    PFN_LdrLoadDll              fnLdrLoadDll;               // 加载dll的函数

    // 下面5个是 LdrLoadDll 需要使用的数据, DllName通过RtlInitUnicodeString来提供被 LdrLoadDll 使用
    WCHAR                       DllName[260];               // dll完整路径
    PWCHAR                      DllPath;                    // LdrLoadDll第一个参数, Dll路径, 可以为0
    ULONG                       Flags;                      // LdrLoadDll第二个参数, 标识
    UNICODE_STRING              UnicodeString;              // LdrLoadDll第三个参数, dll路径 UNICODE_STRING 结构
    HANDLE                      hModule;                    // LdrLoadDll第四个参数, 模块地址, 注入后模块地址保存到这里

    // 下面这些成员是获取函数地址使用的数据
    PFN_LdrGetProcedureAddress  fnLdrGetProcedureAddress;   // 获取函数地址
    PFN_RtlInitAnsiString       fnRtlInitAnsiString;        // 加载ansi字符串
    ANSI_STRING                 AnsiString;                 // 获取函数名的ansi字符串结构
    ULONG                       Ordinal;                    // LdrGetProcedureAddress 第三个参数
    PFN_CallFun                 fun;                        // LdrGetProcedureAddress第四个参数, 被调用的函数名 函数原型, GetProcAddress() 得到的函数

    PFN_MessageBox              pfn_MessageBox;             // 信息框函数地址
    BOOL                        isDebug;                    // 是否调试, 调试的话就弹出信息框
    char                        funName[260];               // 被调用的函数名
    DWORD                       funArg;                     // 传递到被调用的函数参数
    LPVOID                      funRet;                     // 被调用函数的返回值
    char                        argData[2000];              // 传递到函数里的数据, 参数数据最大支持2000个字节
}*LPCALL_ARGUMENT_DATA;


注入流程:
1. 创建远程线程
2. 注入一段代码到目标进程里执行
3. 这段代码调用 LdrLoadDll 加载dll
4. 调用 LdrGetProcedureAddress 获取函数地址, 然后调用, 返回

2021-12-17 更新
使用了eWOW64Ext https://125.confly.eu.org/thread-14361249-1-1.html

1. 注入32位进程只能使用32位的dll
2. 注入64位进程只能使用64位的dll

支持注入任务管理器


蹭一下开源大赛的热度....

评分

参与人数 14好评 +13 精币 +46 收起 理由
Shanks + 1 + 1 正好用到!感谢!
ghost12 + 1 支持开源~!感谢分享
wxw0009 + 1 + 1 我TM正好刚需
被封禁言 + 1 支持开源~!感谢分享
超级の赛亚人 + 1 + 2 感谢分享,很给力!~
大小鱼 + 1 + 2 支持开源~!感谢分享
易语言资源网 + 1 + 5 支持开源~!感谢分享
精易客服 + 1 + 5 精彩文章希望继续努力
sinewtec + 1 支持开源~!感谢分享
camingo + 1 + 2 新技能已get√
金胖子 + 1 + 2 支持开源~!感谢分享
wtflxk + 1 + 2 感谢大佬 分享知识
1185384801 + 1 + 3 支持开源~!感谢分享
大司命 + 1 + 20 支持开源~!感谢分享

查看全部评分

本帖被以下淘专辑推荐:

结帖率:42% (10/24)
沙发
发表于 2021-12-16 17:57:56 | 只看该作者   安徽省滁州市
11111111111111
回复 支持 反对

使用道具 举报

结帖率:100% (17/17)

签到天数: 12 天

板凳
发表于 2021-12-16 18:06:26 | 只看该作者   山东省青岛市
支持大佬
回复 支持 反对

使用道具 举报

结帖率:67% (2/3)
地板
发表于 2021-12-16 18:09:36 | 只看该作者   西班牙
学习学习...
回复 支持 反对

使用道具 举报

结帖率:93% (26/28)

签到天数: 2 天

地下
发表于 2021-12-16 18:14:29 高大上手机用户 | 只看该作者   山东省青岛市
感谢楼主的无私分享,谢谢!
回复 支持 反对

使用道具 举报

签到天数: 8 天

6
发表于 2021-12-16 18:16:57 | 只看该作者   湖北省天门市
感谢分享拿走看看
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 11 天

7
 楼主| 发表于 2021-12-16 18:19:37 | 只看该作者   广西壮族自治区崇左市
资源里的opCode 是下面这段汇编

55                   push        ebp  
8B EC                mov         ebp,esp  
8B 45 08             mov         eax,dword ptr [ebp+8]  
83 B8 40 02 00 00 00 cmp         dword ptr [eax+00000240h],0  
74 18                je          00106A37  
6A 00                push        0  
6A 00                push        0  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
83 C1 08             add         ecx,8  
51                   push        ecx  
6A 00                push        0  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 3C 02 00 00    mov         eax,dword ptr [edx+0000023Ch]  
FF D0                call        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
83 B9 20 02 00 00 00 cmp         dword ptr [ecx+00000220h],0  
75 46                jne         00106A89  
8B 55 08             mov         edx,dword ptr [ebp+8]  
83 C2 08             add         edx,8  
52                   push        edx  
8B 45 08             mov         eax,dword ptr [ebp+8]  
05 18 02 00 00       add         eax,218h  
50                   push        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
8B 11                mov         edx,dword ptr [ecx]  
FF D2                call        edx  
8B 45 08             mov         eax,dword ptr [ebp+8]  
05 20 02 00 00       add         eax,220h  
50                   push        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
81 C1 18 02 00 00    add         ecx,218h  
51                   push        ecx  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 14 02 00 00    mov         eax,dword ptr [edx+00000214h]  
50                   push        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
8B 91 10 02 00 00    mov         edx,dword ptr [ecx+00000210h]  
52                   push        edx  
8B 45 08             mov         eax,dword ptr [ebp+8]  
8B 48 04             mov         ecx,dword ptr [eax+4]  
FF D1                call        ecx  
8B 55 08             mov         edx,dword ptr [ebp+8]  
83 BA 20 02 00 00 00 cmp         dword ptr [edx+00000220h],0  
75 07                jne         00106A9C  
33 C0                xor         eax,eax  
E9 83 00 00 00       jmp         00106B1F  
8B 45 08             mov         eax,dword ptr [ebp+8]  
05 44 02 00 00       add         eax,244h  
50                   push        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
81 C1 2C 02 00 00    add         ecx,22Ch  
51                   push        ecx  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 28 02 00 00    mov         eax,dword ptr [edx+00000228h]  
FF D0                call        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
81 C1 38 02 00 00    add         ecx,238h  
51                   push        ecx  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 34 02 00 00    mov         eax,dword ptr [edx+00000234h]  
50                   push        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
81 C1 2C 02 00 00    add         ecx,22Ch  
51                   push        ecx  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 20 02 00 00    mov         eax,dword ptr [edx+00000220h]  
50                   push        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
8B 91 24 02 00 00    mov         edx,dword ptr [ecx+00000224h]  
FF D2                call        edx  
85 C0                test        eax,eax  
74 04                je          00106AF5  
33 C0                xor         eax,eax  
EB 2A                jmp         00106B1F  
8B 45 08             mov         eax,dword ptr [ebp+8]  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
03 88 48 03 00 00    add         ecx,dword ptr [eax+00000348h]  
51                   push        ecx  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 38 02 00 00    mov         eax,dword ptr [edx+00000238h]  
FF D0                call        eax  
8B 4D 08             mov         ecx,dword ptr [ebp+8]  
89 81 4C 03 00 00    mov         dword ptr [ecx+0000034Ch],eax  
8B 55 08             mov         edx,dword ptr [ebp+8]  
8B 82 4C 03 00 00    mov         eax,dword ptr [edx+0000034Ch]  
5D                   pop         ebp  
C2 04 00             ret         4  
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)
8
发表于 2021-12-16 18:22:36 | 只看该作者   浙江省温州市
必须支持大佬
回复 支持 反对

使用道具 举报

签到天数: 7 天

9
发表于 2021-12-16 18:40:42 | 只看该作者   江西省吉安市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:63% (5/8)
10
发表于 2021-12-16 18:45:07 | 只看该作者   重庆市重庆市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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