Android常用逆向工具+单机游戏破解
android开发环境搭建
我理解的学习路线是首先要掌握和了解常见的工具、搭建环境。然后就是缓慢的积累特征,通过长期的练习使自己进步,通过android逆向课程的学习。常用的工具如下:
android SDK工具包
(1)adb.exe:android debug bridge 安卓调试桥连接手机、模拟器。
D:\AndroidTools\Android_SDK\platform-tools
(2)monitor.exe:安卓设备监视器
D:\AndroidTools\Android_SDK\tools\monitor.bat
adb.exe 用于调试,monitor.exe用于监视
android adb shell命令约等价于linux shell命令
android集成开发的开发环境
(1)Android Studio
(2)IntelliJ IDEA
Android模拟器
(1)原生的模拟器
(2)BlueStacks[蓝叠]
(3)夜神
(4)海马玩
Android逆向工具
(0)集成类工具:jeb、apkkiller
(1)反编译工具:
baksmali.jar:将dex文件反汇编成smali代码
smali.jar:将smali代码汇编生成dex文件(android的可执行文件)
apktool.jar:基于smali、basksmali工具开发的,可以反编译apk文件成smali,也可以将smali文件回编译成apk文件,
(2)清单文件解密工具:
AXMLPrinter2.jar:清单解密工具,反编译apk中的xml文件
APKParse.jar:套用了Apktool中解析xml文件的源码。
APK15PBParse.jar:APKParse.jar修改而成,修复了原有工具的bug。
(3)APK签名工具:
signapk.jar:使用apktool生成的apk文件,是不能直接安装到模拟器或是手机中的,因为没有签名就会报错。
(4)dex转jar工具
dex2jar:将dex文件转化为java jar包,因为转成jar包之后,方便使用JD-GUI工具反编译成java源码。
(5)java源码反编译工具
JD-GUI:使用JD-GUI打开jar包,可以看到反编译的源码。

游戏破解思路
(1)找寻支付成功的信息,获取支付相关的函数。
(2)将支付成功的smali指令注入到支付失败的函数中。
操作步骤
(1)打开monitor,点击游戏中的购买按钮,抓取到支付的字符串。

(2)在apkkiller转换编码为unicode编码

(3)在apkkiller搜索字符串,然后使用自带的JD-GUI工具查看源码。

(4)在源码中定位到支付相关的函数。payCancel、payFailed、paySuccess

(5)到apkkiller中查找与支付相关函数相关的smali文件。然后smali指令中传参的常量值记录下来。

(6)在函数窗口处查找购买失败的函数(payFailed)、购买成功的函数(paySuccess)的函数传参值,将两者对比。

(7)对比出来传参值的区别后将购买成功(paySuccess)的函数传参值和购买失败(payFailed)的函数传参值相互替换。

(8)将修改后的值Ctrl+s保存后再编译一遍,得到编译后的APK放到模拟器中运行就可以达到破解的效果了。

(9)运行效果

Android常用逆向工具+单机游戏破解的更多相关文章
- Android 常用开发工具以及Mac常用软件
Android 常用的开发工具记录.其中包括AndroidStudio(IDEA)插件.Mac 上好用的软件以及国内知名Android开发者博客等. Android Studio 插件 codota ...
- Android常用的工具类
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Prefe ...
- Android常用的工具类(转)
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...
- 2013最新Android常用的工具类整理
主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java. 目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils. Pref ...
- Android常用正则工具类
此类提供日常开发中常用的正则验证函数,比如:邮箱.手机号.电话号码.身份证号码.日期.数字.小数.URL.IP地址等.使用Pattern对象的matches方法进行整个字符匹配,调用该方法相当于: ...
- Android常用开发工具的用法
1.在命令行创建.删除和浏览AVD 在命令行下管理AVD需要借助于android命令(位于Android SDK安装目录的tools子目录下),如果直接执行android子命令将会启动Android ...
- Android常用的工具类SharedPreferences封装类SPUtils
package com.zhy.utils; import java.lang.reflect.InvocationTargetException; import java.lang.reflect. ...
- Android自动化测试探索(二)常用自动化工具
Android常用自动化工具 ADB - 是Google提供的为Android编写UI测试用例的自动化工具, Android开发/测试人员不可替代的强大工具 uiautomator - 是Google ...
- Unity 4.2.0 官方最新破解版(Unity3D 最新破解版,3D游戏开发工具和游戏引擎套件)
Unity是一款跨平台的游戏开发工具,从一开始就被设计成易于使用的产品.作为一个完全集成的专业级应用,Unity还包含了价值数百万美元的功能强大的游戏引擎.Unity作为一个游戏开发工具,它的设计主旨 ...
随机推荐
- MT【43】抛物线不常见性质2.
注:S为抛物线焦点
- Spark RDD操作之Map系算子
在linux系统上安装solrCloud 1.依赖: JRE solr7.3 需要 java1.8 独立的zookeeper服务 ,zookeeper安装请参考: http://zookeeper.a ...
- Mysql数据库基础小实例 学员管理系统菜单
package test; import java.sql.*; import java.util.Scanner; public class testSql002_StudentTest { /** ...
- BZOJ 4806 - 4809 象棋四题
4806: 炮 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 103 Solved: 72[Submit][Status][Discuss] Des ...
- [luogu5002]专心OI - 找祖先
[传送门] 我们还是先将一下算法的步骤,待会再解释起来方便一点. 算法步骤 首先我们算出每个子树的\(size\). 我们就设当前访问的节点 然后我们就得到了当前这个节点的答案是这个树整个的\(siz ...
- 利用docker进行基础镜像制作
前言 最近想通过Javaee来开发博客,但是不想因为环境配置问题总是耗时间配置相关配置,所以萌生出用docker镜像来搭建web的系统环境,也是作为docker学习实践的笔记. docker hub注 ...
- ECMAScript 6 -- 数组的解构赋值
模式匹配:只要等号两边的模式相同,左边的变量就会被赋予对应的值. let [a, b, c] = [1, 2, 3]; 嵌套数组进行解构: let [foo, [[bar], baz]] = [1, ...
- CF815D Karen and Cards
CF815D Karen and Cards 固定一维c,然后(a,b)看成坐标,矩形区域求交 1.Segment tree Beats! 2.改成不合法的区域就是求并,c反向枚举,区域只增不减且完全 ...
- A1008. Elevator
The highest building in our city has only one elevator. A request list is made up with N positive nu ...
- .NET中26个优化性能方法
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...