我是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.结果分析

这个数据质量怎么样,有待研究!

最新文章

  1. Live Migrate 操作 - 每天5分钟玩转 OpenStack(42)
  2. .edmx 文件概述(实体框架)
  3. MySQL自定义函数
  4. python操作
  5. Linux-Gcc生成和使用静态库和动态库详解
  6. IO(二)
  7. MSSQL 数字钱转化为大写
  8. 你好,C++(4)2.1.3 我的父亲母亲:编译器和链接器 2.1.4 C++程序执行背后的故事
  9. HTML5 canvas 绘制五星红旗
  10. FpSpread添加标注
  11. LIS算法
  12. iOS设置拍照retake和use按钮为中文简体
  13. jsz中的作用域与上下文
  14. canvas的常见用法
  15. JavaSet接口、唯一元素和Map接口整理
  16. springcloud 入门 9 (消息总线)
  17. 坑!vue.js在ios9中失效
  18. Java后台要看的书
  19. nodemcu生成LUA版本固件
  20. POJ-1191-棋盘分割(动态规划)

热门文章

  1. python中对list去重的多种方法
  2. CODEVS1358【DFS/状压DP】
  3. 关于那些oj链接
  4. [BZOJ4870][六省联考2017]组合数问题(组合数动规)
  5. 去除List中的重复元素
  6. bzoj 1009: [HNOI2008]GT考试 -- KMP+矩阵
  7. Miller-Rabin算法 codevs 1702 素数判定 2
  8. [转]怎么把一个textview的背景图片设置成圆角的?
  9. 2015 UESTC 搜索专题M题 Palindromic String 马拉车算法
  10. 原生+H5开发之:js交互【location方式】