Proto table中每一项占12个字节,每一项包括3个元素:

  1. shorty_idx(uint):函数原型(函数类型的简写),指向string table的索引
  2. return_type_idx(uint):返回类型,指向type table的索引
  3. parameters_off(uint):指向这个函数的参数列表(如果这个字段为0表示这个函数没有参数)

shorty_idx

这个字段的内容是函数原型的简写形式,它遵循ShortyDescriptor语法。其中,第一个字母表示返回类型,后面的为参数类型,所有的类和数组都用L表示,其他的类型简写如下:

des

比如函数 long fun(int i,int b[],class c) 则简写为:JILL。

parameters_off

这个字段是从Dex文件头开始的偏移值,如果为0的话表示没有参数,不为0的话指向的元素内容如下:

dexproto

前4字节表示参数个数,后面紧跟着各参数的索引,每个索引占2字节。

python部分代码

用python读取proto 的代码大致如下:

输出:

 

观看更多有关 的文章?

*

+
跳转到评论