shellocde调试方法

我知道主要有两种:

1. 用VC6建一个小工程,进入汇编模式,跳转到shellcode,调试分析。

如:

#include <stdio.h>

char ShellCode[] = "\xEB...";

int main()
{

  printf("Shellcode length: %d\n", strlen(ShellCode));//shellcode长度
          __asm
          {
                lea eax,ShellCode;
                jmp eax; //跳到Shellcode开始处,从这里开始单步调试
          }
  return 0;
}

2. 调试器里调试,如OD等,修改从EIP开始处的机器码,OD可以通过快捷键"CTRL+E",复制要调试的SHELLCODE,每次只能复制0x100个字节。因为很多shellocde一开始都要解码,如果EIP所在的数据段有DEP保护,或者是只读属性,调试shellocde时就会引发访问异常。故我们先打开OD的内存窗口,设置EIP所在内存段的访问属性为“所有访问”,再开始调试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值