欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Jinshan/developer
来自开放百科 - 灰狐
金山卫士 开发者相关
目录 |
源码分析
首先用 Doxygen 生成 HTML 文档,方便阅读。
产品定义
KXEngine Product ID
- 平台产品 KXE_PLATFORM_PRODUCT_TYPE 0x00000000
- 毒霸套装 KXE_DUBA_SUIT_PRODUCT_TYPE 0x00010000
- 清理专家 KXE_ANTISPY_PRODUCT_TYPE 0x00020000
- 在线杀毒 KXE_ONLINE_SCAN_PRODUCT_TYPE 0x00030000
- 手机安全 KXE_MOBILE_PHONE_SECURITY_PRODUCT_TYPE 0x00040000
- 网盾 KXE_WEB_SHIELD_PRODUCT_TYPE 0x00050000
- 浏览器安全助手 KXE_BROWSER_ASSIST_PRODUCT_TYPE 0x00060000
- 金山布卡 KXE_BUKA_PRODUCT_TYPE 0x00070000
- 软件分发平台 KXE_SOFTWARE_DISTRIBUTE_PRODUCT_TYPE 0x00080000
- 金山急救箱 KXE_SOFTWARE_JIJIU_PRODUCT_TYPE 0x00090000
- 新网盾 KXE_NEW_WEB_SHIELD_PRODUCT_TYPE 0x00110000
- 金山网盾3.5 KXE_SOFTWARE_JIJIU_WEB_SHIELD_PRODUCT_TYPE KXE_NEW_WEB_SHIELD_PRODUCT_TYPE
- 金山密保 KXE_SOFTWARE_PASSWORD_PROTECT_PRODUCT_TYPE 0x000A0000
- 金山云查杀 KXE_SOFTWARE_CLOUD_SCAN_PRODUCT_TYPE 0x000B0000
- 金山网镖 KXE_SOFTWARE_KPFW 0x000C0000
- 网银保护 KXE_SOFTWARE_BANK_PROTECT_PRODUCT_TYPE 0x000D0000
- 流量管理 KXE_SOFTWARE_FLUX_MANAGEMENT_PRODUCT_TYPE 0x000E0000
- 安全中心 KXE_SOFTWARE_SECURITY_CENTER_PRODUCT_TYPE 0x000F0000
- 统一升级 KXE_SOFTWARE_UNIUPDATE_PRODUCT_TYPE 0x00100000
- 金山卫士 KXE_SOFTWARE_WEISHI_PRODUCT_TYPE 0x00111000
- 可牛急救箱 KXE_CONEW_RESCUE_PRODUCT_TYPE 0x00120000
KXEngine Function ID
- 病毒库下载 KXE_DWON_VIRUS_FUNCTION 0x00000001
- 换肤功能 KXE_CHANGE_SKIN_FUNCTION 0x00000002
- 网银保护 KXE_PROTECT_BANK_FUNCTION 0x00000003
- 流量管理 KXE_FLUX_MANAGEMENT_FUNCTION 0x00000004
- 云查杀 KXE_GOLDEN_CUSTOMER_SERVIC 0x00000006
- 金牌客服 KXE_GOLDEN_CUSTOMER_SERVIC 0x00000006
KXEngine COMPONENT ID
- 服务框架组件 KXE_PLATFORM_COMPONENT_TYPE 0x00000001
- 病毒库组件 KXE_KSG_COMPONENT_TYPE 0x00000002
- 查杀组件 KXE_SCAN_COMPONENT_TYPE 0x00000003
- 防御组件 KXE_DEFEND_COMPONENT_TYPE 0x00000004
- 漏洞修复组件 KXE_KSA_COMPONENT_TYPE 0x00000005
- 安全应用组件 KXE_APPLICATION_COMPONENT_TYPE 0x00000006
- 安全中心组件 KXE_SECURITY_CENTER_COMPONENT_TYPE 0x00000007
- 第三方组件 KXE_3RD_COMPONENT_TYPE 0x00000008
- 网络通信组件 KXE_NETWORK_COMPONENT_TYPE 0x00000009
插件
通过DLL使用C函数的方式将函数导出,并存放在plugin目录,扩展SDK的定义方式,扩展的SDK必须定义如下五个函数:
- #define KXE_SDK_PLUGIN_INIT "kxe_sdk_plugin_initialize" // 扩展SDK需要定义的函数名,kxebase会调用此函数进行plugin初始化
- #define KXE_SDK_PLUGIN_FINI "kxe_sdk_plugin_uninitialize" // 扩展SDK需要定义的函数名,kxebase会调用此函数进行plugin反初始化
- #define KXE_SDK_PLUGIN_START "kxe_sdk_plugin_start" // 扩展SDK需要定义的函数名,kxebase会调用此函数启动plugin.
- #define KXE_SDK_PLUGIN_STOP "kxe_sdk_plugin_stop" // 扩展SDK需要定义的函数名,kxebase会调用此函数停止plugin.
- #define KXE_SDK_PLUGIN_GET_NAME "kxe_sdk_plugin_get_name" // 扩展SDK需要定义的函数名,kxebase会调用此函数获取此plugin的名字
SDK初始化与启动
- 初始化基础库
- 启动基础库,其内部的核心组件将被加载启动
- 获取基础库加载的扩展SDK
- 向基础库注册异常处理勾子
- 加载插件
- 卸载插件
- 停止基础库,其内部的核心组件将被加载停止
IPC
向IPC服务注册一个SP与回调的指针,停止、恢复IPC服务
配置
事件管理
HTTP
调试日志
job管理
传输数据序列化
系统兼容性
KingsoftSafeMain
金山卫士主界面框架分GUI界面(图形用户界面)和Web界面,应用主界面框架,页面元素定义在XML文件中。
界面基于 Windows Template Library 和 BkWindow 两个库。
Loki库
VS2008编译
CodeLite编译
<discussion>characters_max=300</discussion>
分享您的观点