py解密加密的bat脚本
最近在搞手机刷机包, 用到一款工具写的不错,想看看脚本,notepad++打开后竟然是这个样子的这东西阻碍了我学习的脚步,丢进 010 Editor 看看
看到了加密工具 BatchEncryption Build 201610
再次百度发现了这个 还原BatchEncryption(201610版本)混淆的批处理文件
尊重下作者转载注明下出处
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Hunter98234/article/details/108672926
————————————————
文章中的py代码能解密脚本里的英文, 但是带中文就解不出来了,所以为了日后学习方便,自己简单的改造了一番, 再次向原作者致敬!!!
```
#!/usr/bin/python
# -*- coding:utf-8 -*-
#
# Batch Decryption 202009 (BatchEncryption Build 201610)
#
import os
import sys
encrypt_file = ''
encodeErrByteArray =
def decryption(data):
# 去除头部后的源代码下标开始位置
i = data.index(b'163.com\r\n') + 9
vars = {}
length = len(data)
source = ''
while i < length:
Data = run(vars, data, i)
i = Data.get('index')
source += Data.get('buf')
return source
def run(vars, data, i):
buf = ''
f = 0
t = 0
x = False
l = len(data)
while(True):
if data == 0x0d and data == 0x0a:
i += 2
break
# get %var:~x,y% %0
if data == 0x25:
if not x:
x = True
f = i
else:
x = False
t = i
rst = var_percent(data, vars)
buf += rst
i += 1
else:
if not x:
try:
buf += str(data, encoding="utf-8")
i += 1
except Exception as err:
# 过滤掉无法解析的字节
if data in encodeErrByteArray:
buf = ''
i += 1
else:
# 以ansi码解析中文
chinese = b''
temp = i
while (str(data).find('x') >= 0):
chinese += data
temp += 1
buf += chinese.decode('ansi', 'ignore')
i = temp
else:
if (f + 1 == i) and ((data >= 0x30 and data <= 0x39) or data == 0x2a):
x = False
t = i
rst = str(data, encoding="utf-8")
buf += rst
i += 1
if i >= l:
break
#print(buf)
bufs = buf.split('&@')
for var in bufs:
if var == 'set ':
var = var
b = var.find('=')
vars] = var.replace('^^^', '^')
buf += '\r\n'
return {'index':i, 'buf':buf}
"""
%':~-53,1%
':~-53,1
["'", '-53,1']
"""
def var_percent(data, vars):
full = str(data, encoding="utf-8")
buf = full
buf = buf.split(':~')
var = buf
if not var in vars:
vars = os.getenv(var)
ent = vars
if (len(buf) > 1):
l = len(ent)
buf = buf.split(',')
f = int(buf)
t = int(buf)
if f < 0:
f, t = l + f, t
rst = ent
else:
rst = full
return rst
def makeFile(path,content):
try:
encryptionFilePath = os.path.dirname(sys.argv)
encryptionFileName = os.path.basename(sys.argv)
encryptionFile = encryptionFileName.split('.')
decryptionFileName = encryptionFile + '_denctyption.' + encryptionFile
decryptionFile = encryptionFilePath + '/' + decryptionFileName
print(decryptionFile)
file = open(decryptionFile, 'w+')
file.write(content)
file.close()
except Exception as err:
print(err)
exit
if __name__ == '__main__':
try:
if len(sys.argv) < 2:
print('param len error\nuse: python dencrypt.py encrypt.bat')
exit
encrypt_file = sys.argv
file = open(encrypt_file, "rb")
data = file.read()
file.close()
source = decryption(data)
makeFile(encrypt_file, source)
except Exception as err:
print(err)
exit
```
自己装的是python39,代码右键保存即可
使用起来也很简单 cmd 打开黑窗 python 保存的文件.py 然后把文件拖进窗口, 按下回车即可
由于样理有限,自己测试解过是没问题的,如果遇到问题欢迎大家在评论区讨论
最后说一点, 本人py小白,但是爱折腾,所以脚本写的一般,换应大佬斧正[抱拳了] Darkline 发表于 2021-7-2 16:22
测试了一下在pycharm里正常运行但是打包后会提示Failed to execute script 不知道是哪里出问题了
你的是3.9版本么 guoyuh78 发表于 2022-4-8 09:12
大神 你好 我遇到同样的加密了 可以帮忙看看吗?
你不知道这是我得付费工具?跑来吾爱找破解,泄露+破解:工具停止一切更新! 学习了,新手恶补中 顶楼主!
太厉害了,本人纯小白,真的不懂,只是想多一句……
其实,原贴4楼作者发的就能直接还原了…… bat原来还能加密啊 云烟成雨 发表于 2021-7-2 17:08
bat原来还能加密啊
是的, 有的作者会把脚本用工具混淆 请问楼主加密后的BAT 正常运行吗?能否变解密为加密? 不错的刷机工具=航母工具箱
加密的工具出处
http://www.bathome.net/thread-42106-1-1.html kvttt_2021 发表于 2021-7-2 17:51
请问楼主加密后的BAT 正常运行吗?能否变解密为加密?
运行正常, 加密的话你要用加密工具 BatchEncryption.exe Darkline 发表于 2021-7-2 17:44
3.9.5最新版本 pycharm也是官网下载的最新版本
那我就不太清楚了, 没有打包运行过{:1_926:}