首页
社区
课程
招聘
[讨论]编写shellcode问题
发表于: 2013-4-8 14:44 4321

[讨论]编写shellcode问题

2013-4-8 14:44
4321
比如在C里写了这样一个函数,
__declspec(naked) void asmdata()
{
  push   ebp
  mov   ebp, esp
  pop   ebp
  ret
}


在main函数里想得到整个asmdata函数的数据应该怎么实现。
void main()
{
  void *pdata = asmdata;//这样得到的其实是个函数中转的地址
  unsigned int size = ??;//怎么得到整个函数体的大小
  
}

这种应该会经常遇到,不知道大家是怎么处理的。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 6524
活跃值: (4316)
能力值: ( LV10,RANK:163 )
在线值:
发帖
回帖
粉丝
2
int main()
{
char chData[]="\x55
\x8B\xEC
\x5D
\xC3
";

void *pdata=(void*)chData;
unsigned int size=sizeof(chData);

return 0;
}
2013-4-8 14:49
0
雪    币: 183
活跃值: (1178)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=yimingqpa;1163167]int main()
{
char chData[]="\x55
\x8B\xEC
\x5D
\xC3
";

void *pdata=(void*)chData;
unsigned int size=sizeof(chData);

return 0;
}...[/QUOTE]

这样维护起来会不方便吧,比如新加了代码或者修改了代码。
2013-4-8 14:52
0
雪    币: 6524
活跃值: (4316)
能力值: ( LV10,RANK:163 )
在线值:
发帖
回帖
粉丝
4
网上一堆的Shellcode生成工具,不可能新加了代码或者修改了代码就不方便了.
2013-4-8 15:07
0
雪    币: 183
活跃值: (1178)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
毕竟如果能修改了代码,能直接重新编译下就能搞定,这样是最好的。
以后还想定位asm里某段数据,这样也方便。
2013-4-8 16:22
0
雪    币: 183
活跃值: (1178)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
目前知道的好一点的办法就是加个标识了。

__declspec(naked) void asmdata()
{
  push   ebp
  mov   ebp, esp
  pop   ebp
  ret
asmdata_end:
  __emit 'e'
  __emit 'n'
  __emit 'd'
  __emit '\0'
 
}
2013-4-9 15:50
0
游客
登录 | 注册 方可回帖
返回
//