常见问题 >>

威盾客户端与其他程序冲突检测办法

客户端与特定程序冲突的检测方法
 
若是发生安装IP-guardV3客户端以后,应用程序运行异常的情况,需要检查是由于客户端的哪个模块导致的异常;
按照以下步骤检查。

1.  确认现象

需要确认4个信息:环境、操作步骤、现象、是否必然。
现象分三种:崩溃、死锁、死循环。
崩溃:程序对应的进程消失。崩溃要分为两种:启动即崩溃和运行过程中崩溃。
死锁:程序对应的进程存在,CPU不高,但程序卡死。如果有界面,表现为无法响应鼠标和键盘。
死循环:程序对应的进程存在,CPU很高。如果有界面,表现为界面响应鼠标和键盘很慢。

2.  获取DMP文件

使用Windbg获取DMP文件。
运行中崩溃或出错的情况:
  1. 运行目标程序。
  2. 运行Windbg。
  3. File > Attach to a Process,选择指定进程。
  4. 按F5,操作目标程序直到出错。
  5. 输入.dump /ma c:\result1.dmp,导出文件。
运行中CPU很高:
  1. 运行目标程序。
  2. 运行Windbg。
  3. File > Attach to a Process,选择指定进程。
  4. 按F5,操作目标程序到CPU很高,按“Ctrl+ Break”暂停调试。
  5. 输入“.dump /mt c:\result1.dmp”,导出文件。
  6. 按F5继续运行1-2分钟,按Ctrl+ Break暂停调试,再输入“.dump /mt c:\result2.dmp”。
  7. 按F5继续运行1-2分钟,按Ctrl+ Break暂停调试,再输入“.dump /mt c:\result3.dmp”。
  8. 按F5继续运行1-2分钟,按Ctrl+ Break暂停调试,再输入“.dump /f c:\result4.dmp”。
 
Windbg安装程序路径:\\192.168.1.1\release\lijm\Debug_Tools\Windbg\dbg_x86_6.11.1.404.msi
使用说明:
http://192.168.1.8:8080/svn/testing/使用说明/客户端进程占用CPU高时获取进程的调试信息for Windbg_lihp_20110919.doc
http://192.168.1.8:8080/svn/testing/使用说明/获取进程的调试信息for Windbg_lihp_20110919.doc

3.  检查HOOKAPI模块

3.1 检查是否HOOKAPI冲突

添加客户端配置hookapi_disins=1屏蔽所有进程的HookAPI,看程序冲突是否还存在。
如果冲突仍存在,则进行主动注入检查。
如果冲突不存在,说明有可能跟HOOKAPI有关。进一步用hookapi_filterproc_external=进程名.exe,确认跟哪个进程冲突。

3.2 检查是否主动注入冲突

取消HOOKAPI的屏蔽配置,添加客户端配置hookapi_disinj=1屏蔽所有进程的主动注入,看程序冲突是否还存在。
如果冲突仍存在,则检查其他模块。
如果冲突不存在,说明跟主动注入有关。进一步确认:
  1. hookapi_filterinj_external=进程名.exe,确认跟哪个进程有关。如果找不到,用hookapi_filterinjcall_external=进程名试试。
  2. hookapi_inj15_external=进程名,用1.5的注入方式看看能不能解决。
  3. hookapi_inj21_position=2,(设置将待注入模块插入导入表前部或是后部,2为后部,其他为前部,默认是前部),看冲突能否解决。
 
补充:
1、如何检查Hookapi是否屏蔽成功。
HookAPI的作用是为了截获API函数,如果截获成功,可以通过gmer扫描,查看待检查进程中是否截获了相应的API函数。
2、如何检查主动注入版本
Inject1.5是通过修改指令来实现,Inject2.1是通过修改导入表来完成,并且目前没有恢复,所以通过LoadPE查看目标进程的导入表时,会提示出错。
注:以后可能会编写一个工具用来获取指定进程的导入表。
注2:以后如果Inject2.1添加了导入表恢复,则无法再通过查看导入表来检测。
3、如何检查主动注入是否屏蔽成功。
原理上,HookAPI注入屏蔽的效果是HookAPI模块无法进入目标进程。但是考虑到实际过程中,HookAPI模块还存在另外一种加载方式,即消息钩子。
所以,有实际过程中,可以选择无消息循环的进程,作为检测进程。常见如cmd.exe,也可以事先准备一个无消息循环的测试程序。

4.  检查其他模块

使用DisableDrv工具逐个模块屏蔽,找到冲突的模块。

设置之后需要重启才生效。只有邮件Mails下模块,设置之后,重启Outlook进程即可。
工具路径如:
\\192.168.1.1\release\V3Tools\Advanced\20120301_0_npwd_DisableDrv.zip
\\192.168.1.1\release\V3Tools\Advanced\20120301_0_npwd_DisableDrv_Win7.zip

合作共赢

项目合作
产品合作
版权所有 2015-2045  上海忆恒信息科技有限公司   沪ICP备19045438号-1