由于最近一些其他事忙,加之电脑显卡坏了,所以,好长一段时间没有更新博客了,感觉对不注关注我的朋友。从本文开始,博客更新频率将会大大降低,但每周都会更新的

在上帝之眼论坛看到了新出来了一个google瓦片下载及拼接工具,看起来不错,这是第一次看到没有视图窗口的地图下载器,还没测试过功能,查壳是.NET写的,于是准备来看看。

1.试用程序

试用程序的目的,一方面是熟悉软件的使用,进一步了解软件,另一方面,也更重要,看它的限制点有哪些,是什么。这往往是为下一步甚至整个过程打下基础。比如这个程序,打开就弹出提示消息 "试用次数为1000次",当然,这个软件是否还有其他限制,还需要进一步地观察。

在试用程序时,我们可以借助帮助文档快速熟悉软件。程序的限制一般有三种:第一种是完全不能让你使用,需要插入加密狗或许可文件等,这通常是一些行业软件做法;第二种是让你试用,在时间、次数或功能上进行限制,这是大多商业软件的做法,所以,就有了我们经常听说标准版、专业版等;第三种,让你完全使用,但数据输出进行限制,比如地图下载器,试用版本下载的结果经常在地图上打上水印。

2.搜索关键

我们找到了"试用次数为1000次"的信息后,就按图索骥,用.NET Reflector打开GoogUrim.exe程序,搜索就可找到LinePassord函数。

就像警察破案一样,我们得找关键的物证或人证,才有可能把案子给破了。整个过程需要分析、推理、上下关联等等,当然也有破不了案的情况,如证人做伪证(壳没脱好,乱码)。包括其他程序的破解基本都是这个过程。如果破解安卓程序也类似于这样。下面是此函数的具体内容:

public static bool LinePassord()
{
string str2;
int num = 0x3e8;
RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\Main", true);
object objectValue = RuntimeHelpers.GetObjectValue(key.GetValue("Window pass"));
if (objectValue == null)
{
str2 = Conversions.ToString((int) (num + 0xef811));
key.SetValue("Window pass", str2);
MessageBox.Show("首次启用软件,试用次数为" + Conversions.ToString(num) + "次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return true;
}
int num2 = Conversions.ToInteger(objectValue) - 0xef811;
int num3 = num2;
if (num3 == (num + 1))
{
return true;
}
if ((num3 >= 1) && (num3 <= num))
{
str2 = Conversions.ToString((int) ((num2 - 1) + 0xef811));
key.SetValue("Window pass", str2);
return true;
}
string text = "试用次数已完,请您注册!";
MessageBox.Show(text, "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return false;
}

  

3.分析代码

找到了证据(关键点)我们就得认真来分析代码了,来搞清楚作案人员(开发者)的动机及作案过程。这需要一定的编程基础和实践经验。

上面这个函数主要读取注册表Software\Microsoft\Internet Explorer\Main路径下是否有Window pass项,这个项目应该是首次程序运行是新建的,以记录打开的次数,如果我们重新打开软件,程序将从982008变成982007次。这个开发者还是有良心的,试用次数还这么多,一般的程序都只能使用一次或者十几次。

04.修改程序

最简单的修改方法即是修改次数,当然,也会学会IL的基本语法。

05.深入分析

我们在函数上右键,使用分析功能,即可发现,有两个Load函数调用它,而且都是进行条件判断使用,再结合这个函数本身没有基本设置,只是读取和操作了注册表中的信息。我们可以直接将这个函数的返回值改为真即可。

加载一个1(即为真),返回即可。

要想熟练修改程序,需要学好IL语法。

06,导出测试

将修改后的程序导出来,测试其他效果。

"冰冻三尺,非一日之寒!"并不是说一次性就能操作成功,我们不得不进行反反复复修改,反反复复测试,反反复复使用。

原版程序及破解补丁:

http://pan.baidu.com/s/1pJxItrP

http://www.t00y.com/file/109538324

.NET破解之google瓦片下载及拼接的更多相关文章

  1. Google POI下载工具破解之路

    我是GIS初学者,爱好二次开发,像初恋一样.最近对编译感兴趣,每当成功获取一点信息,就有一种快感,感觉马上就要成功了……其实,还早! 01.初次反编译 今天在微创业工作室找到了Google POI下载 ...

  2. Google瓦片地图算法解析

    基本概念: 地图瓦片地址:http://mt2.google.cn/vt/lyrs=m@167000000&hl=zh-CN&gl=cn&x=420&y=193& ...

  3. 如何在Google上下载高清原图

    在我们学习和生活中常常一些高清图片作为相关的素材,比如制作PPT.写博文.制作视频都需要大量图片.我们常常会在百度上下载一些图片,但是百度上提供的图片存在很多问题:存在水印.清晰度不够等.而Googl ...

  4. Google APK下载

    在线下载google play中apk的网站 1.http://apps.evozi.com/apk-downloader 2.http://downloader-apk.com/ 3.http:// ...

  5. google兴趣点下载工具

    继上次百度兴趣点版本的发布以后,发现百度只能下载本国数据,并且数据完整度还是和google的少一些,所以本次经过钻研与解密,实现了google地图下载工具,版本的主要功能如下: 1.支持多线程下载,支 ...

  6. JDBC中 mysql数据库的连接工具类 Java登录 及增删改查 整理 附带:Navicat Premium 11.0.12中文破解版.zip(下载)mysql数据库工具

    先写一个工具类,有实现MySQL数据库连接的方法,和关闭数据库连接.关闭ResultSet  结果集.关闭PreparedStatement 的方法.代码如下: package com.swift; ...

  7. Zend Studio 9.0.2破解文件和注册码下载

    Zend Studio是Zend Technologies开发的PHP语言集成开发环境(IDE),是公认最好的PHP开发工具.当前Zend Studio最新版本是9.0.2. Zend Studio ...

  8. 用电脑从Google Play下载apk

    用电脑从Google Play下载apk 方法一:给Chrome浏览器安装apk-downloader插件,需禁止 SSL 错误警告,即在Chrome的快捷方式上加入"--ignore-ce ...

  9. 如何用Google Drive下载超大型文件

    本文将对「如何下载Google Drive中的超大型文件?」这一问题展开探索和解决. 太长不读:直接看这里 情景与问题 在AI.系统安全等研究领域,一项研究成果的产生需要大量的数据样本进行训练和分析, ...

随机推荐

  1. Android关于Theme.AppCompat相关问题的深入分析(转)

    http://www.jianshu.com/p/6ad7864e005e 先来看这样一个错误: No resource found that matches the given name '@sty ...

  2. 顺序图(Sequence Diagram)

    顺序图(Sequence Diagram)对系统的动态方面来建模. 顺序图是强调消息时间顺序的交互图. 协作图则是强调接收和发送消息的对象的结构组织的交互图 如何对动态方面建模?  所谓动态文面,即 ...

  3. 暴力清除Android中的短信

    有些短信程序有bug,当短信(特别是彩信)没有接收完整,或者是一些异常情况下,你会收到一条短信但是看不到或者看不了. 此时郁闷的事情就来了,系统会提醒你还有1条未读短信,但是你满世界都找不到这条短信. ...

  4. [0x01 用Python讲解数据结构与算法] 关于数据结构和算法还有编程

    忍耐和坚持虽是痛苦的事情,但却能渐渐地为你带来好处. ——奥维德 一.学习目标 · 回顾在计算机科学.编程和问题解决过程中的基本知识: · 理解“抽象”在问题解决过程中的重要作用: · 理解并实现抽象 ...

  5. smartjs - DataManager 场景示例分析 - 数据懒加载

    发一张policy的参数图设置图: 场景1 - 数据的懒加载/延迟加载 在很多时候,为了提高网页的加载速度,减少不必要的开销,会将页面的数据拆分成几个部分,首先加载呈现可视区域内的数据,然后剩下来的会 ...

  6. [git]git add 增加文件,文件名乱码

    使用git add添加要提交的文件的时候,如果文件名是中文,会显示形如 274\232\350\256\256\346\200\273\347\273\223.png 的乱码. 解决方案: 在bash ...

  7. Android学习笔记之DocumentBuilder的使用....

    PS:当你的才华还撑不起你的野心时,那你需要静下心来学习..... 学习内容: 1.从服务器上获取XML文档... 2.解析XML文档中的内容...   XML文件想必大家都非常的熟悉,可扩展的标记语 ...

  8. 最近一段时间开发客户端app的感悟

    关于android和cocos2d 凭着对大学时候写html+css的一点点的记忆,我还是认为android的布局xml文件还是参考了html+css,只是他更加臃肿!就想 android平台本身那样 ...

  9. ActiveMQ学习(三)——MQ的通讯模式

    1) 点对点通讯:点对点方式是最为传统和常见的通讯方式,它支持一对一.一对多.多对多.多对一等多种配置方式,支持树状.网状等多种拓扑结构. 2) 多点广播:MQ适用于不同类型的应用.其中重要的,也是正 ...

  10. 原生JS实现瀑布流

    浏览网页的时候经常会遇到瀑布流布局的网站.也许有些读者不了解瀑布流.瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数 ...