ShellCode代码直接注射到远程进程内部

本文介绍了ShellCode代码直接注射到远程进程内部的原理和实现方法,包括远程线程注入、代码自定位、数据代码结合技术。通过示例代码展示了如何在C语言中编写注入代码,并强调了在不同操作系统上运行ShellCode的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里说的是将ShellCode代码直接注射到远程进程内部使它运行! 
以下代码全部使用TASM为原型编写(MASM不太适合,不能自定义PE结构,为了某某人说我抄袭和盗版pkXX大哥的FASM大作,我这里就使用国内很少用的TASM为原型来编写代码) 
文章假定各位已经有了一定的编程基础 

1.远程线程注入原理 
先说说远程线程注入原理,以前我们编写远程注入代码的时候总是需要自己计算代码注入到目标进程后的结构, 
一般是本地获取GetProcAddress,LoadLibraryA,GetModuleHandle,ExitThread 
函数,当然也有的大哥哥是使用本地获取所有函数的指针然后~然后填写代码结构后 
注入到目标进程的. 
小弟不喜欢后者,假定目标进程中没有加载user32.dll连接库,如果你的代码中刚好有MessageBoxA这个函数的话,就会引起非法操作(无法读取XXX地址),推荐使用第一种方法 
,这个仅仅是第一步...以下代码演示...仅仅是演示没有填写其他部分 
假设注入代码已经获取到GetProcAddress,LoadLibraryA,GetModuleHandle地址 

CODE: 

.data 
xdll db 'user32.dll',0 
xapi db 'MessageBoxA',0 
.code 
start: 
push ebx            
lea ebx,xdll 
push ebx 
call GetModuleHandle ;纯属无聊才使用GetModuleHandle你可以直接使用 
test eax,0           ;LoadLibraryA 
jnz @@getapi 

lea ebx,xdll 
push ebx 
call LoadLibraryA 
@@getapi: 
lea ebx,xapi 
push ebx 
push eax   ;此时eax保存的是u32的基址 
call GetProcAddress 

push 0 
push 0 
push 0 
push 0 
call eax   ;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值