buffer-overflow

    0熱度

    1回答

    我正在學習使用gdb和寄存器調試,但我被困在一個點上。作爲一個指令,我應該打印 print $esp result: $1 = -9008 ,但我期待這樣的結果: $2 = (void *) 0x7fffffffdcd0 在接下來的命令,我需要輸入命令: x/24 $esp 說沒有訪問該註冊 Cannot access memory at address 0xffffffffff

    2熱度

    1回答

    在安全領域,有堆挖掘和堆棧粉碎攻擊。 但我發現/proc/*/maps文件,堆和堆棧段, 只有rw-p - 許可。 這兩個段沒有執行權限。 我的工程師朋友告訴我,如果您在Intel CPU中擁有rw權限,您的代碼將自動獲得執行權限。 但我不明白爲什麼英特爾做這個設計?

    -7熱度

    2回答

    #include <iostream> #include <math.h> using namespace std; int main() { long int m,i; cin>>m; float first=0,second=0,disp=0; int arr[m]; char ch[m]; for(i=0;i<m;i++)

    0熱度

    2回答

    我想寫一個簡單的程序來計算一個函數與Fortran95/03需要作爲輸入一個數字(x)和獲取作爲輸出數字(y)。 用戶輸入是real :: input和讀取調用看起來像 read (*,*, iostat=stat) input if(stat > 0) then print *, "False input, use numbers!" 的iostat的幫我檢查,如果輸入的是一個數

    0熱度

    1回答

    我正在做網絡安全捕獲標誌挑戰並嘗試在服務器上執行緩衝區溢出。它有一個HTML文本框,我試圖用特定的值溢出。我怎樣才能在這個文本框中輸入ascii字符?在某個緩衝區長度後輸入的字符似乎被轉換爲ASCII值,所以我試圖在文本框中輸入NUL,EOT等字符。

    0熱度

    2回答

    爲什麼此代碼輸出-32768而不是32768?看起來像一個溢出,但我不知道在哪裏。 #include <stdio.h> #include <stdlib.h> int main() { char *buffer = (char*)malloc(sizeof(char)*2); buffer[0] = 0x80; buffer[1] = 0x00; i

    0熱度

    1回答

    早上好, 我有一個精簡的二進制,我不得不繞過ASLR和NX。自三天以來我一直在努力尋找解決方案,但我找不到一個解決方案。我無法找到鏈接到二進制文件的庫,因爲它被剝離(「不是動態對象」)來構建我的ROP鏈。有人會知道嗎? 謝謝。

    1熱度

    1回答

    我正在學習緩衝區溢出教程。我建立了我的NOP塊,我也設置了我的shell代碼,現在我需要將返回地址附加到我的字符串末尾。我知道我的回覆地址是: 0xbfffef40 不過,我需要把它寫在表格: xd0\xce\xff\xff(這只是一個例子地址顯示我需要什麼樣的格式) 我我不知道如何執行兩者之間的轉換。如果你想改變字節序 import struct struct.pack('<L', 0xbff

    1熱度

    1回答

    我有一個「錯誤」,我花了相當長的一段追逐: typedef union { struct { uint8_t mode: 1; uint8_t texture: 4; uint8_t blend_mode: 2; }; uint8_t key; } RenderKey; 後來這個聯盟將被初始化(堆棧): Buffers bu

    -2熱度

    5回答

    void updateConfigParams(void) { char buffer [512]; int i = 0; while ((c = readFromWireless()) != NULL) { buffer [ i ] = c; i += 1; } writeConfigParams (buffer); } 我只是在處理緩衝區