安全便携版geph5制作

中考完无所事事了一个暑假,准备整一个活。看到geph5依旧强制记录日志,http\https代理依旧泄露本地dns,所以写了一个脚本。{后来加注,请直接看下面我发的两楼来修改配置,本脚本无法直接运行,不正常关闭有风险,假如真的出问题了可以修改全局代理和dns解决}
警告:
本人只图方便,脚本不知道会不会报毒。
本脚本会改变默认dns设置,并在结束时改回自动获取dns,请不需要的自行修改或删除。本脚本会自动设置系统http代理(与无界浏览相似,翻墙大法好)。目前只清楚appdata文件夹下有日志,不知道有没有别的。
本脚本中geph5的配置文件叫config.txt,可能与你的不同。本人的http端口是2410,可能与你的不同。本人用WiFi上网,所以有一行是更改WLAN的dns地址,如果你是WiFi上网,通常不要更改,如果不是用WiFi上网,你应该在网络设置中点击更改适配器选项来查看你的网络适配器。
脚本中以rem开头的一行可以删除,注释写在下面,只有序号(不知道为什么这么干)
请每次都正常关闭脚本。
该脚本需要管理员权限。

@echo off
cd /d %~dp0
fltmc >nul 2>&1 || (
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\GetAdmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\GetAdmin.vbs"
    cmd /u /c type "%temp%\GetAdmin.vbs">"%temp%\GetAdminUnicode.vbs"
    cscript //nologo "%temp%\GetAdminUnicode.vbs"
    del /f /q "%temp%\GetAdmin.vbs" >nul 2>&1
    del /f /q "%temp%\GetAdminUnicode.vbs" >nul 2>&1
    exit
)
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
netsh interface ip set dns name="WLAN" source=static addr=8.8.8.8 register=primary
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 1 /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "http=127.0.0.1:2410;https=127.0.0.1:2410" /f
echo N | start /wait geph5-client --config .\config.txt
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyEnable /t REG_DWORD /d 0 /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /f
netsh interface ip set dns name="WLAN" source=dhcp
setlocal
set "targetDir=%APPDATA%"
for /r "%targetDir%" %%f in (*geph5*.db) do (
    del "%%f"
)
endlocal

原注释,结合上下重复的文本,自行理解在哪一行
1.设置 WLAN 接口的 DNS 为静态地址 8.8.8.8,你可以改成你喜欢的dns地址,要是你用的不是WiFi,改成你在网络适配器里看到的名称(一般是本地连接或者WLAN)
2.设置代理服务器为 127.0.0.1:2410,这是我在配置文件中自定义的,你应该改成你自己设置的http代理端口
3.禁用并删除代理设置
4.将 WLAN 接口的 DNS 设置恢复为 DHCP,或者你可以改成恢复你平常用的dns,参见上面设置DNS的部分

上文通过下面的许可协议授权 (He Xie License)
该脚本保留一切权利。有且只有观赏一次绿坝娘的二创的方法才能得到一份非强制的,可转让的,不可撤销的,包括分发,修改,销售,使用在内的一切授权,但不具有修改或去除此协议的权利。你可以随便发布修改后的版本,但不一定得使用此协议授权发布。

我原本想注释的内容是

1.netsh interface ip set dns name="WLAN" source=static addr=8.8.8.8 register=primary
2.reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "http=127.0.0.1:2410;https=127.0.0.1:2410" /f
3.不重要
4.netsh interface ip set dns name="WLAN" source=dhcp

不是,现在初中生都这么牛的吗

我把这个bat放在迷雾通目录下,打开后弹出窗口,很短时间运行结束后无反应,请问什么情况?

能看懂贴主的东东?(敝人码盲 :cold_face:

只看到:reg ......

也许需要将运行V5 自动生成的 config.yaml 拷贝成 config.txt,但贴主就是没明说。

如果是一边运行一边删除日志,运行大佬原版,结束时自己手动删除不也行?

PS:
V5 的日志文件很小,再说程序自身貌似没有允许关闭日志的操作,命令行模式日志显示文字不完全被识别【cmd输出乱码的问题可以安装ansicon(ansi彩色字体补丁)解决】,还有每次运行都几乎正常连接,所以,命令行批处理添加贴主的参数:
@echo off
及 >nul 2>&1
最后命令行窗口成了空白的黑屏,简单粗暴地清爽了。
当然,WIN系统(不添加前述参数)任务管理器内终止 cmd.exe 与 conhost.exe 进程也是可以的,只是结束V5 得终止 geph5-client.exe 进程,没有图形模式方便:
终止 geph5-client-gui.exe 进程可无GUI而正常代理,想再看看网速,再次点击快捷方式图标即可。

只学过c++,感谢,马上去试试。

这个脚本是自用的,一些地方需要手动修改
准备写一下补充说明,想必大家看过迷雾通作者写的迷雾通命令行使用说明了吧
https://community.geph.io/t/topic/15555/4
1.说明中提到的ymal文件,经本人测试,任何种类文件都可运行,因此我自己保存为了config.txt。你应该将config.txt改为自己的配置文件,如匿名1147先生所说

echo N | start /wait geph5-client --config .\config.txt

2.这一行有一个缺陷,只更改了WLAN(WiFi连接)的dns,请自行找一下自己的网络连接(设置,网络,状态,属性按钮上面)并替换,如果自己的dns不在你不喜欢的政府的管辖范围中,或者你不在乎,可以删除

netsh interface ip set dns name="WLAN" source=static addr=8.8.8.8 register=primary

下面是改dns为自动获取,请将其改为自己常用的格式,如果是手动设置的dns,见上面,或者上下两行都删除

netsh interface ip set dns name="WLAN" source=dhcp

3.这一部分也会导致无法正常运行,该脚本自动连接http代理端口,大家应该大多是19999,但我是2410,你可以将2410改为19999

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" /v ProxyServer /t REG_SZ /d "http=127.0.0.1:2410;https=127.0.0.1:2410" /f

免责声明:我从来没有写过这么复杂的脚本,自己水平拉跨,很多地方都需要再次配置,主要是因为迷雾通强制保留脚本,而且http代理会暴露电脑的dns,使本人强迫症发作,与chatgpt合作写了一个极难阅读但没什么技术含量而且只是在自己的电脑里跑得起来的脚本,本来是自用,但希望给大家提供一个思路,为了体现自己的诚意,我会上传自己去除账号密码的配置文件。
geph5.7z (3.8 MB)

如果你使用的是WiFi,我上面上传的那个应该可以直接使用,如果不是,参照提示2,修改正确或删除这两行。
如果有大佬想出全自动的方案的话,可以写在下面,如果认识迷雾通的作者的话,请建议他加上不保存日志的选项和阻止dns泄露的功能。
本人没什么专业素养,只是强迫症使然,如果不想麻烦,可以直接拿我上面发的文件填写账密使用,切记使用网线的朋友们参照上面讲WLAN改为正确的配置(通常是本地连接)

所以WINDOWS下,为什么不直接用VPN模式?

泄露DNS是什么意思?是指这种吗:

... DEBUG client_once:client_inner: geph5_client::client_inner: opening tunnel remote_addr=tcp:443$community.geph.io ...

按网络说法,下载了 ansi189-bin.zip,安装后使用正常,关机后开机使用正常。
再次关机后开机使用仍旧正常,但电脑息屏几分钟后,任务栏无法自动隐藏后展现,
复合键启动任务管理器,显示开始栏已挂住,终止它再启动开始栏,提示什么堆栈溢出,重启系统,机后网络灯爆闪,花了平常数倍时间才关机、启动,显示网络断开,疑难解答正常但就是断的,启动 clash-verge-rev 没见异常,测试节点正常,但系统网络同时显示断开——吓死宝宝了。
运行Autoruns 64发现在 Image Hijacks 中黄色的不正常新建项目,就是 ansicon.exe -i 所建,点击打开注册表,修改 Command Processor 项目,删除了数值名称AutoRun 所对应的数值数据中的多余部分,关闭注册表,Autoruns 64内刷新即正常。
机器重启,一切正常,当然包括彩色字体。
敝人码盲,有说注册表值被前述手动修改前是正常的。只是系统异常前没有其它改动操作,暂且就。。。