Xshell、Xftp 免费版去除授权弹窗和强制更新-新手实战
本帖最后由 m1y3ll0w 于 2024-6-1 08:23 编辑## 🍭🎉
更新-20240601:
[新版本去除启动时授权弹窗](https://www.52pojie.cn/thread-1714055-1-1.html#44742174_%E5%8E%BB%E9%99%A4%E5%90%AF%E5%8A%A8%E5%89%8D%E5%BC%B9%E7%AA%97)
[去除强制更新](https://www.52pojie.cn/thread-1714055-1-1.html#44742174_%E5%8E%BB%E9%99%A4%E5%BC%BA%E5%88%B6%E6%9B%B4%E6%96%B0)
因为刚注册不久,想着发个帖子经营一下账号。恰好看到了站内大佬 @iamcjsyr 的帖子 《Xshell 7免费版修改最大标签页限制》,正好自己也要用到 Xshell 和 Xftp,加上之前在站内看了不少去广告弹窗的教程和实例,想亲自动手实战一下。我自己也是新手上路,文中有错误或不当的地方,还望各位坛友们批评指正,不胜感激!
这两款软件免费版功能跟付费版基本一致,但不能商用,且需要注册账号进行授权。
(问了个AI,官网目前没找到功能对比)
**从 7.0.0134 开始,这两个软件的授权弹窗,由【退出前】改到了【启动前】** 👇
不授权验证的话,点【后来】按钮并不能一直推迟,30天后再不授权就不能进入程序主界面了!可以修改系统本地时间验证。
找个临时邮箱注册账号,就可以通过授权验证了!且后续不会再弹窗,**也就没有什么去弹窗破解的操作了**!
至于用一段时间(半年/一年)就强制要求更新,不同人、不同场景,有不一样的需求。我个人是觉得新版本做了功能升级和BUG漏洞修复,升级一下也要不了多少时间。
## 预备
本次修改需要用到 `x64dbg` 反编译调试,难度大概在入门级别,需要一定的基础和耐心。
**新手朋友或者嫌麻烦的坛友们,咱电梯直达 [修补方法](https://www.52pojie.cn/thread-1714055-1-1.html#44742174_%E6%89%8B%E5%8A%A8%E4%BF%AE%E8%A1%A5%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6) ?**
### 应用软件下载
- [官网](https://www.xshell.com/zh/free-for-home-school/)
使用邮箱即可获取家庭/学校最新版下载链接。
目前适用的版本:
Xshell-7.0.0122p.exe
Xftp-7.0.0119p.exe
**7.0.0134 之前的版(退出时弹窗),可以在评论区看看有没有下载**
**7.0.0134 及之后的版本(启动前弹窗)**
(本次更新使用的版本,2024-06-01 官方最新版)
https://cdn.netsarang.net/337bf706/Xshell-7.0.0157p.exe
https://cdn.netsarang.net/337bf706/Xftp-7.0.0155p.exe
云盘链接去掉了,有坛友说是在安利这个云盘,**这真没有**!!!
另外,**也没有安利这个 Xshell 和 Xftp **!纯属个人学习过程分享。
如果之前安装的是付费版,需要先卸载,**里面配置的连接信息看个人需求是否导出保存**!!!`文件->导出`
如果同样是免费版,最新版的安装包会自动识别目录,进行升级安装,不用卸载旧版本,亲自试过了。
### x64dbg 下载
- [官网](https://x64dbg.com/)
- (https://github.com/x64dbg/x64dbg)
官网可以直接打开和下载,GitHub 可能打不开。
### 基础认识
- [零基础新手破解学习导航帖](https://www.52pojie.cn/thread-582852-1-1.html)
- (https://www.52pojie.cn/thread-762711-1-1.html)
- (https://www.52pojie.cn/thread-1393075-1-2.html)
- [汇编常用指令](https://blog.csdn.net/qq_36982160/article/details/82950848)
- [汇编命令及OD常用命令及断点设置](https://www.52pojie.cn/thread-211740-1-1.html)
**上面的文章帖子看不懂没关系的,我也没完全看懂,大概了解一下,别因为参考文章没看明白就放弃了!**
插件选一些自己需要的安装即可,比如:`ScyllaHide(反反调试)`、`E_ApiBreak(常用断点)`、`x64dbg_tol(中文搜索支持)`。
本次实战需要先安装 `ScyllaHide(反反调试)` 插件,因为程序有反调试会报异常退出。其他插件暂时没有用到,看个人情况安装。
## 开始
关键操作点:
0. 查壳(简单壳可尝试脱壳,高强度壳咱一般人干不过)
1. 设置反反调试,程序能调试运行,事半功倍
2. 设置弹窗断点,定位弹窗入口
3. 调用堆栈定位,找出程序级别调用弹窗的关键代码
### 查壳
> 尽可能在官方正式渠道下载查壳工具,最好是在虚拟机内操作,避免破解第一步就中木马病毒!
坛内搜索 “查壳”,看看坛友们基本用哪些个查壳工具,自己选一两个。
坛内爱盘工具包内基本都有提供下载 [爱盘](https://down.52pojie.cn/Tools/PEtools/)
**查壳结果:xshell.exe、xftp.exe 目前都没有加壳**
### 设置反反调试
**安装 `ScyllaHide(反反调试)` 插件**
- 建议直接下载 (https://www.52pojie.cn/thread-1393075-1-2.html) 插件合集,下载解压后,将 `plugins` 复制到自己安装的 `x64dbg` 对应目录。
- (https://github.com/x64dbg/ScyllaHide) GitHub 下载,可能访问不了,我有权限放附件的话,就放一个。
安装不上插件也没关系,只是不能调试定位,但还可以通过搜索关键词字符串定位关键代码。先按 `F9` 让程序运行到入口(EntryPoint)处,再按 `Shift+D`,在当前模块中搜索字符串。比如本次修改,搜索 `exit`,就能直接定位到关键代码。
**配置插件参数**
因为软件是 32 位的,所以打开 `x32dbg.exe`, 配置插件参数,运行调试。
```
VMProtect x86/x64
Obsidium x86/x64
Themida x86/x64
```
上面三个配置对本次修改的程序都可以反反调试,主要区别在于内部的配置项勾选。
具体配置项名称含义和作用,可以参考 ScyllaHide 在 GitHub 上的 [说明文档](https://github.com/x64dbg/ScyllaHide/releases/download/docs-2019-05-17/ScyllaHide.pdf),英文的,想要深入了解反反调试的可以研究一下。由于本人也是业余选手,就没仔细研究了。
`VMProtect x86/x64` 勾选的配置项在三个里面最少,且能正常运行调试,本次参数配置就选它了。确认后会提示重新载入目标程序后生效。
### 设置弹窗断点
参考站内 [去除WinRAR广告弹窗](https://www.52pojie.cn/thread-742553-1-1.html) 帖子,大概知道了弹窗函数是 `CreateWindowExW`,在 `x32dbg` 界面下方的命令输入框,输入 `bp CreateWindowExW` 回车即可打上断点。
如果以后遇到的弹窗不是 `CreateWindowExW` 这个弹窗断点,怎么办呢?那可以参考 `E-ApiBreak` 插件里面的 `对话框`,选择其他弹窗断点。具体函数概念和效果可以自行搜索了解一下。
`E-ApiBreak` 很实用,目前只找到 32 位的插件,64 位的就自己参照名称,手动下断点了。
(https://www.52pojie.cn/forum.php?mod=viewthread&tid=1384349)
### 调用堆栈定位
知道了弹窗函数入口,可以通过调用堆栈找到是哪里调用了这个 `CreateWindowExW` 窗口函数。
有个注意的事项, `CreateWindowExW` 窗口函数在程序中可能会被调用很多次,因为其他正常窗口加载也会调用这个函数。所以,断点设置之后,先禁用,等到程序进入主界面,**在你准备退出程序之前,再启用断点**,这样就能准确断在退出弹窗的调用链上。
在退出程序之前,如果程序界面卡着没反应,查看是否卡在断点代码了,点击 → 运行即可,因为在手动退出之前的断点不在修改范围。点击关闭按钮,或命令行输入 `exit` 之后的断点才是要关注的地方。(可能有人会卡在这,不知道怎么回事)
点击 → 运行有时候会出现主线程 `Suspended` 暂停的情况(具体原因目前也不清楚),可到线程面板里面,手动把主线程 `恢复线程`,就可以继续调试了。
准备退出程序之前,启用窗口函数断点,退出程序,发现确实断在了 `CreateWindowExW` 窗口函数,堆栈调用信息如下:
堆栈最上方自然是 `CreateWindowExW`入口,往下找到最近一次主程序调用点 `xshell.008F5D85`,可能你的地址不一定是这个,只要前面是 xshell 主程序标识即可。
双击 `xshell.008F5D85` 即可跳转过去,`F2` 打上断点,点击 → 运行,发现弹窗出现几秒消失后才进到断点,说明断点位置靠后了。
在断点的上方发现一个 `call` 调用,有 `NSLICENSE_PersonalNotify` 字样,运气不错,这里很可能就是弹窗代码。
在 `call` 上方的任意一个 `push` 按 `F2` 下断点,比如在 `push 0` 处。
停止本次调试,点击重新运行,发现好多不需要关注的 `CreateWindowExW`断点,**先把 `CreateWindowExW`断点禁用,在退出之前再启用**。(别被 `CreateWindowExW`断点一会禁用一会启用搞晕了,你可以试着一直启用,你就会发现问题)
重新运行,退出程序,调试断在了 `CreateWindowExW` 调用之前,可以逐步调试,确认 `call` 函数内部是否为创建窗口相关的代码。
由于 `call` 里面的代码实在是太多了,一步一步看下去头都晕了。后来才发现代码都不在 xshell 主程序,其实不用细看了。
直接点 `运行到用户代码` 按钮(→👨💼),程序回到了 `xshell.008F5D85`,即 `call` 的下一行,说明整个`call` 都是在系统代码层面创建弹出窗口。
关键操作来了,只要跳过这个 `call` 相关的代码,直接走到 `Exit xshell` 对应的地址 `008F5D88`,就可以干掉弹窗了。
其实弹窗代码上方正好有一个判断,`je xshell.8F5D88`,你的反编译地址可能不一样,但 `je xshell.XXXXXX` 操作是一样的。(前提是都用的 x64dbg,用 OD、IDA 可能反汇编指令会不同,但最终效果是一样的)
**Xftp.exe 的关键代码定位,也是这个流程。**
### 尝试修改
在 `je xshell.8F5D88` 这一行,右键-汇编,把 `je xshell.8F5D88` 改成 `jmp xshell.8F5D88`。选项可以参照勾选。确认修改。后续修改框还在,是改别的内容,不用管了,取消。
代码界面在刚修改的 `jmp xshell.8F5D88` 按 `G` 转为流程图看修改(`G`切换流程图或代码),因为主程序还没有打补丁,流程图还是原本的。改成 `jmp` 之后,就只有一条指向 `Exit xshell` 的路线了,修改还是比较完好的,改动很少。
**Xftp.exe 的关键修改:**
### 打补丁
在代码修改行(代码区域都行),右键-补丁,选中主程序 `xshell.exe` 的修改,这里只有一个补丁。
注意,修补文件为 `xshell.exe`,需要先手动备份一份,以便出错后重新来过,不用重装软件。
直接修补 `xshell.exe` 会报错,因为程序正在运行调试,那就选择修补刚备份的程序文件,自己清楚哪个是修补之后的即可。
修补后,停止调试,把原本的`xshell.exe` 改为`xshell.exe.bak` ,修补的主程序文件改为`xshell.exe` 。
**Xftp.exe 打补丁方法流程也是一样的。注意备份!**
### 验证效果
点关闭按钮退出,或是在命令行输入 `exit`,退出后,没有再弹窗提示,任务管理器里面的进程正常退出,修改完成。
### 手动修补二进制文件
- (https://www.sweetscape.com/010editor/)
不用依赖补丁文件,自己手动修补。
**前提是软件版本得一致!**如果版本不同,请自行按帖子步骤操作。
下载 010Editor 二进制修改工具,免费试用30天,够用了,反正很多人改完之后基本也不会打开这个软件,也不用激活,下次再用,重新安装试用即可。(站内有 010Editor 的破解教程)
**注意先备份!**010Editor 打开 xshell.exe,全局搜索 `74 11 6A 00 6A 07 6A 01`(别复制符号),把开头的 `74` 改成 `EB` 保存即可,注意把输入法设置为大写。为什么搜索这么长?确保全局只搜到一处,精确定位。
修改前后对比,整个程序文件就一处不同。
跟打补丁之后的程序文件是一样的,运行正常,退出没有弹窗。
**Xftp.exe 手动修补:**
**注意先备份!**
010Editor 打开 Xftp.exe,全局搜索 `75 10 6A 00 6A 07 50 6A`,把开头的 `75` 改为 `EB` 保存即可。
## 更新-20240601
> `7.0.0134` 及之后的版本,去除启动前授权弹窗和强制更新。
### 去除启动前弹窗
- `bp CreateWindowExW` 设置弹窗函数断点
- 点 → 运行按钮,直到弹窗出现(出现点不动的情况,到线程列表把主线程恢复运行)
- 调用堆栈找到最近一次主程序调用入口
**手动修补(注意先备份再修补)**
```
Xshell.exe
75 45 6A 07 6A 01 -> EB 45 6A 07 6A 01
74 E3 6A 01 6A 07 -> EB E3 6A 01 6A 07
Xftp.exe
75 45 6A 07 6A 04 -> EB 45 6A 07 6A 04
74 E3 6A 01 6A 07 -> EB E3 6A 01 6A 07
少搜一个字节的话,会发现两个的修补字节码是一样的。
```
### 去除强制更新
> 目前是半年就要求强制更新了,有点离谱了!
- 修改系统本地时间到一年后
- `bp CreateWindowExW` 设置弹窗函数断点
- 点 → 运行按钮,直到强制更新弹窗出现(出现点不动的情况,到线程列表把主线程恢复运行)
- 调用堆栈找到最近一次主程序调用入口
**追码定位**
**检查强制更新 CheckLicenseAndPackage**
**检查版本更新 CheckLiveUpdate**
**手动修补(注意先备份再修补)**
```
修补 Xshell、Xftp 安装目录下的 nslicense.dll 和 nsutil2.dll,注意!Xshell、Xftp 都要修补,一样的操作,别只修补了 Xshell 就完事了!
nslicense.dll
0F 85 BA 00 00 00 57 56 -> E9 BB 00 00 00 90 57 56
nsutil2.dll
75 5D 8B 4B 08 -> EB 5D 8B 4B 08
```
## 参考
- (https://www.52pojie.cn/thread-1393075-1-3.html)
- [去除WinRAR广告弹窗](https://www.52pojie.cn/thread-742553-1-1.html)
- [使用x64dbg+spy去除WinRAR5.40(64位)广告弹框](https://www.cnblogs.com/17bdw/p/7223445.html)
这个压缩包是从 GitHub 官方下载的,包含多个反编译器的文件,使用x64dbg目录下的两个文件即可。ScyllaHide.pdf 为官方英文文档。
本帖最后由 kHXBc8kSg 于 2023-8-26 04:26 编辑
xhell 7.0.0.33 修补
83 C4 0C 89 86 2C 01 00 00 85 C0 75 43 6A 07 6A -> 83 C4 0C 89 86 2C 01 00 00 85 C0 EB 43 6A 07 6A
C0 74 87 6A 01 6A 07 6A 01 FF 15 88 09 4E 00 83 -> C0 EB 87 6A 01 6A 07 6A 01 FF 15 88 09 4E 00 83
xftp 7.0.0.27 与原文相同
此版本为 2023-08-26 最新版本 萧檬驰 发表于 2023-4-14 11:05
因为这个弹窗,一直用着更新前的最后一版(只能4个tab的版本),但是忽然发现强制更新了,找了一下网上的资 ...
不修改程序,屏蔽更新:
1. 工具-选项-更新,关闭实时更新;
2. 安装目录修改更新程序文件 LiveUpdate.exe -> LiveUpdate.exe0000、LiveUpdate.dat -> LiveUpdate.dat0000;
3. host 屏蔽(可选):
# xshell/xftp 屏蔽更新
# 添加后,管理员身份打开 cmd,运行 ipconfig /flushdns,刷新本地 dns 缓存
127.0.0.1 update.netsarangapi.com
127.0.0.1 update.netsarangupdate.com
127.0.0.1 update.netsarang.com
127.0.0.1 up.netsarangupdate.com
127.0.0.1 transact.netsarangapi.com
127.0.0.1 transact.netsarang.com
上述操作,只进行了简单测试验证。长期使用验证需自行留意观察,有问题可回退。
软件强制更新不一定是坏事,太老的版本很可能存在BUG或漏洞。如果新版本内存占用和使用体验不是特别的离谱,还是可以更新的。
至于软件程序内暗藏的强制更新,要去读代码逻辑了,还要调试测试,目前也不想折腾了。
爱飞的猫 发表于 2022-12-24 02:35
直接在 DLL 改被调用的这个函数也可以的。
改dll的都是大佬啊!这个函数在exe中,应该是没在dll。免费版又更新了,不知道有没有改动。 ScyllaHide反调试插件还不错,插件默认和楼主一样的选项,可以过VMP3.5检测,但是过不了VMP3.6的全保护检测。 FSociety 发表于 2022-11-18 21:34
楼主好,我小白想问下搜索字符串,怎么搜不到弹窗里的文字内容?我试了搜所有模块的中英文,谢谢了
可以参考一下大佬的新手教程 https://www.52pojie.cn/thread-1360574-1-1.html
字符串转码或加密了,运行时加载到内存中,故意不让搜索原字符串 谢谢分享,我想问一下,那分享的那个链接就是修改之后的文件吗?想偷个懒,用个现成的 感谢分享,那个广告确实很烦人。 aijiahahha 发表于 2022-11-17 11:26
谢谢分享,我想问一下,那分享的那个链接就是修改之后的文件吗?想偷个懒,用个现成的
是原版安装包,破解版块不能放修改后成品! 修改以后弹窗广告没了,但有报错弹窗 不能商用和退出弹窗其实对我影响不大,破不破问题都不大,还是谢谢 楼主看下,我改了以后退出有错误弹窗https://pic.imgdb.cn/item/6375c5ce16f2c2beb1d1e9d8.png ding52pojie 发表于 2022-11-17 13:21
不能商用和退出弹窗其实对我影响不大,破不破问题都不大,还是谢谢
是的,影响不大。主要是新手技术实战。 文章不错 云烟成雨 发表于 2022-11-17 13:21
修改以后弹窗广告没了,但有报错弹窗
修改版本是一致的吗?可以下帖子中的版本,目前最新的