走進內存,走進反匯編指令來看C/C++指針
摘要: 講述兩點:
1、反匯編下的p與*p
2、有關指針初始化的金科玉律
走進反匯編指令,走進內存,看看底層的C/C++指針是怎么一回事~
閱讀全文
c++反匯編代碼分析--偷換函數
摘要: 注:不知道說“偷調函數”說法合不合適,在此也就這樣一說了~
主要有兩點:
一、再說C++反匯編函數調用,重點是怎樣通過堆棧實現由被調用函數轉到調用者
二、在 1 的基礎上,在WinDbg下通過修改EIP實現如下一個功能:
有兩個函數foo()和hack(),在main函數中調用foo,但是在foo執行過程中,通過修改EIP來調用hack函數,最后再回到main中foo函數的下一條語句
閱讀全文
C++反匯編代碼分析--循環
摘要: 再次主要討論或者驗證三點:
1、循環結構的反匯編代碼分析
2、函數中,局部變量的保存位置
3、方法的返回值保存位置驗證
一個沒有找到答案的疑問:
00401029 lea edi,[ebp-48h]
0040102C mov ecx,12h
00401031 mov eax,0CCCCCCCCh
;這段代碼是在棧中開辟一個48字節大小的區域來存放局部變量,但是如果函數內
沒有局部變量,則是lea edi,[ebp-40h]
一個局部變量,則是lea edi,[ebp-44h]
兩個局部變量,則是lea edi,[ebp-48h]
也就是沒有局部變量時開辟的40個字節,我用F11追蹤過,單步調試時,這一部分區域并沒有用到,這一區域的作用是什么?
閱讀全文