Changelog¶
0.2.1¶
Kudos to serenees for fixing these issues:
Fixed an issue where
Line.split_linewould return incorrect results if the input string started with the provided separator.Added “.subannotation” token verification
Added support to handle unnamed “.param” declarations
Changed exception descriptor of “.catchall” to
Ljava/lang/Exception;for all cases
0.2.0¶
This minor update includes a new smali type system and removes the SmaliValueProxy. The following changes were made:
Removed the class
SmaliValueProxycompletely, the methodsmali_valuenow returns one of: int, float, str, SVMType, boolNew classes
SVMTypeandSignatureto represent smali types:Some usage examples¶1from smali import SVMType, Signature 2 3# simple type instance 4t = SVMType("Lcom/example/Class;") 5t.simple_name # Class 6t.pretty_name # com.example.Class 7t.dvm_name # com/example/Class 8t.full_name # Lcom/example/Class; 9t.svm_type # SVMType.TYPES.CLASS 10 11# create new type instance for method signature 12m = SVMType("getName([BLjava/lang/String;)Ljava/lang/String;") 13m.svm_type # SVMType.TYPES.METHOD 14# retrieve signature instance 15s = m.signature or Signature(m) 16s.return_type # SVMType("Ljava/lang/String;") 17s.parameter_types # [SVMType("[B"), SVMType("Ljava/lang/String;")] 18s.name # getName 19s.declaring_class # would return the class before '->' (only if defined) 20 21# array types 22array = SVMType("[B") 23array.svm_type # SVMType.TYPES.ARRAY 24array.array_type # SVMType("B") 25array.dim # 1 (one dimension)
0.1.3¶
Fixed an issue in
SmaliReaderthat causes it to run into infinite loops (kudos to metalcorpe)Moved to Github-Pages instead of ReadTheDocs
Added the field
parentto an executionFrameto enable backtracking of call stacksSome issues around
TypeandSmaliValueProxyfixed
0.1.2¶
SmaliVMis now able to use customized executors.Note
The default class loader won’t throw any exception upon unknown by default. You can change this behaviour by setting the
use_strictattribute toTrue:vm = SmaliVM(use_strict=True)
Code was formatted properly
Documentation update
0.1.1¶
ISmali (interactive Smali shell) pre-release
Implementation of almost half of all Smali-opcodes
Fixed an error of
SmaliValueProxythat caused exceptions on operations with an object of the same classMultiple bug fixes in the process of class definition (import)
0.0.1¶
Start keeping changelog :)
Documentation on Smali language
Smali parser implementation (line-based)
Small Smali-VM