Android逆向project 实践篇

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

本篇主要给大家介绍怎样反编译后改动源代码, 并打包执行在手机上.

先介绍下本篇文章用到的工具和资源.

1: Android Killer 1.3.1.0 (工具)

2: crackme.apk

还没有破解之前会提示任意输入usernamepassword会提示以下的信息.



以下我们来打开apk, 看看源代码是怎么回事.

我先用工具(Android Killer) 打开creckme.apk



这个是项目概要. 我们主要看的就是MainActivity 这个类, 其他的不看也没什么关系. 假设有耐心和兴趣的,朋友能够去看看MainActivity里面详细写了什么, 推断机制是什么.

破解步骤:

1: 点击注冊button后,弹出的toast 信息,这里能够分析出来,是什么条件触发,使程序弹出toas. [关键词搜索]

2: 这个程序,就上面那一步已经足够破解了.

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

假设看不懂smali能够使用



以下我们找到程序入口 onCread 方法. 为什么要早这个入口呢? 我们要在这里找到初始化控件的函数,对于这个程序来说, 仅仅有一个Buttong(button)比較easy找到,我们能够在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.

程序到这里已经破解完毕了. 感觉步骤非常繁琐…

以下教大家一个简单一点的方法.一分钟左右就能够搞定.

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

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

文本转Unicode 后假设搜索不到,就转回来搜索.





上面是我搜索的结果. 下一步搜索下 0x7f05000b 这个是unsuccessed的id,程序会通过这个id 来找到[无效username或注冊码]字符串.


我用箭头标出来的大家还熟悉吗??

?

就是上面我们改过的地方.这么easy就找到了.



工具下载地址

假设没有找到,就自己去下载把. 我上传了csdn, 没有那么 快显示出来的.

链接: http://pan.baidu.com/s/1hsunUcc password: rfbn

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

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

Android 逆向project 实践篇的更多相关文章

  1. android 逆向project smail 语法学习

    众所周知,android 是开源的.如今市场上反编译别人的劳动果实的人也不少.所以我们也是有必要学习下smail语言,(就是androidproject反编译后出的语法语音),看看改怎么给我们的代码 ...

  2. Android Cocos2dx引擎 prv.ccz/plist/so等优化缓存文件,手把手ida教你逆向project反编译apk库等文件

    前段时间在 Android play 上看到一个非常牛逼的 3D 动态天气预报,效果真的非常炫.二话不说动手 dex2jar.bat/apktool 发现这并没 有什么卵用,在核心的地方看见 nati ...

  3. android逆向学习小结--CrackMe_1

    断断续续的总算的把android开发和逆向的这两本书看完了,虽然没有java,和android开发的基础,但总体感觉起来还是比较能接收的,毕竟都是触类旁通的.当然要深入的话还需要对这门语言的细节特性和 ...

  4. My First Android Application Project 第一个安卓应用

    一.前言: 安卓(Android):是一种基于Linux的自由及开放源代码的操作系统,主要用在移动设备上,如手机.平板电脑.其他的设备也有使用安卓操作系统,比如:电视机,游戏机.数码相机等等. 二.具 ...

  5. android studio 导入一个已有的android studio project作为lib使用

    android studio 导入一个已有的android studio project作为lib使用 新项目来了. 需要搭建框架. android studio对我来说还是很陌生,之前一个项目在同事 ...

  6. Android Library Project 使用问题总结

    1. 当新建Android Library Project 工程或将已有工程转化为Android Library Project, 如果工程源代码中有如下语句: int id = view.getId ...

  7. [转]Android逆向之动态调试总结

    一.在SO中关键函数上下断点 刚学逆向调试时.大多都满足于在SO中某关键函数上下断点.然后通过操作应用程序,去触发这个断点,然后进行调试 详细的步骤可以参见非虫大大的<Android软件安全与逆 ...

  8. eclipse:File->New没有Android Application Project的解决办法

    我的Eclipse版本是:Kepler Service Release 1,截图: 解决步骤: 1.单击Window,选择Customize Perspective,如图: 2.勾选Android A ...

  9. 你要clean Android Studio project 么

    原文:http://tekeye.uk/android/export-android-studio-project 如果嫌复制出来的项目太多,可以用文后的批处理删除一些文件,Android studi ...

随机推荐

  1. 一个.net下的轻量级的Serverless 文档数据库LiteDB

    今天发现了一个.net下的轻量级的Serverless 文档数据库LiteDB,感觉还不错 官方网站: http://www.litedb.org/ 项目主页: https://github.com/ ...

  2. Redis持久化RDB和AOF优缺点是什么,怎么实现的?我应该用哪一个?

    原文http://www.ymq.io/2018/03/24/redis/ Redis是一种高级key-value数据库.数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集 合和有序集合.支 ...

  3. EF三种加载方法

    EF性能之关联加载   鱼和熊掌不能兼得 ——中国谚语 一.介绍 Entity Framework作为一个优秀的ORM框架,它使得操作数据库就像操作内存中的数据一样,但是这种抽象是有性能代价的,故鱼和 ...

  4. Oracle通用分页存储过程的创建与使用

    Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...

  5. 详解Spring中的Profile

    前言 由于在项目中使用Maven打包部署的时候,经常由于配置参数过多(比如Nginx服务器的信息.ZooKeeper的信息.数据库连接.Redis服务器地址等),导致实际现网的配置参数与测试服务器参数 ...

  6. kafka存储机制

    kafka存储机制 @(博客文章)[storm|大数据] kafka存储机制 一关键术语 二topic中partition存储分布 三 partiton中文件存储方式 四 partiton中segme ...

  7. C/C++中内联(inline)函数的优点和缺点

    优点 缺点 1. 内联函数代码被放入符号表中,在使用时进行替换,和宏展开一样,效率很高: 1. 不允许过多的代码,代码过多的话会造成大的内存消耗,最好在5行以内: 2. 编绎器在调用一个内联函数,首先 ...

  8. 第六章 企业项目开发--cookie

    注:本章代码基于<第五章 企业项目开发--mybatis注解与xml并用>的代码,链接如下: http://www.cnblogs.com/java-zhao/p/5120792.html ...

  9. LoadTestAgentResultsLateException in VS2010

    遇到报错, 首先得先仔细读读人家给的出错信息. 而不是先怀疑是自己什么地方弄错了, 胡乱修改. 比如说, 遇到下面的报错: LoadTestAgentResultsLateException    R ...

  10. CSS 过滤器 兼容ie,火狐和谷歌

    这篇汇总主要是提供一些CSS不透明的详细介绍,代码示例和解释,以实现这项有用的CSS技术在您的项目中兼容所有浏览器. 关于CSS 透明度,有一点需要注意的是,它虽然使用了很多年,但它一直以来都不是一个 ...