簡體   English   中英

LD_PRELOAD與MySQL

[英]LD_PRELOAD with MySQL

我想知道:使用LD_PRELOAD,我可以覆蓋和攔截用C / C ++編寫的函數。 是否有可能攔截用MySQL源代碼編寫的函數?

例如,我希望一個日志文件包含所有MySQL連接(出於審計的原因)。 我將通過以下方式攔截mysql_real_connect() C函數是MySQL源:LD_PRELOAD = my_intercepting_connect.so

(理論上)會起作用嗎? 有沒有人這樣做或類似的?

使用LD_PRELOAD,您可以攔截應用程序從共享庫中提取的任何符號。 您不能攔截不跨越二進制邊界的函數調用。 因此,當您的應用程序動態鏈接到mysql時,您可以攔截mysql_real_connect調用,而當應用程序靜態鏈接時,您mysql_real_connect走運。 另外,您不能在mysql庫中攔截調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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