smali语法的认识

前言:没学过smali基础知识,纯个人理解

如图,这是一个关于支付失败的smali案例

另外建议用np管理器查询smali语法64534为了更好理解,需配合附件来使用
https://wwlw.lanzouy.com/iMncq0k95gkb

■第1行new-instance(新实例)

创建了一个实例对象:

Ljava/lang/StringBuilder;

实例的开头大写字母L一般来表示对象的数据类型
因此这个实例的对象是字符串(String)
分号表示结束

实例引用到寄存器v0

■第2行invoke-direct (直接调用)

invoke-direct {v0} Ljava/lang/StringBuilder;->()V

大括号直接调用了v0的实例,对象无效类型V(void)

->表示归属关系的方法名

■第3行invoke-virtual(虚拟调用的)

invoke-virtual {v0,v4} Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

讲到这就借助v4认识现有的函数调用指令:

invoke-virtual {v0,v4}(虚拟调用)
invoke-static {v4}(静态调用)
move-result-object v4(移动结果对象)
invoke-interface {v0,v4,v6} (调用接口)
const-string v4 (常量字符串)
new-instance v4 (新实例)
invoke-direct {v4,v0} (直接调用)

差不多到尾音了,因为主题就是认识到samli语法的流程,然后学会去分析,这样遇到问题就不会一头雾水了,想要更进一步学习的话多找相关资料。

[/hidecontent]

[/hidecontent]

[/hidecontent]

[/hidecontent]

[/hidecontent]

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容