在码农港湾
做一个实实在在的内行人

《Android破解之北斗手机定位系统》之继续破解

前几日,看到一篇文章颇有意思的破解文章,便尝试亲手操刀试一试,文章来源:《 Android破解之北斗手机定位系统》,来源自:吾爱破解论坛,文章链接:http://www.52pojie.cn/forum.php?mod=viewthread&tid=385773,感兴趣的朋友可以速速围观,下面我要说明的是以下几点:

工具:APK改之理(Apk IDEhttp://www.onlinedown.net/soft/427172.htm

一款可视化的用于修改安卓Apk程序文件的工具,集Apk反编译、Apk打包、Apk签名,支持语法高亮的代码编辑器,基于文件内容的关键字(支持单行代码或多行代码段)搜索、替换引擎,打造一条龙修改工具(不必再借助各种第三方工具),从而大大简化Apk修改过程中的繁琐工作,节约时间,让你能够把精力全部集中在修改任务中。

  1、全自动的反编译、编译、签名,从此不必再输入繁琐的Apk解包、打包命令。

  2、以树目录管理全部Apk资源文件,浏览、管理、打开、删除文件或文件夹都可以统一在软件中实行,方便快捷。

  3、自动识别图像资源,并提供该类资源的快捷替换功能,方便修改这类图片资源。

  4、内置代码编辑器,支持包含(但不限于)。samli、。xml、。html、。java等的各种文件的语法高亮显示,根据文件格式自动匹配相应语法;同时支持使用系统编辑器来编辑代码文件。

  5、内置基于文件内容的单行或多行代码搜索、替换引擎,一键搜索替换,可显示无穷多个搜索结果以标签的形式分门别类;可指定搜索范围(全部源代码或在指定的文件夹中搜索),支持正则表达式搜索和替换。搜索功能是Apk修改的一个重要工具,从此你不必借助其它第三方搜索工具。

  6、内嵌Unicode、AscII互转工具,以方便汉化类修改。

  7、内置类似于系统cmd.exe的命令窗口,高手也可以手动直接输入各种命令来手动操作。

  8、所有操作步骤、操作结果都以良好的阅读格式输出在日志窗口,方便查看修改的历史记录。

  9、内置adb功能,包括使用adb向设备(或模拟器)安装、卸载修改后的apk进行测试,并嵌入adb log、ddms等功能监测修改apk的运行状况,以便于分析和查找错误。

  10、支持界面换肤。

截图如下:

small语法:

反编译后可以得到jar或者得到smali文件,Android采用的是java语言 进行开发,但是Android系统有自己的虚拟机Dalvik,代码编译最终不是采用的java的class,而是使用的smali,具体详情看参考文章:http://mobile.51cto.com/aprogram-464015.htm

,这里我列下基本语法,以便本内容使用:

.field private isFlag:z  定义变量

.method  方法

.parameter  方法参数

.prologue  方法开始

.line 12  此方法位于第12行

invoke-super  调用父函数

const/high16  v0, 0x7fo3  把0x7fo3赋值给v0

invoke-direct  调用函数

return-void  函数返回void

.end method  函数结束

new-instance  创建实例

iput-object  对象赋值

iget-object  调用对象

invoke-static  调用静态函数

条件跳转分支:

“if-eq vA, vB, :cond_**”   如果vA等于vB则跳转到:cond_**

“if-ne vA, vB, :cond_**”   如果vA不等于vB则跳转到:cond_**

“if-lt vA, vB, :cond_**”    如果vA小于vB则跳转到:cond_**

“if-ge vA, vB, :cond_**”   如果vA大于等于vB则跳转到:cond_**

“if-gt vA, vB, :cond_**”   如果vA大于vB则跳转到:cond_**

“if-le vA, vB, :cond_**”    如果vA小于等于vB则跳转到:cond_**

“if-eqz vA, :cond_**”   如果vA等于0则跳转到:cond_**

“if-nez vA, :cond_**”   如果vA不等于0则跳转到:cond_**

“if-ltz vA, :cond_**”    如果vA小于0则跳转到:cond_**

“if-gez vA, :cond_**”   如果vA大于等于0则跳转到:cond_**

“if-gtz vA, :cond_**”   如果vA大于0则跳转到:cond_**

“if-lez vA, :cond_**”    如果vA小于等于0则跳转到:cond_**

看到这里应该大概明白为什么作者要改lt为gt了吧,小于变成大于了,呵呵,这里大家重点要掌握就是这个函数调用:invoke-static,看明白了基本就可以完成下面去广告的功能了,除了作者的lt转gt功能;

去广告:

如果大家完成了作者的修改lt左右后,发现有个非常讨厌的弹出广告每次都出来,而且不小心点击就会自动下载,我就中招无数,可怜了笔者的小手机,故此必须除掉它,我们首先看下整个项目反编译后的效果,浏览会发现waps这个jar 包,

那就好办了,搜索waps 关键字,终于出了它本身之外,我们发现了在自己的smali文件里出现了一个方法showPopAd,判断就是它,直接删除即可,编译生成可不再显示弹出广告;

修改软件显示信息

1,中文

直接定位到string文件,双击打开就可以编辑任何可见中文,截图如下:

2,ASCII

发现文字是直接写到代码里面的,这里表示对开发者偷懒的极度不满,让破解遇到问题,比如如下文字:

没有办法,只能先转换了,在线转换网站:http://tool.oschina.net/encode?type=3

转换后明显亲切了,如下图:

遇到问题如何解决:

1 破解工具使用,记得要安装JDK1.7喔,不然可能出现问题吧,出现别的问题自行百度;

2 语法问题,smali 基本语法要懂,不然无法下手,反正就是边学边用,程序员基本都是如此;

3 第三方jar包,建议先浏览看看有哪些方法,然后进行全局搜索;

ASCII,遇到不要怕,因为这是可以转成中文的,如果看不懂,记得转成中文喔;

联系笔者:

感兴趣的可以发邮件联系笔者:mmw05@163.com,特别注明:破解后的软件不免费提供,请尊重知识产权。

附言:

非常感谢原破解作者,站在巨人肩膀,别忘记了继续往上爬,不然,你还是没有人家看的高,看的远,与君共勉。

推荐优质APP:IT面试宝典

iOS(http://dwz.cn/1EOMlZ
Android(http://dwz.cn/1Z9xjW


码农刷题必备工具 VS 码农进阶必读书籍

IT面试宝典宝典書城