发表
  • 注册
  • 综合源码 综合源码 关注:268 内容:582

    [驱动注入] 开源映像回调驱动注入源码

  • 查看作者
  • 打赏作者
  • 当前位置: 桔子岛 > 软件源码 > 综合源码 > 正文
  • 220
  • 综合源码
  • LV.8
    SVIP3
    奉献者

    注入原理源于火绒(大佬逆出来的)
    先简单说一下实现原理,一个进程在创建后还有很多工作没有完成,流程大概是:由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++的调用,有能力的可以自行解决。

    加载驱动注入后,当进程被创建后才会执行注入,注入成功后记得卸载驱动!

    [驱动注入] 开源映像回调驱动注入源码

    [驱动注入] 开源映像回调驱动注入源码[驱动注入] 开源映像回调驱动注入源码[驱动注入] 开源映像回调驱动注入源码

    隐藏内容需要回复可以看见

    回复
    LV.11
    六一儿童节
    楼主辛苦了

    从现在开始,我将追寻你的名字。

    回复
    LV.11
    SVIP2
    六一儿童节
    佩服佩服!

    世界美好与莫环环相扣。

    回复
    LV.11
    六一儿童节
    666666666

    只是,想要做些什么而已。 觉得不做些什么就会死掉而已。

    回复
    LV.11
    六一儿童节
    这个逼装的我给82分,剩下的用666的方式打给你!

    自以为是永远都是大敌,因为本可看到的东西也会视而不见。

    回复
    LV.11
    六一儿童节
    你牛B、NB、牛掰、牛X、流弊、牛批、太牛逼!

    这瓜多少钱一斤?

    回复
    LV.11
    一见钟情
    你牛B、NB、牛掰、牛X、流弊、牛批、太牛逼!

    当人们做不到一些事情的时候,他们会对你说你也同样不能。

    回复
    LV.10
    六一儿童节
    你牛B、NB、牛掰、牛X、流弊、牛批、太牛逼!

    不要企图窥探我的生活,你能看到的,都是我希望让你看到的。

    回复
    LV.11
    SVIP2
    六一儿童节
    叮叮当!叮叮当!铃儿响叮当~

    嗯呐......软绵绵的人偶,来治愈你们的哟。

    回复
    LV.11
    一见钟情
    楼主辛苦了,谢谢楼主,楼主好人一生平安!

    我今天就是要带她走,我看哪个敢拦我。

    回复
    LV.11
    一见钟情
    666666666

    此时此刻的咱啊,能和汝在一起,是最幸福的了。

    回复

    请登录之后再进行评论

    登录
  • 任务
  • 动态
  • 帖子间隔 侧栏位置: