当前位置:首页 » 安卓系统 » androidsmali

androidsmali

发布时间: 2022-04-22 18:48:27

‘壹’ smali如何修改

smali文件对比java文件:
.class :类名
.super :父类
.source :源文件名
.implements :继承的接口

.field :类成员变量
.method :类方法
.parameter :函数参数 p1,p2...

.locals x :局部变量(个数)

const/16 v0, 0x64 :int v0 = 0x64
const/high16 v0, 0x7f03 :高16赋值
const-wide v0, 0x4024051eb851eb85L
const-string v0, "1111" :字符串

add-int v0, p0, p1 :v0 = p0 + p1(static函数参数 从p0 开始)
sub-int v0, p1, p2 :v0 = p1 + p2(普通成员函数参数从 p1 开始)
mul-int v0, p1, p2 :v0 = p1 * p2
div-int v0, p1, p2 :v0 = p1 / p2

add-int/2addr v0, v1 :v0+v1放到 v0所在的地址
sub-int/2addr v0, p2 :v0-p2放到 v0所在的地址

if-ne :if(x != y)

iput-object v0, p0, Lcom/xyz/smali/SmaliActivity;->string:Ljava/lang/String; :成员变量 v0 = string;
iget-object v0, p0, Lcom/xyz/smali/SmaliActivity;->mBtn:Landroid/widget/Button; :关联成员变量

sput v0, Lcom/xyz/smali/SmaliActivity;->OK:I :sput 给static变量赋值
sput-wide v0, Lcom/xyz/smali/SmaliActivity;->dou:D :sput-wide 给static的宽字节变量赋值
sput-object v0, Lcom/xyz/smali/SmaliActivity;->sss:Ljava/lang/String;
sget v1, Lcom/xyz/smali/SmaliActivity;->OK:I :关联static变量

invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V : this.super.onCreate();
invoke-static {p1, p2}, Lcom/xyz/smali/SmaliActivity;->add(II)I :调用静态函数 add(p1, p2)
invoke-virtual {v0, p0}, Landroid/widget/Button;->setOnClickListener(Landroid/view/View$OnClickListener;)V :调用虚函数

move-result v0 :前面调用函数后,把结果放到 v0
move-result-object v0 :前面调用函数返回的对象给 v0

check-cast v0, Landroid/widget/Button; :强制类型转换 mBtn = (Button) findViewById(R.id.btn);

return-void :return ;

‘贰’ android smali是源码

千峰扣丁IT教育总结:smali 是Android 应用程序(*.apk)反编译生成的文件格式,
是一种类似于汇编语言的底层计算机语言。阅读和书写smali语法都需要极大的耐心和勇气,
本文将介绍如何反编译和运行第三方的程序(smali)代码。

Android程序文件, 即apk文件, 其实是一个zip压缩包, 其文件结构如下:classes.dex是程序的核心文件,是java语言的代码编译后的二进制字节码程序。这种字节码程序是编译专供机器阅读的,
类似于汇编语言的机器码。然而如果想直接阅读这部分程序, 最好的方法就是将该文件转化为smali文件。apktool着名的反编译工具 apktool
就可以完成这部分工作。 它将classes.dex文件反编译成一堆的smali文件, 这些文件按源码的包结构保存在各自的文件夹中。如下所示:另外,
apktool 工具强大之处在于它不仅可以反编译apk文件, 而且可以根据现有的smali 文件生成新的apk文件。
这就给汉化apk或者去除apk内嵌广告提供了可能。smali语法类似于汇编语言的语法, 涉及寄存器的直接操作, 可以直接阅读, 但羞涩难懂,
尤其是在代码混淆之后。

‘叁’ 为什么状态栏反编译后没有smali\com\android\systemui\statusbar\ statusbar

部分手机下拉背景和抽屉,通知栏顶部都是由主题决定的,系统用户界面里面是空的

‘肆’ android反编译APK后,是smali文件,能反编译成dex文件吗

dex文件不需要反编译的,apk就是个压缩文件,dex可以通过解压直接得到

‘伍’ Android---Smali语法中:什么直接方法(direct methods)什么是虚方法(virtual methods)

调用的时候

invoke-direct 调用直接方法
invoke-virtual 调用是虚方法
invoke-interface 调用接口函数

打开文件
#direct methods注释后面的是直接方法
#virtual methods注释后是虚方法

‘陆’ 如何把java代码转换成smali代码

把java代码转成smali代码共需要以下三个步骤
1、编译java代码为class文件
javac smaliTest.java
这个比较简单,会生成smaliTest.class文件
2、把class文件转成dex文件
我们知道apk包里java代码最后生成的是class.dex文件,把class转化成dex文件就需要用到android SDK提供的一个工具dx,该jar包位于android-sdk\build-tools\23.0.1\lib,找到该包后执行以下命令
java -jar dx.jar --dex --output=smaliTest.dex smaliTest.class
3、把dex转化成smali文件
这时候会使用到另外一个工具baksmali,该工具位于android-sdk\platform-tools\,找到该包后执行以下命令
java -jar baksmali.jar smaliTest.dex
OK,完成,此时会生成一个out目录,在out目录下的smaliTest.smali就是我们要看到的smali代码了

‘柒’ 你好,我想问问Android反编译之后哪些文件有用smail文件夹里的东西有用吗

smali是通过安卓的java代码经过编译后得到的,可以理解为delvik虚拟机的“汇编语言”。一般反编译apk做修改都是直接修改smali代码的。
smali代码其实比较容易懂,是可以和java代码对应上的。你所希望的直接在IDE修改java代码应该是无法达到的。
希望采纳。

‘捌’ 求助:Android逆向涉及到的dalvik字节码和smali文件,ARM汇编三者的联系和区别是什么

dalvik字节码就是smali或者(java)用编译产生的dalvik可执行文件
ARM汇编,是操作芯片级的指令集。这三个东西不在一个层面
android

|(编译产生.dex,也可理解为smali压缩文件,也就是虚机可执行文件)

dalvik虚机
|

ARM汇编
|
硬件

‘玖’ 安卓反编译出来的都是.smali文件,怎么反编译位原工程啊修改后还能重新编译回去

反编译步骤:

下载apktool 并设置环境变量
命令行进入apk目录执行:apktool d xx.apk (如果遇到一些错误说明apk做了防破解处理)
执行成功后会生成xx文件夹,进入xx文件夹修改需要修改的内容,如果需要修改代码,进入xx\smali\里面,需要懂一些smali语法
修改完后回到命令行,执行:apktool b xx ,会在xx文件夹里面生成一个dist文件夹,里面的apk就是回编译的,这个apk是没有签名的
下载网上的签名工具对apk签名,完了就可以安装了(如果你下载了源码或者sdk,里面自带一个signapk也可以签名)

‘拾’ android studio中compile2smali怎么用

网络了一下关键字,没发现这个关键字,看来你只能去谷歌一下,然后看看是否官方的文档了。

热点内容
95美女秀加密房间 发布:2024-11-01 09:00:55 浏览:754
java读取xlsx 发布:2024-11-01 08:54:47 浏览:724
苹果安卓系统英文叫什么 发布:2024-11-01 08:54:37 浏览:761
php日期计算 发布:2024-11-01 08:52:18 浏览:443
怎么压缩rar 发布:2024-11-01 08:45:50 浏览:660
按位与java 发布:2024-11-01 08:39:44 浏览:55
鸟哥linux私房菜服务器 发布:2024-11-01 08:26:19 浏览:943
tomcat在linux下配置 发布:2024-11-01 08:09:57 浏览:95
工行密码器怎么买东西 发布:2024-11-01 08:00:02 浏览:712
查找子串的算法 发布:2024-11-01 07:58:25 浏览:215