**Bộ công cụ rà quét và gỡ bỏ phần mềm Windows chuyên sâu**
[](https://github.com/tsudev-tsudev/tsudev-cwico/actions/workflows/ci.yml)
[](../LICENSE)
[](https://www.rust-lang.org)
[](../data/safety-db.json)
[tsudev.com](https://tsudev.com) · [Bắt đầu](#bắt-đầu) · [Cơ chế an toàn](#cơ-chế-an-toàn) · [English](../README.md)
---
## Công cụ này làm gì
Windows giấu phần mềm đã cài ở ít nhất sáu nơi khác nhau. `cwico` đọc tất cả,
phân loại mọi thứ tìm được, và cho phép bạn gỡ những gì không cần - mà hệ điều
hành vẫn hoạt động bình thường.
| Lượt quét | Đọc những gì | API Win32 / WinRT |
|---|---|---|
| **Chương trình** | `DisplayName`, `DisplayVersion`, `Publisher`, `UninstallString`, `QuietUninstallString`, `InstallLocation`, `EstimatedSize`, `InstallDate` | `RegOpenKeyExW` trên `HKLM`/`HKCU` `…\Uninstall`, **cả hai** chế độ xem 64-bit và `WOW6432Node` |
| **UWP / AppX** | Tên gói đầy đủ, family name, nhà phát hành, kiến trúc, đường dẫn cài, cờ framework/hệ thống | `Windows.Management.Deployment.PackageManager` |
| **Gói nạp sẵn** | Các gói nằm trong image, tự cài lại cho mọi tài khoản mới | `FindProvisionedPackages` |
| **Dịch vụ** | Tên hiển thị, trạng thái, kiểu khởi động, `ImagePath` | `EnumServicesStatusExW`, `QueryServiceConfigW` |
| **Tác vụ lập lịch** | Đường dẫn đầy đủ, trạng thái bật/tắt, trạng thái chạy | COM `ITaskService` / `ITaskFolder` |
| **Khởi động cùng máy** | `Run`, `RunOnce` (cả hai hive, cả hai chế độ xem) và thư mục Startup | Registry + hệ thống tệp |
Quy trình gỡ bỏ gồm bốn bước cho mỗi mục:
1. **Tắt tiến trình** của phần mềm - `CreateToolhelp32Snapshot`, `OpenProcess`,
`TerminateProcess`. Các tiến trình dùng chung (`svchost.exe`) và tiến trình
trọng yếu khi khởi động không bao giờ bị đụng đến.
2. **Chạy trình gỡ chính thức của nhà phát hành**, ở chế độ im lặng. Ưu tiên
`QuietUninstallString`; nếu không có thì suy ra cờ silent cho MSI, Inno Setup
và NSIS - và chỉ ba loại đó.
3. **Gỡ gói** - `RemovePackageWithOptionsAsync` với `RemoveForAllUsers`, rồi
`DeprovisionPackageForAllUsersAsync` để nó không quay lại với tài khoản mới.
4. **Xóa tận gốc** - thư mục và khóa Registry còn sót, mỗi đường dẫn đều phải
qua bộ chặn an toàn trước.
---
## Giao diện
*Mỗi dòng đều hiện mức phân loại và **lý do**. Người dùng đang cân nhắc gỡ
Microsoft Edge không phải rê chuột mới biết Windows dùng nó để xem trước PDF.*
*Không có gì xảy ra trước khi bạn xem kế hoạch: điểm khôi phục và bản xuất
`.reg` chạy trước, rồi đến từng bước cụ thể cho mỗi mục - kèm những gì bộ máy
đã từ chối và lý do.*
*Tích ô không phải là xác nhận. Mục `Cẩn trọng` và `Chưa rõ` sẽ mở hộp thoại
này, và đây là thứ duy nhất trong giao diện đặt cờ `confirmed` mà bộ máy yêu
cầu.*
*Mười hai bước cố định của script PowerShell cũ, nay thành 36 thay đổi chọn
riêng được - mỗi thay đổi có mức an toàn, đường hoàn tác và giải thích cái giá
phải trả.*
*Phát hành một bản mới nghĩa là đẩy cập nhật bắt buộc. Không có nút bỏ qua,
không có "để sau" - chỉ có Cập nhật - vì người dùng chạy bản cũ đang dùng đánh
giá an toàn đã lỗi thời cho chính máy của họ. Nhưng nếu không kiểm tra được,
phần mềm vẫn chạy bình thường: sự cố server không được phép khóa toàn bộ người
dùng cùng lúc.*
*Mức bảo vệ thực sự đang được nạp, và nơi lưu các bản sao lưu để khôi phục.*
Ảnh render từ fixture backend (`MockBackend` của `cwico-core`), không phải
kết quả quét máy thật - đây cũng là cách giao diện được phát triển và kiểm tra
mà không cần máy Windows.