欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

實(shí)驗(yàn)吧smali文件分析-創(chuàng)新互聯(lián)

試題網(wǎng)址: http://www.shiyanbar.com/ctf/1871

創(chuàng)新互聯(lián)建站主營(yíng)營(yíng)口網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),營(yíng)口h5重慶小程序開(kāi)發(fā)搭建,營(yíng)口網(wǎng)站營(yíng)銷(xiāo)推廣歡迎營(yíng)口等地區(qū)企業(yè)咨詢(xún)

0x01

        首先我們得到了一個(gè)hello.dex文件,要把它反編譯為smali文件,使用工具baksmali,cmd命令: java -jar baksmali-2.0.3.jar -o class/ Hello.dex ,就在當(dāng)前目錄下生成了一個(gè)文件夾,里邊有一個(gè)hello.smali 代碼如下:

.class public LHello;
.super Ljava/lang/Object;
.source "Hello.java"
# direct methods
.method public constructor <init>()V
    .registers 1
    .prologue
    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    return-void
.end method
.method public static main([Ljava/lang/String;)V
    .registers 5
    .prologue
    .line 7
    new-instance v0, LHello;
    invoke-direct {v0}, LHello;-><init>()V
    .line 8
    sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream;  //v1存out對(duì)象的引用
    const/4 v2, 0x5    //把5符號(hào)擴(kuò)展32位賦值給v2
    const/4 v3, 0x3    //把3符號(hào)擴(kuò)展32位賦值給v3
    invoke-virtual {v0, v2, v3}, LHello;->foo(II)I   //調(diào)用函數(shù)foo
    move-result v0    //把函數(shù)的結(jié)果賦值給v0
    invoke-virtual {v1, v0}, Ljava/io/PrintStream;->println(I)V  //打印輸出v0
    .line 9
    return-void
.end method
# virtual methods
.method public foo(II)I
    .registers 5
    .prologue
    .line 3        
    add-int v0, p1, p2        // v0=p1+p2
    sub-int v1, p1, p2        // v1=p1+p2
    mul-int/2addr v0, v1        // v0=v0*v1
    return v0
.end method。  于是便可以進(jìn)行分析了.

0x02

            在這里首先稍微的科普一下,安卓程序都是由安卓虛擬機(jī)來(lái)運(yùn)行的,Dalvik虛擬機(jī)有兩種不同的寄存器表示方法,p命名法還有v命名法,假如說(shuō)一個(gè)函數(shù)fun()使用了5個(gè)寄存器,2個(gè)顯式的參數(shù),并且這個(gè)方法是非靜態(tài)的方法,所以調(diào)用的時(shí)候會(huì)傳入一個(gè)隱式的fun對(duì)象引用,所以有三個(gè)參數(shù),局部變量使用前2個(gè)寄存器,參數(shù)使用后3個(gè),分別為v0,v1,v2,p0,p1,其中p0傳入對(duì)象的引用。

             然后說(shuō)下Dalvik字節(jié)碼的類(lèi)型,方法還有字段表示方法:

           1.類(lèi)型:

                     V--void    Z--boolean B--byte    S--short     C--char    I--int    F--float

                     D--double    L--java類(lèi)型     [--數(shù)組類(lèi)型

              其中java類(lèi)型一般都是LpackageName/name/Objname 來(lái)表示具體的那個(gè)對(duì)象,如Ljava/lang/String相當(dāng)于java.lang.String

            2.方法:

                    Lpackage/name/Objname;->MethodName(III)Z

                    III表示三個(gè)整型參數(shù),Z表示返回值是boolea型,

            3.字段:

                    字段由類(lèi)型、字段名、字段類(lèi)型構(gòu)成,字段名和字段類(lèi)型之間使用:隔開(kāi)

                    #instance fileds 實(shí)例字段

                   #static fields 靜態(tài)字段

一些基本語(yǔ)法:

.prologue        方法開(kāi)始

invoke-direct  調(diào)用函數(shù)

return-void  函數(shù)返回void

.end method  函數(shù)結(jié)束

new-instance  創(chuàng)建實(shí)例

iput-object  對(duì)象賦值

iget-object  調(diào)用對(duì)象

所以最終返回結(jié)果 (5+3)*(5-3)=16

當(dāng)然這里直接反編譯成jar然后反匯編為java代碼更容易看出來(lái):

import java.io.PrintStream;
    public class Hello
{
     public static void main(String[] paramArrayOfString)
     {
           Hello localHello = new Hello();
           System.out.println(localHello.foo(5, 3));
     }

     public int foo(int paramInt1, int paramInt2)
     {
           return (paramInt1 + paramInt2) * (paramInt1 - paramInt2);
     }
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

名稱(chēng)欄目:實(shí)驗(yàn)吧smali文件分析-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://chinadenli.net/article12/hdgdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、做網(wǎng)站域名注冊(cè)、App開(kāi)發(fā)企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司