结构速查表

这里介绍了 DexKit 查询的结构组成,匹配器对象可以进行递归嵌套,一切条件都是可以选的。

查询相关

FindClass

字段名类型说明
searchPackagesCollection<String>搜索的包名列表
excludePackagesCollection<String>排除的包名列表
ignorePackagesCaseBoolean是否忽略包名大小写
searchInCollection<ClassData>在指定的类列表中搜索类
findFirstBoolean查询到第一个结果后立即返回结果,由于多线程执行,不保证结果唯一
matcherClassMatcher匹配条件

FindField

字段名类型说明
searchPackagesCollection<String>搜索的包名列表
excludePackagesCollection<String>排除的包名列表
ignorePackagesCaseBoolean是否忽略包名大小写
searchInClassesCollection<ClassData>在指定的类列表中搜索字段
searchInFieldsCollection<FieldData>在指定的字段列表中搜索字段
findFirstBoolean查询到第一个结果后立即返回结果,由于多线程执行,不保证结果唯一
matcherFieldMatcher匹配条件

FindMethod

字段名类型说明
searchPackagesCollection<String>搜索的包名列表
excludePackagesCollection<String>排除的包名列表
ignorePackagesCaseBoolean是否忽略包名大小写
searchInClassesCollection<ClassData>在指定的类列表中搜索方法
searchInMethodsCollection<MethodData>在指定的方法列表中搜索方法
findFirstBoolean查询到第一个结果后立即返回结果,由于多线程执行,不保证结果唯一
matcherMethodMatcher匹配条件

BatchFindClassUsingStrings

字段名类型说明
searchPackagesCollection<String>搜索的包名列表
excludePackagesCollection<String>排除的包名列表
ignorePackagesCaseBoolean是否忽略包名大小写
searchInCollection<ClassData>在指定的类列表中搜索类
matchersCollection<StringMatchersGroup>查询分组列表

BatchFindMethodUsingStrings

字段名类型说明
searchPackagesCollection<String>搜索的包名列表
excludePackagesCollection<String>排除的包名列表
ignorePackagesCaseBoolean是否忽略包名大小写
searchInClassesCollection<ClassData>在指定的类列表中搜索方法
searchInMethodsCollection<MethodData>在指定的方法列表中搜索方法
matchersCollection<StringMatchersGroup>查询分组列表

匹配器相关

AccessFlagsMatcher

字段名类型说明
modifiersInt匹配的修饰符的 bit masks
matchTypeMatchType匹配模式

AnnotationEncodeValueMatcher

字段名类型说明
byteValueByte匹配的字节
shortValueShort匹配的短整型
charValueChar匹配的字符
intValueInt匹配的整型
longValueLong匹配的长整型
floatValueFloat匹配的浮点型
doubleValueDouble匹配的双精度浮点
stringValueStringMatcher匹配的字符串
methodValueMethodMatcher匹配的方法
enumValueFieldMatcher匹配的枚举
arrayValueAnnotationEncodeArrayMatcher匹配的数组
annotationValueAnnotationMatcher匹配的注解
nullValue匹配 null
boolValueBoolean匹配的布尔值

IntRange

字段名类型说明
minInt最小值,默认为 0
maxInt最大值,默认为 Int.MAX_VALUE

NumberEncodeValueMatcher

字段名类型说明
byteValueByte匹配的字节
shortValueShort匹配的短整型
charValueChar匹配的字符
intValueInt匹配的整型
longValueLong匹配的长整型
floatValueFloat匹配的浮点型
doubleValueDouble匹配的双精度浮点

OpcodesMatcher

字段名类型说明
opCodesCollection<Int>匹配的操作码对应的 Int 值
opNamesCollection<String>匹配的操作码对应的名称,即 smali 语法中的名称
matchTypeOpCodeMatchType匹配模式
sizeIntRange该操作码总长度范围

StringMatcher

字段名类型说明
valueString匹配的字符串
matchTypeStringMatchType匹配模式
ignoreCaseBoolean是否忽略大小写

TargetElementTypesMatcher

字段名类型说明
typesCollection<TargetElementType>匹配的注解声明的元素类型列表
matchTypeMatchType匹配模式

AnnotationElementMatcher

字段名类型说明
nameStringMatcher匹配的名称
valueAnnotationEncodeValueMatcher匹配的值

AnnotationElementsMatcher

字段名类型说明
elementsCollection<AnnotationElementMatcher>匹配的注解声明的元素列表
matchTypeMatchType匹配模式
countIntRange匹配的注解声明的元素数量

AnnotationEncodeArrayMatcher

字段名类型说明
valuesCollection<AnnotationEncodeValueMatcher>匹配的注解声明的元素列表
matchTypeMatchType匹配模式
countIntRange匹配的注解声明的元素数量

AnnotationMatcher

字段名类型说明
typeClassMatcher匹配的注解类型
targetElementTypesTargetElementTypesMatcher匹配的注解声明的元素类型列表
policyRetentionPolicyType匹配的注解声明的保留策略
elementsAnnotationElementsMatcher匹配的注解声明的元素列表
usingStringsCollection<StringMatcher>注解中使用的字符串列表

AnnotationsMatcher

字段名类型说明
annotationsCollection<AnnotationMatcher>匹配的注解列表
matchTypeMatchType匹配模式
countIntRange匹配的注解数量

ClassMatcher

字段名类型说明
sourceStringMatcher类的源码文件名,即 smali 中的 .source 字段
classNameStringMatcher类的名称
modifiersAccessFlagsMatcher类的修饰符
superClassClassMatcher类的父类
interfacesInterfacesMatcher类的接口列表
annotationsAnnotationsMatcher类的注解列表
fieldsFieldsMatcher类的字段列表
methodsMethodsMatcher类的方法列表
usingStringsCollection<StringMatcher>类中使用的字符串列表

InterfacesMatcher

字段名类型说明
interfacesCollection<ClassMatcher>匹配的接口列表
matchTypeMatchType匹配模式
countIntRange匹配的接口数量

FieldMatcher

字段名类型说明
nameStringMatcher字段的名称
modifiersAccessFlagsMatcher字段的修饰符
declaredClassClassMatcher字段的声明类
typeClassMatcher字段的类型
annotationsAnnotationsMatcher字段的注解
readMethodsMethodsMatcher读取该字段的方法列表
writeMethodsMethodsMatcher设置该字段的方法列表

FieldsMatcher

字段名类型说明
fieldsCollection<FieldMatcher>匹配的字段列表
matchTypeMatchType匹配模式
countIntRange匹配的字段数量

MethodMatcher

字段名类型说明
nameStringMatcher方法的名称
modifiersAccessFlagsMatcher方法的修饰符
declaredClassClassMatcher方法的声明类
returnTypeClassMatcher方法的返回值类型
paramsParametersMatcher方法的参数列表
annotationsAnnotationsMatcher方法的注解
opCodesOpcodesMatcher方法的操作码列表
usingStringsCollection<StringMatcher>方法中使用的字符串列表
usingFieldsCollection<UsingFieldMatcher>方法中使用的字段列表
usingNumbersCollection<Number>方法中使用的数字列表
invokeMethodsMethodsMatcher方法中调用的方法列表
callerMethodsMethodsMatcher调用了该方法的方法列表

MethodsMatcher

字段名类型说明
methodsCollection<MethodMatcher>匹配的方法列表
matchTypeMatchType匹配模式
countIntRange匹配的方法数量

ParameterMatcher

字段名类型说明
typeClassMatcher参数的类型
annotationsAnnotationsMatcher参数的注解

ParametersMatcher

字段名类型说明
paramsCollection<ParameterMatcher>匹配的参数列表
countIntRange匹配的参数数量

StringMatchersGroup

字段名类型说明
groupNameString分组名称
matchersCollection<StringMatcher>该查询分组匹配对象所使用的字符串列表

UsingFieldMatcher

字段名类型说明
fieldFieldMatcher匹配的字段
usingTypeUsingType使用类型

EncodeValueByte

字段名类型说明
valueByte字节

EncodeValueShort

字段名类型说明
valueShort短整型

EncodeValueChar

字段名类型说明
valueChar字符

EncodeValueInt

字段名类型说明
valueInt整型

EncodeValueLong

字段名类型说明
valueLong长整型

EncodeValueFloat

字段名类型说明
valueFloat浮点型

EncodeValueDouble

字段名类型说明
valueDouble双精度浮点

EncodeValueString

字段名类型说明
valueString字符串

EncodeValueNull

该对象无字段。

EncodeValueBoolean

字段名类型说明
valueBoolean布尔值

枚举相关

AnnotationEncodeValueType

字段名类型说明
ByteValueEnum字节类型
ShortValueEnum短整型类型
CharValueEnum字符类型
IntValueEnum整型类型
LongValueEnum长整型类型
FloatValueEnum浮点类型
DoubleValueEnum双精度浮点类型
StringValueEnum字符串类型
TypeValueEnum类型类型
MethodValueEnum方法类型
EnumValueEnum枚举类型
ArrayValueEnum数组类型
AnnotationValueEnum注解类型
NullValueEnum空类型
BoolValueEnum布尔类型

AnnotationVisibilityType

详情参照 Visibility values在新窗口中打开

字段名类型说明
BuildEnum构建时可见
RuntimeEnum运行时可见
SystemEnum系统可见

MatchType

字段名类型说明
ContainsEnum包含
EqualsEnum等于

NumberEncodeValueType

字段名类型说明
ByteValueEnum字节类型
ShortValueEnum短整型类型
CharValueEnum字符类型
IntValueEnum整型类型
LongValueEnum长整型类型
FloatValueEnum浮点类型
DoubleValueEnum双精度浮点类型

OpCodeMatchType

字段名类型说明
ContainsEnum包含
StartsWithEnum以...开头
EndsWithEnum以...结尾
EqualsEnum等于

RetentionPolicyType

该 Enum 与 java.lang.annotation.RetentionPolicy 保持对应。

字段名类型说明
SourceEnum源码级别
ClassEnum类级别
RuntimeEnum运行时级别

StringMatchType

字段名类型说明
ContainsEnum包含
StartsWithEnum以...开头
EndsWithEnum以...结尾
SimilarRegexEnum类正则匹配,只支持 ^$
EqualsEnum等于

TargetElementType

该 Enum 与 java.lang.annotation.ElementType 保持对应。

字段名类型说明
TypeEnum类型
FieldEnum字段
MethodEnum方法
ParameterEnum参数
ConstructorEnum构造方法
LocalVariableEnum局部变量
AnnotationTypeEnum注解类型
PackageEnum
TypeParameterEnum类型参数
TypeUseEnum类型使用

UsingType

字段名类型说明
AnyEnum任意
GetEnum获取
SetEnum设置