stack-smash

    -1熱度

    1回答

    我想運行一個C程序。這似乎很好地工作,但最終它表明: 堆棧溢出DETECTED 這是代碼: #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> extern int errno; int main(int argc, char *argv[

    1熱度

    1回答

    我們試圖在一些生成的代碼中跟蹤一些堆棧碎片錯誤。問題是堆棧砸錯誤不是100%確定性的,只發生在一臺機器上,而不是其他機器。有什麼可能的原因會導致行爲上的差異? 我們使用堆棧保護器標誌運行gcc。

    2熱度

    1回答

    今天我有一個有趣的bug,顯然我的堆棧被粉碎,覆蓋了G ++返回點金絲雀(我認爲這是所使用的保護)。 我違規類是這樣的: class ClientSendContext : public SendContext { public: ClientSendContext(UdpClient& client); void send(boost::asio

    3熱度

    4回答

    我正在嘗試對類程序的程序執行緩衝區溢出攻擊。攻擊程序和易受攻擊的程序都是由我編寫的。 易受攻擊的代碼使用scanf從標準輸入讀取數據。 ./vulnerable < malicious_payload_file.txt工作正常。 more malicious_payload | ./vulnerable和echo JUNK_JUNK_JUNK_JUNK | ./vulnerable也按預期工作。

    1熱度

    1回答

    reply是 S|[2 3 4 5 6 7 8 9]|[2 3 4 5 6 7 8 9] char com[10], f[100], s[100]; sscanf(reply, "%[^!]|%[^!]|%[^!]", com, f, s); 它會導致棧粉碎。我知道sscanf通常是不安全的,但我想知道爲什麼它在這裏失敗 - 當輸入字符串罰款。 這裏的輸出:砸檢測 *堆*:./testCli

    0熱度

    2回答

    我有一個Core i7 720QM處理器,並運行Slackware 13.37(32位)作爲虛擬機。作爲班級任務,我必須編寫一個易受攻擊的程序並粉碎堆棧。但是,在大多數計算機上,由於存在某種堆棧執行預防(NX位?),所以這不起作用,當CPU檢測到嘗試在堆棧上執行數據時,會產生「分段錯誤」。 有沒有辦法通過sysctl或類似的東西發信號給內核忽略它?

    2熱度

    1回答

    最近我正在用「shellcoder's handbook」一書進行一些粉碎堆棧實踐。 但是,當我嘗試在我的Ubuntu11.04上測試一些代碼時,我總是遇到段錯誤。 這裏的情況: 起初我寫exit_shellcode.s(只是簡單的出口(0)函數): .section .text .globl _start _start: movl $1, %eax movl $0, %ebx int

    -1熱度

    1回答

    的代碼引起該問題的線是 char command_tb_temp[][1000]={"gcc -Wall ","-o3 -ftree-ccp -fno-align-jumps "," Scripts/*.c -o output -lm && time -f \"%e\" -o TB.log ./output 1.dat"}; 當相同的碼,是通過給予僅1像下面優化選項寫的,它不返回任何錯誤。 c