我是GIS初学者,爱好二次开发,像初恋一样。最近对编译感兴趣,每当成功获取一点信息,就有一种快感,感觉马上就要成功了……其实,还早!
01.初次反编译
今天在微创业工作室找到了Google POI下载工具,反编译后错误很多,还有很多问题需要解决,可能反编译源码困难挺大的,还是知难而退,慢慢积累经验,现在解决不了的,以后也可能会解决。
02.许可代码FrmLisence.cs
在FrmLisence.cs有获取CPUID的函数,也有加密和解密函数,竟然这样的直白!
于是,我按照相关函数,也写了这样的许可注册窗口,和它的结果一样。
但最后重启后,还是只能处理200条数据,空欢喜,生活有时就是这样!
03.查找200条
既然是200条在作怪,我就要看看为什么限制了200条,这么少?发现是isKey变量在作怪,isKey是怎么定义的?它是mainForm的构造函数中传进来的,应该要在Program.cs文件中来找答案。
04.机智的作者
万万没想到,机智的作者在Program.cs文件中也写了一个Encrypt函数,并且和FrmLisence.cs中的有点不一样。我可以这样理解吗:注册窗口的注册并不能真正注册,我们往下分析。
05.许可代码Program.cs
这里的代码写得很显示了,str1是读取ini文件中的许可码(它是由FrmLisence.cs中Encrypt函数生成),str2是由Program.cs文件中Encrypt函数生成,如果两者相等,isKey的属性则为true,如果两者不等,则传入主窗口的函数永远为false,也就是只能下载200条。天啊,这两具函数中的bytes1不一样,其他都一样,怎么可能等?
06.修改Encrypt函数
将Encrypt函数修改成与Program.cs文件中的一样后,重新生成许可码,和原来的不一样了,这下应该可以了吧。
07.许可测试
最后测试,通过,算是完成破解了。
08.结果分析
这个数据质量怎么样,有待研究!