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作为一个游戏开发工具,它的设计主旨 ...
随机推荐
- Python爬虫:HTTP协议、Requests库
HTTP协议: HTTP(Hypertext Transfer Protocol):即超文本传输协议.URL是通过HTTP协议存取资源的Internet路径,一个URL对应一个数据资源. HTTP协议 ...
- Luogu 2679 子串 (动态规划)
Luogu 2679 NOIP 2015 子串 (动态规划) Description 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k ...
- Android: 待机时如何让程序继续运行 extends Service
接触Android没几天,不太了解. 本来写好的一个应用在无意中发现,待机的时候,应用中的一个线程停止了运行. 这个线程是每隔一分钟上传一个数据到服务器上. 我当时测试的时候,没想过待机(接开关键)下 ...
- es6/es7/es8常用新特性总结(超实用)
本文标题有误导性,因为我其实想写node8的新特性,说实话一下子从node v1.x跳跃到node 8.x+ 真有点受宠若惊的感觉.一直觉得node 数组. 对象.序列等的处理没有python方便,因 ...
- springboot与springcloud的版本问题
Spring Cloud为开发者提供了一套可以用来快速搭建分布式系统中常见模式的工具.提取主干即是Spring Cloud提供了一套工具.这些工具为开发人员提供了分布式系统下常见问题的通用解决方案.这 ...
- linux chkconfig添加开机启动服务
--add:增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据: --del:删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的 ...
- 读取Easy UI的DATa grid里面的所有数据
目前我知道的有两种方法: 1.读取行数,循环读出 $("#btnEcxel").click(function () { var rows = $('#tbVehicleList') ...
- 注解 和 xml 配置的优缺点【转】
java annotation(注解) 的优点缺点 Annotation和xml各自作为配置项的优点与缺点. Annotation 一.Annotation 的优点 1.保存在 class 文件中,降 ...
- spring @Entity @Table
import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; impor ...
- GUI之ScrollView的使用
ScrollView ScrollView是unity提供的一个方便的滚动视图. 组成 ScrollView由四个部分组成: ViewPort 和 Content ScrollView: 视图范围,C ...