Python 脚本提供应用程序编程接口 (API)

GFI LanGuard 嵌入了大部分默认 Python 实施(又称 CPython,其地址为:http://go.gfi.com/?pageid=pythorg)。 目前我们使用 Python 2.5 版。因此,大多数现有 Python 脚本使用的 GFI LanGuard 中都有微小改动。 大多数重要的修改是脚本必须具有 main() 函数,该函数返回 10

安全扫描程序模块(漏洞检查和安全应用程序信息)使用的所有 Python 脚本都可访问以下全局变量:

  • ComputerIP
  • ComputerName
  • LNSSDir
  • localProgramFilesPath
  • localWindowsPath
  • localSystem32Path
  • 用户
  • 密码
示例

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

导入 win32com.client

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)

对于其他 Pywin32 文档,请参阅: