博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android逆向工程 实践篇
阅读量:6296 次
发布时间:2019-06-22

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

Android逆向工程 实践篇

上篇给大家介绍的是基础+小Demo实践. 如果没有看过的同学可以进去看看.()

本篇主要给大家介绍如何反编译后修改源码, 并打包运行在手机上.
先介绍下本篇文章用到的工具和资源.
1: Android Killer 1.3.1.0 (工具)
2: crackme.apk

还没有破解之前会提示随意输入用户名密码会提示下面的信息.

下面我们来打开apk, 看看源码是怎么回事.
我先用工具(Android Killer) 打开creckme.apk
这个是项目概要. 我们主要看的就是MainActivity 这个类, 其它的不看也没什么关系. 如果有耐心和兴趣的,朋友可以去看看MainActivity里面具体写了什么, 判断机制是什么.
破解步骤:
1: 点击注册按钮后,弹出的toast 信息,这里可以分析出来,是什么条件触发,使程序弹出toas. [关键词搜索]
2: 这个程序,就上面那一步已经足够破解了.

下面打开MainActivity看看具体逻辑.

如果看不懂smali可以使用

下面我们找到程序入口 onCread 方法. 为什么要早这个入口呢? 我们要在这里找到初始化控件的函数,对于这个程序来说, 只有一个Buttong(按钮)比较容易找到,我们可以在onCread里面找到Button的监听(setOnClickListener)
中间是有几句代码没有截图.
接下来是重点, 大家看到 我前面提到了的方法, setOnClickListener 没有?? 这里就是一个点击事件, 但是这里没有发现Toast 相关的信息. 这个MainActivity.smali都没有发现. 难道搞错了??. 同志,别灰心, 看看项目列表,是不是还有一个MainActivity$1.smali, 这个是一个内部类,我们打开这个smali可以看到有一个onClick方法, 这里就是在点击onClick后,触发的地方.那么我们要具体的看看里面的逻辑.

getText()方法代表是得到我们输入的内容. trim()方法代表去除多余的空格.

if-nez v0, :cond_0 条件判断语句, 当满足某些条件之后会做什么.

const v0, 0x1 定义一个整形4字节的局部变量v0 它的值是1. 假如条件瞒足,也就是v0!=0 会跳转到 :cond_0 执行另一段代码. 假如我们修改一下v0 的值,那么他就不会跳转到 :cond_0的里面. 也就是破解成功.const v0, 0x0 这样就可以让程序弹出 注册成功的Toast.

程序到这里已经破解完成了. 感觉步骤很繁琐...
下面教大家一个简单一点的方法.一分钟左右就可以搞定.

大家看到第一张图片, 程序提示: 无效用户名或注册码 这个是最直接的破解信息.我们可以在程序里面搜索下这个关键词.

搜索范围记得换成整个项目

文本转Unicode 后如果搜索不到,就转回来搜索.

上面是我搜索的结果. 下一步搜索下 0x7f05000b 这个是unsuccessed的id,程序会通过这个id 来找到[无效用户名或注册码]字符串.
我用箭头标出来的大家还熟悉吗??? 就是上面我们改过的地方.这么容易就找到了.
如果没有找到,就自己去下载把. 我上传了csdn, 没有那么 快显示出来的.
链接: 密码: rfbn

转载地址:http://lvvta.baihongyu.com/

你可能感兴趣的文章
java基础--相等
查看>>
记一次网站服务器搬迁实录
查看>>
Sql server restore script(还原数据库正确的步骤)
查看>>
牛客网刷题汇总(一)附解析
查看>>
(转) Deep Learning in a Nutshell: Reinforcement Learning
查看>>
微信说中国人的国庆长假 境内游西湖外滩上榜
查看>>
VR/AR会是微信后马化腾进军的战场吗
查看>>
推荐系统的评分描述
查看>>
Junit测试中找不到junit.framework.testcase
查看>>
SAP HU02 to Unpack for HU, Need Transfer HU to Package Storage Type First.
查看>>
1.3. Getting Started Guides
查看>>
三十而立,立的是什么?(r11笔记第70天)
查看>>
Log4jdbc demo
查看>>
(13)[Xamarin.Android] 不同分辨率下的图片使用概论
查看>>
12.3、Libgdx的图像之截屏
查看>>
什么是PyTorch,为何要使用PyTorch
查看>>
对ESB概念的理解(转)
查看>>
Building for Production
查看>>
python 内部函数,以及lambda,filter,map等内置函数
查看>>
大家猜猜看除了围棋,人工智能下一个颠覆的领域是什么?
查看>>