Android 逆向project 实践篇

摘要:
我们需要在这里找到初始化控件的函数。对于这个程序,只有一个按钮很容易找到。我们可以在onCread中找到几句没有截图的代码。下一步是关键。您可以看到我前面提到的方法setOnClickListener=0将跳转到:cond_0执行另一段代码。如果我们改变v0的值,它不会跳到:cond_0。也就是说,程序成功破解了。constv0,0x0。这将使程序弹出已注册的Toast。这个程序在这里被破解了。感觉步骤很繁琐
Android逆向project 实践篇

上篇给大家介绍的是基础+小Demo实践. 假设没有看过的同学能够进去看看.(逆向project 初篇)


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

还没有破解之前会提示任意输入usernamepassword会提示以下的信息.
Android 逆向project 实践篇第1张
以下我们来打开apk, 看看源代码是怎么回事.
我先用工具(Android Killer) 打开creckme.apk
Android 逆向project 实践篇第2张
这个是项目概要. 我们主要看的就是MainActivity 这个类, 其他的不看也没什么关系. 假设有耐心和兴趣的,朋友能够去看看MainActivity里面详细写了什么, 推断机制是什么.
破解步骤:
1: 点击注冊button后,弹出的toast 信息,这里能够分析出来,是什么条件触发,使程序弹出toas. [关键词搜索]
2: 这个程序,就上面那一步已经足够破解了.

以下打开MainActivity看看详细逻辑.


假设看不懂smali能够使用
Android 逆向project 实践篇第3张
以下我们找到程序入口 onCread 方法. 为什么要早这个入口呢? 我们要在这里找到初始化控件的函数,对于这个程序来说, 仅仅有一个Buttong(button)比較easy找到,我们能够在onCread里面找到Button的监听(setOnClickListener)
Android 逆向project 实践篇第4张
Android 逆向project 实践篇第5张
中间是有几句代码没有截图.
接下来是重点, 大家看到 我前面提到了的方法, setOnClickListener 没有?

? 这里就是一个点击事件, 可是这里没有发现Toast 相关的信息. 这个MainActivity.smali都没有发现. 难道搞错了??. 同志,别灰心, 看看项目列表,是不是另一个MainActivity$1.smali, 这个是一个内部类,我们打开这个smali能够看到有一个onClick方法, 这里就是在点击onClick后,触发的地方.那么我们要详细的看看里面的逻辑.
Android 逆向project 实践篇第6张

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

Android 逆向project 实践篇第7张

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

const v0, 0x1 定义一个整形4字节的局部变量v0 它的值是1. 假如条件瞒足,也就是v0!=0 会跳转到 :cond_0 执行另一段代码. 假如我们改动一下v0 的值,那么他就不会跳转到 :cond_0的里面. 也就是破解成功.const v0, 0x0 这样就能够让程序弹出 注冊成功的Toast.
程序到这里已经破解完毕了. 感觉步骤非常繁琐…
以下教大家一个简单一点的方法.一分钟左右就能够搞定.

大家看到第一张图片, 程序提示: 无效username或注冊码 这个是最直接的破解信息.我们能够在程序里面搜索下这个关键词.
Android 逆向project 实践篇第8张

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

文本转Unicode 后假设搜索不到,就转回来搜索.
Android 逆向project 实践篇第9张

上面是我搜索的结果. 下一步搜索下 0x7f05000b 这个是unsuccessed的id,程序会通过这个id 来找到[无效username或注冊码]字符串.
Android 逆向project 实践篇第10张
我用箭头标出来的大家还熟悉吗??

?

就是上面我们改过的地方.这么easy就找到了.
Android 逆向project 实践篇第11张
工具下载地址
假设没有找到,就自己去下载把. 我上传了csdn, 没有那么 快显示出来的.
链接: http://pan.baidu.com/s/1hsunUcc password: rfbn

大家新年快乐. 早日脱单!!

http://blog.csdn.net/QQ541159192/article/details/54755685 原创地址

免责声明:文章转载自《Android 逆向project 实践篇》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇WEBLOGIC启动后,重启后控制台进入缓慢、延迟,探查WEBLOGICredis实现接口限流下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

记某app内购破解 – 安卓逆向菜鸟的初体验

前言 因为某个机缘,我拿到一个赛车app,玩了一会想买个装备,居然要我掏钱包,作为一名cracker,我觉得我的尊严受到了严重的蔑视(无奈钱包空空),我觉得要捍卫我那脆弱的玻璃心(钱包),所以,开干吧。我搜索了网上相关的帖子,发现这个apk的破解都是讲了关键点都在哪里,没有具体的关键点查找思路,所以我重新自己破解了一次,中间多次误入歧途,我把自己的详细思路...

安卓破解软件需懂的Smali语法

Smali中语法: 类型 v   void  只能用于返回值类型 Z   boolean B   byte S   short C   char I    int J    long 2个寄存器 F   float D   double  2个寄存器 对象类型:Lpackage/name/ObjectName;  相当于java中的package.name...

smali 语言语法

Androidkiller 可以反编译Android的apk,生成一种.smali代码。(这理解好像不对) 网上找了一篇smali的语法手册,可以方便查找,文章名《Smali文件语法参考》 手册地址:http://blog.csdn.net/litton_van/article/details/7843490 网上有一篇smali的语法讲解(java与sm...

Smali语法

最近一周在研究rom移植,所以就对Smali语言学习了一下,Smali语言其实就是Davlik的寄存器语言;Smali语言就是android的应用程序.apk通过apktool反编译出来的都有一个smali文件夹,里面都是以.smali结尾的文件,文件的展示语言。 转载请标明出处:http://blog.csdn.net/wdaming1986/artic...

[Android Security] 静态分析Android程序——smali文件解析

cp : https://blog.csdn.net/hp910315/article/details/51823236 cp : http://www.jb51.net/softjc/119036.html 静态分析Android程序的两种方法: 一、阅读反编译生成的Dalvik字节码。 1、使用文本编辑器阅读baksmali反编译生成的smali文件...

修改apk里面的源码

1.解压apk文件,获取classes.dex并拷贝到资源根目录(使用zip或其他解压工具即可) 2.使用baksmali工具将classes.dex转为smali文件,在命令行定位到资源根目录并执行: java -jar baksmali-2.0.3.jar -x classes.dex 执行完后会在当前目录下生成out目录,目录结构跟源码相同,在对应...