精易论坛

标题: 多功能驱动 [打印本页]

作者: 薛袭人    时间: 2024-2-12 06:02
标题: 多功能驱动
本帖最后由 薛袭人 于 2024-2-12 06:09 编辑

新年快乐!易友们!
前段时间放假,发了个帖子问问大家想学习驱动什么功能,今天这个汇总的驱动来啦!
这段时间很忙,现实生活中事情很多,所以代码可能有些bug没有测试出来,我本人技术也很烂,请不要喷我
本次文件:驱动源码、64位dll源码、64位应用程序测试源码
热心的易友可以手动加工成32位dll,我自己想偷偷懒啦!!!(或者等我休息好的233,如果我重新上传了会重新发帖子的!)
我也没有写安装驱动的功能,因为实在是太累了呜呜呜,我的测试环境都是先使用驱动安装工具安装了驱动以后,在进行测试的!

所以在使用驱动前,请先将驱动文件写到硬盘上,然后安装驱动!驱动安装成功了以后才可以使用dll与驱动通讯!!!!
所以在使用驱动前,请先将驱动文件写到硬盘上,然后安装驱动!驱动安装成功了以后才可以使用dll与驱动通讯!!!!
所以在使用驱动前,请先将驱动文件写到硬盘上,然后安装驱动!驱动安装成功了以后才可以使用dll与驱动通讯!!!!

这次给大家带来的功能:
1.读写内存(MmCopyVirtualMemory)   这个函数只能读取拥有权限的内存,如果出现读不了的情况,可以试试使用更改内存属性更改保护后再读!
2.读写内存加强版(MDL)
3.获取模块地址
4.获取模块导出函数
5.申请内存
6.释放内存
7.更改内存属性
8.获取进程ID                                       
9.隐藏进程                                           修改进程ID达到的隐藏进程效果!!!一次只能隐藏一个,如果想隐藏下一个进程,需要把上一个恢复!
10.结束进程
11.使用Object回调(保护进程)             通过拦截OpenProcess的句柄权限,我在驱动中预设值了几种拦截方式,下面会写出来!你也可以使用这个来破坏其他进程的保护,但是切记用这个函数没法破坏这个函数所保护的进程!
12.删除文件
13.创建线程
14.注入Dll                                             简单封装了一下,通过获取导出函数LoadLibraryA,然后远程写入dll路径,创建线程来运行它!

// 内存拷贝类型
#define READ                 0         // 读
#define WRITE                1         // 写

// 进程隐藏类型
#define HIDE                 0         // 隐藏
#define SHOW                 1         // 显示

// 进程保护类型
#define PROPROCESS           0         // 设置被保护进程
#define HACPROCESS           1         // 这是白名单进程

// 进程保护类型
#define ERASES_ALL           0         // 擦除所有权限
#define ERASES_TERMINATE     1         // 只擦除终止权限
#define ERASES_NORMAL        2         // 正常的保护
#define ERASES_NOTERMINATE   3         // 不擦除终止权限 其余正常保护


我尽量保证了不蓝屏,大家请在填写参数的时候万分仔细,总结一句话就是了
比如我要进行的操作设计指针 比如获取模块句柄
这个模块名称就是个文本,在易语言里就需要先取该文本的指针,然后将它转换为长整数型!
获取我要读取某个地址的数据
这个地址肯定是正常的传递,当成长整数传递,0x7FFFFFFFFFFF这种的
我要读取一个4字节的值,假设变量b用来储存数据
那么缓冲区里的内容就是 :获取b的指针,并把它转换到长整数型

就是参数为文本的,需要取文本指针转换长整数型后放进去
有返回数据的 比如取进程ID,获取模块地址,读内存...这些操作就是要把变量的指针转换为长整数型后放进去

还有一点就是,我所有的函数的返回值都是代码格式的,你可以看到错误原因

#define SUCCESS              0         // 成功
#define FAILURE              1                   // 失败
#define NO_ACCESS            2                   // 没有访问权限
#define CANNOT_FIND_PROCESS  3         // 找不到进程
#define CANNOT_FIND_MODULE   4         // 找不到模块
#define CANNOT_FIND_SECTION  5         // 找不到区段
#define CANNOT_FIND_ADDRESS  6         // 找不到地址
#define CANNOT_FIND_FILE     7         // 找不到文件
#define CANNOT_FIND_FUNCTION 8         // 找不到函数
#define CANNOT_FIND_DATA     9         // 找不到数据
#define CANNOT_FIND_DEVICE   10        // 找不到设备
#define EXCEPTION            999       // 出现异常


只需要对着表看就ok了


这个驱动里有一个功能需要注意,隐藏进程,这个进程我是用硬编码写的
在EPROCESS结构里,进程ID的在win11上的偏移是0x440,所以如果你要到其他版本上使用,最好先去查一下对应的偏移,百du应该就有的!

#define WIN11_PROCESSID                   0x440     // EPROCESS.UniqueProcessId偏移

好啦,就说这么多,新年新气象,希望大家身体健康,完事如意!
新年快乐!
新年快乐!
新年快乐!

ps:
有使用的问题可以私信发我,我看见了就会回的!




驱动源码截图1.png (271.38 KB, 下载次数: 51)

驱动源码截图1.png

驱动代码截图2.png (92.12 KB, 下载次数: 51)

驱动代码截图2.png

驱动代码截图3.png (139.48 KB, 下载次数: 52)

驱动代码截图3.png

64位dll源码截图.png (261.93 KB, 下载次数: 53)

64位dll源码截图.png

NewMemTest.zip

43.92 KB, 下载次数: 419, 下载积分: 精币 -2 枚

代码文件


作者: WENYEA    时间: 2024-2-12 17:00
牛逼牛逼,小白福音
作者: 红尘旧梦i    时间: 2024-2-12 17:53
你都能写驱动了,还技术烂?这是要逆天啊
作者: cuijiale    时间: 2024-2-15 19:07
正好需要下载看看
作者: 卡卡海东呢    时间: 2024-2-18 15:10
6666666666666
作者: 猫携    时间: 2024-2-18 15:19
很好,小白福音
作者: asd137058    时间: 2024-2-19 01:13
谢谢大佬
作者: asd137058    时间: 2024-2-20 12:23
大佬可以教学一下怎么易语言调用吗

作者: MyNameKongXin    时间: 2024-2-22 03:25
牛逼牛逼,小白福音
作者: 愤怒的Rabbit    时间: 2024-2-22 15:33
有没有隐藏文件的功能
作者: MyNameKongXin    时间: 2024-2-22 20:43
大佬 萌新想问一下, 为什么你这个驱动的入口点是`DriverInit`,  不应该是`DriverEntry`嘛? 难道可以自己随便起名字嘛? 需不需要额外设置什么?
作者: 薛袭人    时间: 2024-2-25 02:19
MyNameKongXin 发表于 2024-2-22 20:43
大佬 萌新想问一下, 为什么你这个驱动的入口点是`DriverInit`,  不应该是`DriverEntry`嘛? 难道可以自己随 ...

可以自己设置的呀 这个东东

作者: asd137058    时间: 2024-2-27 19:50
     IOCTL_IO_RAWMEM: 0x00022400     IOCTL_IO_RAWMEMEX: 0x00022404     IOCTL_IO_GETMODBASE: 0x00022408     IOCTL_IO_GETMODEXPORT: 0x0002240C     IOCTL_IO_NEWMEM: 0x00022410     IOCTL_IO_DELMEM: 0x00022414     IOCTL_IO_PROMEM: 0x00022418     IOCTL_IO_GETPROCID: 0x0002241C     IOCTL_IO_HIDEPROC: 0x00022420     IOCTL_IO_KILLPROC: 0x00022424     IOCTL_IO_USEOBCALLBACK: 0x00022428     IOCTL_IO_DELFILE: 0x0002242C     IOCTL_IO_CREATETHREAD: 0x00022430     IOCTL_IO_INJECTDLL: 0x00022434  易语言需要用到的通讯码的值,请转换为10进制使用
作者: a'ゞ月红    时间: 2024-2-29 20:47
感谢分享!!!
作者: 艾玛克138    时间: 2024-3-1 22:40
感谢楼主无私奉献
作者: yxlm2003    时间: 2024-3-12 23:46
支持开源~!感谢分享
作者: yxlm2003    时间: 2024-3-12 23:46
支持开源~!感谢分享
作者: sbruvy    时间: 2024-3-22 12:40
牛逼牛逼,小白福音

作者: 小迷人啦啦啦    时间: 2024-3-22 20:14
易语言怎么调用?
作者: q2350210076    时间: 2024-3-24 19:06
支持开源~!感谢分享
作者: xiao10183    时间: 2024-3-24 20:43
调用DLL  怎么提示 找不到对应的函数
作者: 神祇    时间: 2024-3-30 17:09
拉闸警告
作者: yang13    时间: 2024-3-31 23:42
        源码注释的很详细,爱你!
作者: 1015441689    时间: 2024-3-31 23:51
没有易语言调用的么
作者: iamkiko    时间: 2024-4-8 22:42
感谢分享
作者: conquereo    时间: 2024-4-11 18:27

支持开源~!感谢分享
作者: 收下我的膝盖    时间: 2024-4-17 20:34
试试看看,嘎嘎需要
作者: 超级无敌暴龙    时间: 2024-4-18 19:43
感谢大佬
作者: 781732825    时间: 2024-4-18 23:27
大佬,你好。我是新手,系统是win10,编译工具是vs2019,编译是v142(你的是v143),系统已进入测试模式,没有使用Uefi启动,已开启 禁止使用驱动程序签名模式。

按照你的源码进行进行了编译,然后直接运行后全部是 1 , 驱动貌似没有效果。使用  net start xxx , 启动服务加载驱动,可以看到驱动能够加载正常且运行,但通过Test.exe进行测试,却全部返回1,而且也获取不了Pid,默认是 steam.exe ,获取不到,改了 notepad.exe ,也获取不到(已开启相应的进程)。









作者: wangchen2654    时间: 2024-4-24 12:53
由于在进行模块编译过程中
作者: wang28928611    时间: 2024-5-2 17:55
asd137058 发表于 2024-2-27 19:50
IOCTL_IO_RAWMEM: 0x00022400     IOCTL_IO_RAWMEMEX: 0x00022404     IOCTL_IO_GETMODBASE: 0x000224 ...

大哥,你会转易语言使用吗
作者: sbruvy    时间: 2024-5-2 21:40
谢谢 易语言怎么调用呢
作者: tianhen888    时间: 2024-5-26 20:19
大佬可以发个易语言调用的栗子麻
作者: 梦想巅峰    时间: 2024-6-11 12:34
感谢分享
作者: 神话gg    时间: 2024-7-14 04:11

作者: 神话gg    时间: 2024-7-14 04:11

作者: hjinpwhe1    时间: 2024-7-16 12:10
学习 学习
作者: q1586891593q    时间: 2024-8-5 15:51
学习大佬驱动源码
作者: jeff1314    时间: 2024-8-15 21:24
谢谢 易语言怎么调用呢
作者: cauror    时间: 2024-8-22 11:16
看看这份
作者: cauror    时间: 2024-8-22 11:16
这份看着还行,试试效果
作者: 728631615    时间: 2024-9-3 19:54
781732825 发表于 2024-4-18 23:27
大佬,你好。我是新手,系统是win10,编译工具是vs2019,编译是v142(你的是v143),系统已进入测试模式, ...

我试了 也用不了,知道哪里的原因吗
作者: 虎子666    时间: 2024-9-22 03:05
感谢分享
作者: azhi88    时间: 2024-12-16 17:07
感谢分享
作者: lxmidi    时间: 2024-12-25 21:24
大佬可以教学一下怎么易语言调用吗
作者: 温暖的舌骨    时间: 2025-1-6 10:26

作者: 18156274316    时间: 2025-1-20 13:44
大佬有没有易语言的R3例子呀,我在易语言安装不上驱动
作者: 18156274316    时间: 2025-1-20 18:00
本帖最后由 18156274316 于 2025-1-20 18:05 编辑
18156274316 发表于 2025-1-20 13:44
大佬有没有易语言的R3例子呀,我在易语言安装不上驱动

易语言取回的数据和DLL的不一样,取数据和取模块都不行,易语言取到的数据是999,dll为正常

8fe09e752d7c9947052d38bb194732f.jpg (8.85 KB, 下载次数: 0)

8fe09e752d7c9947052d38bb194732f.jpg

8367cc6a660c69dd0a39e5fee7ade1e.png (363.1 KB, 下载次数: 0)

8367cc6a660c69dd0a39e5fee7ade1e.png

作者: 18156274316    时间: 2025-1-21 15:41
自己打包的话驱动无法启动(签名和不签都测试了),但是您打包的可以正常启动,但是易语言获取的数据有问题,不知道该如何编写
作者: z9066    时间: 2025-3-6 15:18
隐藏进程那块,光把pid设置为0有用吗,像NtQuerySystemInformation 这个api 如果在 r0 检测是否仍然能够cha询到
作者: z9066    时间: 2025-3-6 15:19
保护窗口也可以加下
作者: suannaijiang    时间: 2025-3-16 20:14
支持开源~!感谢分享
作者: 朱尧    时间: 2025-3-20 22:01
#在这里快速回复##在这里快速回复#
作者: 小蚕    时间: 2025-3-22 17:32

支持开源~!感谢分享
作者: aDOS    时间: 2025-3-24 14:03
ZwTerminateThread 函数可以加入吗
作者: 1145960810    时间: 2025-5-6 03:18
学习一下      
作者: omh8078083    时间: 2025-5-29 17:14
多谢分享
作者: omh8078083    时间: 2025-5-29 17:23
大佬有没有易语言的R3例子呀
作者: omh8078083    时间: 2025-5-29 17:27
易语言怎么调用?
作者: DECADEs    时间: 2025-5-31 08:51
不错不错
作者: DECADEs    时间: 2025-6-13 22:05
6666666666666666666666666666
作者: zhaomingxu    时间: 2025-6-17 20:51
支持开源~!感谢分享




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