小米路由ax3600、ax1800解包后发现lua脚本加密
查找资料后发现unluac可以进行反汇编

配置binwalk、ubi_reader、unluac

binwalk配置:

git clone https://github.com/ReFirmLabs/binwalk.git
cd binwalk
sudo python3 setup.py install

ubi_reader配置:

git clone https://github.com/jrspruitt/ubi_reader
cd ubi_reader
sudo python3 setup.py install
sudo apt-getinstall python-lzo
sudo apt-get install liblzo2-dev

unluac配置:

git clone https://github.com/NyaMisty/unluac_miwifi.git
cd unluac_miwifi
mkdir build
javac -d build -sourcepath src  src/unluac/*.java
jar -cfm build/unluac.jar src/META-INF/MANIFEST.MF -C build  .

主要是这个unluac.jar反汇编

ax3600、ax1800固件官方下载地址:

对ax3600解包:

binwalk -Me binwalk -Me miwifi_r3600_firmware_02d97_1.1.15.bin
cd _miwifi_r3600_firmware_02d97_1.1.15.bin.extracted/
ubireader_extract_images 2AC.ubi
cd ubifs-root/2AC.ubi
sudo unsquashfs ./img-928520125_vol-ubi_rootfs.ubifs

对ax1800解包:

binwalk -Me binwalk -Me miwifi_rm1800_firmware_df7e3_1.0.385.bin
cd _miwifi_rm1800_firmware_df7e3_1.0.385.bin.extracted/
ubireader_extract_images 2B0.ubi
cd ubifs-root/2B0.ubi/
sudo unsquashfs ./img-1921350739_vol-rootfs_data.ubifs

进入
squashfs-root/usr/lib/lua/luci/controller/api
查看脚本:

加密过了这时候用
unluac.jar进行反汇编,选择如下有漏洞的函数文件测试一下:
squashfs-root/usr/lib/lua/luci/controller/api/misystem.lua
记得分别把这个ax3600、ax1800下的这个文件copy到unluar.jar下
方便对比

touch ax3600.lua
java -jar ./unluac.jar ./misystem.lua > ax3600.lua

反汇编后查看有漏洞的函数

setConfigIotDev = L14
function L14()local L0, L1, L2, L3, L4, L5, L6, L7, L8, L9, L10, L11, L12, L13, L14, L15, L16, L17, L18, L19, L20L0 = requireL1 = "xiaoqiang.common.XQFunction"L0 = L0(L1)L1 = requireL2 = "xiaoqiang.util.XQWifiUtil"L1 = L1(L2)L2 = requireL3 = "luci.util"L2 = L2(L3)L3 = {}L3.code = 0L4 = {}L5 = {}L6 = requireL7 = "luci.model.uci"L6 = L6(L7)L6 = L6.cursorL6 = L6()L8 = L6L7 = L6.getL9 = "miscan"L10 = "config"L7 = L7(L8, L9, L10, L11)L7 = L7 or L7L8 = nilL9 = {}L10 = L1.getWifiBasicInfoL10 = L10(L11)L10 = L10.onL10 = L10 == 1wifi24GOn = L10if L7 == "1" thenL10 = wifi24GOnif L10 thenL10 = "scan 1"scancmd = L10L10 = L2.execlL10 = L10(L11)if L10 thenfor L14, L15 in L11, L12, L13 doL16 = L0.isStrNilL17 = L15L16 = L16(L17)if not L16 thenL17 = L15L16 = L15.matchL18 = "ssid:(%S+) bssid:(%S+) model:(%S+) routerSSID:(%S+) routerBSSID:(%S+)"L16, L17, L18, L19, L20 = L16(L17, L18)router_bssid = L20router_ssid = L19model = L18bssid = L17ssid = L16L16 = ssidif L16 ~= nil thenL16 = tableL16 = L16.insertL17 = L4L18 = {}L19 = tostringL20 = modelL19 = L19(L20)L18.model = L19L19 = tostringL20 = ssidL19 = L19(L20)L18.ssid = L19L19 = tostringL20 = bssidL19 = L19(L20)L18.bssid = L19L19 = tostringL20 = router_ssidL19 = L19(L20)L18.router_ssid = L19L19 = tostringL20 = router_bssidL19 = L19(L20)L18.router_bssid = L19L16(L17, L18)endendendendendendL5.list = L4L3.data = L5L10 = _UPVALUE0_L10 = L10.write_jsonL10(L11)
end

好像不是很直观,对比一下ax1800中相同函数的改动情况
左为ax1800右为ax3600

从改动代码来看ax3600已经修复了可注入函数。
整体反汇编下看还是不太直观。

小米路由固件中lua文件反编译相关推荐

  1. java中class文件反编译工具

    windows+R,输入cmd 进入dos命令窗口.(jad.exe所在的文件夹下) 将需要进行反编译的class文件的存放进当前文件夹. 输入:jad -sjava xxx.class 即可,之后在 ...

  2. java在控制台中的反编译指令,反编译class-class文件反编译工具 v0.3.7免费版

    反编译class class文件反编译工具是一款class文件反向编译的java工具,它能够将class文件逆向编译为java语言.此款软件比较小巧,特别适合初学者使用,感兴趣的赶紧下载啊! clas ...

  3. 命令行中使用javap反编译class文件

    由于自己在学习Java JVM相关知识的时候需要将java文件反编译成class文件进行性能分析,故将搜索到的方法整理如下: 步骤: 第一步:运行代码,生成.java文件 第二步:在当前路径下打开cm ...

  4. ipa文件反编译_iOS class-dump 反编译ipa包

    最近上传AppStore,总是说包含第三方支付而被拒. 如何反编译ipa包,查看所有的头文件和方法名(包括私有方法名)? 1.找到ipa包所在位置(这里的ipa包是通过archive后,export导 ...

  5. java的class文件反编译工具jad的应用

    java的class文件反编译工具jad的应用 JAD用法具体用法: http://www.kpdus.com/jad.html  官方最新版本,支持jdk1.6 Java下的一个简单易用的反编译工具 ...

  6. java class文件反编译 去掉无用注释

    java class文件反编译之后 有一些没有用的注释 在myEclipse中使用正则表达式 /\*(.*)\*/

  7. 对Android APK文件反编译查看其源码

    概述 作为android的开发者,相信你会有那么一刻,比如,对于手机中某一款App,有一项功能或者效果你蛮喜欢的,想学习一下它具体是怎么实现的.追求高一点的话,我想深究它这个App的项目架构,本着一探 ...

  8. jar文件 反编译(IDEA环境)

    说明 想要对一些 jar 文件进行反编译,由于现在 IDEA 使用的人比较多,比较方便的方法是,可以使用 IDEA 中的插件进行反编译. IDEA 插件 可以使用 IDEA 中的 "Java ...

  9. Android APK+Dex文件反编译及回编译工具

    本帖最后由 zhu891108 于 2012-8-3 11:00 编辑 大家好! 相信很多人玩智能手机,无论是塞班,安卓等等,不只是看重各种软件的功能,而更多的是看重系统的可定制性,可以自己动手DIY ...

  10. Android APK+Dex文件反编译及回编译工具 v.1.8.0 测试版

    可显示APK文件自身图标 _______________________________________________________________________________________ ...

最新文章

  1. python上海培训哪里比较好-python培训班上海哪里比较好?
  2. 【项目管理】项目工作绩效域管理
  3. iOS学习笔记37 时间和日期计算
  4. 【Photoshop】批处理与快捷批处理
  5. win10远程桌面 CredSSP加密Oracle修正的解决办法
  6. 我的第一个C++程序,还像个C++c程序的样子吧
  7. php函数总结,php函数
  8. C# winForm utf8 gbk 相互转码小工具
  9. 宏基4752g linux驱动下载,宏基4752g显卡驱动
  10. HICE-SSH使用RSA认证方式进行登陆
  11. 3D Photography using Context-aware Layered Depth Inpainting-论文主要内容翻译
  12. 《计算之魂》1.11.2--阅读心得
  13. 快递物流查询,教你自动查询并识别所有快递是否签收、退回
  14. javamail 读取邮箱邮件并下载附件
  15. html 背景图片不重复显示,css如何设置背景图片不重复?
  16. 亚临界、超临界、超超临界燃煤机组效率分别是多少?
  17. JAVA基础-字符串
  18. java编译时为什么总找不到文件,javac编译时找不到文件的问题和运行项目找不到指定类问题...
  19. word 自带公式编辑器中公式等号对齐方法
  20. 云南计算机专业本科学校,云南七成高校开设计算机专业 就业形势不容乐观

热门文章

  1. Android中如何实现多个框,android几种不同对话框的实现方式
  2. 现在的python版本_为什么有这么多 Python版本
  3. centos7.5 gnome3的主题优化
  4. MySQL year函数
  5. Windows定时开机并开启工作软件
  6. IDEA学生授权申请方式(免费)
  7. 用python画一个正方形
  8. STM32G030C8T6读写flash
  9. 脑科学发展到今天,距离记忆编辑提取还有多远
  10. SAS实验2——假设检验