安卓smali转JAVA,安卓smali语法

http://www.itjxue.com  2023-01-07 15:03  来源:未知  点击次数: 

如何将 smali 文件i转换成java文件?

可以先把smali转化为dex文件,然后再用

dex2jar转化一次。我之前也遇到过跟你一样的情况就是这么处理的。祝你好运!

-----------------------------------------------------------------------------------------------------

安卓精英团为你解答

安卓精英团欢迎各位精英加入

怎样把smali文件转换为java文件

可以先把smali转化为dex文件,然后再用 dex2jar转化一次。我之前也遇到过跟你一样的情况就是这么处理的。祝你好运!

smali如何修改?

smali文件对比java文件:\x0d\x0a .class :类名\x0d\x0a .super :父类\x0d\x0a .source :源文件名\x0d\x0a .implements :继承的接口\x0d\x0a\x0d\x0a .field :类成员变量\x0d\x0a .method :类方法\x0d\x0a .parameter :函数参数 p1,p2...\x0d\x0a\x0d\x0a .locals x :局部变量(个数)\x0d\x0a\x0d\x0aconst/16 v0, 0x64 :int v0 = 0x64\x0d\x0a const/high16 v0, 0x7f03 :高16赋值\x0d\x0a const-wide v0, 0x4024051eb851eb85L\x0d\x0a const-string v0, "1111" :字符串\x0d\x0a\x0d\x0a add-int v0, p0, p1 :v0 = p0 + p1(static函数参数 从p0 开始)\x0d\x0a sub-int v0, p1, p2 :v0 = p1 + p2(普通成员函数参数从 p1 开始)\x0d\x0a mul-int v0, p1, p2 :v0 = p1 * p2\x0d\x0a div-int v0, p1, p2 :v0 = p1 / p2\x0d\x0a\x0d\x0a add-int/2addr v0, v1 :v0+v1放到 v0所在的地址\x0d\x0a sub-int/2addr v0, p2 :v0-p2放到 v0所在的地址\x0d\x0a\x0d\x0a if-ne :if(x != y)\x0d\x0a\x0d\x0aiput-object v0, p0, Lcom/xyz/smali/SmaliActivity;-string:Ljava/lang/String; :成员变量 v0 = string;\x0d\x0a iget-object v0, p0, Lcom/xyz/smali/SmaliActivity;-mBtn:Landroid/widget/Button; :关联成员变量\x0d\x0a\x0d\x0asput v0, Lcom/xyz/smali/SmaliActivity;-OK:I :sput 给static变量赋值\x0d\x0a sput-wide v0, Lcom/xyz/smali/SmaliActivity;-dou:D :sput-wide 给static的宽字节变量赋值\x0d\x0a sput-object v0, Lcom/xyz/smali/SmaliActivity;-sss:Ljava/lang/String;\x0d\x0a sget v1, Lcom/xyz/smali/SmaliActivity;-OK:I :关联static变量\x0d\x0a\x0d\x0ainvoke-super {p0, p1}, Landroid/app/Activity;-onCreate(Landroid/os/Bundle;)V : this.super.onCreate();\x0d\x0a invoke-static {p1, p2}, Lcom/xyz/smali/SmaliActivity;-add(II)I :调用静态函数 add(p1, p2)\x0d\x0a invoke-virtual {v0, p0}, Landroid/widget/Button;-setOnClickListener(Landroid/view/View$OnClickListener;)V :调用虚函数\x0d\x0a\x0d\x0a move-result v0 :前面调用函数后,把结果放到 v0\x0d\x0a move-result-object v0 :前面调用函数返回的对象给 v0\x0d\x0a\x0d\x0a check-cast v0, Landroid/widget/Button; :强制类型转换 mBtn = (Button) findViewById(R.id.btn);\x0d\x0a\x0d\x0areturn-void :return ;

(责任编辑:IT教学网)

更多

推荐Discuz!建站文章