<s>概述_v</s>
<s>病毒_n 名称_n ：_w Worm_nx ._w Win32_nx ._w</s><s>RavMon_nx</s>
<s>病毒_n 类型_n ：_w 蠕虫_n</s>
<s>危害_vn 等级_n ：_w 中_f</s>
<s>文件_n 长度_n ：_w 3,513,806_m 字节_n</s>
<s>文件_n MD5_nx ：_w 5D8CC0712927E07A1BAB416493F43036_m</s>
<s>公开_v 范围_n ：_w 完全_ad 公开_v</s>
<s>感染_vn 系统_n ：_w windows_nx 98_m 及_c 以上_f 版本_n</s>
<s>开发_vn 工具_n ：_w python_nx</s>
<s>病毒_n 描述_vn</s>
<s>病毒_n 还_d 会_v 尝试_v 收集_v 感染_vn 主机_n 的_u 信息_n ，_w 如_v ：_w 感染_v 的_u 主机_n 名_Ng ，_w 当前_t windows_nx 版本_n 等_u 。_w</s><s>如果_c 当前_t 系统_n 为_v xp_nx ，_w 则_c 病毒_n 还_d 会_v 通过_p 运行_v “_w netsh_nx firewall_nx delete_nx portopening_nx TCP_nx ”_w 来_v 删除_v 防火墙_n 端口_n 配置_vn 协议_n 中_f 的_u 传输_vn 控制_vn 协议_n ，_w 进而_c 降低_v 系统_n 的_u 安全性_n 。_w</s><s>病毒_n 尝试_v 连接_v 网络_n ，_w 获取_v 一_m 个_q shell_nx ，_w 通过_p 运行_v rundll32.exe_nx 并_c 加载_v shdocvw.dll_nx 来_v 打开_v 一_m 个_q URL_nx 地址_n 。_w</s><s>病毒_n 还_d 具有_v 结束_v 进程_n 功能_n 。_w</s><s>此_r 病毒_n 通过_p U盘_n 和_c 移动_vn 设备_n 来_v 进行_v 传播_vn 。_w</s>
<s>行为_n 分析_vn</s>
<s>1_m 、_w HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\RavAV_nx</s>
<s>键_n 值_n :_w 字串_n :_w "_w C_nx :_w \_w WINNT\RavMon.exe_nx "_w</s>
<s>2_m 、_w 病毒_n 尝试_v 连接_v 网络_n ，_w 尝试_v 连接_v 下_f 地址_n :_w</s>
<s>3_m 、_w 开启_v 本_r 机_Ng 一_m 个_q 随机_b 端口_n 并_c 发送_v 获得_v 的_u 计算机_n 信息_n 。_w</s><s>如_v ：_w 计算机_n 名_Ng 、_w 端口_n 、_w 版本_n 信息_n 等_u 。_w</s>
<s>4_m 、_w 猜测_v 该_r 病毒_n 的_u 某些_r 功能_n 对应_v 的_u python_nx 模块_n 文件名_n ：_w</s>
<s>终止_vn 进程_n 对应_v 的_u python_nx 模块_n 名为_v ：_w killProcName_nx ._w pyo_nx</s>
<s>url_nx 地址_n 对应_v 的_u python_nx 模块_n 名为_v ：_w urllib.pyo_nx 、_w urlparse.pyo_nx</s>
<s>获取_v 目标_n 主机_n 信息_n 对应_v 的_u python_nx 模块_n 名为_v ：_w os_nx ._w pyo_nx</s>
<s>http_nx 相关_v 的_u python_nx 模块_n 名为_v ：_w httplib.pyo_nx</s>
<s>删除_v cookiess_nx 对应_v 的_u python_nx 模块_n 名_Ng 为_v ：_w cookiess_nx ._w pyo_nx</s>
<s>base64_nx /_w quopri_nx 编码_vn 功能_n 对应_v 的_u python_nx 模块_n 名为_v ：_w base64.pyo_nx</s>
<s>cmd_nx 功能_n 对应_v 的_u python_nx 模块_n 名_Ng 为_v ：_w cmd_nx ._w pyo_nx</s>
<s>修改_v 注册表_n 对应_v 的_u python_nx 模块_n 名_Ng 为_v ：_w copy_reg.pyo_nx</s>
<s>ftp_nx 相关_v 的_u python_nx 模块_n 名为_v ：_w ftplib.pyo_nx</s>
<s>调用_v socket_nx 相关_v 的_u python_nx 模块_n 名_Ng 为_v ：_w socket_nx ._w pyo_nx</s>
<s>usb_nx 相关_v 的_u python_nx 模块_n 名_Ng 为_v ：_w usb_nx .pyo_nx</s>
<s>--_w --_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w -_w --_w --_w</s>
<s>代码_n 分析_vn</s>
<s>python2exe_nx 使用_v python_nx 的_u modualfinder_nx 来_v 调入_v 要_v 运行_v 的_u scripts_nx 并且_c 寻找_v 运行_v 它_r 所_u 需要_v 的_u 所有_b python_nx 模块_n 和_c 扩展_vn 模块_n 。_w</s>
<s>纯_a python_nx 的_u 模块_n 在_p 临时_b 目录_n 里_f 被_p 编译_v 成_v ._w pyc_nx （_w debug_nx ）_w 和_c ._w pyo_nx （_w optimized_nx ）_w 的_u 文件_n 。_w</s><s>编译_v 后_f 的_u 扩展_vn 模块_n pyd_nx 文件_n 也_d 能_v 找到_v 。_w</s>
<s>最后_f 生成_v 一_m 个_q 与_p zip_nx 兼容_v 的_u 包_n ，_w 包含_v 一_m 个_q dependency_nx 目录_n 和_c 你_r 的_u script_nx ，_w 这_r 个_q 包_n 最后_f 提供_v 给_p 一_m 个_q py2exe_nx 自带_v 的_u python_nx 解释器_n 。_w</s>
<s>运行_v 生成_v 的_u 程序_n ，_w 将_d 建立_v 一_m 个_q 重要_a 的_u 关联_vn ，_w 这样_r 在_p script_nx 开始_v 运行_v 的_u 时候_n ，_w 必要_a 的_u 模块_n 可以_v 从_p 包中_s 的_u 正确_a 地_u import_nx 。_w</s>
<s>由于_c 扩展_v 模块_n 不_d 能_v 从_p zip_nx 包_n 中_f 包含_v 或_c import_nx ，_w 它们_r 以_v 被_p 单读_n 提供_v 。_w</s><s>放_v 在_p dist\myscript_nx 目录_n 下_f 。_w</s>
<s>解码_v 的_u 过程_n ：_w</s>
<s>main_nx ,_w winmain_nx 调用_v start_nx 函数_n 。_w</s>
<s>start_nx ：_w</s>
<s>(_w 1_m )_w 获得_v 目录_n 名_Ng 和_c 文件名_n （_w GetModuleFileName_nx ）_w</s>
<s>(_w 2_m )_w 取出_v 执行_vn 文件_n 的_u 数据_n （_w MapExistingFile_nx ）_w</s>
<s>(_w 3_m )_w 获得_v script_nx 的_u 信息_n （_w GetScriptInfo_nx ）_w</s>
<s>(_w 4_m )_w 用_p __w putenv_nx 设置_v 用户_n 的_u 环境_n 变量_n （_w PYTHONHOME_nx ，_w PYTHONPATH_nx ，_w PYTHONOPTIMIZE_nx ，_w PYTHONDEBUG_nx 等_u ）_w</s>
<s>(_w 5_m )_w 将_p scriptinfo_nx 种_Ng 的_u 信息_n 来_v 设置_v python_nx 内部_f 变量_n （_w Py_NoSiteFlag_nx ，_w Py_VerboseFlag_nx 等_u ）_w</s>
<s>(_w 6_m )_w Py_Initialize_nx (_w )_w</s>
<s>(_w 7_m )_w PySys_SetArgv_nx (_w argc_nx ,_w argv_nx )_w</s>
<s>(_w 8_m )_w 调用_v BuildToc_nx 获得_v toc_nx (_w dict_nx 对象_n )_w</s>
<s>(_w 9_m )_w 调用_v PyRun_SimpleString_nx 执行_v "_w import_nx sys_nx ;_w sys.path_nx =_w [_w r_nx '_w %_w s_nx '_w ]_w "_w</s>
<s>(_w 10_m )_w 调用_v Load_Module_nx 调入_v imputil_nx 模块_n ，_w 调用_v PyRun_SimpleString_nx 执行_v "_w import_nx imputil_nx "_w</s>
<s>(_w 11_m )_w Py_InitModule_nx (_w "_w __main___w "_w ,_w methods_nx )_w ;_w</s>
<s>(_w 12_m )_w 解出_v Scripts_nx \_w \_w 并_c 运行_v 它_r</s>
<s>(_w 13_m )_w 解出_v Scripts\\__main__.py_nx 并_c 运行_v 它_r （_w 这里_r 的_u __main__.py_nx 就_d 是_v 要_v 打包_v 的_u python_nx 文件_n ，_w 被_p 重_d 命名_v 为_v __main__.py_nx ）_w</s>
<s>source_nx \_w start_nx ._w c_nx :_w</s>
<s>1_m ._w MapExistingFile_nx :_w 用_p 文件_n 映像_v 的_u 方法_n 打开_v 文件_n ，_w 读_v 处理_v 里面_f 的_u 内容_n 。_w</s>
<s>2_m ._w GetScriptInfo_nx ：_w 从_p archive.h_nx 中_f 定义_v 的_u （_w central_nx directory_nx record_nx ）_w 格式_n 的_u 数据_n 中_f 取出_v script_nx info_nx （_w optimize_nx ,_w verbose_nx ,_w tag_nx ）_w 到_v 全局_n 变量_n p_script_info_nx 中_f 。_w</s>
<s>3_m ._w BuildToc_nx ：_w 构造_v 一_m 个_q 新_a 的_u dict_nx 对象_n ，_w 在_p arch_nx 文件_n 中_f 做_v 一_m 个_q 循环_vn ，_w 取出_v 所有_b 的_u name_nx 放入_v dict_nx 中_f （_w PyDict_nx __w SetItem_nx ）_w ，_w 其中_r 调用_v 了_u fixpath_nx 来_v 解决_v "_w \_nx "_w 和_c "_w /_w "_w 的_u 统一_vn 问题_n ，_w 并_c 将_p dict_nx 返回_v （_w 注意_v ，_w name_nx 好像_v 是_v 不_d 带_v 后缀_n 的_u ）_w 。_w</s>
<s>4_m ._w extract_data_nx ：_w 使用_v zlib.h_nx 中_f 定义_v 的_u zstream_nx 结构_n ，_w 从_p archive_nx 结构_n 中_f 获得_v 指定_v 的_u 长度_n 的_u 数据_n 5_m ._m</s><s>GetContentsFromOffset_nx ：_w 计算_vn 位置_n ，_w 调用_v extract_nx 获得_v 数据_n 。_w</s>
<s>6_m ._w GetContents_nx ：_w 利用_v PyDict_GetItemString_nx 从_p toc_nx 中_f 得到_v 指定_v 的_u 名字_n 的_u 文件_n 的_u 位置_n ，_w 调用_v GetContentsFromOffset_nx 获得_v 数据_n 。_w</s>
<s>7_m ._w Load_Module_nx ：_w 检查_v p_script_info-_nx >_w optimize_nx ，_w 判断_v 文件_n 名_Ng 的_u 后缀_n 是_v "_w ._w pyo_nx "_w 还是_c "_w .pyc_nx "_w ，_w 调用_v GetContents_nx 从_p 数据_n 中_f 调出_v 这个_r 文件_n 。_w</s>
<s>8_m ._w get_nx __w code_nx ：_w 指定_v 名字_n ，_w 获得_v 这_r 个_q 文件_n 的_u 内容_n ：_w GetContents_nx +_w PyString_FromString_nx 。_w</s>
