SourceInsight4.00.0098的破解
开头
能用到的这款代码分析软件的一般都熟悉,我就懒得介绍了,开始是不想折腾去逆向source insight的,后来网上搜好像找不到最新的破解版本,所以就自己花了点时间搞定了最新版本4.00.0098(2019-6-24),文件放到百度网盘上了,下载地址和提取码如下:
|
|
压缩包密码www.oser.space ,就怕哪天会被封了,另外作个无责声明,此破解仅供学习之用,如有侵犯版权,请联系我删除,谢谢!!
记录一下逆向大概的流程
以下不关心技术的同学可以不用看。
首先这个软件是用c++写的,很少用到复杂的库,界面相关的很多处理竟然是原生API搞定的,所以这真是天生就适合拿来破解用的。
- 全局会有一个在堆里的全局结构变量,这个结构中保存了注册码的类型,以及注册的一些相关的信息。
- 全局结构中最值得我们关注的是首4字节,这个值代表了注册码的类型,1是standard标准版,2是trial临时30天版本,3是测试版本
注册的lic文件会放在c:\ProgramData\Source Insight\4.0\ 下的这个文件,会调用XML解析读取内容缓存起来
0x0050F2E0开始,读取文件后会比对缓存的xml结点做一些合法性判断,比如版本号,lic文件有效时间等判断,最关键的一个是注册码的判断
按注册码的算法
除去几个“-”字符外
第1位,必须为S
第2位,理论为数字,取版本号数字4
第3位,理论取TBSU,但标准版本为取S
第4位,取GVR
第7位,取RGDF
后续的4位是根据前面的字符做一个置换表换算出来的,做为验证必须校验通过
校验不成功后续就会有一序列的弹框注册流程,如果第一步校验成功并不代表注册成功,后续还有一个Signature的校验
这个签名的校验就是拿一个公钥来解密一个密文了,这个密文还参杂了本机的卷设备标识做为唯一性特性,具体就不详细分析了,详细分析用处也不大,没私钥也搞不定通用的签名,只能patch掉了。
到此,patch掉关键的返回函数,再算出一个合法的密钥,是不是就解密成功了,但是运行了一分钟就发现乃义务了,其实到这里破解还没完,这货夹带了一个暗桩,启动了一个线程,1分钟跟服务器做一个验证,如果失败会破坏掉你的lic文件。
然后再patch掉这个线程回调,好了这样才一切搞定。