[英]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.