|

本帖最后由 dat恶人 于 2022-12-14 18:40 编辑
只要调用精易模块就可以直接使用(使用了精易模块的几个DLL)
源码无调用模块以图片为准,之前那份解密没加密钥,所以解密失败,总体代码没问题
|
bat_自创数据加密 | 文本型 | | |
加密文本 | 文本型 | | | | 密钥 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 初始数据 | 字节集 | | | 加密密钥 | 字节集 | | | 随机前置 | 字节集 | | | 随机前置减数 | 整数型 | | | i | 整数型 | | | 临时文本 | 文本型 | | | x | 文本型 | | 0 |
x = { “y”, “P”, “H”, “!”, “\”, “m”, “2”, “o”, “z”, “x”, “#”, “@”, “*”, “s”, “Q”, “F”, “d”, “3”, “Z”, “_”, “t”, “1”, “L”, “n”, “I”, “>”, “A”, “c”, “7”, “0”, “E”, “~”, “u”, “5”, “8”, “r”, “k”, “G”, “J”, “X”, “|”, “4”, “S”, “'”, “R”, “[”, “O”, “w”, “g”, “9”, “i”, “B”, “W”, “6”, “p”, “{”, “l”, “.”, “,”, “%”, “/”, “h”, “N”, “q”, “C”, “U”, “j”, “V”, “Y”, “D”, “e”, “f”, “K”, “T”, “b”, “&”, “?”, “v”, “a”, “M”, “;” }初始数据 = 到字节集 (“bat” + 加密文本 + “bat”) 加密密钥 = 到字节集 (“bat” + 密钥 + “bat”) 随机前置 = { 0, 0, 0 }置随机数种子 ()随机前置 [1 ] = 取随机数 (0, 9 )随机前置 [2 ] = 取随机数 (0, 9 )随机前置 [3 ] = 取随机数 (0, 9 )初始数据 = 初始数据 + 随机前置 如果真 (密钥 = “”) 随机前置减数 = 取随机数 (0, 随机前置 [2 ]) 随机前置 [2 ] = 随机前置 [2 ] - 随机前置减数 初始数据 = 随机前置 + 初始数据 计次循环首 (取字节集长度 (加密密钥 ), i ) 加密密钥 [i ] = 加密密钥 [i ] + 1 计次循环尾 ()加密密钥 = 双位排列 (加密密钥, 真) 初始数据 = 双位排列 (初始数据, 真) 初始数据 = 加密密钥 + 初始数据 + 加密密钥 初始数据 = 双位排列 (初始数据, 真)置随机数种子 ()随机前置减数 = 取随机数 (1, 5 ) 计次循环首 (取字节集长度 (初始数据 ), i ) 如果 (i % 2 = 1 )  初始数据 [i ] = 初始数据 [i ] + 随机前置减数   初始数据 [i ] = 初始数据 [i ] + 随机前置减数 - 1
计次循环尾 ()初始数据 = 双位排列 (初始数据, 真) + { 0 }i = 取字节集长度 (初始数据 )初始数据 [i ] = 随机前置减数 随机前置 = { 0, 0 }置随机数种子 ()随机前置 [1 ] = 取随机数 (0, 9 )随机前置 [2 ] = 取随机数 (0, 9 )初始数据 = 随机前置 + 初始数据 随机前置 [1 ] = 随机前置 [1 ] % 2 随机前置 [2 ] = 随机前置 [2 ] % 3 初始数据 = 初始数据 + 随机前置 临时文本 = 字节集转十六进制 (初始数据 ) 临时文本 = 到文本 (十六进制转数值 (生成加密校验码 (临时文本 )) % 3 ) + 临时文本 + 生成加密校验码 (临时文本 ) i = 取随机数 (5, 75 )临时文本 = x [i ] + x [i - 1 ] + 临时文本 + x [i + 2 ] + x [i + 3 ] 临时文本 = 三位排列 (到文本 (双位排列 (到字节集 (临时文本 ), 真)), 真) 返回 (临时文本 )|
bat_自创数据加密_反 | 文本型 | | |
解密文本 | 文本型 | | | | 密钥 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 初始数据 | 字节集 | | | 长度 | 整数型 | | | 随机前置减数 | 整数型 | | | i | 整数型 | | | 加密密钥 | 字节集 | | | 随机前置 | 字节集 | | | 临时文本 | 文本型 | | | x | 文本型 | | 0 |
x = { “y”, “P”, “H”, “!”, “\”, “m”, “2”, “o”, “z”, “x”, “#”, “@”, “*”, “s”, “Q”, “F”, “d”, “3”, “Z”, “_”, “t”, “1”, “L”, “n”, “I”, “>”, “A”, “c”, “7”, “0”, “E”, “~”, “u”, “5”, “8”, “r”, “k”, “G”, “J”, “X”, “|”, “4”, “S”, “'”, “R”, “[”, “O”, “w”, “g”, “9”, “i”, “B”, “W”, “6”, “p”, “{”, “l”, “.”, “,”, “%”, “/”, “h”, “N”, “q”, “C”, “U”, “j”, “V”, “Y”, “D”, “e”, “f”, “K”, “T”, “b”, “&”, “?”, “v”, “a”, “M”, “;” }临时文本 = 解密文本 临时文本 = 到文本 (双位排列 (到字节集 (三位排列 (临时文本, 假)), 假)) i = 十六进制转数值 (取文本左边 (临时文本, 1 )) 如果真 (取文本左边 (临时文本, 2 ) ≠ x [i ] + x [i - 1 ] 或 取文本右边 (临时文本, 2 ) ≠ x [i + 2 ] + x [i + 3 ]) 返回 (“”) 解密文本 = 取文本中间 (临时文本, 3, 取文本长度 (临时文本 ) - 4 ) 临时文本 = 取文本中间 (解密文本, 2, 取文本长度 (解密文本 ) - 2 ) 如果真 (生成加密校验码 (临时文本 ) ≠ 取文本右边 (解密文本, 1 ) 或 十六进制转数值 (生成加密校验码 (临时文本 )) % 3 ≠ 到整数 (取文本左边 (解密文本, 1 )) ) 返回 (“”)
初始数据 = 十六进制转字节集 (临时文本 )长度 = 取字节集长度 (初始数据 ) - 4 如果真 (初始数据 [1 ] % 2 ≠ 初始数据 [长度 + 3 ] 或 初始数据 [2 ] % 3 ≠ 初始数据 [长度 + 4 ]) 返回 (“”)初始数据 = 取字节集左边 (初始数据, 长度 + 2)初始数据 = 取字节集右边 (初始数据, 长度 )随机前置减数 = 初始数据 [长度 ]初始数据 = 双位排列 (取字节集左边 (初始数据, 长度 - 1 ), 假) 计次循环首 (取字节集长度 (初始数据 ), i ) 如果 (i % 2 = 1 )  初始数据 [i ] = 初始数据 [i ] - 随机前置减数   初始数据 [i ] = 初始数据 [i ] - 随机前置减数 + 1   计次循环尾 ()初始数据 = 双位排列 (初始数据, 假)加密密钥 = 到字节集 (“bat” + 密钥 + “bat”) 计次循环首 (取字节集长度 (加密密钥 ), i ) 加密密钥 [i ] = 加密密钥 [i ] + 1 计次循环尾 ()加密密钥 = 双位排列 (加密密钥, 真) 如果真 (取字节集左边 (初始数据, 取字节集长度 (加密密钥 )) ≠ 加密密钥 或 取字节集右边 (初始数据, 取字节集长度 (加密密钥 )) ≠ 加密密钥 ) 返回 (“”)初始数据 = 取字节集右边 (取字节集左边 (初始数据, 取字节集长度 (初始数据) - 取字节集长度 (加密密钥)), 取字节集长度 (初始数据) - 取字节集长度 (加密密钥) × 2)初始数据 = 双位排列 (初始数据, 假)随机前置 = 取字节集左边 (初始数据, 3 )长度 = 取字节集长度 (初始数据 )初始数据 = 取字节集右边 (取字节集左边 (初始数据, 长度 - 3 ), 长度 - 6 )临时文本 = 到文本 (初始数据 ) 如果真 (取文本左边 (临时文本, 3 ) ≠ “bat” 或 取文本右边 (临时文本, 3 ) ≠ “bat”) 返回 (“”)返回 (取文本中间 (临时文本, 4, 取文本长度 (临时文本) - 6))变量名 | 类 型 | 静态 | 数组 | 备 注 | len | 整数型 | | | 单元1 | 整数型 | | | 单元2 | 整数型 | | | 单元3 | 整数型 | | | 明文1 | 文本型 | | | 明文2 | 文本型 | | | 明文3 | 文本型 | | | 最终返回文本 | 文本型 | | | i | 整数型 | | | N | 整数型 | | |
len = 取文本长度 (输入文本 ) 如果 (是否为未排列 ) 如果 (len % 3 = 1 )  单元1 = (len - 1 ) ÷ 3 + 1   单元2 = (len - 单元1 ) ÷ 2   如果 (len % 3 = 0 )   单元1 = len ÷ 3    单元1 = (len - 1 ) ÷ 3 + 1  单元2 = 单元1 单元3 = len - 单元1 - 单元2 明文1 = 取文本左边 (输入文本, 单元1 ) 明文2 = 取文本中间 (输入文本, 单元1 + 1, 单元2 ) 明文3 = 取文本右边 (输入文本, 单元3 ) 计次循环首 (取文本长度 (输入文本 ), i )  判断 (i % 3 = 1 )   N = N + 1    最终返回文本 = 最终返回文本 + 取文本中间 (明文1, N, 1 )  判断 (i % 3 = 2 )   最终返回文本 = 最终返回文本 + 取文本中间 (明文2, N, 1 )   最终返回文本 = 最终返回文本 + 取文本中间 (明文3, N, 1 )    计次循环尾 () 计次循环首 (取文本长度 (输入文本 ), i ) 判断 (i % 3 = 1 )  明文1 = 明文1 + 取文本中间 (输入文本, i, 1 ) 判断 (i % 3 = 2 )  明文2 = 明文2 + 取文本中间 (输入文本, i, 1 )  明文3 = 明文3 + 取文本中间 (输入文本, i, 1 )  计次循环尾 () 最终返回文本 = 明文1 + 明文2 + 明文3 返回 (最终返回文本 )|
双位排列 | 字节集 | | |
输入字节集 | 字节集 | | | | 是否为未排列 | 逻辑型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 明文1 | 字节集 | | | 明文2 | 字节集 | | | 长度 | 整数型 | | | 前半长度 | 整数型 | | | 临时字节集 | 字节集 | | | i | 整数型 | | | ii | 整数型 | | |
长度 = 取字节集长度 (输入字节集 ) 如果 (绝对取整 (长度 ÷ 2 ) = 长度 ÷ 2 ) 前半长度 = 长度 ÷ 2  前半长度 = 长度 ÷ 2 + 1  如果 (是否为未排列 ) 明文1 = 取字节集左边 (输入字节集, 前半长度 ) 明文2 = 取字节集右边 (输入字节集, 长度 - 前半长度 ) 临时字节集 = 取空字节 (长度 ) 计次循环首 (长度, i )  如果 (i % 2 = 1 )   ii = ii + 1    临时字节集 [i ] = 明文1 [ii ]   临时字节集 [i ] = 明文2 [ii ]    计次循环尾 () 明文1 = 取空字节 (前半长度 ) 明文2 = 取空字节 (长度 - 前半长度 ) 计次循环首 (长度, i )  如果 (i % 2 = 1 )   ii = ii + 1    明文1 [ii ] = 输入字节集 [i ]   明文2 [ii ] = 输入字节集 [i ]    计次循环尾 () 临时字节集 = 明文1 + 明文2 返回 (临时字节集) 如果真 (长度 ≤ 0 ) 置入代码 ({ 51, 192, 139, 229, 93, 194, 4, 0 })字节集指针 = HeapAlloc (GetProcessHeap (), 8, 长度 + 8) 如果真 (字节集指针 = 0 ) 置入代码 ({ 139, 229, 93, 194, 4, 0 })置入代码 ({ 254, 0, 255, 117, 8, 143, 64, 4, 139, 229, 93, 194, 4, 0 })返回 ({ })变量名 | 类 型 | 静态 | 数组 | 备 注 | len | 整数型 | | | byte | 整数型 | | | high | 整数型 | | | low | 整数型 | | | ret | 字节集 | | | len_ret | 整数型 | | | i | 整数型 | | | j | 整数型 | | |
len = 取字节集长度 (原始字节集 )len_ret = len × 2 ret = 取空字节 (len_ret + 1 ) 变量循环首 (1, len_ret, 2, j ) i = i + 1  byte = 原始字节集 [i ] 如果 (byte > 15 )  high = 位与 (右移 (byte, 4 ), 15 )  如果 (high > 9 )   ret [j ] = high + 55    ret [j ] = high + 48      ret [j ] = 48 low = 位与 (byte, 15) 如果 (low > 9 )  ret [j + 1 ] = low + 55   ret [j + 1 ] = low + 48   变量循环尾 ()返回 (到文本 (ret )) 变量名 | 类 型 | 静态 | 数组 | 备 注 | bytes_ret | 字节集 | | | bytes | 字节集 | | | len | 整数型 | | | p1 | 整数型 | | | byte1 | 整数型 | | | byte2 | 整数型 | | | i | 整数型 | | |
bytes = 到字节集 (原始16进制文本 )len = 取字节集长度 (bytes ) 如果真 (位与 (len, 1 ) = 1 ) bytes = bytes + { 0 } len = len + 1  bytes [len ] = bytes [len - 1 ] bytes [len - 1 ] = 48 bytes_ret = 取空字节 (右移 (len, 1)) 变量循环首 (1, len, 2, p1 ) i = i + 1  byte1 = bytes [p1 ] byte2 = bytes [p1 + 1 ] 判断 (byte1 > 96 )  byte1 = byte1 - 87  判断 (byte1 > 64 )  byte1 = byte1 - 55   byte1 = byte1 - 48  判断 (byte2 > 96 ) byte2 = byte2 - 87  判断 (byte2 > 64 ) byte2 = byte2 - 55   byte2 = byte2 - 48 bytes_ret [i] = 左移 (byte1, 4) + byte2 变量循环尾 ()返回 (bytes_ret )x = “yPH!\m2ozx#@*sQFd3Z_t1LnI>Ac70E~u58rkGJX|4S'R[Owg9iBW6p{l.,%/hNqCUjVYDefKTb&?vaM;”i = 寻找文本 (x, 十六进制文本, , 假) 如果 (i = -1 ) 返回 (81 ) 返回 (i ) 变量名 | 类 型 | 静态 | 数组 | 备 注 | x | 文本型 | | 0 | i | 整数型 | | | n | 整数型 | | |
x = { “y”, “P”, “H”, “!”, “\”, “m”, “2”, “o”, “z”, “x”, “#”, “@”, “*”, “s”, “Q”, “F”, “d”, “3”, “Z”, “_”, “t”, “1”, “L”, “n”, “I”, “>”, “A”, “c”, “7”, “0”, “E”, “~”, “u”, “5”, “8”, “r”, “k”, “G”, “J”, “X”, “|”, “4”, “S”, “'”, “R”, “[”, “O”, “w”, “g”, “9”, “i”, “B”, “W”, “6”, “p”, “{”, “l”, “.”, “,”, “%”, “/”, “h”, “N”, “q”, “C”, “U”, “j”, “V”, “Y”, “D”, “e”, “f”, “K”, “T”, “b”, “&”, “?”, “v”, “a”, “M”, “;” } 计次循环首 (取文本长度 (十六进制文本 ), i ) n = n + 十六进制转数值 (取文本中间 (十六进制文本, i, 1 )) + 1 计次循环尾 ()返回 (x [ (n - 1 ) % 79 + 1 ])
|
-
-
bat加密源码.e
24.05 KB, 下载次数: 200, 下载积分: 精币 -2 枚
之前那份没保存成功,没加密钥,这份加上了密钥就可以了
评分
-
查看全部评分
|