2010年4月11日
2010年4月7日
摘要: 注:不知道說“偷調函數”說法合不合適,在此也就這樣一說了~
主要有兩點:
一、再說C++反匯編函數調用,重點是怎樣通過堆棧實現由被調用函數轉到調用者
二、在 1 的基礎上,在WinDbg下通過修改EIP實現如下一個功能:
有兩個函數foo()和hack(),在main函數中調用foo,但是在foo執行過程中,通過修改EIP來調用hack函數,最后再回到main中foo函數的下一條語句
閱讀全文
主要有兩點:
一、再說C++反匯編函數調用,重點是怎樣通過堆棧實現由被調用函數轉到調用者
二、在 1 的基礎上,在WinDbg下通過修改EIP實現如下一個功能:
有兩個函數foo()和hack(),在main函數中調用foo,但是在foo執行過程中,通過修改EIP來調用hack函數,最后再回到main中foo函數的下一條語句
閱讀全文
2010年4月5日
摘要: 再次主要討論或者驗證三點:
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追蹤過,單步調試時,這一部分區域并沒有用到,這一區域的作用是什么? 閱讀全文
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追蹤過,單步調試時,這一部分區域并沒有用到,這一區域的作用是什么? 閱讀全文
摘要: 函數調用時的堆棧變化以及反匯編代碼分析 閱讀全文

