相当于dex文件的objdump


  • 对于dex文件,是否有等效于objdump的文件
  • 我不想反编译它们,只想观看它们的内容

万一它能在未来帮助别人:

$ sudo apt install dexdump

baksmali有一个dump命令,它生成一个带注释的索引文件的十六进制转储

baksmali dump helloworld.dex > helloworld.txt
|-----------------------------
|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

它还能够列出各种常量池中的一些项目

baksmali list classes helloworld.dex
LHelloWorld;
baksmali list methods helloworld.dex
LHelloWorld;->main([Ljava/lang/String;)V
Ljava/io/PrintStream;->println(Ljava/lang/String;)V

baksmali list fields helloworld.dex
Ljava/lang/System;->out:Ljava/io/PrintStream;

baksmali list strings helloworld.dex
"Hello World!"
"LHelloWorld;"
"Ljava/io/PrintStream;"
"Ljava/lang/Object;"
"Ljava/lang/String;"
"Ljava/lang/System;"
"V"
"VL"
"[Ljava/lang/String;"
"main"
"out"
"println"

最新更新