smali 介绍


smali 首页
smali 源代码库


smali - 集合一组smali文件转换成DEX文件

:~# smali --help
usage: java -jar smali.jar [options] [--] [<smali-file>|folder]*
assembles a set of smali files into a dex file
          prints the help message then exits. Specify twice for debug options
 -a,--api-level <API_LEVEL>
          The numeric api-level of the file to generate, e.g. 14 for ICS.
          If not specified, it defaults to 14 (ICS).
 -o,--output <FILE>      
          the name of the dex file that will be written. The default is out.dex
          prints the version then exits
          allow odex instructions to be compiled into the dex file. Only a few
          path and notinstructions are supported - the ones that can exist in a
          dead codecause dalvik to reject the class

baksmali - 反汇编和/或转储DEX文件

:~# baksmali --help
usage: java -jar baksmali.jar [options] <dex-file>
disassembles and/or dumps a dex file
          prints the help message then exits. Specify twice for debug options
 -a,--api-level <API_LEVEL>  
          The numeric api-level of the file being disassembled. If not specified,
        it defaults to 14 (ICS).
          don't write out debug info (.local, .param, .line, etc.)
 -c,--bootclasspath <BOOTCLASSPATH>  
          the bootclasspath jars to use, for analysis.
        Defaults to core.jar:ext.jar:framework.jar:android.policy.jar:services.jar.
        If the value begins with a :, it will be appended to the
        default bootclasspath instead of replacing it.
 -d,--bootclasspath-dir <DIR>  
          the base folder to look for the bootclasspath files in.
        Defaults to the current directory.
          add comments to the disassembly containing the code offset for each address
          output the .locals directive with the number of non-paramete registers,
        rather than the .register directive with the total number of register.
          don't output helper comments for synthetic accessors
 -o,--output <DIR>  
          the directory where the disassembled files will be placed.
        The default is out.
          use the v<n> syntax instead of the p<n> syntax for registers mapped
        to method parameters.
 -r,--register-info <REGISTER_INFO_TYPES>  
          print the specificed type(s) of register information for each
        instruction. "ARGS,DEST" is the default if no types are specified.
        Valid values are:
                 ALL: all pre- and post-instruction registers.
                 ALLPRE: all pre-instruction registers
                 ALLPOST: all post-instruction registers
                 ARGS: any pre-instruction registers used as arguments to the
                 DEST: the post-instruction destination register, if any
                 MERGE: Any pre-instruction register has been merged from more than 1
                       different post-instruction register from its predecessors.
                 FULLMERGE: For each register that would be printed by MERGE, also
                       show the incoming register types that were merged.
            create label names using a sequential numbering scheme per label type,
          rather than using the bytecode address
            prints the version then exits
            deodex the given odex file. This option is ignored if the input file
          is not an odex file

smali 用法示例

:~# coming soon