在使用Python进行渗透测试的世界中,它看起来像 一个人必须通常挂钩到特定于操作系统的API。这是有道理的 对我而言,因为我们正在处理不同的架构和内核 OSX,Linux,Windows。但我想知道情况不是这样吗?
除了你从OS模块中获得的一些有限的功能之外,我的假设是,挂钩到操作系统的API通常会特定于* POSIX风格(可能它们有更多共同点)比例如在Windows中。
特别是我在Windows上想到Deviare。它处理.DLL文件。这几乎是Windows。 在我们听到DLL的那一刻,心灵进入了Windows land,.plist OS X等等。
答案 0 :(得分:7)
Hook
是一种在另一个系统运行时让自己的代码执行的方法,无论其他系统是OS,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)
答案 1 :(得分:2)
http://en.wikipedia.org/wiki/Hooking
我会假设你指的是这种挂钩?我对这个术语完全不熟悉,但看起来你正在寻找一个允许与操作系统交互的库?
如果是这样,尝试类似PyWin32(google it)或遵循此处的一些技巧: http://www.rohitab.com/discuss/topic/37018-api-hooking-in-python/
同样,如果你能把它(短语挂钩)变成更多...... Python式的术语,那会更有帮助,但我希望这有帮助吗?
答案 2 :(得分:2)
在Python中,这样的事情通常是如此微不足道,甚至很难提供示例。钩子通常都是回调,是的。 python中的回调只需通过传递函数并调用它们即可完成。