四、Eclipse 开发工具使用
这部分简单介绍下Eclipse,并开发一个简单的apk并在模拟器/真机上运行
1、新建安卓应用项目
1)新建Android Application Project
2)填写新建应用的名字
3)设置应用程序的图标
4)选择空白组件
选择activity组件,有不同的类型,可以自行选择,这里方面先选择空白组件的
之后选择Finish
即可
2、项目文件介绍
第一步创建完项目后,显示如下的页面
在左边项目栏中可以找到主程序的代码MainActivity.java
,双击查看
AndroidManifest.xml
是任何应用程序的清单文件,包含了程序所有的声明和一些配置信息,比如安卓的版本和一些安卓图标名字等配置的信息
Eclipse提供了Manifest.xml
的图形化操作和代码操作如下
3、构建项目
在左边的选项栏随便添加些组件即可,深入学习请自行google安卓开发
4、运行项目
将新建的项目导出运行
选择雷电模拟器
双击启动
五、Jadx-gui 反编译工具使用
这里介绍下Jadx工具钢的简单使用,接下来进入第六节的破解实例中
小技巧:直接拖进去再按搜索类才完整地完成反编译工作
1、载入文件及介绍
载入贪吃蛇apk文件,主要反编译有两个文件,源代码和资源文件,资源文件对应apk中的文件(这里用压缩软件打开apk文件查看到)
2、简单搜索类
3、函数跳转
选择函数,按住Ctrl+左键
可以直接跳转至函数声明处。比如这里的BuyFailed()
六、贪吃蛇apk破解
1、贪吃蛇apk破解简介
在Jadx中搜索到支付失败的字符串,发现BuyFailed()
和BuySccess()
函数,我们可以将这两个函数调整位置或者修改,不过在Java代码层不能修改,只能在Smali代码层中修改,先了解下Smali代码和一些底层的知识
2、apk程序上手研究
在商店页面中点击购买按钮,显示支付失败,如下图。
我们的目标:免费购买全部皮肤
3、Jadx 工具反编译分析
拖入该文件,搜索"支付取消"的位置,简单查看该处代码,可以发现支付取消和支付失败均会跳转至BuyFailed()
方法处,而支付成功会跳转至BuySccess()
方法处,我们可以想到将成功方法覆盖失败方法进而实现免费购买的效果,接着跟进在Smali代码层分析。
4、Android Killer 工具反编译|Smali代码分析
将apk程序拖进Android Killer进行反编译,在工程搜索中搜索"支付取消"字眼,跳转到含有该字符的smali代码处
但是此时有个小问题,怎么确定这里的smali代码对应的是刚刚看到的Java代码呢?Android Killer提供了反编译回Java代码的功能,点击下图上方的标志,查看Java源码,可以发现是一致的。
5、替换smali代码|回编译
找到支付成功的smali代码处,如下红框部分
将其覆盖支付失败和支付取消的smali代码处
保存并回编译
6、查看效果
可以发现,已经可以免费购买了