libc

    0熱度

    2回答

    我正在使用armv7進行openwrt開發,並面臨由vfork引起的段錯誤。 我已經寫了一個小測試程序有以下部分: ... pid_t child_t; if((child_t = vfork()) < 0) { printf("error!\n"); return -1; } else if(child_t == 0)

    0熱度

    1回答

    爲了欺騙遊戲2048的樂趣,有沒有人知道如何改變Windows或Linux上的隨機實現? 在Linux內核中,我猜你重新實現蘭特功能只是這樣的: double rand() { return 0.0; } 然後重新編譯內核。 但在Windows上不知道。 我將不勝感激任何幫助。

    1熱度

    1回答

    我目前從32到64位的使用Visual Studio 2008移植一個軟件,並要求當我遇到關於fread導致段錯誤的問題: 這裏是一個代碼示例重現此問題: void somefunction(std::string filepath) { FILE* myfile = fopen(filepath.c_str(),"rb"); // returns a valid handle

    2熱度

    2回答

    我試圖基於利用緩衝區溢出漏洞(在x86-32 Linux機器上)自動執行返回到libc的攻擊。 我需要一種方法來找到libc中的execve函數的地址,而無需使用gdb的: (GDB)p execve的 $ 1 = {} 0xf7ec1b30 的ASLR保護被禁用,以便使這種技術。 有沒有辦法讓函數的地址在libc中作爲execve?用程序或其他可自動化的方式? (沒有gdb因爲在bash腳本或C

    0熱度

    2回答

    有一個strnlen()函數已經添加了一段時間到各種高調庫,並隨後進入標準如POSIX-1:2008。 IIUC其目的是爲了避免主題字符串不終止的問題。 但是,儘管可能存在類似的潛在問題,但我沒有看到類似的變種strnspn()或strncspn()已經開發完成。僅僅是因爲基地strspn()和strcspn()超出了許多C程序員的理解,因此應該是未使用或不可用? 人們可能注意到,在(中)著名「安

    3熱度

    2回答

    我正在嘗試爲運行uClinux的ARM處理器的嵌入式系統編譯「hello world」C應用程序。我使用這個toolchain 當我用-static編譯標誌編譯C應用程序時,應用程序工作正常。 當我刪除-static標誌 - 我得到了一個錯誤:can't load library 'libc.so.6' libc.so.6的不存在於目標上, 到目標設備上的/ lib文件夾的符號鏈接libc.so.

    2熱度

    2回答

    在下面的原型: int __libc_start_main(int (*main) (int, char * *, char * *), int argc, char **ubp_av, void (*init) (void), void (*fini) (void), void (*rtld_fini) (void), void (*

    1熱度

    1回答

    首先有點上下文:我試圖調試neovim發生的問題,我不確定如果這也發生在簡單的vim中,但並不是那麼重要。 即使記者使用Linux,我使用OSX 10.9,我已經能夠通過使用特定的編譯器+標誌,以獲得「類似的」行爲: 當我使用兩種gcc 4.8.2或gcc 4.9 (dev)甚至有點相結合一些優化,強化和堆棧粉碎保護,neovim在啓動時崩潰。 $ edit CMakeLists.txt $ .

    2熱度

    2回答

    我正在和一位同事討論關於malloc的問題,並想知道是否某些libc調用像malloc這樣的情況是由操作系統實現的? 我一直認爲malloc調用了一些在「sys」中公開的符號來聲明它將使用哪些內存地址。從我認爲操作系統將允許使用一些操作系統級別的API ...這可能類似於被指定的程序的分割: int assign_memory_segmention(size_t start, size_t end

    -1熱度

    3回答

    我有以下一組代碼無法找到爲什麼我會得到垃圾值。我的意圖是將字節數作爲目標複製到源而不考慮源爲我的應用程序製作通用副本。但沒有得到正確的結果。有什麼辦法可以做到這一點。 int main() { char x[6]; char *i="pra"; memset(&x,0,6); //Doing memset memcpy(&x,i,6); pri