![「逆向分析」简单的一次BAT脚本(批处理文件)解密插图 「逆向分析」简单的一次BAT脚本(批处理文件)解密插图](https://blog.eswlnk.com/wp-content/uploads/wpcy/945d6035a9ecbaa9564dfc3ca8fe87bd.jpg)
0x01 前言
最近博主想给小米12S手机刷入root,也是为了方便所以就来到某Q群里寻求傻瓜式一键root工具。询问了下价格,19大洋。觉着也不亏就算赞助了一下,毕竟也有着售后功能。
0x02 文件分析
拿到管理发的文件后,我们先来看看到底是怎么一回事。
└─A-12s-14.0.9
│ ├─一键安装安卓驱动.exe 19.70 MB
│ ├─双击我刷入面具ROOT.Bat 762.00 B
│ ├─magisk
│ │ └─magisk.img 192.00 MB
│ └─QingnAi
│ │ ├─adb.exe 3.08 MB
│ │ ├─AdbWinApi.dll 95.50 KB
│ │ ├─AdbWinUsbApi.dll 61.50 KB
│ │ ├─fastboot.exe 1.28 MB
│ │ └─vbmeta.img 8.00 KB
0x03 问题
这个「QingnAi」目录下的东西到底是不是管理自己编写的呢?
Ok,那么很显然所有的都不是它写的,除了这个批处理文件。那么本期分析到此结束(当然不是)
那么作者到底实现了些什么呢?我们来对Bat文件解密看看。
![「逆向分析」简单的一次BAT脚本(批处理文件)解密插图1 「逆向分析」简单的一次BAT脚本(批处理文件)解密插图1](https://static.eswlnk.com/2023/10/20231007144347305.png)
编辑文件看看,乱码了。不过对于bat文件来讲又有什么加密可行呢?大概率是让系统误解了该文件的编码格式,HEX手动编辑一下就能恢复。这里我让AI写了个py脚本来实现解密,技术含量约等于0。
0x04 解密代码
def decrypt_bat_file(file_path):
decrypted_content = ''
with open(file_path, 'rb') as file:
file_content = file.read()
if file_content[0:2] == b'\xFF\xFE' or file_content[0:2] == b'\xFE\xFF':
# 修改前两个字节为 0D 0A
decrypted_content = b'\x0D\x0A' + file_content[2:]
else:
decrypted_content = file_content
with open('decrypted.bat', 'wb') as decrypted_file:
decrypted_file.write(decrypted_content)
print("解密成功!")
def encrypt_bat_file(file_path):
encrypted_content = b''
with open(file_path, 'rb') as file:
file_content = file.read()
# 修改前两个字节为 FF FE 或 FE FF
encrypted_content = b'\xFF\xFE' + file_content[2:]
with open('encrypted.bat', 'wb') as encrypted_file:
encrypted_file.write(encrypted_content)
print("加密成功!")
if __name__ == '__main__':
# 示例使用
# file_path = 'original.bat'
# encrypt_bat_file(file_path)
# 示例使用
file_path = 'encrypted.bat'
decrypt_bat_file(file_path)
运行后,我们在目录找到decrypted.bat
文件,看看它到底写了什么。
0x05 加密文件解析
也没什么影响的,直接解密后的文件贴出来吧:
Cls
@echo off &setlocal enabledelayedexpansion
color a
title 作者QingnAi qq:2911509598 远程ROOT救砖群:657162260
set "check=1"
set fastboot="QingnAi\fastboot.exe"
for /f %%i in ('!fastboot! devices') do ( set "check=%%i")
echo !check!
if !check!==1 (echo.
echo 链接存在问题 ! !&echo.
echo 请确认文件已解压 且 手机进入fastboot&echo.
echo 数据线使用的原装 并且 已安装驱动&echo.
echo 或者更换电脑接口再次尝试!&echo.&goto :end
)
QingnAi\fastboot.exe devices
QingnAi\fastboot.exe flash boot magisk\magisk.img
QingnAi\fastboot.exe reboot
echo.
echo.
echo 刷入面具成功!请到群文件下载面具25.2版本
echo.
echo 未经作者授权禁止转载 未授权将会触发危险代码!
echo.
echo 作者 QingnAi B站:少说话好吧斑鸠i 远程ROOT救砖群:657162260
echo.
:end
cmd /k
怎么说呢,这个批处理文件写得有小学生(bushi)那味儿了,以下是AI对此的看法:
- 缺乏注释和说明:代码中没有提供足够的注释和说明,难以理解每一行代码的作用和意图。这给其他开发人员阅读和维护代码带来了困难。
- 变量命名不规范:代码中存在一些变量命名不清晰的情况,例如
check
、fastboot
等变量名并不能直观地反映其含义和用途。良好的命名习惯可以提高代码的可读性和可维护性。 - 重复的代码片段:代码中出现了多次执行
QingnAi\fastboot.exe
命令的重复代码片段,这种冗余代码可以通过定义函数或使用循环来避免,提高代码的简洁性和可维护性。 - 错误处理不完善:代码中对连接存在问题的情况只是简单地输出提示信息,并没有提供更具体的错误处理机制。在实际应用中,应该考虑到更多的异常情况,并提供相应的错误处理和反馈机制。
- 没有使用函数模块化:代码中所有的操作都集中在一个大的代码块中,没有进行模块化的拆分。将代码分割成多个函数可以提高代码的可读性、可测试性和重用性。
只能说,非常到位!
0x06 后续
只能说什么呢,智商税永远都是No.1,不过博主最近也是狠狠地赚了一笔,这点小钱值算的是大概0.1%
吧(可能他卖的是教程和售后服务)。
后续刷完机,有时间给大伙儿写一个工具,交智商税什么的,都去shi吧!问题不大,收工!
📮评论