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作为一个游戏开发工具,它的设计主旨 ...
随机推荐
- Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds
Servers -->双击你的启动服务--> 对话框左下角切换选项卡为 Overview -->中东找到Timeouts 把Start(in seconds)改为 100 ,然后按 ...
- 【Gym 100015B】Ball Painting(DP染色)
题 There are 2N white balls on a table in two rows, making a nice 2-by-N rectangle. Jon has a big pai ...
- android viewflipper的使用 实现图片滑动效果
package com.homer.viewflipper; import android.app.Activity; import android.os.Bundle; import android ...
- 【BZOJ2208】[JSOI2010]连通数(Tarjan)
[BZOJ2208][JSOI2010]连通数(Tarjan) 题面 BZOJ 洛谷 题解 先吐槽辣鸡洛谷数据,我写了个\(O(nm)\)的都过了. #include<iostream> ...
- centos6.5之Hadoop1.2.1完全分布式部署安装
0. 说明 系统中首先要安装好jdk环境. 已经配置ssh免密码登录. 设置好防火墙,或者关闭防火墙. 如果集群内机器的环境完全一样,可以在一台机器上配置好,然后把master配置好的软件即hadoo ...
- 走进Java中的持有对象(容器类)【二】Collection
概述 通过前文的学习,我们对容器的分类及常用容器类的作用有了基本的认识.本文将针对Collection容器的功能与使用进行细致分析. 基本操作 Collection集合抽象出的目的是为存放独立元素的序 ...
- #ifndef HeaderName_h #define HeaderName_h #endif 使用详解
想必很多人都看到过头文件中写有:#ifndef HeaderName_h #define HeaderNa ...
- 把pandas dataframe转为list方法
把pandas dataframe转为list方法 先用numpy的 array() 转为ndarray类型,再用tolist()函数转为list
- JAVA分布式架构的演进
系统架构演化历程-初始阶段架构 初始阶段 的小型系统 应用程序.数据库.文件等所有的资源都在一台服务器上通俗称为LAMP 特征:应用程序.数据库.文件等所有的资源都在一台服务器上. 描述:通常服务器操 ...
- python---自定义字段验证
各个字段类,含正则和验证方法 #字段类 class IPField: REGULAR = "^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4] ...