|
分享源码
界面截图: |
- |
是否带模块: |
纯源码 |
备注说明: |
- |
本帖最后由 Superqaq 于 2022-9-8 18:33 编辑
注入原理源于火绒(大佬逆出来的)
先简单说一下实现原理,一个进程在创建后还有很多工作没有完成,流程大概是:由CreateProcess启动一个进程->加载ndtll->创建主线程->初始化进程结构->加载系统的各种dll->ZwTestAlert->ZwContinue
简单了解了进程创建的大概流程后我们主要关注最后两个函数,这两个函数是由ntdll导出的,但是没有公开,调用完ZwContinue后进程才开始进入下一个线程最后执行main函数,注入原理就是挂钩ZwContinue函数或者ZwTestAlert函数来执行我们的shellcode,怎么挂钩呢?使用核心函数PsSetLoadImageNotifyRoutine创建映像回调来监视ntdll模块的加载。
代码流程如下:
1.创建LoadImage回调
2.使用PsGetProcessImageFileName判断ntdll的加载
3.获取ntdll导出的ZwContinue、LdrLoadDll、RtlInitUnicodeString等函数地址
4.在目标进程申请存放shellcode的内存
5.创建一条系统线程开始hook ZwContinue函数
流程很简洁,这个代码我仅仅花了半小时完成,有很多bug等待着大家优化,比如没有找到释放申请的内存的时机。
按照这个思路也可以hook ZwTestAlert至于shellcode是如何编写的,请看我之前的帖子,你也可以自行阅读我注释的shellcode汇编。
请大家不要对有保护的游戏进行注入,代码花了很短的时间写完,shellcode只是实现了注入,并没有处理dll,有能力的可以加点别的骚操作,比如抹PE头,隐藏内存什么的,注意只支持win10x64,原因请看源码注释。
驱动源码由纯C语言编写,源码我写了详细的注释,我也建议大家用纯C语言写驱动,由于电脑重装了系统,没有下载易语言(网上的全都有毒),所以只有C++的调用,有能力的可以自行解决。
加载驱动注入后,当进程被创建后才会执行注入,注入成功后记得卸载驱动!
注入效果截图:
部分源码截图:
请勿倒卖,附件回复即可下载:
KInject.rar
(11.28 KB, 下载次数: 839)
|
评分
-
查看全部评分
|