2012-07-24 14 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中的回调只需传递函数并调用它们即可完成。