孤星如晨 2019-08-19 13:30 采纳率: 33.3%
浏览 805
已采纳

向别的进程注入汇编代码并运行

如题,本小白大致知道注入dll的几个步骤,首先获取进程句柄,申请内存空间,然后利用WriteProcessMemory将dll的名称写进去,然后利用CreateRemoteThread创建一个进程去执行它,如果想注入的不是dll而是一些汇编代码,应该怎么写?请教各位大神

  • 写回答

2条回答

  • hxycsdn9159 2019-08-20 17:22
    关注

    第一种也是最好的办法是使用裸函数将你的汇编代码注入,其实就是inlinehook技术。步骤是:1.将你的汇编代码写入裸函数并且封装为dll 2.将你的dll注入到宿主进程 3.对你注入的dll中的裸函数进行调用。 第二种你也可以直接去WriteProcessMemory,除非你对汇编特别熟,否则不建议用,因为哪怕你写错一个字节及也会将宿主进程毁掉 这种方法:1.将你的汇编代码转换成对应的机器码,X86和X64是不同的,然后在内存中找到正确的相对模块基址的偏移,然后将你转换的机器码直接通过WriteProcessMemory写入修改掉目标进程就可以了。 其实第一种方法和第二种方法的本质是一样的,但是第一种方法是由编译器帮你做了机器码的转换以及地址偏移的计算。所以建议使用第一种方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记