OrenIshShalom
OrenIshShalom

Reputation: 7162

equivalent of objdump for dex files

Upvotes: 0

Views: 227

Answers (2)

JesusFreke
JesusFreke

Reputation: 20282

baksmali has a dump command that generates an annotated hex dump of a dex file

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

It is also able to list the items in some of the various constant pools

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"

Upvotes: 0

OrenIshShalom
OrenIshShalom

Reputation: 7162

Just in case it helps someone in the future:

$ sudo apt install dexdump

Upvotes: 1

Related Questions