《逆向工程核心原理》----第28章 汇编进行代码注入

本文介绍了代码注入技术,对比了DLL注入和代码注入的区别,前者将整个DLL注入目标进程,后者直接注入可执行的汇编代码。文章通过一个实例展示了如何在notepad.exe中使用汇编代码弹出对话框,详细解释了汇编代码的执行流程,包括函数调用、参数传递和内存操作,以此揭示代码注入的工作原理。
摘要由CSDN通过智能技术生成

一、dll注入和代码注入的区别

1.首先字面意思,前者将整个包含攻击函数的dll注入到其他进程中去,后者直接注入可独立运行的代码,也被称为线程注入。

dll注入:将攻击函数包含在dll中,加载dll则会执行,然后用VirtualAllocEx给目标进程分配空间,WriteProcessMemory写入该dll,并用LoadLibarary加载kernal32,然后用GetProcAddress得到LoadLibarary的地址,最后创建一个远程线程,执行LoadLibarary加载dll。

代码注入:编写可独立运行的汇编代码(函数)存为0x格式的数组,再编写Injection.exe创建远程线程使目标进程执行汇编代码编写的函数;由于汇编函数需独立运行,所以其中关键的LoadLibaray和GetProcAddress的地址需要由Injection.exe以参数的形式传入。

2.前者适用于代码量较多且复杂的情况;后者适用于代码量较少且简单的情况,并且占用内存少,更不易被察觉。

二、代码注入实例

0.目的:在notepad.exe中弹出一个对话框

1.在ollydbg中书写汇编代码,借由ollydbg得到该汇编代码的机器码

 2.编写Injection.cpp

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值