簡體   English   中英

是否可以從 dex 文件中獲取特定行的 java 代碼?

[英]Is it possible to get the java code for a specific line from the dex file?

我正在嘗試分析 dex 文件,我想知道是否可以獲得 java 代碼或 dex 文件中的特定字節的含義。

任何幫助將不勝感激!

從字節碼中獲取 java 代碼稱為反編譯,您需要使用反編譯器。 盡管我不知道有任何反編譯器會僅對一小段字節碼進行部分反編譯。 該片段中甚至可能沒有足夠的信息來執行正確的反編譯。

“或者 dex 文件中的特定字節是什么意思” - 您可以嘗試使用 baksmali 的帶注釋轉儲功能。 它寫出一種格式,左側是二進制字節,右側是結構化文本視圖,對應於左側的字節。

例如baksmali dump HelloWorld.dex

...
                           |-----------------------------
                           |code_item section
                           |-----------------------------
                           |
                           |[0] code_item: LHelloWorld;->main([Ljava/lang/String
                           |;)V
0001c4: 0200               |  registers_size = 2
0001c6: 0100               |  ins_size = 1
0001c8: 0200               |  outs_size = 2
0001ca: 0000               |  tries_size = 0
0001cc: 0000 0000          |  debug_info_off = 0x0
0001d0: 0800 0000          |  insns_size = 0x8
                           |  instructions:
0001d4: 6200 0000          |    sget-object v0, Ljava/lang/System;->out:Ljava/io
                           |/PrintStream;
0001d8: 1a01 0000          |    const-string v1, "Hello World!"
0001dc: 6e20 0100 1000     |    invoke-virtual {v0, v1}, Ljava/io/PrintStream;->
                           |println(Ljava/lang/String;)V
0001e2: 0e00               |    return-void
...

在左側我們有[offset]: [binary data]然后右側有解釋視圖。 例如字段名稱和值,或反匯編指令等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM