开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6955|回复: 69
收起左侧

[2022开源大赛(第七届)] [原创]易语言动态混淆加密纯源码(可解密)

[复制链接]
结帖率:36% (4/11)
发表于 2022-12-13 21:03:04 | 显示全部楼层 |阅读模式   湖南省衡阳市
本帖最后由 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”)
' 调试输出 (到字节集 (“bater”))
加密密钥 = 到字节集 (“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
' 初始数据 [i] = 右移 (初始数据 [i], 8)
计次循环尾 ()
初始数据 = 双位排列 (初始数据, ){ 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]
' 调试输出 (临时文本)
临时文本 = 三位排列 (到文本 (双位排列 (到字节集 (临时文本), )), )
' 调试输出 (i)
' 调试输出 (临时文本)
返回 (临时文本)
子程序名返回值类型公开备 注
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))
子程序名返回值类型公开备 注
十六进制转字节集字节集 
参数名类 型参考可空数组备 注
原始16进制文本文本型
变量名类 型静态数组备 注
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文本型 
i整数型 
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, 下载次数: 198, 下载积分: 精币 -2 枚

之前那份没保存成功,没加密钥,这份加上了密钥就可以了

KRYO9R_X210W9IEI0X_8.png

评分

参与人数 2好评 +1 精币 +4 收起 理由
1981806594 + 1 开源精神必须支持~
易语言资源网 + 1 + 3 开源精神必须支持~

查看全部评分

本帖被以下淘专辑推荐:

  • · 好帖|主题: 1239, 订阅: 44
结帖率:36% (4/11)
 楼主| 发表于 2022-12-14 18:37:17 | 显示全部楼层   湖南省衡阳市

没保存成功,下面解密没加密钥,加上就可以了,总体代码没问题
回复 支持 反对

使用道具 举报

发表于 2023-12-3 18:17:01 | 显示全部楼层   吉林省白城市
谢谢分享!
回复 支持 反对

使用道具 举报

发表于 2023-5-22 08:42:44 | 显示全部楼层   黑龙江省牡丹江市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 14 天

发表于 2023-5-18 02:13:55 | 显示全部楼层   湖北省荆州市
多谢分享,
回复 支持 反对

使用道具 举报

发表于 2023-5-13 16:43:39 | 显示全部楼层   西藏自治区拉萨市
这个厉害了
回复 支持 反对

使用道具 举报

发表于 2023-3-11 08:24:41 | 显示全部楼层   广东省深圳市
6666666666666666
回复 支持 反对

使用道具 举报

结帖率:75% (9/12)

签到天数: 1 天

发表于 2023-3-6 11:21:31 | 显示全部楼层   广东省中山市
嘿嘿 不错哟
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2023-2-19 15:55:47 | 显示全部楼层   河北省秦皇岛市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 6 天

发表于 2023-2-3 01:33:48 | 显示全部楼层   湖北省荆州市
66666666666666666666666666
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 1 天

发表于 2023-1-14 03:36:12 | 显示全部楼层   江苏省苏州市
不知道怎么用。
回复 支持 反对

使用道具 举报

发表于 2023-1-12 16:51:44 | 显示全部楼层   广东省广州市
4444444444444
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表