安卓逆向基础

Dalvik VM的原理
*
jvm运行的是java字节码 ,DVM运行的是Dalvik字节码
*
Dalvik可执行文件(.dex)体积更小
*
虚拟机架构不同,JVM基于栈,DVM基于寄存器

在这里插入图片描述

寄存器
*
DVM寄存器都是32bit 与名称无关
*
J.D类型 需要相邻2个寄存器
*
对象类型:Ljava/lang/String; = java.lang.String
*
数组 [l=int[]] [[l=int[]]

主要的反编译器
*
BakSmali
*
Dedexer

编译smali文件
java -jar smali.jar -o classes.dex HelloWorld.smali

执行程序
上传到手机:adb push classes.dex /data/local/
执行程序: adb shell dalvikvm -cp /data/local/classes.dex HelloWorld

1、这句代码(compl-float v0,v2,v2)表达的是什么指令?

比较指令
跳转指令
数据转换指令
数据运算指令
A
2、代码中(new-instance v1,Ljava/lang/stringBuilder;)操作指令的表达的是?

new一个v1
new一个ljava
new一个lang/stringBuilder放到v1
new一个stringBuilder放到v1
C?
3、反编译smali文件里面(.registers)函数表达的意思是?

数组
寄存器
参数为空
C

1、看以下Dalvik字节码表达正确的有 Hello.foo:(II)I add-int v0,v3,v4 sub-int v1,v3,v4 mul-int/2addr v0,v1 return v0

A Hello.foo:(II)I是表示定义字符型命名
B sub-int v1,v3,v4 v1,v3相减的结果存在v4里面
C mul-int/2addr v0,v1 mul把v0和v1里面的内容做了一个int类型乘法
D Hello.foo:(II)I (II)I括号里面参数都是int类型的I返回值也是int类型
BC?

2、(Android系统中,)java代码反编译之后那种字节码方便于读取

Java字节码
jvm字节码
Dalvik字节码
.class字节码

C
3、下列属于DVM与JVM的区别的是____(多选)。

字节码
执行文件体积
架构
执行文件格式
ABCD

1、使用哪款反编译工具查看jar文件内容?

Java Decompiler
ApkToolKit
jdk
smali.jar
D
2、ApkToolKit工具可以把dex转换成jar包?



A

3、smali.jar编译工具哪个命令可以编译smali为dex文件?

java -jar smali.jar -o HelloWorld.smali classes.dex
java -jar smali.jar -o classes.dex HelloWorld.smali
java -jar -o classes.dex HelloWorld.smali
java -jar -export classes.dex HelloWorld.smali

B

网传资源,如有侵权请联系/留言,资源过大,上传乃是下载链接,失效请留言,下面上大纲: 01.Android环境配置与常用工具介绍 02.Android smali 与 java 代码介绍1 : d% y( z) X- o& ~, e0 _; c1 I 03.Android smali 与 java 代码介绍2 c+ K& I/ q( b 04.Android smali 与 java 代码介绍3 % ]7 Z+ f! I! [5 S. O. N 05.Android smali 与 java 代码介绍4 7 A9 G6 c k; B 06.Android smali 与 java 代码介绍5 ; [. D3 O0 ~9 _0 ]3 W 07.常用Android快速定位关键点方法介绍 " v+ h0 Z5 x& }1 o4 c/ L 08.从0开始打造自己的破解代码库 09.Android 结构基础讲解 10.快速Hook代码搭建之 Cydia Substrate 11.快速Hook代码搭建之 Xposed 12.安装部署Android源码编译环境 13.Android源码目录结构与修改引导 / |3 T: f, f8 [2 @+ p 14.Android源码修改与刷机介绍 & D- q# v- o) o) ?/ u( A 15.Android Jni 编程 & Y6 ^/ J* G3 ] 16.arm 汇编代码讲解1 . J) E# f# h! Q4 x2 P+ K 17.arm 汇编代码讲解2 18.arm 汇编代码讲解3 19.arm 汇编代码讲解4 20.arm 汇编代码讲解5 ' B! y1 m7 _% U8 r2 G! R% h& L! a4 J0 B 21.class.dex文件格式讲解 22.Android 动态代码自修改原理 23.Android 动态代码自修改实现1 . F; Z5 @* D* r 24.Android 动态代码自修改实现2 25.Android dvm 脱壳1 26.elf结构详解1, d9 H, S" s2 }8 j' B6 v 27.elf结构详解2 8 A9 q+ O" `- v 28.elf文件变形与保护 1 g, b1 q, P( P& W, k3 F7 U 29.elf文件修复分析 9 K p" k/ `- s, w/ r: R( X 30.so加壳文件修复 31.常用调试检测方法与过检测方法 * G( L. J' P1 \+ }: N; r 32.Android源码定制添加反反调试机制 ' v/ q6 K1 {6 ] 33.Android dvm 脱壳2 34.Android dvm 脱壳3 H2 X- A# M4 s+ A6 K- b 35.Dalvik dex处理分析 ) x+ l1 l1 J R2 N) T" R) ^2 o 36.IDA脱壳脚本编写1) O7 `% E" Q. @1 X! o ~ 37.Odex修复方法 38.IDAOdex修复脚本编写 " X' w1 h: w3 N" u8 P5 z 39.Android 加壳原理 40.Android 加壳保护工具编写1 1 x4 k0 P/ V' C9 a( O 41.Android 加壳保护工具编写2 42.Android 加壳保护工具编写3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值