驱动源码+64位dll源码+64位应用程序测试源码全打包!
功能介绍
-
读写内存(MmCopyVirtualMemory):这个函数只能读取拥有权限的内存,如果出现读不了的情况,可以试试使用更改内存属性更改保护后再读!
-
读写内存加强版(MDL)
-
获取模块地址
-
获取模块导出函数
-
申请内存
-
释放内存
-
更改内存属性
-
获取进程ID
-
隐藏进程:修改进程ID达到的隐藏进程效果!一次只能隐藏一个,如果想隐藏下一个进程,需要把上一个恢复!
-
结束进程
-
使用Object回调(保护进程):通过拦截OpenProcess的句柄权限,我在驱动中预设值了几种拦截方式,下面会写出来!你也可以使用这个来破坏其他进程的保护,但是切记用这个函数没法破坏这个函数所保护的进程!
-
删除文件
-
创建线程
-
注入Dll:简单封装了一下,通过获取导出函数LoadLibraryA,然后远程写入dll路径,创建线程来运行它!
使用说明
-
没有写安装驱动的功能,在使用驱动前,请先将驱动文件写到硬盘上,然后安装驱动。驱动安装成功了以后才可以使用dll与驱动通讯!
-
比如要进行的操作涉及指针(比如获取模块句柄)这个模块名称就是个文本,在易语言里就需要先取该文本的指针,然后将它转换为长整数型。
-
获取我要读取某个地址的数据,这个地址肯定是正常的传递,当成长整数传递,0x7FFFFFFFFFFF这种的。
-
我要读取一个4字节的值,假设变量b用来储存数据,那么缓冲区里的内容就是 :获取b的指针,并把它转换到长整数型,就是参数为文本的,需要取文本指针转换长整数型后放进去。
-
有返回数据的 比如取进程ID,获取模块地址,读内存…这些操作就是要把变量的指针转换为长整数型后放进去。
-
隐藏进程,这个进程是用硬编码写的,在EPROCESS结构里,进程ID的在win11上的偏移是0x440,所以如果你要到其他版本上使用,最好先去查一下对应的偏移,百度应该就有的!
#define WIN11_PROCESSID 0x440 // EPROCESS.UniqueProcessId偏移
// 内存拷贝类型 #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 // 不擦除终止权限 其余正常保护
所有的函数的返回值都是代码格式的,你可以看到错误原因
#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 // 出现异常
隐藏内容需要回复可以看见
楼主辛苦了,谢谢楼主,楼主好人一生平安!
卧槽!无奈本人没文化,一句卧槽行天下!
楼主辛苦了,谢谢楼主,楼主好人一生平安!
楼主辛苦了,谢谢楼主,楼主好人一生平安!
楼主辛苦了,谢谢楼主,楼主好人一生平安!
卧槽!无奈本人没文化,一句卧槽行天下!
楼主辛苦了,谢谢楼主,楼主好人一生平安!
卧槽!无奈本人没文化,一句卧槽行天下!