|
|
[讨论]钱林松深拷贝构造函数一章求解
一个是高级版本,一个是底级版本 |
|
|
[讨论]钱林松深拷贝构造函数一章求解
[QUOTE=SilentGamb;1403715]你知道原来的ecx值, 那就单步好了,你看见ecx的值变了,再分析ecx到哪去了. 你可以将你编译好的PE发上来, 大家可以帮你单步下. 00401161 lea ecx, [ebp-10h] ; 这里ecx作为计数器, 被改掉了吧?[/QUOTE] 你可以看看上面我说的 |
|
|
[讨论]钱林松深拷贝构造函数一章求解
在vs里可以直接看反汇编,这个是vc6.0看到的,用vs又不一样 |
|
|
[讨论]钱林松深拷贝构造函数一章求解
源代码 #include <iostream> using namespace std; class CMyString{ public: CMyString(){ m_pString=NULL; } CMyString(CMyString&obj){ int nLen=strlen(obj.m_pString); this->m_pString=new char[nLen+sizeof(char)]; strcpy(this->m_pString,obj.m_pString); } ~CMyString(){ if(m_pString!=NULL) { delete[] m_pString; m_pString=NULL; } } void SetString(char* pString){ int nLen=strlen(pString); if(m_pString!=NULL) { delete [] m_pString; m_pString =NULL; } m_pString=new char[nLen+sizeof(char)]; strcpy(m_pString,pString); } char*m_pString; }; void Show(CMyString MyString){ printf(MyString.m_pString); } int main(int argc,char*argv[]){ CMyString MyString; MyString.SetString("Hello"); Show(MyString); return 0; } 这个是源代码直接在里面看反汇编生成的, 断点在Show(MyString);处 |
|
|
[讨论]钱林松深拷贝构造函数一章求解
00401169 push ecx处的push ecx是把ecx中的数值压时栈,但是此时ecx的数值并不是为空,原先的ecx数值跑哪儿去了,原先的值为00431024 ![]() |
|
|
[讨论]钱林松深拷贝构造函数一章求解
如果是main早就在main那段说明了,但是为什么用esp里存放着参数对象的地址,并把他放在[ebp-14h]中,ebp偏移14h呢 |
|
|
[原创]android中Dex文件结构详解
很不错的贴子 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
勋章
兑换勋章
证书
证书查询 >
能力值
