Android逆向笔记之AndroidKiller与Android Studio的使用
前言:书本中对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的文件路径)
注:如出现安装失败可能有如下原因
- AVD中存在同名apk。 解决:需卸载后重安装或命令行:adb -r install (crackme02)
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)-Android学习笔记之:初识Android系统架构和项目结构
Android系统架构 Android程序结构 创建一个Android项目,为初学便于理解,将程序项目结构切换为Project模式,项目结构如下 .gradle和.idea:这两个目录下放的都是And ...
- 物联网大赛 - Android学习笔记(一) Android概念
一.Android 概念 Android是开放式的手机和电脑操作系统,是基于Linux系统做的上层开发. android可以做些什么? Android可以开发各种手机应用APP,也可以开发车载系统等, ...
- android学习笔记50——SQLiteOpenHelper、android实现系统自带样式
SQLiteOpenHelper SQLiteOpenHelper是android提供的一个管理数据库的工具类,可用于管理数据库的创建和版本更新. 一般的用法是创建SQLiteOpenHelper的子 ...
- android学习笔记(8)linearlayout与android:layout_weight学习
一,linearlayout 线性布局,布局文件里设置多个linearlayout来达到总体线性布局的风格. android:gravity="right"对齐方式,居右对齐,gr ...
- android开发笔记(一)Android studio 输入法
以前都是用的时候查资料做些增添即可,现在下决心系统学习下. 首先发现developer.Android.com在开发工具上开始推出了 Android Studio了,不过他自己没有sdk manage ...
- 【Android学习笔记】Mac下Android Studio开发环境搭建
本文由@ray 出品,转载请注明出处. 文章链接:http://www.cnblogs.com/wolfray/p/7829069.html 对于移动端这块,笔者之前一直都是进行iOS开发的,也从来 ...
- Android学习笔记(三)Android开发环境的搭建
一.配置JAVA环境 二.配置Android开发环境 可以安装adt-bundle-windows,该压缩包一般自带Eclipse.或者安装Android Studio,要注意SDK的版本是否符合要求 ...
- Android学习笔记(一)Android应用程序的组成部分
Android应用程序由松散耦合的组件组成,并使用应用程序Manifest绑定到一起:应用程序Manifest描述了每一组件和它们之间的交互方式,还用于指定应用程序元数据.其硬件和平台要求.外部库以及 ...
- Android学习笔记_52_全面了解Android开发规范:性能及UI优化
一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能 ...
随机推荐
- 转载:案例用Excel对会员客户交易数据进行RFM分析
案例:用Excel对会员客户交易数据进行RFM分析 背景: 一个会员服务的企业,有近1年约1200个会员客户的收银数据.由于公司想针对不同 ...
- Hessian示例:Java和C#通信
一个简单的利用Hessian在Java和C#之间通信的例子,服务端为Java,客户端为C#. 资源下载 先要准备好C#和Java的第三方类库:http://hessian.caucho.com/ Hs ...
- C# 计算代码运行时间
Stopwatch watch = new Stopwatch(); watch.Start(); int num = myhelper.MySQLExecuteNonQuery(comlist); ...
- svn -- svn简介
一.为什么需要SVN 你们在做中级项目中,都是采用小组合作开发的?那么说说你们在后期整合中遇到问题? 主要应用于: 1.协作开发 2.远程协作 3.版本回退 二.什么是SVN l svn全称SubVe ...
- Shiro Demo
http://www.sojson.com/shiro http://blog.csdn.net/swingpyzf/article/details/46342023/
- python调用ansible接口API执行命令
python版本:Python 2.6.6 ansible版本:ansible 2.3.1.0 下载地址:https://releases.ansible.com/ansible/ 调用脚本 ...
- Linux账号和权限管理
一. 用户和组的管理 - Linux中用户种类 种类 特点 root 是管理员,拥有至高无上的权限,不受限制,UID为0 普通用户 管理员创建的用户,受权限限制,UID一般从500开始,可以登录系统 ...
- 关于TensorFlow多种安装方式
Tensorflow的官网其实给出了很详细的安装教程,细分包括: Pip install: Install TensorFlow on your machine, possibly upgrading ...
- 【玩转Golang】slice切片的操作——切片的追加、删除、插入等
一.一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nil func main(){ var ss []string; fmt.Printf("length:%v \ta ...
- UNIX环境编程学习笔记(23)——信号处理初步学习
lienhua342014-10-29 1 信号的概念 维基百科中关于信号的描述是这样的: 在计算机科学中,信号(英语:Signals)是 Unix.类 Unix 以及其他 POSIX 兼容的操作系统 ...