2010-09-20 42 views
1

我對我有一個新手但非常重要的問題:我有一個使用碳API的Mac OS X應用程序,但它仍然是一個C++應用程序。我需要調試在執行時調用哪些函數,然後使用C++修補程序替換其中一個函數。注入C代碼到* nix應用程序中:替換函數

真正的目標:我需要將所有打印到聊天窗口中的文本記錄下來,該聊天窗口中的應用程序具有難以接近的碳視圖。起初我認爲這是一個可可應用程序,但它不是,所以fscript和imlib不適合注入代碼。

可能嗎?任何線索?非常感謝你。

乾杯:)

回答

0

你可以考慮使用truss找出正在作出哪些系統調用,但我不知道用戶通話。環境變量LD_PRELOAD可以允許你向其他應用程序注入方法,但C++方法往往對名稱修改和調用方法有各種依賴關係,因此插入自己的方法可能會很棘手。

您是否可以讓應用程序維護人員添加實際掛鉤以滿足您的需求?

+0

謝謝;-)我一直在研究和使用以下命令: – flaab 2010-09-21 07:22:30

+0

$ strings 我能夠找出字符串是C++ fsprint格式。我將聲明我自己並通過使用LD_PRELOAD注入它們:我將記錄所有正在處理的匹配正則表達式的字符串,並且應該這樣做。我會讓你知道它是如何去的。謝謝;) – flaab 2010-09-21 07:23:41

+0

我的意思是我會重新聲明fsprintf等等;) – flaab 2010-09-21 07:24:05