美文网首页
如何反编译小米路由器中lua文件

如何反编译小米路由器中lua文件

作者: 飞熊先生 | 来源:发表于2021-05-13 08:11 被阅读0次

    在复现实战逻辑漏洞:三个漏洞搞定一台路由器 中,苦恼如何反编译*.lua程序,在网上找到的了专用于luac反编译的工具unluac,但是并不能解决问题:

    $ java -jar ./unluac_2021_03_19b.jar ./misystem.lua 
    Exception in thread "main" java.lang.IllegalStateException: The input file does not have the signature of a valid Lua file.
        at unluac.parse.BHeader.<init>(BHeader.java:70)
        at unluac.Main.file_to_function(Main.java:118)
        at unluac.Main.main(Main.java:60)
    

    不得不说github是程序猿的福音,找到一个开源工具unluac_mifi 解决了小米路由器中lua虚拟机中的magic_num问题。
    文件结构如下:

    ├── authors.txt
    ├── build
    │   ├── unluac
    │   └── unluac.jar
    ├── license.txt
    ├── out
    ├── README.md
    ├── src
    │   ├── META-INF
    │   └── unluac
    ├── test
    │   └── src
    └── unluac.iml
    

    其中unluac.jar是编译生成的,生成步骤如下:

     mkdir build
    javac -d build -sourcepath src  src/unluac/*.java
    jar -cfm build/unluac.jar src/META-INF/MANIFEST.MF -C build  .
    

    之后在build文件夹下,即可找到编译生成的unluac.jar

    touch file_decompiled.lua
    java -jar ./unluac.jar ./file.lua > file_decompiled.lua
    

    反编译的代码如下:


    接下来即可愉快的进行逆向分析

    相关文章

      网友评论

          本文标题:如何反编译小米路由器中lua文件

          本文链接:https://www.haomeiwen.com/subject/akpzdltx.html