首页
社区
课程
招聘
[求助]Shellcode的调试
发表于: 2007-6-1 11:47 5001

[求助]Shellcode的调试

2007-6-1 11:47
5001
Shellcode的调试,比如,我在网上找到一段如下的代码:
char ShellCode[] = "\xEB"
"\x0F\x58\x80\x30\x95\x40\x81\x38\x68\x61\x63\x6B\x75\xF4\xEB\x05\xE8\xEC\xFF\xFF"
"\xFF\xF1\x34\xA5\x95\x95\x95\xAB\x53\xD5\x97\x95\x56\x68\x61\x63\x6B\xCD";

已经知道它是一段Shellcode,现在,把它提取出来,如:
"\xEB"
"\x0F\x58\x80\x30\x95\x40\x81\x38\x68\x61\x63\x6B\x75\xF4\xEB\x05\xE8\xEC\xFF\xFF"
"\xFF\xF1\x34\xA5\x95\x95\x95\xAB\x53\xD5\x97\x95\x56\x68\x61\x63\x6B\xCD"
现在,想要调试这段Shellcode代码。

1、常规方法:

用VC写一个C代码。步骤,如下:
使用VC++ 6.0,建立一个空工程,再添加一个*.cpp文件,复制如下代码到*.cpp文件:
#include <stdio.h>
#include <windows.h>

char ShellCode[] = "\xEB"
"\x0F\x58\x80\x30\x95\x40\x81\x38\x68\x61\x63\x6B\x75\xF4\xEB\x05\xE8\xEC\xFF\xFF"
"\xFF\xF1\x34\xA5\x95\x95\x95\xAB\x53\xD5\x97\x95\x56\x68\x61\x63\x6B\xCD";

int main()
{

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

2、常规方法总结:

需要的工具:VC++ 6.0
优/缺点:此方法,基本上可以归为VC的优/缺点。主要是调试汇编代码不方便,要是没有VC呢?

3、问题的提出:

问题1、有没一种可以不用编译就可以调试的方法?
问题2、在使用OllyDbg调试的时候,能自动定位在Shellcode的第一行代码处?
问题3、还有很多问题,但怕被扁,可不可以再提问?

[注意]看雪招聘,专注安全领域的专业人才平台!

收藏
免费
支持
分享
最新回复 (3)
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
2
打开OD,然后随意加在一个程序,然后再OEP处按Ctrl+E,然后再下面的二进制框中写入EB 0F 58 80 30 95 40 81 38 68 61 63 6B 75 F4 EB 05 E8 EC FF FF FF F1 34 A5 95 95 95 AB 53 D5 97 95 56 68 61 63 6B CD

这段代码实际上是
64:A1 3000000 mov     eax, dword ptr fs:[30]
3E:C640 02 00 mov     byte ptr [eax+2], 0
C3            retn

修改PEB.ReadImageFileExecOptions为0,具体含义未知。。。
2007-6-1 13:27
0
雪    币: 223
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
哈哈,,,还是先thx~
这段代码是判断是否被调试:IsDebuggerPresent ShellCode (NT/XP) 39 bytes

1、变成:EB 0F 58 80 30 95 40 81 38 68 61 63 6B 75 F4 EB 05 E8 EC FF FF FF F1 34 A5 95 95 95 AB 53 D5 97 95 56 68 61 63 6B CD还是需要把双引号和\x去掉。虽然,只要替换下就可以,但是,还是挺麻烦的,虽然是做到了不用编译。

2、没有达到问题2所要求的,是要自动定位到Shellcode。
3、Ctrl+E的时候,二进制框里默认是当前指令的长度。我的OD在多选几条命令的时候,“粘贴”功能似乎不起作用,不知你的会不?这招似乎不怎么常用。
2007-6-1 14:31
0
雪    币: 225
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
建议你再看看od使用帮助
2007-6-1 18:47
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册