smial代码目录
前言
当前文章主要记录smial常用的语法代码块!
一、Log打印(插桩)
代码如下(示例):
const-string v0,"一个哈巴狗,坐在大门口!"
const-string v1,"tag"
invoke-static {v1,v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
二、方法调用
1.virtual method 是指 protected和 public 函数
代码如下(示例):
#资源ID
const v1, 0x7f0b005b
invoke-virtual {p0, v1}, Lhfdcxy/com/myapplication/MainActivity;->findViewById(I)Landroid/view/View;
#获取执行结果
move-result-object v1
2.direct method 是指private函数
代码如下(示例):
#实例化StringBuilder 对象
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
3.invoke-static 是指static函数
代码如下(示例):
invoke-static {}, Lcom/aaa;->CheckSignature()Z
4.invoke-super method 是指父类函数
代码如下(示例):
invoke-super {p0}, Landroid/app/Activity;->onStart()V
5.invoke-xxxxx/range method 当方法的参数多于5个时(含5个),不能直接使用以上的指令,而是在后面加上“/range”,range表示范围,使用方法也有所不同
代码如下(示例):
invoke-virtual/range {p1 .. p1}, Lcom/csdk/basicprj/bean/AuthorInfoBean;->getChannelKey()Ljava/lang/String;
6.invoke-interface 是指调用接口函数
代码如下(示例):
invoke-interface {v0, v1, v2}, Lcom/aaa/CallBackAll;->exitFail(ILjava/lang/String;)V