2017-03-16 85 views
0

我有一個Linux可執行二進制文件(C或C++編譯)。在某些時候,程序使用時間戳來產生隨機數返回自定義時間戳

我需要實現一定的隨機數序列,所以我想製作一個攔截系統調用的腳本(首選python)(AFAIK這是稱爲「掛鉤」)來獲取時間戳並返回一個自定義值直到我得到我需要的序列。我必須這樣做,因爲可執行文件不使用整個時間戳,就像timestamp % 10000

這可能嗎?如果是這樣,怎麼樣?

回答

1

這隻能從內核內完成。所以你不能使用Python(或任何其他用戶空間程序),你將不得不使用C.一個選項是在可加載的內核模塊中執行它。 你可以找到一個例子,例如here

1

使用庫預加載機制,可以截取和替換呼叫。對於已經與C庫動態鏈接的二進制文件,您可以攔截調用time()並類似來模擬不同的時間。

開源的「libfaketime」項目已經實現僞造時間:https://github.com/wolfcw/libfaketime