文章目录
FreeFileSync (官网: https://freefilesync.org/) 是一款免费、开源的文件夹比较和同步软件,跨平台、多协议、双向文件夹对比同步工具,支持 Google Driver、SFTP(SSH)、FTP 等协议,十分好用,支持 Windows、Linux、Mac OS X,它也适用于64位操作系统。
程序安装默认可选择一个标准的安装程序或作为一个便携式应用程序。采用一个干净、简单、直观的界面,以同步为目标,提供了多种功能。
核总(https:/lcx.cc/)曾经在“全球几款免费的文件对比同步工具简单测评”一文中对该工具做过简单介绍。
核总用这个软件也有好几年了,官方虽然说有便携版功能(无需安装、即开即用),但是限定了只有捐赠版才有,你懂的,要银子~
注意!这是个免费开源软件!为了软件的持续发展,还是希望有钱的大佬购买捐赠版!
如果您发现FreeFileSync很有用,请考虑通过捐赠来支持该项目。
您的捐款将资助新功能的开发,并有助于保持持续的计划维护。这可确保FreeFileSync保持最新,并始终在不断变化的硬件和软件上提供最佳性能。
支持该项目:https://freefilesync.org/donate.php
然而像核总(https:/lcx.cc/)这种穷逼怎么可能买得起捐赠版……
So……
泽东同志说得好,自己动手、丰衣足食~
于是核总(https:/lcx.cc/)对软件研究了一番,主要想实现以下几个功能:
- 绿色便携版功能
- 禁止强制自动更新
(只有捐赠版才能选择是否自动更新,普通版无论选什么都是强制更新,很烦人)
便携版
首先便携版功能比较好实现,官方普通版直接随便安装到一个路径,然后把安装好的文件打包就可以了,也就是说官方程序默认支持不安装运行,也没有注册表依赖什么的,无需进行修改。
文件结构
|
|
禁用自动更新
对程序进行了简单的逆向破解分析后,发现主程序使用了自校验保护,直接修改主程序打补丁的话比较麻烦,于是采用了 dll 注入打内存补丁的方案,简单、粗暴、直接、高效!
更新原理
官方采用的自动更新方法很简单,直接 http 请求:
|
|
如果有新版本的话,则执行以下请求获取新版本更新说明(以 9.5 版本为例):
|
|
最后提示用户更新软件(官方更新频率很高,所以神烦)。
升级请求主要出现在以下文件中:
|
|
破解方案
所以屏蔽自动升级方案就很简单了,直接注入一个 dll 到主程序中,然后直接修改内存 API 函数调用地址,拦截 http 更新请求,也就是内存补丁。
观察了一下 HTTP 请求调用的函数,发现主要使用以下几个 API:
|
|
于是使用 PowerBASIC 简单的写了个 dll,核心源码如下:
|
|
使用方法
然后只需要在主程序启动时注入这个 dll 即可屏蔽所有更新请求。
虽然主程序有多个版本(见 bin 文件夹),但是 win32 版本是通用的,所以只需要启动着一个即可,使用核总很早以前写的 dll 注射器实现启动注入(可使用批处理实现一键启动):
|
|
至此,完美屏蔽自动更新。
相关说明
以上破解思路、代码及程序是核总(https:/lcx.cc/)在 2017 年底记录、开发的,今天没事整理了一下发出来,相关程序见底下下载。
当时破解的版本是 9.5,但是破解补丁是通用的(只要官方没有很大的结构性更新),也就是说 FreeFileSync 9.x、10.x 及以后全版本通杀。