今天用ollydbg 反汇编了一个VC6.0编译的a+b程序遇到了几个问题,希望大神能知道一下小弟我。

我是cc_cc是我 发布于 2012/02/29 00:16
阅读 858
收藏 0

源程序是这样的

#include <stdio.h>
int add(int a,int b);
int main()
{
 int a=5,b=6;
 add(a,b);
 return 0;
}
add(int x,int y)
{
 return(x+y);
}

第一个问题是:为什么ES、SS、DS的值都一样(不是代表不同的段吗?)

第二个问题是:根据汇编的结果说明,当程序进入main()时,

                        编译器做了个操作是LEA EDI,DWORD PTR SS:[EBP-48]

                                                      MOV ECX,12

                                                      MOV EAX,CCCCCCCC

                                                      REP STOS DWORD PTR ES:[EDI]

                       为什么ECX的值是12(十六进制)?

第三个问题是:ntdll.7C930208,它的函数地址出现在stack里

加载中
0
我是cc_cc是我
我是cc_cc是我

第三个问题是:ntdll.7C930208这个函数是什么意思,它的函数地址出现在stack里

返回顶部
顶部