首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Android点滴分享

    smali 介绍

    本篇介绍 smali 可以看成是虚拟机的汇编语言,在逆向时可以看懂smali可以提升不少效率. Smali 语法 数据类型 Java 和 Smali 的类型对应关系和jni类似,如下所示: 基本数据类型 Smali数据类型 Java数据类型 V void Z boolean B byte S short C char I int J long F float D double 对象类型 Smali数据类型 Java数据类型 Lpackage/name/ObjectName; ObjectName [ I int[] Smali 格式 打开smali 文件,头三行格式如下: .class <访问权限> [关键修饰字] <类名>; .super <父类名>; .source <源文件名> 类的成员变量形式是 指令 Smali 指令有常量操作指令,方法调用指令,移位指令,分支判断指令。

    86850编辑于 2022-10-25
  • 来自专栏tea9的博客

    smali hello

    动态调试-android studio ---- Android Studio动态调试smali源码 androidstudio动态调试smali AS动态调试smali smali.jar download 2 Java download链接: 提取码: ix9u Java 2 Smali intellij-java2smali Preferences->Plugins->smali Use: Build ->Compile to smali ---- 如何把java代码转换成smali代码 javac smaliTest.java java -jar dx.jar --dex --output=smaliTest.dex -cp /sdcard/HelloWorld.dex HelloWorld Hello World LINKS 用 Smali 手写一个可运行的 HelloWorld!!! Smali基本语法

    90430编辑于 2022-09-08
  • 来自专栏androud

    smali基本语法

    Smali语法 ①基本数据类型 smali类型     java类型 V                  void Z                  boolean B                   String;                                        java.lang.String L 表示对象类型 package/name 表示包名 ; 表示结束③数组 smali " sput-object v0, Lcom/MyActivity;->name:Ljava/lang/String; 相当于java代码 MyActivity.name = "Hello Smali const/4 v1, 0x2 iput v1, v0, Lcom/MyActivity;->name:Ljava/lang/String; 相当于java代码 act.name = "Hello Smali }, Lcom/fusijie/helloworld/MainActivity;->setContentView(I)V .line 10 return-void .end method #是smali

    1.6K00发布于 2021-04-17
  • 来自专栏wOw的Android小站

    Android 逆向之 smali

    smali_classes3 build res smali_classes4 这样解出来可以看到有4个smali文件夹 ,里面都是smali文件。 关于smali是这次的主角,后面再详细说。 Smali smali就是Dalvik VM内部执行的核心代码。它有自己的一套语法。 比较好的方法是:把想要增加的逻辑先用java写成一个apk,然后把这个apk反编译成smali文件,随后把反编译后的这部分逻辑的smali文件插入到目标程序的smali文件夹中,然后再在原来的方法上采用

    2.5K31发布于 2020-01-21
  • 来自专栏Biubiu说

    初涉静态调试 - 修改Smali

    前言 Enmmm,还记得之前看反编译之后的结果,对于 Smali 文件,简直懵的要死。 今天,一起好好回顾下。 首先来个小 Demo 效果如下: ? 而接下来,我们重点关注 Smali 目录下的文件: ? Smali 解析代码文件 Enmmm,这里还需要借助工具:Dalvik虚拟机操作码,进行辅助。 So,结合起来,onCreate Smali 文件转换 Java 文件如下: @Override protected void onCreate(Bundle savedInstanceState) 修改 Smali 文件,使其达到我们预期效果 从文中提供 Demo 演示图,我们可以看出,当前的小程序主要功能便是,属于用户名以及校验码,验证通过进入欢迎页,否则提示错误异常。

    2.2K20发布于 2019-06-10
  • 来自专栏流川疯编写程序的艺术

    浅谈微信smali注入

    申请推送平台 这里以个推为例并下载Getui_SDK;新建一Android Studio工程,包名同微信包名保持一致(com.tencent.mm),新建一PushActivity用于获取启动个推SDK的smali ---- 2.获取资源文件 生成工程apk后使用ApkTool反编译生成好的apk后得到以下smali代码及资源文件。 进入smali目录获取到PushActivity.smali中启动个推代码片段: ? ---- 3.反编译 使用ApkTool反编译微信apk得到微信资源及smali代码: ? ---- 4.定位onCreate方法 查看微信资源AndroidManifext.xml中启动Launcher的Activity为LauncherUI,打开LauncherUI.smali文件并找到onCreate 在该方法最后加入启动个推smali代码,并将PushActivity改为Launcher所在位置后保存: ?

    1.2K40发布于 2019-01-18
  • 来自专栏乱码三千

    Android设备如何执行smali代码

    java代码的执行需要编译成字节码文件然后借助java虚拟机JVM执行, 那么smali代码的执行同样需要借助虚拟机, 只不过是安卓虚拟机DalvikVM, 但是由于Dalvik虚拟机默认识别dex文件 , 因此需要将smali文件封装成dex文件 1.创建smali文件 .class public LTest; .super Ljava/lang/Object; .method public constructor invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V return-void .end method 2.smali 文件转dex(或者打包成Apk也一样) java -jar smali-2.4.0.jar a smali文件或目录 -o 输出目录/xxx.dex 3.将dex传至android设备中(真机或者模拟器

    94310发布于 2021-08-24
  • 来自专栏中国白客联盟

    Android动态调试(一)动态调试Smali

    我们分析下smali,找到相关重要函数,getCoin ? 按command键跟入过去 ? 在getCoin处断点 ? 挂起app ?

    1.7K30发布于 2018-07-26
  • 来自专栏Python编程与实战

    Android 逆向--BUFF | Smali 介绍与学习

    ,不学Smali也罢。 02 Smali 通俗的来讲,Smali代码是DEX文件反汇编的结果,学习Smali就是学习其出处、语法和寄存器的过程。 提示2 以smali开头的文件夹里存放的就是层层叠叠的smali代码,你可能会困惑为什么有两个smali文件夹,这是因为有两个dex文件,那为什么java源码编译和打包后变成两个了Davlik字节码文件呢 用文本编辑器打开smali文件夹中的众多Smali文件 ? “ 乍看会有些陌生和恐慌,但不用担心,有非常好的教程和工具可以帮助我们学习Smali语法,除此之外也可以在群里讨论和交流Smali语法。 Smali语法学习 1、工具 我们可以使用Java和Smali互转工具来验证与学习Smail语法,工具已放在上一篇百度云中,叫做J2S2J1。

    2K10发布于 2019-12-05
  • 来自专栏漏斗社区

    天空飘来五字:Android逆向smali

    本期,我们将继续Android逆向动态分析之smali篇。内容包括smali语言介绍与动态调试。 0X01 smali语言简述 smali语言是Dalvik的反汇编语言因Android虚拟机Dalvik不是执行java虚拟机JVM编译后生成的class文件,而是执行再重新整合打包后生成的dex文件, dex文件反编译之后就是smali代码。 接触过Android逆向的小伙伴都会遇到smali语言,简单的逆向过程 [apk -> smali -> java]。有的逆向工具无法将smali语言反编译成java源码,只逆向到smali语言这层。 导入源码(apk逆向的smali)。 ? 选择要加载smali源码。 ? 连续next。 ? 加载后就能看到smali。 ? 将存放smali文件的文件夹设置为项目源码。 ?

    1.2K20发布于 2018-12-11
  • 来自专栏乱码三千

    smali语言之locals和registers的区别

    对于dalviks字节码寄存器都是32位的,它能够表示任何类型,2个寄存器用于表示64位的类型(Long and Double)。

    1.6K30发布于 2021-08-24
  • 来自专栏乱码三千

    Android逆向开发之smali语言的学习

    smali和java基本数据类型对比 smali java B byte S short I int J long F float D double C char Z boolean V void [ 数组 L+全类名路径用/分割 object 注释 在smali语言中注释使用#表示 # 我是注释 类声明 .class +权限修饰符 +类名; 比如以下java代码: public class Test { } 用smali代码表示为: .class public LTest;#声明类 (必须) .super Ljava/lang/Object;#声明父类 默认继承Object (必须) .implements 全局变量) .field 权限修饰符+静态修饰符 +变量名:变量全类名路径; 比如以下java代码: public class Test { private static String a; } 用smali 就非常好用,如图: 从错误总学习 SLog.smali[24,4] Invalid register: v-1.

    2.7K30发布于 2021-08-24
  • 来自专栏零域Blog

    为 Vim 添加 Smali 语法高亮和 Taglist 支持

    Smali 语法高亮 方法: 安装 Vim 插件 https://github.com/mzlogin/vim-smali。 跳转到定义 方法: 为 Ctags 添加 Smali 语言支持。 新建文件 ~/.ctags 并将如下内容复制进去: --langdef=smali --langmap=smali:.smali --regex-smali=/^\.field (public |private 在 _vimrc 文件里添加一行即可: let g:tlist_smali_settings = "smali;f:field;m:method" 使用 Tagbar 方法: 为 Tagbar 添加 Smali 语言支持。

    1.3K10编辑于 2022-03-28
  • 来自专栏闷骚的程序员

    为 Vim 添加 Smali 语法高亮和 Taglist 支持

    Smali 语法高亮 方法: 安装 Vim 插件 https://github.com/mzlogin/vim-smali。 跳转到定义 方法: 为 Ctags 添加 Smali 语言支持。 新建文件 ~/.ctags 并将如下内容复制进去: --langdef=smali --langmap=smali:.smali --regex-smali=/^\.field (public |private 在 _vimrc 文件里添加一行即可: let g:tlist_smali_settings = "smali;f:field;m:method" 使用 Tagbar 方法: 为 Tagbar 添加 Smali 语言支持。

    1.6K20发布于 2020-04-16
  • 来自专栏FreeBuf

    逆向APK进行smali注入实现“秒破WIFI”

    得到smali源码后开始找关键代码,我们的主要目的是让wifi万能钥匙把从服务器传回来的密码显示出来,这样我们不但能连入wifi,而且还能知道明文密码。 依据这个 id="0x7f0d051e",我们能定位到关键的smali代码,\WiFiMaster\smali\com\snda\wifilocating\ui\activity\fc.smali这里使用了这个字符串 这个类的smali代码路径如下:\WiFiMaster\smali\com\snda\wifilocating\ui\activity\AutoConnectActivityWithStateList.smali 手动输入如下的代码插入到该方法中(smali有很严格的语法规则,拿到一段代码先要搞清楚含义,随意插在什么地方几乎是跑不通的,关于smali的语法网上有很多资料了,建议先学习懂了以后再去写,当然如果你是高手就飘过吧 后来我专门研究了一下这个问题,主要其实是资源出的错,当然前提是要先把smali代码编译过去,剩下再解决资源的问题。本例中的这个APK也是有报错的,好在还不多,都一一解决了。

    1.7K60发布于 2018-02-02
  • 来自专栏全栈程序员必看

    修改SystemUI反编译的smali实现隐藏导航栏「建议收藏」

    在反编译输出目录中com/android/systemui/statusbar/phone/PhoneStatusBar.smali控制导航栏. s实际操作的是 xt1092 android6.0 的SystemUI.apk

    1.5K10编辑于 2022-09-30
  • 来自专栏上善若水

    s002android逆向安全初级篇之android smali语法总结

    总结一下smali 的分析 。 smali代码相当于dalvik虚拟机的汇编语言。 -- 如何得到smali代码参考百度,或我的文章s001android逆向安全初级篇之apk逆向常用工具及简单使用一览 利用这些工具可以得到。 smali 的dalvik 操作码链接dalvik_opcodes smali 中的数据类型 smali中有两类数据类型:基本类型和引用类型。 引用类型是指数组和对象,其他都是基础类型。 参考链接 dalvik_opcodes s001android逆向安全初级篇之apk逆向常用工具及简单使用一览 apk反汇编之smali语法 Android apk的混淆 Dalvik (software ) ---- smali是一个开源并且注释清晰的反编译的java工程 apktool是基于smali开发的帮助反编译apk的利器 dedexer是独立与smali又一个反编译apk的工具 而dexdump

    99940发布于 2018-09-28
  • 来自专栏上善若水

    s003android逆向安全初级篇之apk smali语法之实例分析

    结合上一篇对smali语法的总结,对遇到的一些实例进行分析 .method constructor <init>(Lcom/android/netprovider/b/f;Ljava/util/ArrayList 参考链接 s002android逆向安全初级篇之android smali语法总结

    62120发布于 2018-09-28
  • 来自专栏全栈程序员必看

    安卓逆向_9 — log 插桩、Toast 弹窗、smali代码编写和植入 ( 好搜小说 )

    如果仅仅用 Smali 来分析代码,效果其实不如用 dex2jar 和 jd-gui 更直观,毕竟看反编译的 java 代码要更容易一些。 但 Smali 强大之处就是可以随心所欲的进行插桩操作。 安卓从开发到逆向(四),smali 插桩:https://blog.csdn.net/wy450120127/article/details/101280797 以 ” 好搜小说大全.apk ” 为例 首先使用 “查壳工具” 检测下 app 有没有加壳,如图: 可以看到 好搜小说大全.apk 没有加壳, 没加壳好办,直接使用 AK 打开 “好搜小说大全.apk”,找到 对应 smali 代码(如果加壳 通过上面找到的 MainActivity ,进入对应的目录( smali —> com —> reader —> activity —> MainActivity ) 在 activity 目录中找到 保存,编译,运行 也可以自己写 smali 代码,引入自定义的 smali 包,强制弹出窗口等操作。。。 更多看视频教程。。。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    1.7K21编辑于 2022-09-30
  • 来自专栏增加或修改安卓app apk功能

    安卓增加或修改现有app apk的功能(apk功能扩展)

    摘要: 安卓增加或修改apk android apk app的功能(apk功能扩展)标签: smali,反编译apk,apk修改,apk合并,android app 功能扩展 现有apk不能满足需要 本人根据多年修改apk的经验,总结如下:一、扩展apk功能的原理及步骤1、必要条件: 该apk能够被反编译为smali代码,也能够被回编译,功能正常。2、smali基本语法。 因为apk被反编译后,生成的是smali文件,需要懂一些smali基本语法。3、从理论上说,apk被反编译为smali代码后,完全可以通过修改增加smali代码,从而增加或修改apk的功能。 ,新建:smali_classes2目录,将副apk的smali目录全部内容复制进来;6、合并AndroidManifest.xml合并权限:将副apk窗体使用到的权限合并至主AndroidManifest.xml 8、回编译修改后的主smali代码;9、签名回编译后的apk文件;10、运行测试合并后的apk,如果报错,根据错误信息修改。图片

    1.8K20编辑于 2023-09-01
领券