博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android常用逆向工具+单机游戏破解
阅读量:5074 次
发布时间:2019-06-12

本文共 1471 字,大约阅读时间需要 4 分钟。

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包,可以看到反编译的源码。

549050-20170410010442766-979271988.png

游戏破解思路

(1)找寻支付成功的信息,获取支付相关的函数。

(2)将支付成功的smali指令注入到支付失败的函数中。

操作步骤

(1)打开monitor,点击游戏中的购买按钮,抓取到支付的字符串。

549050-20170410010525157-1358588562.png

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

549050-20170410010549751-563012160.png

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

549050-20170410010613891-2019536888.png

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

549050-20170410010635626-1023451285.png

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

549050-20170410010708876-1058030058.png

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

549050-20170410010734438-1230509427.png

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

549050-20170410010758719-639472388.png

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

549050-20170410010824938-147982099.png

(9)运行效果

549050-20170410010846704-259424238.jpg

转载于:https://www.cnblogs.com/17bdw/p/6687219.html

你可能感兴趣的文章
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>
会计电算化常考题目一
查看>>
阿里云服务器CentOS6.9安装Mysql
查看>>
剑指offer系列6:数值的整数次方
查看>>
js 过滤敏感词
查看>>
poj2752 Seek the Name, Seek the Fame
查看>>
软件开发和软件测试,我该如何选择?(蜗牛学院)
查看>>
基本封装方法
查看>>