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

在复现实战逻辑漏洞:三个漏洞搞定一台路由器 中,苦恼如何反编译*.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

反编译的代码如下:

在这里插入图片描述

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值