17345180228 发表于 2024-5-8 22:24

SQLyog Trial破解

破解的是sqlyog目前最新版本的试用版,目标是无限的试用期.
准备 一个已经过了试用期的sqlyog,一个可以调试64位程序的调试器。
在打开后可以看到的是直接就弹出了这样一个框框

看到这一没有注册那么这个软件开始试用的日期不会存在服务器里,而考虑到软件开发者希望卸载了软件试用期不会刷新那么肯定会存在某一个地方。要么是注册表要么创建个数据文件丢在系统盘。同时在试用期可以发现这个试用版有着大部分所需要的功能,具有破解的价值。
接下来就是开始动态调试。
首先拖进调试器,可以发现这程序没壳。那么就只需要找到关键函数就好。我优先考虑的是通过注册表方式存取当前时间那么作为一个64位程序应该会调用RegQueryValueExW函数,而这个函数通常需要提供由RegCreateKeyEx获取的句柄,那么如果不对常量区加密那么一定会有注册表项的名称出现。在一阵枚举后便可以发现定位到这一注册表路径后便是打开注册表编辑器验证是不是如我们所想一般在打开后可以看到如下两个注册表项,在编辑器中分别搜索对应的字符串并在后面调用了RegQueryValueExW函数的字符串处和下断点在第一次运行后可以看到来到了取注册表项lnD110处的函数。在此处通过RegQueryValueExW的声明可以知道数据表项的参数中有指向接收值数据的缓冲区的指针。在完成调用后我们可以发现如下的指针指向的内存地址被写入了注册表项的值之后便是动态调试在分析由前面得知的rsp+0x64这一块内存中数据的操作情况可以分析出数据经历了以下的阶段可以看到在对取值后的数据解密后会将数据复制给rbx指向的内存地址中暂存。而且如果解密后的值为负数那么视为0.考虑到这十分有嫌疑的操作。便在赋值完成后修改下这块地方看看效果。我才去的修改方式如下图所示从到。在修改完成后直接F9运行,效果如下,可以看到功能正常未受影响,无限试用期实现



192939 发表于 2024-5-9 08:33

你是深怕别人看懂么

byh3025 发表于 2024-5-10 14:48

那些dbg的截图没看到代表什么

17345180228 发表于 2024-5-10 16:00

byh3025 发表于 2024-5-10 14:48
那些dbg的截图没看到代表什么

第一个是搜索字符串搜到的明文注册表路径,之后的是在注册表编辑器中找到这个路径下的注册表项,之后的一张dbg截图是注册表项名称被取值作为参数调用RegQueryValueExw的函数然后的一张截图是从注册表取值后的操作部分。最后的两张图是我对这个函数体的修改,在rbx出栈前把rbx指向的内存地址(这个是通过前面的分析发现的解密后的数据存放的内存地址)强制修改一个较大的值.

学编程的闹钟 发表于 2024-5-12 18:08

谢谢分享
页: [1]
查看完整版本: SQLyog Trial破解