dbg 寻找main函数

方法一,3个push和堆栈平衡

设置函数入口设断点,打开程序到达断点后,一直按F8运行到类似下面的地方,F7步进查看是否是main函数。

push edi
push esi
push dword ptr ds:[eax]
call project1.D31040
add esp,C

如上,因为main函数的参数是3个,所以,在调用main函数之前一定会有3个参数入栈。

调用main函数后,要平栈,就需要add esp,C                这也是一个main函数的标志。

1,3个入栈

2,调用call--------main函数

3,栈顶指针+C

int main(int argc,char *argv[],char *envp[]){}


main函数的三个参数:

参数	含义
argc	用于存放命令行参数的个数
argv	是个字符指针的数组,每个元素都是一个字符指针,指向一个字符串,即命令行中的每一个参数
envp	也是一个字符指针的数组,这个数组的每一个元素是指向一个环境变量的字符指针

方法二,xxx

猜你喜欢

转载自blog.csdn.net/xiao_yi_xiao/article/details/120955939