码迷,mamicode.com
首页 > 移动开发 > 详细

安卓软件安全与逆向分析

时间:2016-01-04 10:08:15      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

jvm虚拟机:指令集为零地址形式的指令集,即指令的源参数和目标参数都是隐含的,通过java虚拟机中提供的一种数据结构“求值栈”来传递。

dalvik虚拟机运行时也为每个线程维护一个PC计数器和调用栈,此调用栈 维护一份寄存器列表,寄存器的数量在方法结构体的registers字段中给出,DVM根据这个值来创建一份虚拟的寄存器列表。

Dalvik opcodes: http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html

For binary XML files, use a binary-to-textual XML converter like AXMLPrinter2

● For the DEX file, use dedexer

● Alternative products:

– Dexdump – comes with the Android SDK, less convenient to use than dedexer because e.g. it does not support labels, produces one large file, etc.

– Baksmali – a competing open-source DEX disassembler. Comes with a Dalvik bytecode assembler (smali)

DVM是作用特定架构的cpu上的,设计之处采用了ARM架构,arm架构的cpu本身集成了多个寄存器,dalvik将部份寄存器映射到arm寄存器上,还有一部分通过调用栈进行模拟。共65526个寄存器,取值范围v0 - v65535.

虚拟机中的每个寄存器都是32位的,描述指令时所说的位数表示的是寄存器数值的取值范围。

 

安卓软件安全与逆向分析

标签:

原文地址:http://www.cnblogs.com/CarrieCui/p/5097797.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!