GoodSync 破解

GoodSync 简介

GoodSync 是一个很好用的文件同步工具,可以同步本地的目录,也可以将数据同步到另外一台计算机。免费版可以使用完整功能,有30天的限制,30天后同步任务不能超过3个,同步文件数量不能超过100。

破解思路

破解过程,主要参考了帖子:https://www.52pojie.cn/thread-533013-1-1.html
先说下大概思路,收费版本有个标志,是0x4000,满足该标志时跳转到企业版(ENTERPRISE)的功能。原帖中,是将跳转前给标志赋值,我这里改动后,有时好使,有时候不好使,具体原因不明,可能是版本更新加入了新的检查,所以稍加改动,找到写入该标志的变量位置,这里赋值为0x4000,功能都正常了,暂时没发现问题。

详细过程

因为我这里安装的是64位的版本,所以要用x64dbg调试。断在程序入口后,搜索关键字“ENTERPRISE”:

然后找到[rax + 4]的位置,下硬件写入断点,然后重新运行:

这里会来两次,应该是用于初始化变量,再F9:

这里将ecx传给[rax + 4],此时将ecx赋值为0x4000,再进行后续的判断,就变为企业版了,先将

mov dword ptr ds:[rax+4],ecx 

改为跳转到一块空白的地址:

再将新地址写入汇编

mov ecx,4000 
mov dword ptr ds:[rax+4],ecx 
jmp goodsync-v10.140523429


这样就完成了破解。

题外话

原帖给程序打补丁时,为了保存寄存器环境,用到的pushadpopad指令,x64中不支持这两条指令,如果有需要,只能手动挨个保存寄存器。详见 Intel 手册《64-ia-32-architectures-software-developer-manual-325462》– “PUSHA/PUSHAD—Push All General-Purpose Registers”章节:

分享到:

0 条评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

沙发空缺中,还不快抢~