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,再进行后续的判断,就变为企业版了,先将
1 | mov dword ptr ds:[rax+4],ecx |
改为跳转到一块空白的地址:
再将新地址写入汇编
1 | mov ecx,4000 |
这样就完成了破解。
题外话
原帖给程序打补丁时,为了保存寄存器环境,用到的pushad
和popad
指令,x64中不支持这两条指令,如果有需要,只能手动挨个保存寄存器。
详见 Intel 手册《64-ia-32-architectures-software-developer-manual-325462》— “PUSHA/PUSHAD—Push All General-Purpose Registers”章节: