mirror of
https://gitee.com/xmz7891/ykxmz.git
synced 2026-10-18 13:40:45 +00:00
被控端 - 修复 MTU 问题:夹 MSS + 路径 MTU 探测(公网可用率 48% -> 100%) - 复用 HTTP 连接(免掉每次新建 TLS 的 30% 握手失败) - 每分钟回头找局域网,自动切回快 400 倍的路径 - 画面心跳帧:静止时省流量,客户端仍知道流是活的 - 锁屏时给出可操作的提示 手表端 - 内置 GTS Root R4 / GlobalSign Root CA,修 SSLHandshakeException - 连接错误翻译成人话(证书/时间/解析/超时分别提示) - 经中转连上后用服务器报的地址刷新已配对记录 - 新增局域网连接页面、服务器延迟检测 服务器端 - 支持 chunked 请求体(修每 16 秒一次的连接错乱与大面积 502) - 网络调优脚本 net-tune.sh(开机自动应用) - 管理页:批量删除、网络体检、下载区 - 隧道改 HTTP/2 + 双连接 文档 - 许可协议 / 安装前必读 / 安装后须知(作者:小麦子)
119 lines
4.2 KiB
Python
119 lines
4.2 KiB
Python
# -*- 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())
|