cost 107 ms
macOS 上的符號插入

[英]Symbol interposition on macOS

我有一個鏈接到共享庫libfoo的程序。 我想在我的程序中覆蓋來自 libfoo 的函數之一,以便從libfoo中對該libfoo的內部調用解析為我程序中的定義。 (對於上下文,我的意圖是模擬庫 function 進行測試。) 這個問題與這個問題有點相關: 共享庫中的符號查找。 這是該問題的示例: ...

庫插入

[英]Library interpositioning

按照我們的教科書(CSAPP book),我一直在嘗試攔截對 malloc 和免費的調用。 我遵循了他們的確切代碼,以及我在網上找到的幾乎相同的代碼,但我一直遇到分段錯誤。 I heard our professor saying something about printf that mallo ...

如何調試運行時庫插入過程?

[英]How can I debug runtime library interpositioned process?

我現在正在研究 Ubuntu 18.04 中使用 C 的庫插入,我正在測試兩個簡單的代碼來包裝strlen :“mystrlen.c”、“mystrlenTest.c”。 這是我寫的代碼:mystrlen.c 和 mystrlenTest.c: 我嘗試在運行時使用以下命令注入: 這就是我得到的全部 ...

僅在某些條件下插入fscanf

[英]Interpositioning fscanf only under certain conditions

因此,我試圖覆蓋c中的fscanf函數,但我只希望在滿足某些條件的情況下發生不同的行為。 如果不滿足這些條件,我只想調用原始的fscanf。 我知道您可以在插入函數時使用dlsym使用函數的原始版本,但是fscanf的問題是可變參數。 我可以使用va_list和va_arg將所有參數傳遞到 ...

ptrace(PTRACE_ATTACH,pid,0,0)錯誤:無法附加到pid

[英]ptrace(PTRACE_ATTACH, pid, 0, 0) error: cannot atttach to pid

我試圖使用PTRACE在android中注入一個庫,但是當我嘗試將ptrace附加到特定的pid進行監視時出現錯誤/; “無法附加到pid” ...這是代碼 我想知道為什么ptrace()返回的值小於零,從而導致錯誤.... ptrace()函數應返回什么才能正常執行(無錯誤) ...

共享庫中的符號查找

[英]symbol lookup in shared libraries

我已經在下面測試了這樣一個簡單的程序 我的主程序是這樣的: 程序的結果為“覆蓋”。 為了弄清楚為什么會發生這種情況,我使用了gdb。 調用鏈如下所示: _dl_runtime_resolve -> _dl_fixup ->_dl_lookup_symbol_x ...

如何掛接我的Android應用程序的系統調用

[英]How to hook system calls of my android app

我想攔截connect()系統調用並使用自己的自定義實現。 定制實現將執行某些操作,例如為簡單起見打印日志,然后進一步調用系統實現。 我看了Audrey的博客 ,其中介紹了修補PLT的方法。 但是不幸的是,當嘗試更改重定位表中的地址時,此代碼崩潰。 閑逛了一會兒后,我遇到了這個已 ...

如何掛鈎我的Android應用程序的系統調用(非root設備)

[英]How to hook system calls of my android app (non rooted device)

我試圖攔截我的Android應用程序在非root設備上進行的所有系統調用。 因此,每次我的應用程序寫入/讀取文件時,我都會攔截系統調用並加密/解密流以用於安全目的。 加密部分沒問題,但我如何攔截系統調用? 由於應用程序的某些部分是由第三方提供商開發的模塊,我無法更改源代碼,因此沒有 ...

插入OS X系統調用

[英]Interposing of OS X system calls

我需要插入(調用我的函數而不是原始函數)一些OS X系統調用來克服一個閉源軟件中的缺陷。 最好,得到的解決方案可以在10.5(Leopard)和更新的情況下工作,但如果論證足夠強大,我可能需要10.6(Snow Leopard)。 最好,得到的解決方案是可執行的,但我可能會選擇一個腳 ...

如何在Linux上動態插入Python的C函數(沒有LD_PRELOAD)?

[英]How to dynamically interpose C functions from Python on Linux (without LD_PRELOAD)?

我如何在運行時(沒有LD_PRELOAD )攔截/掛鈎像Linux上的fopen()這樣的C函數,一個適合Windows的Detours? 我想從Python中做到這一點(因此,我假設該程序已經在運行CPython VM)並且還要重新路由到Python代碼。 我只是掛鈎共享庫函數。 我也想 ...

找出接收到的指針是字符串,ushort還是數組

[英]Find out if a received pointer is a string, ushort or array

我在C中插入memcpy()函數,因為目標應用程序使用它來連接字符串,並且我想找出正在創建的字符串。 代碼是: 該函數被成功調用,但是第一個參數可以是任意值,並且如果結果是字符串或數組,我只想跟蹤它。 我將不得不問它是數組還是字符串。 我知道這不能簡單地完成:無論如何,有沒有找出R ...

LD_PRELOAD用於C ++類方法

[英]LD_PRELOAD for C++ class methods

我需要在C ++程序中插入一個方法調用(該類駐留在一個單獨的共享庫中)。 我以為我可以使用LD_PRELOAD,但我不確定這是如何工作的(我只找到C函數的例子):有沒有辦法為單個方法設置插入而不從插入的類實現復制任何代碼? ...

中介庫:XOpenDisplay

[英]Interposing library: XOpenDisplay

我正在一個項目中,我需要更改X11 / Xlib.h中定義的XOpenDisplay函數的行為。 我找到了一個示例 ,它應該可以完全滿足我的要求,但是在編譯該示例時,出現以下錯誤消息: XOpenDisplay_interpose.c:14:錯誤:»XOpenDisplay«的類 ...

使用LD_PRELOAD替換Linux系統調用時出現問題

[英]Problem replacing Linux system calls using LD_PRELOAD

我正在嘗試編寫一個程序,該程序允許運行二進制文件,並在被另一個文件請求時替換一個文件。 它是一個簡單替換系統調用函數的庫,與LD_PRELOAD一起使用。 問題是它捕獲了要讀取的打開文件(而是讀取了替代文件),但是寫入操作始終返回到實際的指定文件。 我應該知道其他的“開放式”系統調用嗎? ...

C中的內存映射文件

[英]memory-mapped files in C

我在玩C語言中的內存映射文件,想知道是否有辦法透明地用內存映射文件替換fopen中的FILE *。 例: 但是相反,可能有FILE * fp = my_fopen(...) 在我自己的函數會打開磁盤上的文件的位置,可能會更改內容,然后將文件*傳遞回去,而程序不會看到任何與眾不 ...


 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM