现在的位置: 首页 > 综合 > 正文

baksmali和smali工具的使用

2019年07月28日 ⁄ 综合 ⁄ 共 1021字 ⁄ 字号 评论关闭

baksmali和smali工具的使用

  两天前baksmali和smali又做了一次更新,目前最新的版本是1.4.2,这次更新虽然只是修了些bug,虽说现在直接使用baksmali和smali不多了,但大部分逆向分析工具还都是基于baksmali和smali来开发,就比如apltool,这次我就来简单介绍下baksmali和smali。

关于smali

        smali文件是一种非常接近dalvik指令格式的文件,由baksmali反编译dex文件而来,同样baksmali和smali这两个名词和dalvik一样都是来自冰岛语。

使用baksmali和smali

        这里使用Helloworld.apk程序作为sample,我们可以使用baksmali反编译dex文件来生成smali文件,如下:

Python代码
  1. walfred@ubuntu:reserve$ unzip -q HelloWorld.apk -d HelloWorld  
  2. walfred@ubuntu:reserve$ java -jar baksmali-1.4.2.jar HelloWorld/classes.dex  

        这样就会在当前目录下生成一个out目录,out目录:

Python/Shell代码
  1. walfred@ubuntu:reserve$ ls out/org/ourunix/helloworld/  
  2. BuildConfig.smali   R$attr.smali        R$id.smali          R$menu.smali        R$string.smali  
  3. MainActivity.smali  R$drawable.smali    R$layout.smali      R.smali             R$style.smali  

        当然如果你熟悉smali语法规则的话,你就可以自由的修改这些smali文件,然后在通过smali工具重新生成dex文件:

Python/Shell代码
  1. walfred@ubuntu:reserve$ java -jar smali-1.4.2.jar out/ -o classes.dex  

        当然这个方法已经out了,我们完全可以使用其他工具来完成更多的事情。

        项目主页:http://code.google.com/p/smali/

抱歉!评论已关闭.