关于函数指针的反汇编 求解???
int main(){
void (int *p)()=show;//show 是已经定义过的函数
p();
}
部分反汇编源码:
mov dword ptr ,offset @ILT+20(show)
Mov eax,dword ptr
mov dword ptr,eax
为什么要这样啊,用mov换来换去 给没换有什么区别啊 直接只要第一句为什么不行啊???
只看这几句看不出来,可能下面这个地址会有用,下面有没有CALL EAX这句哪?或者
这个作为返回值? :shutup:还没学汇编了 玩酷子弟lv 发表于 2012-10-25 22:29 static/image/common/back.gif
只看这几句看不出来,可能下面这个地址会有用,下面有没有CALL EAX这句哪?或者
这个作为返回值?
没有哦即使用到 为什么不能直接用第一句话 调用呢 拉登o睡觉 发表于 2012-10-26 16:52 static/image/common/back.gif
没有哦即使用到 为什么不能直接用第一句话 调用呢
如果我没猜错的话,你想要第一句也行,你尝试下把p();这句代码删除试试,看看是不是只有第一句汇编代码了,我估计p()对应的汇编代码就是第二和第三句吧,我不知道我说的对不对,你上机试试吧,然后告诉我结果。谢谢了 void (int *p)()=show; //这是什么意思啊? 我这里编译不过这句啊...
试了试void (*p)()=show;和void (*p)(int (*)())=show; 都没出现lz发的那三行汇编啊... 090704020006 发表于 2012-10-26 22:39 static/image/common/back.gif
如果我没猜错的话,你想要第一句也行,你尝试下把p();这句代码删除试试,看看是不是只有第一句汇编代码了 ...
p() 对应的是call 那个地址 我没有写完 青云 发表于 2012-10-26 22:52 static/image/common/back.gif
void (int *p)()=show; //这是什么意思啊? 我这里编译不过这句啊...
试了试void (*p)()=show;和void (*p) ...
这是c++反汇编与逆向分析 那本书上的例子 我没搞懂 拿来请叫一下大家?? 看看
页:
[1]