安卓移动逆向(四)-Smail_HelloWorld

本文介绍了如何着手编写一个Smail类型的HelloWorld程序,强调了不直接复制代码的重要性。通过编写Smali代码并使用smali.jar将其打包成DEX文件,然后通过ADB工具将.dex文件推送到已Root的安卓设备或模拟器中运行。在过程中可能遇到的adb错误,可以使用旧版adb解决。
摘要由CSDN通过智能技术生成

着手编写一个Smail类型的HelloWord

开始编写

不要直接复制,要一个一个字符敲,否则没有意义!!
不要直接复制,要一个一个字符敲,否则没有意义!!!!
不要直接复制,要一个一个字符敲,否则没有意义!!!!!!

.class public LHelloWorld;  #定义类名
.super Ljava/lang/Object;   #定义父类
.method public static main{[Ljava/lang/String;}V    #声明main()<主函数>
    .registers 4    #程序中使用v0,v1,v2寄存器与一个参数寄存器
    .prologue   #代码起始指令
    return-void #没有返回值void
    .end method

这是一段HelloWorld的架构代码,定义了一个可编译运行的DEX文件的最小组成部分,下面我们将在.prologue(代码起始指令)下编写具体代码:

    #空指令
    nop
    nop
    nop
    #数据定义指令
    const/16 v0, 0x8    #v0=0x8
    const/4 v1, 0x5     #v1=0v5
    const/4 v2, 0x3     #v2=0x3
    #数据操作指令
    move v1, v2     #v1=v2
    #数组操作指令
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值