https://blog.csdn.net/a_1054280044/article/details/60465267
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a_1054280044/article/details/60465267

前言:书本中对crackme02.apk的破解是分析关键词进行破解的,而本文使用另外的Smali分析方式,对样本进行分析。
样本:《Android软件安全与逆向分析》crackme02.apk
工具:AndroidKiller v1.3.1.0(AK) && Android Studio2.2.3(AS)
语言:Java,Smali
目的:Smali代码分析之前的准备工作

一、样本反编译

二、在AS下打开反编译出来的文件夹

三、安装原始apk到AVD中

命令行:adb install (crackme02的文件路径)
注:如出现安装失败可能有如下原因

  1. AVD中存在同名apk。 解决:需卸载后重安装或命令行:adb -r install (crackme02)
  2. AVD无连接。 解决:adb kill-server , adb device

    四、设置远程调试

    Run->Debug Configuration-> “+”->Remote Java Application
    修改HOST:localhost,Debug:8700

    五、使用adb以debug方式启动apk

    执行命令:Adb shell am start -D -n packageName/ActivityName
    其中packageName是主活动所在文件夹,ActivityName是主活动名称及其路径,可在AndroidManifest.xml中的android:name查看。
    这里我们执行:
    Adb shell am start -D -n
    com.droider.crackme0201/com.droider.crackme0201.MainActivity
    如果debug模式执行成功会有如下图

    六、准备调试程序

    1、启动Android Device Monitor.
    这里介绍两种方式启动,第一种方式在旧版本的AS中可行,但在我现在的AS版本却不行,似乎打开的文件夹不是app项目,就无法通过选项卡打开:
    (1)Tools->Android->Android Device Monitor
    (2)命令行中,进入 SDK tools/ directory 目录,输入下述命令:
    monitor
    参考:http://blog.csdn.net/qzw9231000/article/details/53115878
    2、选择对应的Device,这个Device有8700端口。

    3、设置断点
    这里我们在MainActivity.smali的
    .method private checkSN(Ljava/lang/String;Ljava/lang/String;)Z
    下一行设置断点。

七、开始调试程序!

debug!

发现程序停在了断点处,摁下f8一步步调试,并添加监视变量即可开始通过Smali代码对程序进行分析。

jpg改rar 

Android逆向笔记之AndroidKiller与Android Studio的使用的更多相关文章

  1. (1)-Android学习笔记之:初识Android系统架构和项目结构

    Android系统架构 Android程序结构 创建一个Android项目,为初学便于理解,将程序项目结构切换为Project模式,项目结构如下 .gradle和.idea:这两个目录下放的都是And ...

  2. 物联网大赛 - Android学习笔记(一) Android概念

    一.Android 概念 Android是开放式的手机和电脑操作系统,是基于Linux系统做的上层开发. android可以做些什么? Android可以开发各种手机应用APP,也可以开发车载系统等, ...

  3. android学习笔记50——SQLiteOpenHelper、android实现系统自带样式

    SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...

  4. android学习笔记(8)linearlayout与android:layout_weight学习

    一,linearlayout 线性布局,布局文件里设置多个linearlayout来达到总体线性布局的风格. android:gravity="right"对齐方式,居右对齐,gr ...

  5. android开发笔记(一)Android studio 输入法

    以前都是用的时候查资料做些增添即可,现在下决心系统学习下. 首先发现developer.Android.com在开发工具上开始推出了 Android Studio了,不过他自己没有sdk manage ...

  6. 【Android学习笔记】Mac下Android Studio开发环境搭建

    本文由@ray 出品,转载请注明出处.  文章链接:http://www.cnblogs.com/wolfray/p/7829069.html 对于移动端这块,笔者之前一直都是进行iOS开发的,也从来 ...

  7. Android学习笔记(三)Android开发环境的搭建

    一.配置JAVA环境 二.配置Android开发环境 可以安装adt-bundle-windows,该压缩包一般自带Eclipse.或者安装Android Studio,要注意SDK的版本是否符合要求 ...

  8. Android学习笔记(一)Android应用程序的组成部分

    Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起:应用程序Manifest描述了每一组件和它们之间的交互方式,还用于指定应用程序元数据.其硬件和平台要求.外部库以及 ...

  9. Android学习笔记_52_全面了解Android开发规范:性能及UI优化

    一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能 ...

随机推荐

  1. (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)

    参考了前人的成果,结合自己实践,arm-linux-gcc-4.4.3.tar.gz的下载地址为:http://ishare.iask.sina.com.cn/f/13836544.html?from ...

  2. Maven项目对象模型(POM)

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具.由于 Maven 的缺省构建 ...

  3. (转)YV12,I420,YUV420P的区别

      YV12和I420的区别 一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的size=width×heigth×4, ...

  4. c# winform 获取当前程序运行根目录,winform 打开程序运行的文件夹

    // 获取程序的基目录. System.AppDomain.CurrentDomain.BaseDirectory // 获取模块的完整路径. System.Diagnostics.Process.G ...

  5. HTML5重力感应小球冲撞动画实现教程

    今天我们来分享一款很酷的HTML5重力感应动画教程,这款动画可以让你甩动页面中的小球,小球的大小都不同,并且鼠标点击空白区域时又可以生成一定数量的小球.当我们甩动小球时,各个小球之间就会发生互相碰撞的 ...

  6. iOS: block参数

    先看一下 NSArray 是怎么传递 block 参数的 ... @interface NSArray (NSExtendedArray) … #if NS_BLOCKS_AVAILABLE - (v ...

  7. SOA及分布式

    结合领域驱动设计的SOA分布式软件架构 Windows平台分布式架构实践 - 负载均衡(下) 分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载 我终于深入参与了一 ...

  8. Sql Server Snapshot和mysql MVCC

    mysql 在一个事务A中插入一条数据 在B事务中查询到的还是以前的数据,可以select *from table,不被锁住   Sql Server 默认级别 读已提交 所以A事务在 X表插入数据, ...

  9. iOS多版本多设备适配的问题

    好吧,能找到这文章的,一般是接到了如下需求:  我是从raywenderlich抽了点内容出来做日记,另外,本文说的不是布局的适配,而是因为ios的升级带来的各版本代码上的不兼容. Deploymen ...

  10. vue二级联动select

    <div> <span>所在区域</span> <select name="" v-model="country"&g ...