发表于 2022-8-25 11:25

申请会员ID:chenyucheng

1、申请ID:chenyucheng
2、个人邮箱:744766348@qq.com
3、原创技术文章:易语言的代码混淆
https://bbs.125.la/forum.php?mod=viewthread&tid=14735578
(出处: 精易论坛)
https://www.bilibili.com/read/cv17281675 (bilibili)

易语言自带了一个东西,叫“混淆另存为”。
它的说明是:
将程序中的名称进行混淆后以一个新文件名保存. 注意: 所有以下划线字符开始的名称都不会被混淆.
https://att.125.la/data/attachment/forum/202206/25/164356f2rc266t7c6mcm63.gif
先用一个简单的代码试一试。
首先,新建一个窗口程序,再把窗口搞成这样子。
https://att.125.la/data/attachment/forum/202206/25/164356jsjzuk8uku9pkplu.gif
代码这样写。
.版本 2

.程序集 窗口程序集_启动窗口

.子程序 _按钮1_被单击
.局部变量 a, 整数型
.局部变量 b, 文本型
.局部变量 汉字, 文本型

a = 100
b = “Hello!”
汉字 = “汉字博大精深”
信息框 (a, 0, , )
信息框 (b, 0, , )
信息框 (汉字, 0, , )

保存(这里保存为1.e),然后点击菜单上的“M.混淆另存为”,然后出现这个窗口。
https://att.125.la/data/attachment/forum/202206/25/164356arrhgsrwezb7vxpo.gif
说明混淆前需要关联名称。我们直接点“是”,关联后输入保存文件名,这里保存为1_1.e。
然后输出框会显示以下内容:
正在预处理现行程序
重新关联程序名称操作完毕
将混淆后的结果输出到文件"D:\......\1_1.e"中成功.

打开1_1.e,欸?怎么是空白?其实不是空白,而是代码窗口全部关掉了。在左边点击“程序”选项卡看一下。
https://att.125.la/data/attachment/forum/202206/25/164356pajqu8g4la4jn5zq.gif
发现有个程序集“_W3”,窗口有“_启动窗口”。
https://att.125.la/data/attachment/forum/202206/25/164356zthkyhv26ddz16g6.gif
“_启动窗口”那儿的按钮名称被改成了“_W2”。(原来是“按钮1”的)
https://att.125.la/data/attachment/forum/202206/25/164356f8v54vbtibyvmt47.gif
代码成这样了。
.版本 2

.程序集 _W3

.子程序 __W2_被单击
.局部变量 _W4, 整数型
.局部变量 _W5, 文本型
.局部变量 _W6, 文本型

_W4 = 100
_W5 = “Hello!”
_W6 = “汉字博大精深”
信息框 (_W4, 0, , )
信息框 (_W5, 0, , )
信息框 (_W6, 0, , )

https://att.125.la/data/attachment/forum/202206/25/164356sbpyoyu8tvy8ymw8.gif
正如说明所言:“将程序中的名称进行混淆后以一个新文件名保存. ”
这是最基础的混淆方法——名称混淆。

在一篇文章《聊聊如何进行代码混淆》(https://zhuanlan.zhihu.com/p/461944477)中讲到了几种混淆代码的方法。
https://att.125.la/data/attachment/forum/202206/25/164733sun6zu76a5w6nanr.gif
但易语言不能做到“流混淆”吧。
还有百度百科(代码混淆) (https://baike.baidu.com/item/%E4%BB%A3%E7%A0%81%E6%B7%B7%E6%B7%86/1892288)中讲了个基本原理。
代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。代码混淆可以用于程序源代码,也可以用于程序编译而成的中间代码。执行代码混淆的程序被称作代码混淆器。已经存在许多种功能各异的代码混淆器。
将代码中的各种元素,如变量,函数,类的名字改写成无意义的名字。比如改写成单个字母,或是简短的无意义字母组合,甚至改写成“__”这样的符号,使得阅读的人无法根据名字猜测其用途。重写代码中的部分逻辑,将其变成功能上等价,但是更难理解的形式。比如将for循环改写成while循环,将循环改写成递归,精简中间变量,等等。打乱代码的格式。比如删除空格,将多行代码挤到一行中,或者将一行代码断成多行等等。
易语言不能实现:
[*]将多行代码挤到一行中
[*]……

易语言应该可以实现:
[*]变量,函数,类的名字改写成无意义的名字
[*]将for(变量循环)循环改写成while(判断循环)循环
[*]将循环改写成递归
[*]……

易语言自带混淆就混淆名称,对一般人来说已经足够了。
但是由于易语言的名称混淆连注释都不去掉(除了变量、子程序定义的备注),所以把几乎每条代码都配上注释的混淆,可能有一点点会看得出来。

Hmily 发表于 2022-8-25 16:40

抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

发表于 2022-8-25 20:34

Hmily 发表于 2022-8-25 16:40
抱歉,未能达到申请要求,申请不通过,可以关注论坛官方微信(吾爱破解论坛),等待开放注册通知。

可以重新申请一遍吗?
必须要登录截图吗?

Hmily 发表于 2022-8-26 10:39

游客 39.184.4.x 发表于 2022-8-25 20:34
可以重新申请一遍吗?
必须要登录截图吗?

不需要,主要是内容质量没有达到要求,如果你有新内容申请,可以跟帖回复。
页: [1]
查看完整版本: 申请会员ID:chenyucheng