安卓逆向--修改smali

和上一篇帖子用的工具一样 Android逆向助手 v2.2

这里只是做一个嵌入smali的测试,嵌入的东西很简单,只想在所有的activity里面弹出一段提示。

源码:

Toast.makeText(this, "----", Toast.LENGTH_LONG).show();

大致步骤:

1、解压目标apk,查看smali文件,找到要嵌入的位置。
大致是找BaseActivity、MainActivity等的onCreate方法,在setCOntentView方法之后紧跟一行,基本不会错。

2、获取提示的smali源码,写一个空工程,只有弹出提示的一行代码,方便获取smali,然后反编译,把对应smali代码取出来。

这里做一个对比:
java:

Toast.makeText(this, "----", Toast.LENGTH_LONG).show();

smali:

const-string v0, "----"
const/4 v1, 0x1
invoke-static {p0, v0, v1}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V

大致是把变量、声明先提取出来,方法一个个分解开来。

3、将这段smali源码拷贝到指定位置,然后重新打包。记住需要签名。

整个过程要小心,不能乱了行,测试通过,达到预先的设想。

最后,既然可以放Toast,也可以放其他的代码了,各位尽情发挥!

时间: 2024-08-05 11:07:45

安卓逆向--修改smali的相关文章

安卓逆向入门(一)

文章来源i春秋 这段时间大师傅安排了安卓逆向练习.首先 0 基础没有代码开始学起也是可以的,不用太过于执着于"我没有代码功底就学不会",我可以很明确的说,我也没有多少代码功底,都是偶尔被大师傅逼着看.但是简单的也就仅仅能看懂,写出来又是另一个问题了.有时候我们学习很多东西需要的代码知识不多,记住一些主要函数,语句就好了,不懂就有道翻译(很多也就是英语,我英语也不行,也不用想着不懂英语就不能编程什么的.)或百度,用到的时候对着那几个主要的函数,语句你还能不懂? 00X1: 安卓逆向基础工

安卓逆向之基于Xposed-ZjDroid脱壳

http://bbs.pediy.com/thread-218798.htm 前言 之前介绍了普通常见的反编译模式 但对于使用了 360加固 棒棒 爱加密 等等的加固应用就没办法了. 你会发现反编译出来的dex 只有几个类 逻辑都是调用so 真正的dex会被加载到内存中隐藏起来 加固应用都是多dex这种形式 要想拿到他真正的dex 需要进行脱壳处理  基本原理都是从内存中dump 我一般会先用工具来尝试 不行的话就得上 IDA(反汇编神器)超级强的一个工 具 杀手级别 贯穿移动端 PC端的逆向

安卓手机修改host

 电脑修改法 1.手机必须先root,小米可以安卓开发版系统即可 2.安卓 adb工具(android debug bridge) 3.依次执行下面的命令 1.adb root 获得root权限 会自动启动server 2.adb remount 设置/system为可读写: 3.adb pull /system/etc/hosts 将手机的hosts文件复制到PC的C盘根目录 4.PC机上打开hosts文件,修改完成后,保存 5.adb push hosts /system/etc/ 将PC机

安卓布局修改基础常识篇之TextView属性

[天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址:android:autoText 自动检测错误:android:bufferType 决定getText()返回的类型android:capitalize 指定使用类型android:cursorVisible 光标是否可见android:digits 数字输入android:drawableBot

【转】一步一步带你反编译apk,并教你修改smali和重新打包

一.工具介绍: 1.apktool:aapt.exe,apktool.bat,apktool.jar;三个在同一目录结合使用,用来反编译apk,apk重新打包: 2.dex2jar:该工具作用是将classes.dex文件,反编译出源码(如果apk未加固),反编译出文件,使用jd-gui工具进行查看: 3.Auto-Sign:自动签名工具,将重新打包的apk进行签名,如果不签名,无法安装使用. 工具下载地址:https://download.csdn.net/download/sxk874890

实验吧smali文件分析【安卓逆向首发】

试题网址: http://www.shiyanbar.com/ctf/1871 0x01 首先我们得到了一个hello.dex文件,要把它反编译为smali文件,使用工具baksmali,cmd命令:  java -jar baksmali-2.0.3.jar -o class/ Hello.dex ,就在当前目录下生成了一个文件夹,里边有一个hello.smali 代码如下: .class public LHello; .super Ljava/lang/Object; .source "He

安卓逆向学习---初始APK、Dalvik字节码以及Smali

参考链接:https://www.52pojie.cn/thread-395689-1-1.html res目录下资源文件在编译时会自动生成索引文件(R.java ), asset目录下的资源文件无需生成索引. 一般来说:使用C++游戏引擎的资源文件放在asset下 java开发中除音频和视频资源(放在raw或asset下),均放在res下. Dalvik字节码是什么? Dalvik是Google专门为Android设计的一个虚拟机. Dalvik VM是基于寄存器的,而JVM是基于栈的,Dal

安卓逆向学习---深入Smali文件

参考:https://www.52pojie.cn/thread-396966-1-1.html Smali中的包信息 .class public Lcom/aaaaa; //他是com.aaaaa这个package下的一个类. .super Lcom/bbbbb; //继承自com.bbbbb这个类. .source "ccccc.java" //这是一个有ccccc.java编译得到的Smali文件. Smali中的声明 一般来说是这个样子: # annotations .anno

安卓逆向——smali语法

Dalvik虚拟机操作码 作者:Gabor Paller    翻译:YULIANGMAX v1.0 表中的vx.vy.vz表示某个Dalvik寄存器.根据不同指令可以访问16.256或64K寄存器. 表中lit4.lit8.lit16.lit32.lit64表示字面值(直接赋值),数字是值所占用位的长度. long和double型的值占用两个寄存器,例:一个在v0寄存器的double值实际占用v0,v1两个寄存器. boolean值的存储实际是1和0,1为真.0为假:boolean型的值实际是