-
-
[旧帖] [求助]关于borland C++构造函数的问题 0.00雪花
-
发表于: 2012-2-22 21:35 978
-
最近遇到一个程序,borland c++编译的,不知道borland c++编译器怎么编译的,
编译成的代码结构是这样的,因为没有源码:
ida中逆向出来的结构大概是下面这样,一个构造函数吧,代码是16位的非32位。
Cobject::Cobject(void)
{
arg_0 dd (this指针吧)
...
if( arg_0 == 0)
{
push size
call new函数(分配一块内存)
arg_0 = dx:ax (调用返回值都是用dx:ax的)
}
psuh offset 一个变量
push [bp+arg_0+2]
push [bp+arg_0]
call string::string(void) ......
call string::string(string &) .....
}
有两点疑问:
1. 一个构造函数在里面判断this指针,是什么原理?
2.一个类的构造函数居然调用另一个类的构造函数,又是什么原理?
求C++高手指教。
编译成的代码结构是这样的,因为没有源码:
ida中逆向出来的结构大概是下面这样,一个构造函数吧,代码是16位的非32位。
Cobject::Cobject(void)
{
arg_0 dd (this指针吧)
...
if( arg_0 == 0)
{
push size
call new函数(分配一块内存)
arg_0 = dx:ax (调用返回值都是用dx:ax的)
}
psuh offset 一个变量
push [bp+arg_0+2]
push [bp+arg_0]
call string::string(void) ......
call string::string(string &) .....
}
有两点疑问:
1. 一个构造函数在里面判断this指针,是什么原理?
2.一个类的构造函数居然调用另一个类的构造函数,又是什么原理?
求C++高手指教。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
看原图
赞赏
雪币:
留言: