6

在使用 Python 进行渗透测试的世界中,看起来人们通常必须连接到特定于操作系统的 API。这对我来说很有意义,因为我们正在处理 OSX、Linux、Windows 之间的不同架构和内核。但我想知道如果不是这样吗?

除了您从操作系统模块中获得的一些有限功能之外,我的假设是,与 Windows 相比,与操作系统的 API 挂钩通常会特定于 *POSIX 风格(也许它们有更多共同点)。

特别是我正在考虑 Windows 上的 Deviare。它处理 .DLL 文件。这几乎是Windows。当我们听到 DLL 时,脑海中浮现的是 windows 领域、.plist OS X 等等。

4

3 回答 3

7

Hooking 是一种让您自己的代码在另一个系统运行时执行的方法,无论该系统是操作系统、GUI 还是其他系统。Python中的一个有点愚蠢的例子:

def Process(records, per_record_hook=None):
    "adds all records to XYZ system"
    XYZ = []
    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)
于 2012-07-26T17:22:15.580 回答
2

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

我假设您指的是这种 ^ 类型的挂钩?我对这个术语完全不熟悉,但您似乎正在寻找一个允许与操作系统交互的库?

如果是这样,请尝试 PyWin32(google it)或遵循此处找到的一些技术: http ://www.rohitab.com/discuss/topic/37018-api-hooking-in-python/

同样,如果您可以将它(短语 hooking)放入更多... Python 式的术语中会更有帮助,但我希望这会有所帮助?

于 2012-07-24T17:00:42.597 回答
2

在 Python 中,这样的事情通常是微不足道的,甚至很难提供示例。钩子通常是回调,是的。python 中的回调只是通过传递函数并调用它们来完成。

于 2012-07-24T21:41:39.283 回答