diff --git a/src/sqlmap-master/extra/cloak/cloak.py b/src/sqlmap-master/extra/cloak/cloak.py
index 8f361a0..ee8a396 100644
--- a/src/sqlmap-master/extra/cloak/cloak.py
+++ b/src/sqlmap-master/extra/cloak/cloak.py
@@ -7,82 +7,99 @@ Copyright (c) 2006-2024 sqlmap developers (https://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
-from __future__ import print_function
+from __future__ import print_function # 兼容 Python 2 和 3 的 print 函数
import os
import struct
import sys
-import zlib
+import zlib # 用于数据压缩和解压缩
from optparse import OptionError
from optparse import OptionParser
+# 在 Python 3 中定义 xrange 和 ord 的兼容
if sys.version_info >= (3, 0):
- xrange = range
- ord = lambda _: _
+ xrange = range # 使用 Python 3 的 range
+ ord = lambda _: _ # 在 Python 3 中直接使用字符
-KEY = b"E6wRbVhD0IBeCiGJ"
+KEY = b"E6wRbVhD0IBeCiGJ" # 定义加密/解密的密钥
def xor(message, key):
+ """执行 XOR 操作,返回加密或解密后的字节序列。"""
+ # 对 message 的每个字节进行 XOR 运算,并返回字节串
return b"".join(struct.pack('B', ord(message[i]) ^ ord(key[i % len(key)])) for i in range(len(message)))
def cloak(inputFile=None, data=None):
+ """对输入文件或数据进行加密和压缩。"""
if data is None:
+ # 如果没有提供数据,则读取文件内容
with open(inputFile, "rb") as f:
- data = f.read()
+ data = f.read() # 以二进制模式读取文件数据
+ # 对数据进行压缩后再使用 XOR 加密
return xor(zlib.compress(data), KEY)
def decloak(inputFile=None, data=None):
+ """对输入文件或数据进行解密和解压缩。"""
if data is None:
+ # 如果没有提供数据,则读取文件内容
with open(inputFile, "rb") as f:
data = f.read()
+
try:
+ # 首先对数据进行 XOR 解密,然后解压缩
data = zlib.decompress(xor(data, KEY))
except Exception as ex:
+ # 如果解压缩过程中发生异常,打印错误信息并退出
print(ex)
print('ERROR: the provided input file \'%s\' does not contain valid cloaked content' % inputFile)
sys.exit(1)
finally:
- f.close()
+ f.close() # 确保文件流被关闭
- return data
+ return data # 返回解密后的数据
def main():
- usage = '%s [-d] -i [-o