火绒安全软件

粉丝茶话区
发新帖
打印 上一主题 下一主题

[讨论] (更新中)FRST工具(就是Farbar Recovery Tool)教程

[复制链接]
347 0
楼主
发表于 2025-10-22 22:44:06 | 只看该作者 |倒序浏览 |阅读模式
跳转到指定楼层
本帖最后由 农夫三拳有点疼 于 2025-10-23 10:00 编辑

持续更新中!!!!!!版权所有,严禁转载!

RT,今天帮别人看一下电脑,用FRST扫了一下,然后就是写脚本进行修复了。
但问题是,FRST的扫描日志看得懂,修复脚本写不来啊啊啊啊啊啊!!!!!!官方的下载页面也没有任何的教程好像,Github只有一个成品软件仓库是用来生成修复脚本的,但是我不敢用555。
然后好不容易找到了这个工具的说明书,下面翻译并摘录一部分如下。(这个可能是中文截至目前唯一的教程了。)

FRST是我逛Dr.Web论坛的时候发现的,他们提供的免费修复服务,他们自己的FixIt都不怎么用,基本用的都是这个。详见https://forum.drweb.com/index.php?showtopic=339315(不是广告!!!!!!)。



FRST的好处,一个是轻量,连10MB都不到,另一个是全面、专业,信息很多,再者就是操作比较简,用它写修复脚本不需要掌握很多语法,基本都是复制粘贴。
但是缺点也显而易见,成也专业败也专业,如果没有一些计算机知识还是很难玩转的。

话不多说,下面就来讲讲FRST如何用。


第一部分 FRST的扫描结果解析
首先是对扫描之后结果的介绍。要用这种手动杀毒,第一步是能够看得懂。
1.1 FRST.txt文件
1.1.1 FRST.txt日志开头都是:
关于...的扫描结果 Farbar Recovery Scan Tool (FRST) (x64) 版本: 11-10-2025
通过...运行 Administrator (管理员) 启动 [这里是计算机名] (主板型号) (22-10-2025 22:58:35)
从运行 C:\Users\Administrator\Downloads\FRST64.exe (这个是指,FRST运行的时候在哪里)
加载的配置文件: Administrator
平台: Microsoft Windows 11 专业版 版本 23H2 22631.3668 (X64) 语言: 中文(简体,中国)
默认浏览器: Edge
启动模式: Normal(普通就是一般环境,FRST还可以在安全模式下启动,这里只讨论一般环境,安全模式以后再说)

1.1.2 然后就是进程的日志
我们先来看一下我的例子。

==================== 进程 (将列入优先名单) =================

(如果条目包含在固定列表中,则该过程将被关闭。该文件不会被移动。)

(Microsoft Windows -> Microsoft Corporation) C:\Windows\System32\cmd.exe <3>
(Microsoft Windows -> Microsoft Corporation) C:\Windows\System32\EoAExperiences.exe
(Notepad++ -> Don HO don.h@free.fr) C:\Program Files\npp\updater\GUP.exe
(cmd.exe ->) (Microsoft Windows -> Microsoft Corporation) C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

可以看出来,进程的语法是:
  1. (父进程 ->)(证书链)本体进程路径<线程数>
复制代码
在上面的例子中已经有全套的组合示例了。

1.1.3 然后是档案部分
这里会列出启动项(自启动一般就两种,写入注册表或者把程序放在启动文件夹里)以及一些别的(比如,通过注册表控制的Windows Defender和Update)。下面看个栗子。
==================== 档案 (将列入优先名单) ===================

(如果条目包含在固定列表中,则注册表项目将恢复为默认或删除。 文件不会被移除。)

HKLM\...\Run: [ACE-Tray] => C:\Program Files\AntiCheatExpert\ACE-Tray.exe [5045072 2025-05-27] (ACEVILLE PTE LTD -> ANTICHEATEXPERT.COM)
HKLM\...\Policies\Explorer: [SettingsPageVisibility] hide:privacy-feedback;privacy-automaticfiledownloads;windowsdefender
HKLM\...\Policies\Explorer: [NoWindowsUpdate] 1
HKLM\...\Policies\Explorer: [NoDrives] 3
HKLM\SOFTWARE\Microsoft\Windows Defender: [DisableAntiSpyware] 限制 <==== 注意

里面的第一行就是写入注册表的启动项。
二三四五行都是对于系统服务的一些设置,这个参数和注册表有关系。


1.1.4 然后是计划任务部分(这个在FRST里面叫做”以安排的任务“)。
==================== 以安排的任务 (将列入优先名单) =================

(如果一个条目包含在固定列表中,它将从注册表中删除。 除非单独列出,否则文件将不会被移动。.)
Task: {A*7} - System32\Tasks\csrss => C:\Windows\rss\csrss.exe [4925952 2019-03-19] () [File not signed]
(如果在固定列表中包含一个条目,则将移动任务(.Cob)文件。将不会移动由任务运行的文件。)

语法是:
  1. Task: {计划任务ID} - 计划任务路径 => 指向文件 [指向文件大小 最后修改日期] () [证书链] <==== ATTENTION
复制代码


1.1.5 然后是网络相关的一些信息。
这里会列出Winsock(Windows 套接字)、Hosts、DNS服务器、Internet Explorer选项等等。其次是浏览器信息。举个栗子。

==================== Internet (将列入优先名单) ====================

(如果项目包含在固定列表中,如果它是注册表项目,它将被删除或恢复为默认值。)

Hosts: 主机中有多个条目。请参阅主机部分。 Addition.txt
Tcpip\..\Interfaces\{5**1}: [NameServer] 114.114.114.114,223.5.5.5
Tcpip\..\Interfaces\{a**6}: [DhcpNameServer] 192.168.*
Tcpip\..\Interfaces\{a**6}: [DhcpDomain] localdomain
HKLM\SOFTWARE\Policies\Microsoft\Internet Explorer: 限制 <==== 注意
HKU\S-1-5-19\SOFTWARE\Policies\Microsoft\Internet Explorer: 限制 <==== 注意
HKU\S-1-5-20\SOFTWARE\Policies\Microsoft\Internet Explorer: 限制 <==== 注意
HKU\S-1-5-21-2xxxxxxxx9-969308216-3xxxxxxx7-500\SOFTWARE\Policies\Microsoft\Internet Explorer: 限制 <==== 注意

Edge:
=======
Edge Profile: C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default [2025-10-22]

FireFox:
========
FF Plugin: @adobe.com/FlashPlayer -> C:\Windows\System32\Macromed\Flash\NPSWF.dll [2024-03-12] (Adobe Inc. -> ) [文件未签名]
FF Plugin-x32: @adobe.com/FlashPlayer -> C:\Windows\SysWOW64\Macromed\Flash\NPSWF.dll [2024-03-12] (Adobe Inc. -> ) [文件未签名]

可以看出来,语法是:

Hosts: 主机中有多个条目。请参阅主机部分。 Addition.txt  (这里会列出所有Hosts里面列出来的解析,如果不止一个的话,那么会有这个提示并且单独放在另一个日志里面。)
Tcpip\..\Interfaces\{ID}: [NameServer] {DNS1},{DNS2} (DNS服务器,这里显示的只是注册表里面的DNS配置,实际配置在另一个日志文件里。)
Tcpip\..\Interfaces\{ID}: [DhcpNameServer] {DNS} (由DHCP分配的DNS IP。)
Tcpip\..\Interfaces\{ID}: [DhcpDomain] {DNS 域名} (由DHCP分配的DNS域名。)
HKLM\SOFTWARE\Policies\Microsoft\Internet Explorer: 限制 (IE的一些配置)

(下面的浏览器都是如果装了才有,不装是没有的。)
Edge:
=======
Edge Profile: 配置文件位置 [修改日期]            (这个是Edge的配置文件。)

FireFox:
========
FF Plugin: 插件名 -> 插件DLL位置 [安装时间] (厂商信息) [证书链]

1.1.6 服务与驱动程序部分。
格式是这样的。
  1. 运行状态 启动类型 服务名称;映像路径或服务动态链接库 [大小 创建日期](签名者名称 -> 公司名称)[证书链]
复制代码

运行状态(RunningState)开头的字母代表运行状态,具体含义如下:
  • R = 正在运行(Running)
  • S = 已停止(Stopped)
  • U = 未确定(Undetermined)

启动类型(StartType)启动类型对应的编号含义如下:
  • 0 = 引导(Boot)
  • 1 = 系统(System)
  • 2 = 自动(Auto)
  • 3 = 手动(Demand)
  • 4 = 已禁用(Disabled)
  • 5 = FRST 无法读取启动类型时的默认分配值
在列表项末尾出现 [X] 时,表示 FRST 无法找到与该特定服务或驱动程序相关联的文件,因此所列的映像路径(ImagePath)或服务动态链接库(ServiceDll)是直接从注册表中读取的内容。

下面看一个例子。

==================== 服务 (将列入优先名单) ===================

(如果一个条目包含在固定列表中,它将从注册表中删除。 除非单独列出,否则文件将不会被移动。.)

HKLM\SYSTEM\CurrentControlSet\Services\dispresflt <==== 注意 (Rootkit!)
S4 edgeupdate; "C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /svc [X]
S4 edgeupdatem; "C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /medsvc [X]

===================== 驱动器 (将列入优先名单) ===================

(如果一个条目包含在固定列表中,它将从注册表中删除。 除非单独列出,否则文件将不会被移动。.)


R1 ACE-BOOT; C:\Program Files\AntiCheatExpert\ACE-BOOT.sys [1824344 2025-05-27] (Microsoft Windows Hardware Compatibility Publisher -> ANTICHEATEXPERT.COM)

这里显示的信息就是:
HKLM\SYSTEM\CurrentControlSet\Services\dispresflt 这个是Rookit。
已停止并禁用的 名称:edgeupdate 路径:"C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /svc(找不到文件)
已停止并禁用的 名称:edgeupdatem 路径:"C:\Program Files (x86)\Microsoft\EdgeUpdate\MicrosoftEdgeUpdate.exe" /medsvc(找不到文件)
运行中的系统级驱动 名称: ACE-BOOT 路径:C:\Program Files\AntiCheatExpert\ACE-BOOT.sys

1.1.7 然后是网络服务(NetSvcs)部分。
先看一个例子。
==================== NetSvcs (将列入优先名单) ===================

(如果一个条目包含在固定列表中,它将从注册表中删除。 除非单独列出,否则文件将不会被移动。.)

NETSVCx32: HpSvc -> C:\Program Files (x86)\LuDaShi\lpi\HpSvc.dll ()
NETSVCx32: WpSvc -> 无文件路径(no filepath)

语法都是:
  1. NETSVCx32: 网络服务名 -> 路径 (备注)
复制代码


1.1.8 一个月内创建 / 修改的文件。
先看个例子。
==================== 一个月 (创建成功) (将列入优先名单) =========

(如果条目包含在固定列表中,则文件/文件夹将被移动。.)

读取文件时出错: "C:\ProgramData\Documents\desktop.ini"
2025-10-22 22:58 - 2025-10-22 22:58 - 000040979 _____ C:\Users\Administrator\Downloads\FRST.txt

==================== 一个月 (已修改) ==================

(如果条目包含在固定列表中,则文件/文件夹将被移动。.)

2025-10-22 22:56 - 2022-05-07 13:22 - 000000000 ____D C:\Windows\INF

语法是:
  1. 创建时间 - 修改时间 - 大小 _____ (属性标识)文件路径
复制代码

  • 文件夹是没有大小的,因此会显示 “00000000”。
  • 为避免扫描时间过长及生成过大的日志文件,扫描范围仅限于部分预定义位置。此外,FRST 仅列出自定义文件夹,不显示其内容;如果要看某个文件夹里面有什么,那就要用 “Folder:” 指令。这个后面说。
  • 数字签名检查仅适用于 Microsoft 签名的可执行文件(默认处于白名单中),不检查其它数字签名。如果要额外看未签名的可执行文件列表,可使用 “SigCheckExt” 可选扫描功能。

FRST 会为特定日志条目添加以下属性标识:
  • C - 压缩(Compressed)
  • D - 目录(Directory)
  • H - 隐藏(Hidden)
  • L - 符号链接(Symbolic Link)
  • N - 正常(Normal,未设置其他属性)
  • O - 脱机(Offline)
  • R - 只读(Readonly)
  • S - 系统(System)
  • T - 临时(Temporary)
  • X - 不清理(No scrub,Windows 8 及以上版本)



这里粘贴一下我之前在上面求助,他们的官人给的修复脚本。
  1. Start::
  2. CloseProcesses:
  3. SystemRestore: On
  4. CreateRestorePoint:
  5. Unlock: C:\FRST\
  6. RemoveProxy:
  7. Task: {85DA56BC-F7C1-4F4A-8B13-F558CEC4C727} - System32\Tasks\AliProctectUpdate => C:\Program Files (x86)\AlibabaProtect\AliProtectUpdate.exe [1735184 2024-02-22] (ALIBABA (CHINA) NETWORK TECHNOLOGY CO.,LTD. -> Alibaba Group) <==== ATTENTION
  8. R2 AlibabaProtect; C:\Program Files (x86)\AlibabaProtect\1.0.70.1560\AlibabaProtect.exe [2998288 2024-02-22] (ALIBABA (CHINA) NETWORK TECHNOLOGY CO.,LTD. -> Alibaba Group)
  9. R2 AliPaladin; C:\WINDOWS\system32\drivers\AliPaladinEx64.sys [176000 2024-02-04] (ALIBABA (CHINA) NETWORK TECHNOLOGY CO.,LTD. -> AliBaba Group)
  10. Unlock: C:\ProgramData\Documents\Tencent
  11. Unlock: C:\ProgramData\Documents\StartUpLog_20250716_005818.log
  12. Unlock: C:\ProgramData\Documents\OnekeyUpdate_20241027_185402.log
  13. Unlock: C:\ProgramData\Documents\OldOnekeyBigData.log
  14. Unlock: C:\ProgramData\Documents\OldOnekey.log
  15. Unlock: C:\ProgramData\Documents\desktop.ini
  16. Unlock: C:\ProgramData\Documents\Alibaba
  17. 2025-10-15 11:39 - 2025-10-15 11:39 - 000000000 ____D C:\Program Files (x86)\chrome_BITS_24276_996479512
  18. CustomCLSID: HKU\S-1-5-21-1768985679-2922464822-4003270210-1001_Classes\CLSID\{03CF8952-57DF-489F-895C-EA18B3E8750C}\InprocServer32 -> C:\Users\杰\AppData\Local\WinAssist\Tools\WIN-Clear\WinDoc64.dll => No File
  19. CustomCLSID: HKU\S-1-5-21-1768985679-2922464822-4003270210-1001_Classes\CLSID\{9EA08619-C91E-46D0-9FB5-22DA6D9EC653} -> [酷狗音乐] =>
  20. StartPowershell:
  21. Remove-MpPreference -ExclusionPath "D:\Program Files (x86)\GJYJXT"
  22. EndPowerShell:
  23. File: D:\Program Files (x86)\GJYJXT\tools\service\service_zhkt.exe
  24. Reg: reg export HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Defaults\FirewallPolicy\FirewallRules C:\Firewall.reg
  25. C:\Firewall.reg
  26. CMD: netsh advfirewall reset
  27. ExportKey: HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions
  28. EmptyTemp:
  29. Reboot:
  30. End::
复制代码



然后么,通过上面的示例,可以知道大概的一小部分语法。
每行只能有一条指令。多了应该就炸了。
所有的语法都是
  1. 命令:(空格)参数
复制代码
比如:
  1. Unlock: C:\
复制代码

这里的参数好像不可以用逗号分隔,也就是说如果要对好多参数进行操作,必须是一行命令接着一个参数。
如果是单独的指令,那么就是
  1. 命令:
复制代码
(末尾必须加一个英文冒号)

下面是一些语法。
1.  Start::和End:: ,用于脚本开头和结束的标志。例如:
  1. Start::
  2. (脚本正文)
  3. End::
复制代码
2. Reboot: ,重启电脑。
3. SystemRestore: On ,打开系统还原。Off就是关了(不过一般不会关吧)。
CreateRestorePoint: ,创建还原点。
4. CloseProcesses: ,FRST会关闭掉除了系统进程外的全部进程。
5. Unlock: ,解锁目录或者文件(火绒的文件解锁)。每行一个路径。
6. StartPowershell: 和 EndPowerShell: ,这两个是PowerShell的启动和结束标志,两个中间夹PowerShell的代码,每行一个。
7. CMD: 这个后面接CMD代码,好像必须每行都是CMD: xxx这样写。
一些常用的:
  1. CMD: netsh winsock reset catalog
  2. CMD: netsh int ip reset resetlog.txt
  3. CMD: reg export HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Defaults\FirewallPolicy\FirewallRules C:\FirewallBackup.reg
  4. C:\FirewallBackup.reg
  5. CMD: netsh advfirewall reset
  6. CMD: netsh advfirewall set allprofiles state ON
  7. CMD: bitsadmin /reset /allusers
  8. CMD: ipconfig /flushdns
复制代码

8. 注册表操作。
FRST对于注册表有两个选择,一个是删除,一个是还原默认值。
你是无法控制FRST删除哪个注册表键值的,这个由FRST自己判断,避免误删。
以下情况是恢复默认值。
    BootExecute(启动执行)
    Winlogon 值(包括 Userinit 用户初始化、Shell 外壳、System 系统)
    LSA(本地安全机构,Local Security Authority)
    AppInit_DLLs(应用程序初始化动态链接库,Application Initialization Dynamic Link Libraries)

注意:对于 AppInit_DLLs,若其中存在无效路径,FRST 仅会从 AppInit_DLLs 值中移除该特定无效路径,而保留其余有效路径。
注册表操作不需要使用任何批处理文件(batch)或注册表修复文件(regfix),除非你是要修改某个值。这个是为了防止病毒连批处理和注册表的打开方式都劫持的情况。


操作很简单,直接把日志里面提到的复制到脚本里面即可。例如我们前面示例的“档案”部分有一个:
HKLM\...\Run: [ACE-Tray] => C:\Program Files\AntiCheatExpert\ACE-Tray.exe [5045072 2025-05-27] (ACEVILLE PTE LTD -> ANTICHEATEXPERT.COM)

那么直接整行复制进脚本就是。


这里有一个注意事项:如果将 “运行”(Run)、“仅运行一次”(RunOnce)、“映像文件执行选项”(Image File Execution Options)及其它相关注册表项复制到修复列表中,这些注册表项会从注册表中被移除,但由它们加载或执行的文件不会被删除(只会删除调用,而不删除本体)。若需删除这些文件,必须单独列出。
举个例子。
比如,日志里面有这样一行。
HKLM\...\RunOnce: [LT1] => C:\WINDOWS\TEMP\gA652.tmp.exe [216064 2019-04-13] () [File not signed] <==== ATTENTION

如果你只把这行复制进脚本,那么只是这个注册表键被删了,但是源文件C:\WINDOWS\TEMP\gA652.tmp.exe还在。如果连源文件要一起删掉,就要写两行。
HKLM\...\RunOnce: [LT1] => C:\WINDOWS\TEMP\gA652.tmp.exe [216064 2019-04-13] () [File not signed] <==== ATTENTION
C:\WINDOWS\TEMP\gA652.tmp.exe

9. 自启动项操作
这里指的自启动是利用启动文件夹的启动,会以
  1. Startup: 路径 [最后修改时间]
复制代码
列出。
如果启动文件夹里面的是快捷方式,那么下一行将列出该快捷方式的目标路径(即快捷方式所指向的可执行文件)。
  1. ShortcutTarget: 启动文件夹里面的快捷方式名 -> 指向路径 () [证书链]
复制代码

若需同时删除快捷方式及其目标文件,需将两者均列入修复列表。
比如,日志里面有这样两条:
Startup: C:\Users\User\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\helper.lnk [2019-03-25]
ShortcutTarget: helper.lnk -> C:\Users\User\AppData\Roaming\WindowsServices\helper.vbs () [文件未签名]

注意:如果你在脚本里只列出第一行时,仅会隔离快捷方式;只有列出第二行时,才会隔离 helper.vbs 文件。若仅列出第二行,可执行文件会被隔离,但快捷方式仍会保留在 “启动” 文件夹中。下次系统启动时,该快捷方式就会自动尝试运行已删除的可执行文件,会弹出错误提示。

10. 被重定向的 “启动” 文件夹操作
就是指,启动文件夹的位置被篡改了,这种情况日志里面语法是:
  1. StartupDir: 路径  <==== 注意
复制代码
修复也是直接整行贴进去即可。

11. 滥用 “不受信任证书”(Untrusted Certificates)或 “软件限制策略”(Software Restriction Policies)的情况
其一是滥用不信任证书,原理是把某个签名证书加入到不受信库里面,那么这个签名软件就不能运行了,经常被用来反杀毒软件。
日志里面的语法如下:
  1. HKLM\ DisallowedCertificates: 证书哈希 (签名公司/Software) <==== ATTENTION
复制代码


其二是滥用软件限制策略,从而导致杀毒无法运行。比如:
  1. HKLM Group Policy restriction on software: C:\Program Files\AVAST Software <====== 注意
复制代码
(注意,所有软件限制策略都会在这里列出来,所以要人工判断一下。)

12. 可能被恶意软件滥用的其它组策略对象
组策略对象(Group Policy Objects,包括 Registry.pol 文件和脚本)。Registry.pol 中与 Firefox(火狐浏览器)、Google Chrome(谷歌浏览器)、Edge(微软 Edge 浏览器)及 Windows Defender(Windows  defender 杀毒软件)相关的策略会被单独列出来,比如:
  1. GroupPolicy: Restriction - Windows Defender <======= 注意
复制代码


其它的就只会列出来,但是不会列出来详细信息。
  1. GroupPolicy: Restriction ? <======= 注意
  2. GroupPolicyScripts: Restriction <======= 注意
复制代码

13. 计划任务的处理
计划任务的语法看上面第一部分。
注意,FRST 仅会隔离相关的注册表条目并移动任务文件,不会隔离可执行文件。如果该可执行文件是病毒,需要在修复列表中单独添加一行。


GroupPolicy: Restriction - Windows Defender <======= 注意
也是贴进脚本就可以修复。

Startup: C:\Users\User\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\helper.lnk [2019-03-25]ShortcutTarget: helper.lnk -> C:\Users\User\AppData\Roaming\WindowsServices\helper.vbs () [文件未签名]

9. Zip: ,压缩文件或者文件夹,我觉得应该是每行都是Zip: xxx吧。
10. 对于文件、服务、驱动、注册表等等的操作:
就是很简单的,如果是删文件(FRST是会做隔离而非删除),那么直接把文件路径贴进去即可,每行一个。
比如,现在要删除C:\Users\User\AppData\Local\Google\Chrome\User Data\Default\Extensions\ognnfkpjenimhjnebjlnpcckkffjapcn这个玩意,那么直接单开一行把路径贴进去。
计划任务的话,好像是把FRST日志里面的要操作的整行复制进来。比如说,现在日志里面有一行这个计划任务需要关闭:
  1. Task: {E0F10DCF-44AD-40E8-9370-FB5DA59F93FB} - System32\Tasks\Microsoft\Windows\UpdateOrchestrator\USO_UxBroker => %systemroot%\system32\MusNotification.exe  (无文件)
复制代码
那么也是直接整行贴进去即可。
您需要登录后才可以回帖 登录 | [立即注册]

本版积分规则

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