安卓修改大师是一款简单的安卓apk程序反编译软件,主要可以帮助用户在一个已经完成设计的程序中添加自己的内容,您可以更改程序的名称,背景的图片,修改程序内部的数据、添加自己的代码内容等,对于修改软件的破解版、汉化版都是非常有效的,本软件使用简单,支持一键加载apk文件,可以对任意apk进行编辑并重新打包、可以查看软件的源代码、查看安装包的名称、应用名称、类名等,操作的项目非常丰富,同时安卓修改大师提供了大量的安卓apk程序下载,您可以只用手机连接到电脑中下载安装,一键添加自己喜欢的程序,需要的朋友可以下载试试!
软件功能
1、自由修改任何定制apk文件
2、修改应用程序图标、应用程序名称
3、自定义应用界面上任何文字、图片
4、可以制作汉化版和多语言版本
5、修改smali代码、实现破解、添加附加功能
6、批量多渠道打包工具、一键快速生成多渠道安装包
7、查看源代码工具,透视任何安卓应用源代码内部逻辑
8、Android 反编译 -smali语法
9、安卓修改大师可以针对APK安装包反编译出来的SMALI代码进行修改,实现破解、增加功能等等,需要您对SMALI语法有一定的了解。
10、安卓修改大师需要在JDK1.7以上的环境中运行,请确保您的电脑安装了JDK1.7以上版本
软件特色
HTML, CSS, PHP, ASP, Perl, C/C++, Java, JavaScript 和 VBScript
语法加亮。并且, 它也支持基于自定义语法文件的其它程序语言。
* 以无缝 Web 浏览器预览 HTML 页面, 并且通过 FTP 命令上传本地文件
到FTP 服务器。
* 其它功能, 包括 HTML 工具栏, 用户工具, 行号, 标尺, URL 加亮。自
动完成, 文本剪辑, 列块选择, 强力搜索和替换, 多重撤销/重做, 拼写
检查, 可自定义键盘快捷方式, 等等...
你可以免费评做使用本软件 30 天。如果你使
用本软件超过 30 天的评估期, 你必须支持注册费用。请参阅在线手册中
的“如何注册”部分。
安装方法
1、下载解压文件,找到“setup.msi”双击安装,进入欢迎界面,点击下一步
2、准备安装软件,单击下一步开始安装“安卓修改大师”
3、正在安装软件,请稍后
4、安装完成,单击关闭退出软件
使用方法
1、打开软件,可以将您的手机直接连接到软件中,可以管理您手机的应用程序、系统文件
2、反编译,讲一个apk文件加载到软件中进行反编译、可以选择一个历史文件进行反编译
3、选择一个多渠道的apk文件进行打包、可以查看源代码、设置日志、安装包信息
4、提供多种安装的应用下载,您可以直接选择安装,将手机连接到软件中就可以了
5、安装游戏下载,软件中有丰富的游戏下载,都是免费的
6、电子书,玩手机的朋友都喜欢电子书,在这里就可以免费下载
使用说明
APK文件
大家都应该知道APK文件其实就是一个MIME为ZIP的压缩包,我们修改ZIP后缀名方式可以看到内部的文件结构,例如修改后缀后用RAR打开鳄鱼小顽皮APK能看到的是(Google Play下载的完整版版本):
无关紧要地注:asset和res资源目录的不同在于:
1. res目录下的资源文件在编译时会自动生成索引文件(R.java),在Java代码中用R.xxx.yyy来引用;而asset目录下的资源文件不需要生成索引,在Java代码中需要用AssetManager来访问;
2. 一般来说,除了音频和视频资源(需要放在raw或asset下),使用Java开发的Android工程使用到的资源文件都会放在res下;使用C++游戏引擎(或使用Lua binding等)的资源文件均需要放在asset下。
因为Where's My Water是使用迪斯尼公司自家的DMO游戏引擎开发,所以游戏中用到的所有资源文件都存放在asset下,除了应用图标这些资源仍需要放在res下。
一、smali的数据类型
在smali中,数据类型和Android中的一样,只是对应的符号有变化:
二、函数的定义
函数的定义一般为:
Func-Name (Para-Type1Para-Type2Para-Type3...)Return-Type
注意参数与参数之间没有任何分隔符,同样举几个例子就容易明白了:
smali文件内容具体介绍
下面开始进一步分析smali中的具体例子,取鳄鱼小顽皮中的WMWActivity.smali来分析(怎么获得请参考下一节的APK反编译之二:工具介绍,暂时先介绍smali语法),它的内容大概是这样子的:
2、网站打包支持视频全屏播放和文件上传功能
3、优化了布局抓取的布局结构显示功能,树状结构显示更加准确
4、优化源代码修改保存的时候的UNICODE编码导致修改后不能编译的问题
5、优化插件添加的时候导致部分页面不能编译打包的问题
6、增加了源代码修改后忘记保存的提醒功能
7、增加了源代码修改或者其他的修改后,需要重新打包生效的提醒功能
8、内部的反编译和修改引擎优化,提供性能和反编译准确度
看得一头雾水的话那是正常的。现在我将逐一解析,理解这些符号的含义令你在后面注入代码的时候事半功倍。
1、smali中的继承、接口、包信息
首先看看开头的几行:
分析完smali文件开头的这些信息,我们已经能在大脑中构造出一个大概这样的Java文件:
smali中的成员变量
下面继续介绍有关成员变量的内容:
在Java代码中调用函数和返回函数结果是一条语句完成的,而在smali里则需要分开来完成,在使用上述指令后,如果调用的函数返回非void,那么还需要用到move-result(返回基本数据类型)和move-result-object(返回对象)指令:
smali中函数实体分析
下面开始介绍函数实体,其实没有什么特别的地方,只是在植入代码时有一点需要特别注意,举例说明:
这是onDestroy()函数,它的作用大家都知道。首先看到函数内第一句:.local 0,这句话很重要,标明了你在这个函数中最少要用到的本地寄存器的个数。在这里,由于只需要调用一个父类的onDestroy()处理,所以只需要用到p0,所以使用到的本地寄存器数为0。如果不清楚这个规则,很容易在植入代码后忘记修改.local 的值,那么回编译后运行时将会得到一个VerifyError错误,而且极难发现问题所在。我正是被这个问题困扰了很多次,最后研究发现.local的值有这个规律,于是在文档查证了一下果然是这个问题。例如我往onDestroy()增加一句:this.existed = true;那么应该改为(注意修改.local的值为1——使用到了v0这一个本地寄存器):
另外注意到.line这个标识,它是标注了该代码在原Java文件中的行数,它也很有用,想想使用eclipse开发时,遇到错误崩溃时,在catLog不是有提示哪个文件哪一行崩溃的么?Dalvik VM运行到.line XX时就将这个值存起来,如果在这一行运行时出错了,就往catLog输出这个值,这样我们就能看到具体是哪一行的问题了。jd-gui这个工具也是通过分析这些信息将smali代码还原成我们喜闻乐见的Java代码的。当然,它不是必须的,去掉也没有关系,只不过为了方便调试还是保留一下吧。
更新日志
1、新增了Activity修改功能,可以通过该功能实现多应用图标,无图标隐藏,或者跳过启动界面、激活界面和登录界面,直接将核心功能界面设置为启动项,实现破解功能
2、优化了内置的源代码编程器,解决了部分App由于编码问题,修改后不能重新打包的问题
3、解决了设置的工作目录被删除导致应用不能正常启动的问题
4、升级反编译引擎为最新版,解决了部分apk不能反编译的问题
5、解决了网页打包未选择截屏功能也会被报打包后的apk为风险应用的问题
6、解决了新版本的Android Studio打包的apk反编译后安装失败的问题
7、优化了反编译引擎,解决了部分apk的lib目录和assets目录反编译失败的问题
8、优化了布局抓取的布局结构显示功能,树状结构显示更加准确
∨ 展开