2012-07-24 41 views
4

在使用Python進行滲透測試的世界中,它看起來像 必須通常掛接到特定於操作系統的API。這對我來說是有意義的 ,因爲我們正在處理OSX,Linux和Windows之間的不同體系結構和內核( )。但我想知道這是不是這種情況?Python中的API掛鉤可以OS不可知?

除了一些有限的功能,你擺脫了操作系統模塊,我的假設是,掛鉤到操作系統的API一般將特定於* POSIX的味道(也許它們有更多的共同點)比在Windows例如。

尤其是我的Windows思維Deviare的。它處理.DLL文件。這幾乎是Windows。 當我們聽到DLL的時候,頭腦轉向windows land,.plist OS X等等。

+3

沒有在Python中所謂的 「掛鉤」 的概念。你在閱讀什麼文章,以及混淆你的部分是什麼? – 2012-07-24 16:42:45

+0

我理解Hooking是一個概念,而不是Python特定的東西。沒有使用特定的文本,剛剛在網上尋找一些不太有用的解釋。 – inbinder 2012-07-24 17:24:02

+2

嗯,我有一些懷疑,這種學習方式的方法讓你在任何地方。我的建議是首先通過一些編程教程或介紹性書籍,然後追求自己的一些項目。試圖理解一個沒有特定應用程序的隨機而不是非常精確定義的主題似乎沒有什麼幫助。 – 2012-07-24 17:38:22

回答

5

Hook ING是一個辦法讓自己的代碼,另一個系統運行時執行,其他系統是操作系統,一個圖形用戶界面,或什麼的。 Python中的有些傻例如:

def Process(records, per_record_hook=None): 
    "adds all records to XYZ system" 
    for record in records: 
     if per_record_hook: 
      per_record_hook(record) 
     XYZ.append(record) 

def print_record(record): 
    "print a '.' for each record (primitive counter)" 
    print '.' 

再後來:

Process(records_from_somewhere, per_record_hook=print_record) 
+1

謝謝。這是唯一有用的迴應! – inbinder 2012-07-27 13:53:01

2

http://en.wikipedia.org/wiki/Hooking

我會假設你指的是這樣一種^掛鉤的?我完全不熟悉這個術語,但是您似乎在尋找一個允許與操作系統進行交互的庫?

如果是的話,你可以試試PyWin32(谷歌它)或遵循的一些發現這裏的技術: http://www.rohitab.com/discuss/topic/37018-api-hooking-in-python/

再次,它會更有益的,如果你可以把它(這句話掛鉤)爲更... Python-esque術語,但我希望這有助於?

2

在這樣的Python的東西一般是那麼微不足道,它是很難甚至提供範例。鉤子通常是回調,是的。 Python中的回調只需傳遞函數並調用它們即可完成。