当smali修改代码出错举例1,log如下: 虚拟机层次: 1.本身做出了预测,寄存器v2是符合要求入参,暗示你这个也许是你想要的.VFY: register1 v2 type 17, wanted ref 2.下一句:报参数1不对,应该是String类型. VFY: bad arg 1 (into Ljava/lang/String;) 3.第三行,拒绝调用初始化.VFY:  rejecting call to Ljava/lang/StringBuilder;.<init> (Ljava/…
一 .smali数据类型 1.Dalvik字节码 Davlik字节码中,寄存器都是32位的,能够支持任何类型,64位类型(Long/Double)用2个连续的寄存器表示: Dalvik字节码有两种类型:原始类型:引用类型(包括对象和数组) 原始类型:          v   void  只能用于返回值类型           Z   boolean           B   byte           S   short           C   char           I   …
什么是Smali: 我们用工具反编译一些APP的时候,会看到一个smali文件夹,里面其实就是每个Java类所对应的smali文件.Android虚拟机Dalvik并不是执行java虚拟机JVM编译后生成的class文件,而是执行再重新整合打包后生成的dex文件,dex文件反编译之后就是smali代码,可以说,smali语言是Dalvik的反汇编语言 JAVA和Smali数据类型对比: JAVA Smali V void Z boolean B byte S short C char I int…
工具: Android Studio版本: 3.0.1 smalidea插件: https://github.com/JesusFreke/smali/wiki/smalidea. 反编译工具:本节先用Android Killer,后面介绍apktool. 一 配置插件 下载smalidea插件,然后打卡Android Studio,点击File->Setting->Plugins->Install plugin from disk,选择下载的smalidea.zip文件,安装成功后显示…
本地环境: PC:windows 10,Intellij IDEA (android studio应该一样的) 手机:nexus5 8.1系统, 其他依赖:smalidea插件,xposed 插件 https://github.com/JesusFreke/smali 我使用的版本的下载链接,也是官方的:https://bitbucket.org/JesusFreke/smali/downloads/smalidea-0.05.zip 这个插件不能在线安装,需要下载后通过Install plug…
1.工具介绍 使用工具 android killer:用于反编译apk包,得到smali代码 android studio:调试smali代码工具,或者使用idea,android studio就是在idea的基础上修改的 smalidea-0.03.zip:  as插件,需要安装到android studio中 , 下载地址 模拟器或者或者真机:运行要调试的程序 样本:使用网络上的某apk程序,  下载地址 2.前期准备 2.1  手机或者模拟器安装应用 adb instll GGNdkTes…
转自 : http://blog.sina.com.cn/s/blog_5674d18801019i89.html 应用场景 Smali代码注入只能应对函数级别的移植,对于类级别的移植是无能为力的.具体的说,如果你想修改一个类的继承.包含关系,接口结构等是非常困难的.但对于修改类成员变量访问控制权限,类方法实现,Smali代码注入的方法是可以实现的.这主要是因为Samli级代码的灵活性已经远低于java源代码,而且经过编译优化后,更注重程序的执行效率.   Smali代码注入 本质上讲,Smal…
有同学在通服里面干活,最近一直忙着4g基站搭建的干活,测试设备(android)测量移动网络数据,没有自动保存记录的功能,只能手动记录各种测试参数,不知道测试软件供应商是怎样想的,竟然不提供的这样的功能! 要我帮忙把测试数据自动导入excel表格中,我硬着头皮去尝试下.网上有smali的语法和注入的介绍,但参考价值不大,分享下自己的smali注入的过程和心得(这里smali语法就不讲了). 案例 1.需求 需要提取数据界面如下: 提取数据字段信息: 地点address 小区识别码 cellId,…
  适合人群: Android开发人员.逆向反编译开发人员.以及对Android逆向安全感兴趣的朋友. 视频地址: 51CTO学院:https://edu.51cto.com/course/24485.html 腾讯课堂:https://ke.qq.com/course/2868968 学完本课程,可以让大家掌握Android逆向反编译工具.重签名工具.smali语法知识.开发jar包,以及代码修改和注入技术.…
Android逆向之smali 头信息 smail文件前三行 .class <访问权限> [关键修饰字] <类名>; .super <父类名>; .source <源文件名> .class指令表示当前的类名,类的访问权限是public,类名是Lcom/example/mark/myfirstapp/MainActivity,类开头的L是遵循Dalvik字节码的相关约定,表示后面跟随的字符串是一个类 .super指定了当前类所继承的父类 .source指定了当…