0
最近我一直在閱讀的書籍和文章關於黑客感興趣,我發現黑客:開發的藝術僅僅是一個必須閱讀的標題。我正在學習關於如何使用標準Linux工具和分析代碼的基本教程(編程章節)。我不是編程的初學者,但使用Linux終端對我來說是非常新的。我正在使用最新版本的Kali Linux。(GDB)斷點和拆卸
現在我的簡單程序應該用來分析堆棧段的工作原理。
int main(){
void stack_func(int a,int b, int c, int d){
char first;
int second;
first = 'c';
second = 220;
}
stack_func(1,2,3,4);
return 0;
}
第一個問題是我不能添加任何斷點的內部功能。我的功能並不像stack_func()也不是函數庫,如strcpy等。根據本書,待決斷點應該解決。我被忽略,程序完成。
[email protected]:~/Folder# gdb -q ./stack
Reading symbols from ./stack...done.
(gdb) b stack_func
Function "stack_func" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (stack_func) pending.
(gdb) run
Starting program: /root/Folder/stack
[Inferior 1 (process 20421) exited normally]
(gdb)
的第二個問題是,拆機也沒有對我的工作的功能。根據這本書,我應該能夠看到我的函數stack_func()的彙編代碼,但結果如下。
(gdb) disass stack_func()
No symbol "stack_func" in current context.
(gdb)
我爲文中的任何語法錯誤而道歉。 :)
你無副作用功能可能只是由編譯器取出,或至少內聯。 –
你有沒有試過移動'main'之外的'stack_func'? –
是的,我現在嘗試了這樣的錯誤信息。 '你不能這樣做,沒有一個過程來調試。' – Jacobe