java代码转Smali代码

来源:互联网 发布:福利直播软件 编辑:程序博客网 时间:2024/05/23 16:53

1.概述

最近接触逆向,想好好深入学习smali语法,不过每次都要经过android studio之类的工具编译才能将java转化成dex,接着再反编。。很麻烦,所以找了找如何将java代码转成smali,记录下来。

2.过程

  • 首先,准备好要转化的java类。使用javac编译成.class文件
    这里写图片描述

    这里出现的一个问题是,java编译器并不能找到android自己的工具库。莫慌,找到这个库加入编译就可以了。这个库包一般是android的sdk文件夹下的android.jar包,我的路径是在abdroid_sdk_linux/platforms/android-26下。。不管哪个android版本都有。
    然后javac编译的时候加入包的路径即可(win和linux好像写法有点小区别),注意空格
    这里写图片描述

  • 使用android自带的工具包将.class格式编译成dex格式
    我们所使用的android SDK提供的一个工具dx,我的工具路径是在android_sdk_linux/build-tools/26.0.1/lib下。
    这里写图片描述
    又一个问题,编译的时候会根据class里面的包名确定类的位置,,因此,需要在dx.jar所在目录下建立相应的路径文件夹并将类放进去。我在该目录下新建里com,里面再建了mzheng,然后把MyLog.class放进去。
    这里写图片描述
    这样就能得到java转dex的文件了

  • 使用smali.jar将dex文件转为smali文件
    使用命令:
    java -jar baksmali.jar MyLog.dex

  • 完成

原创粉丝点击