Slide 1

Slide 1 text

SMALI it’s not small :) Sunday, 28 July 13

Slide 2

Slide 2 text

• Syntax is loosely based on Jasmin’s/Dedexer’s Syntax • Less overhead and easier to {de|re}compile dex files • Smali Representation of : Object blah = null; blah.toString(); Becomes: const v0, 0 //initialize the first local register to null or 0 invoke-virtual {v0}, Ljava/lang/Object;->toString(); Sunday, 28 July 13

Slide 3

Slide 3 text

• There are two naming schemes for registers - the normal v naming scheme and the p naming scheme for parameter registers • v0 - the first local register • v1 - the second local register • v2 or p0 - the first parameter register • v3 or p1 - the second parameter register Sunday, 28 July 13

Slide 4

Slide 4 text

• Classes are defined as .classs Lclassname • methods are defined as .method void main()V • methods are ended with .end-method • you need to return before you end a method. in case of its a void return, you can write return-void Sunday, 28 July 13

Slide 5

Slide 5 text

HANDS ON DEMO ON SMALI PROGRAMMING AND RUNNING Sunday, 28 July 13