如何有效防止Android应用中代码注入的长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计288个文字,预计阅读时间需要2分钟。
Android的.registers定义了方法中总共有几个寄存器。.locals定义了方法中有几个非参数寄存器。如果一个方法有5个寄存器,.locals定义了方法中有几个非参数寄存器。
android的.registers定义了方法中总共使用了几个寄存器.locals定义了方法中有几个非参数寄存器如果一个方法有5个寄存器.locals定义了方法中有几个非参数寄存器如果一个方法有5个寄存器即.registers5,v0-v4,而且该方法有两个参数那么这两个参数将使用最后的两个寄存器即v3和v4。对于非static方法那么第一个寄存器肯定是this比如方法LMyObject;->callMe(II)V有两个整形参数那么它就会用三个寄存器。为了动态调试android代码有时候需要动态的注入代码但是代码注入时候有几次发现会崩溃后来经过研究发现是寄存器用错。一个方法可能本身就用了5个寄存器v0-v4而你用v5那肯定要崩溃是吧或者你用了后面会用到的寄存器把值给改了那肯定也要崩溃。具体大家可以看看下面的文章见 code.google.com/p/smali/wiki/Registers 有点像stdcall的压栈形式。本文共计288个文字,预计阅读时间需要2分钟。
Android的.registers定义了方法中总共有几个寄存器。.locals定义了方法中有几个非参数寄存器。如果一个方法有5个寄存器,.locals定义了方法中有几个非参数寄存器。
android的.registers定义了方法中总共使用了几个寄存器.locals定义了方法中有几个非参数寄存器如果一个方法有5个寄存器.locals定义了方法中有几个非参数寄存器如果一个方法有5个寄存器即.registers5,v0-v4,而且该方法有两个参数那么这两个参数将使用最后的两个寄存器即v3和v4。对于非static方法那么第一个寄存器肯定是this比如方法LMyObject;->callMe(II)V有两个整形参数那么它就会用三个寄存器。为了动态调试android代码有时候需要动态的注入代码但是代码注入时候有几次发现会崩溃后来经过研究发现是寄存器用错。一个方法可能本身就用了5个寄存器v0-v4而你用v5那肯定要崩溃是吧或者你用了后面会用到的寄存器把值给改了那肯定也要崩溃。具体大家可以看看下面的文章见 code.google.com/p/smali/wiki/Registers 有点像stdcall的压栈形式。
