Python 脚本提供应用程序编程接口 (API)
GFI LanGuard 嵌入了大部分默认 Python 实施(又称 CPython,其地址为:http://go.gfi.com/?pageid=pythorg)。 目前我们使用 Python 2.5 版。因此,大多数现有 Python 脚本使用的 GFI LanGuard 中都有微小改动。 大多数重要的修改是脚本必须具有 main() 函数,该函数返回 1 或 0。
安全扫描程序模块(漏洞检查和安全应用程序信息)使用的所有 Python 脚本都可访问以下全局变量:
示例
ComputerIP = '127.0.0.1'
ComputerName = 'WXPSandbox"
LNSSDir = 'C:\\Program Files\\GFI\\LanGuard\\'
localProgramFilesPath = 'C:\\Program Files'
localWindowsPath = 'C:\\WINDOWS'
localSystem32Path = 'C:\\WINDOWS\\system32'
User = ''
Password = ''
使用这些全局变量,以访问扫描计算机的名称或 IP 地址、需要连接扫描计算机的凭据。
GFI LanGuard 全局函数可用于 Python 脚本,并可作为 GlobalFunctions 对象的方法。 即:
# 使用全局函数。
def main():
"""返回值:
* 0 - 假,出错
* 1 - 真,成功"""
result = 0
# 显示文本。
GlobalFunctions.echo("Hello!")
# 将指定文本添加到日志文件。
GlobalFunctions.writetolog("已启动 Python 脚本。")
# 将指定文本添加到状态栏。
GlobalFunctions.statusbar("Hello StatusBar!")
# 将名称类似于第二个参数的子节点添加到当前漏洞。
GlobalFunctions.addlistitem("", "漏洞描述。")
# 更改当前漏洞的说明。
GlobalFunctions.setdescription("已安装的调制解调器列表")
GlobalFunctions.writetolog("已完成 Python 脚本。")
result = 1
return(result)
GFI LanGuard 也提供了 Python 脚本的 COM 客户端 API,形式为 pywin32。
注
Python 脚本可通过win32com.client使用GFI LanGuard COM 脚本库。 有关更多信息,请参阅 脚本处理对象。
示例
# 使用 LanGuard COM 对象GlbObj.Socket 执行 DNSTCP/IP 网络使用的数据库,可以将主机名转换为 IP 号并提供其他域相关的信息。 查询。
def main():
"""返回值:
* 0 - 假,出错
* 1 - 真,成功"""
result = 0
socket = win32com.client.Dispatch("GlbObj.Socket.1")
print(socket.DnsLookup('gfi.com'))
result = 1
return(result)
Pywin32
# Hello world for pywin32.
def main():
"""返回值:
* 0 - 假,出错
* 1 - 真,成功"""
result = 0
导入 win32com.client
strComputer = "."
objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator")
objSWbemServices = objWMIService.ConnectServer(strComputer,"root\cimv2")
colItems = objSWbemServices.ExecQuery("Select * from Win32_PhysicalMemory")
colItem 中的 objItem:
print("Capacity: %s\n" % objItem.Capacity)
result = 1
return(result)