Files
ykxmz/_build/patch_readme_av.py
xmz7891 b62ac865ea ykxmz 1.5.0:修复手表端 TLS 证书校验 + MTU 修复网络稳定性
被控端
- 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%)
- 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败)
- 每分钟回头找局域网,自动切回快 400 倍的路径
- 画面心跳帧:静止时省流量,客户端仍知道流是活的
- 锁屏时给出可操作的提示

手表端
- 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException
- 连接错误翻译成人话(证书/时间/解析/超时分别提示)
- 经中转连上后用服务器报的地址刷新已配对记录
- 新增局域网连接页面、服务器延迟检测

服务器端
- 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502)
- 网络调优脚本 net-tune.sh(开机自动应用)
- 管理页:批量删除、网络体检、下载区
- 隧道改 HTTP/2 + 双连接

文档
- 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
2026-10-06 19:01:05 +08:00

119 lines
4.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""README 补一节:关于杀毒软件误报。
要讲清楚的:
* 哪些特征**天生**会被启发式盯上(不是我加的,是这类工具的共性)
* 我做了哪些**合法**的降误报
* 真正解决误报的办法是代码签名 —— 需要买证书,我做不到
* 为什么我不做免杀
"""
from __future__ import annotations
import sys
from pathlib import Path
README = Path(r"C:\Users\shu\Desktop\deepseekagent\LanRemote\README.md")
SECTION = '''## 关于杀毒软件误报
### 先说结论
**这个工具没有做任何免杀。** 它会被某些杀软启发式报毒,这是真的,
我不打算靠混淆/加壳/加密去绕,因为那正是恶意软件的做法 ——
绕过去之后,你也分不清自己装的是不是真有毒。
真正能解决误报的路只有一条:**代码签名**(要买证书,见下)。
### 为什么会被盯上
| 特征 | 为什么杀软敏感 | 这是谁的需求 |
|---|---|---|
| PyInstaller 打包 | 打包器的引导代码是启发式的重灾区 | 你要「多文件 exe,双击就跑」 |
| 写注册表 Run 键 | 自启动是持久化的典型手法 | 你要「开机自启」 |
| 无窗口后台常驻 | 隐藏进程是木马的常见形态 | 你要「全程静默」 |
| 监听端口 + 收指令 | 远控和被控端在行为上无法区分 | 这就是远控工具 |
| 提权改防火墙 | 改防火墙规则经常被拦 | 你要「黑终端一闪修防火墙」 |
**这五条全是你明确要求的。** 它们组合在一起,行为特征上和远控木马是一回事 ——
区别在于:**配对码是你自己设的、认证是真的、你不会拿它去连别人的电脑。**
### 我做了哪些合法的降误报
1. **`--onedir` 而不是 `--onefile`**
onefile 每次启动都往临时目录解压自己,这是最容易被判毒的行为之一。
onedir 不解压,启动也更快。
2. **`--noupx`**
加壳压缩是杀软重点关注对象,明确关掉。
3. **完整的版本信息**
EXE 里写入了公司名、产品名、文件描述、版本、版权。
未签名二进制有正经的版本资源,比光秃秃的少一点可疑度,
也方便你在杀软里按「厂商 + 产品」加例外。
4. **不做任何偷偷摸摸的事**
没有自我复制、没有进程注入、没有内存加载、没有关闭杀软、
没有偷偷加防火墙例外。自启写注册表是**你勾了勾选框**才做的。
### 你遇到误报时怎么办
**优先做成例外,不要关杀软。**
被控端目录整个加进排除项即可(就是你放 `LanRemote-Agent.exe` 那个文件夹):
```
Windows 安全中心 → 病毒和威胁防护 → 管理设置
→ 排除项 → 添加或删除排除项 → 添加文件夹
→ 选 LanRemote-Agent 那个目录
```
加**文件夹**而不是单个 exe —— 因为 `_internal\\` 里的 dll/pyd 也可能被单独报。
### 真正根治:代码签名
有了签名,SmartScreen 和大部分杀软就不会再拦。需要:
1. 买一张代码签名证书(OV 约 ¥1000-2000/年,EV 更贵但立刻获得 SmartScreen 信誉)
2. 用 `signtool` 给 `LanRemote-Agent.exe` 和 `_internal` 里的 dll 签名
3. 加时间戳(否则证书过期后签名失效)
买了证书之后告诉我,我把签名步骤加进构建脚本。
### 我查到的情况(本机)
这台机器上 Windows Defender 的**按需扫描是坏的**:
```
MpSmartConfigInitialize() failed (80070002)
```
Defender 的 PowerShell 模块(`Get-MpComputerStatus` 等)也不存在,
所以**我没法在这台机器上给你一个权威的"报不报毒"结论**。
我不会假装测过。
想自己确认的话,把 EXE 传到 VirusTotal 看一下 —— 那是最快的办法。
---
'''
ANCHOR = "## 七、后台运行方式"
def main() -> int:
text = README.read_text(encoding="utf-8")
if "关于杀毒软件误报" in text:
print(" README 已有这一节")
return 0
if ANCHOR not in text:
print(" [失败] 锚点没找到")
return 1
text = text.replace(ANCHOR, SECTION + ANCHOR, 1)
README.write_text(text, encoding="utf-8")
print(" README: 已补「关于杀毒软件误报」")
return 0
if __name__ == "__main__":
sys.exit(main())