找回密码
 加入
搜索
查看: 100061|回复: 401

[原创] ,Au3Encode-代码整合混淆- 所有附件均已删除,请勿再顶此贴

 火... [复制链接]
发表于 2016-5-28 16:58:29 | 显示全部楼层 |阅读模式
本帖最后由 tubaba 于 2023-5-6 20:31 编辑

所有附件均已删除,请勿再顶此贴
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
不得不承认,Au3程序的运行机制决定了Au3脚本无论怎么加密字符串都是徒劳的,因为最终都会一行行由解释器解释.所有字符串都会在那时现出原形.在高手的眼中,解密字串只是时间的问题.
以汝之矛攻汝之盾,用来形容解密脚本过程最是贴切不过.Au3Encode已被成功解密出注册码.因此,在今后的版本中注册码计算方式将会变更,不过正是如此,我才有动力更新版本哦~

花了近一个月时间修改了源码.可能会有新BUG出现.增加了数字证书签名的方式保护代码.请勿在SciTE中调试此种方式生成的脚本!Do not forget!.

数字证书制作与签名工具 现在提供下载.大致使用步骤->制作根证书->制作子证书->用子证书和私钥对编译后的程序签名

当然,最不济,变量名和函数名的混淆还是有效的.至少可以让代码不那么容易阅读.



如果有混淆完成而不能运行的脚本,请选择字符串加密处理->密文置于脚本内部.再次混淆,然后提供简化的原始样本,混淆后的样本,整合后的样本以及au3encode.ini回复本贴,谢谢

程序启用了注册的机制,未注册版无时间限制.但部分功能受到限制.
1.x版本的注册码在2.X版本已失效,如需要注册,请支持作者,谢谢,如发现严重影响程序功能的BUG,免费赠送注册码一枚,仍然有效
免费注册时限已过,如果喜欢,请通过支付宝或者微信向作者付款,然后提供付款单号及机器信息,发送邮件到sambarain@sina.com 获取注册码
为了支持论坛的发展,作者承诺将收入的一半捐赠给论坛




在使用前请仔细阅读帮助,这是你帮助你成功混淆脚本的关键!
效果展示在38楼

=============================分隔线

多年前写的一个IP切换工具,压缩包内包含两种不同加密方式生成的混淆脚本以及混淆前的源码,有兴趣的同学可以下载看看效果
上次漏了几个包含文件.这次补上


=============================分隔线



====================================更新历史:20191122
版本号:2.1.5 build20191122
修改:"使用数字证书保护"时,可选是否"验证数字签名的完整性",此功能在旧版本默认开启.
优化:精减后只有if没有then且没有续行符' _'的行的处理.


20190404
版本号:2.1.4 build20190404
修正:"当Dll文件内置函数与UDF函数名称相同时对UDF函数重命名"在某些情况下可能出错.


20180902
版本号:2.1.2 build20180902
修改:"当Dll文件内置函数与UDF函数名称一致时对UDF函数重命名"功能.现在DllCall的Dll文件内置函数名与全局UDF函数名称挂勾,而不再局限于调用此DllCall的UDF函数本身.


20180901
版本号:2.1.1 build20180901
修改:加入一些文件打开错误的判断.


20180827
版本号:2.1.0 build20180827
修改:加入新的整合开关,当Dll文件内置函数与UDF函数名称一致时对UDF函数重命名(仅当内置DllCall函数的第三个参数为字符串时有效,此参数必须是字符串,而不能是变量或函数调用的结果.否则不能识别)
混淆默认设置执行此指令,如不希望执行,需勾选"根据脚本整合设置进行整合",并在整合设置里取消勾选"当Dll文件内置函数与UDF函数名称一致时对UDF函数重命名"
修改:加入新的预处理指令#Au3Encode_SplitIgnore_Funcs,现在可以指定忽略对函数内字符串做拆分处理的函数.请在代码检测模块函数列表的右键菜单中使用此功能.(此功能仅注册版有效)
可以逐个添加,也可批量添加选中函数及其调用的所有函数树.此指令会在脚本处理完成后删除.
修改:脚本检测模块,现在可以输出检测结果到文件.
修改:更新使用说明.

20180821
版本号:2.0.5build20180821
修改:整合设置中,如果勾选清除未使用函数或清除未使用变量,则必须选中清除注释项.


20180820
版本号:2.0.4build20180820
1.修正:一个变量未声明的错误.
2.增加命令行调用方式:
开关 -M或/M        -->整合脚本
开关 -O或/O        -->混淆脚本
开关不区分大小写.
调用格式(整合): Au3Encode.exe /M "脚本路径" 或 Au3Encode.exe  "脚本路径" /M
调用格式(混淆): Au3Encode.exe /O "脚本路径" 或 Au3Encode.exe  "脚本路径" /O
整合或混淆将依据设定的相关参数进行处理,完成后自动退出.

20180817
版本号:2.0.3build20180817
修正:进行"内置函数混淆"时会替换控制指令中与内置函数名称相同的字符串.
修正:一个语法错误及一个变量未声明的错误.

20180815
版本号:2.0.2build20180815
修正:加密函数处理一处Bug.


20180812
版本号:2.0.1build20180812
修正:免费版无法使用字符串与数字加密处理的问题.
修改:"内置函数混淆"又回来了.虽然没什么卵用.

20180808
版本号:2.0.0build20180808
注意:注册码算法改变,
付费用户请重新私信索取注册码.
修正:1.字符串加密中的相邻单引号或相邻双引号处理可能会不正确.
修正:2.以科学计数法表示的数字提取错误问题.
修正:3.除错辅助模块中的检测脚本功能,当行尾带有'_'的行可能引起计数错误.
修改:1.去除"内置函数混淆".因为函数FuncName的存在,导致此功能其实没什么卵用.
修改:2."密文置于RC资源段"的处理方式变更.
修改:3.对UDF函数字符串明文进行处理.
修改:4.'密文置于脚本内部'功能开放,免费版可使用.
新增:"使用数字证书"的选项.如果勾选此项,请在编译成可执行程序后使用指定数字证书进行签名.否则程序不能运行!

20180707
版本号:1.5.0build20180707
修正:上次更新带来的错误.
增加: 新混淆选项"内置函数混淆".现在除FileInstall函数不可处理外.其它内置函数均可以随机字符串变量替换.进一步降低脚本的可读性!(此功能处于测试阶段!,如出现混淆错误,请在选项中关闭后再次尝试!)

20180703
版本号:1.4.0build20180703
修正:当脚本存在#OnAutoItStartRegister指令时,可能会引起混淆后的脚本运行错误.
修正:上次更新带来的GUI逻辑错误.
优化:历史文件列表不再显示无效的文件路径.
增加:数字加密现在支持16进制数字.(此功能现在还处于测试阶段!如果混淆后的脚本出现问题,请关闭16进制数字加密后再次尝试).

20180630
版本号:1.3.0build20180630
优化:脚本检测功能优化,现在以目录树的方式显示主脚本及子脚本需处理的函数,变量,字符串.
优化:脚本检测模块中的右键菜单添加需忽略的变量函数功能优化,现在可以按住Ctrl键多选并一次性加入.
修改:GUI界面改版.现在使用SHE皮肤更加和谐.

20180622
版本号:1.2.1build20180622
修正:混淆时不再处理控制指令中与变量或函数名称相同的字符串.

20180610
版本号:1.2.0build20180610
修改:精减变量时,所有以变量声明的方式执行的函数操作,都不会被清除!
优化:加密函数优化.以更好的适应不同版本的SciTE编译环境.

20180228
版本号:1.1.2build20180228
修正:如果脚本首行使用"#CS,#CE"区域注释命令时,可能会出现区域注释清除不彻底的情况.


20180130
版本号:1.1.2build20180130
修正:使用"根据脚本中Include命令的位置整合"时,如果脚本首行使用"#include" 命令,会造成脚本整合错误.



20180117
版本号:1.1.1build20180116
修正:机器码可能提取错误,造成部分以前已注册的用户注册失败



20180116
版本号:1.1.0build20180115
修正:取本机机器信息可能会造成程序运行错误,感谢chzj589



20180111
版本号:1.0.9build20171205
优化:整合脚本选项增加变量函数分类整理
优化:程序自校验功能现在支持64位程序


20170817
版本号:1.0.8build20170817        建议更新
修正:部分以嵌套形式存在的区域注释不能被正确处理.造成整合错误.
一直对嵌套的区域注释(#cs#ce中又套了#cs#ce一层或多层)处理没有底.在一次偶然的测试中印证了以前采用的判断方式有误.换了思路,采用二次替换,递归正则的方式提取区域注释.有把握100%提取正确.彻底解决这个问题.
优化:精减函数及变量处理速度


20170808
版本号:1.0.6build20170808
增加:unicode文本字符串支持.



20170718
版本号:1.0.5build20170719
增加:混淆前自定义整合选项,让用户选择如何整合脚本,以满足部分用户的需求.但需要注意的是,如果选择不瘦身脚本.混淆所花费的时间将会成倍增加.

增加:UDF函数乱序排列,进一步降低源代码可读性



20170715
版本号:1.0.3build20170715
修正:当自定义函数参数带有 _续行符时,不能正确获取函数名称.从而不能被精减或混淆.(不会影响处理后的脚本运行)

20170629
版本号:1.0.2build20170628
修正:处理Static关键字引起的变量丢失

20170628
版本号:1.0.1build20170628
修正:处理递归函数时引起的同名字符串或变量处理异常的问题.感谢kkkpep.现在经过瘦身处理的脚本基本上已到精减的上限,留在脚本里的99%都是有用的变量或者函数


20170625
优化:关于精减,现在可以正确处理脚本中由Enum枚举的常量,整个常量步进组只要有一个使用,即不会精减这个常量组,反之将会被剔除.现在可以正确处理递归函数,未使用的递归函数可以正确剔除;
增加:新功能模块.利用数字签名进行程序的自校验.只要编译后的程序改动一个字节,那么程序将拒绝运行.这是一个很有用的功能,可以保护软件防止感染型病毒入侵.本工具不提供给程序签名的功能.数字证书的制作及签名请自行搜索论坛.
PS:由于启动后程序首先进行验证,GUI界面显示将会稍慢一些.


20170620
修正:对采用Static关键字声明的行处理问题
优化:精减变量处理速度,使用Scripting.Dictionary字典方式剔除需忽略的变量,速度有所提升,体积越大的脚本效果越明显.
Scripting.Dictionary是个很有用的组件,其创建了类似于Key索引对应Value值的字典对象,并且在其内部提供了快速索引访问的机制,可以让我们通过Key直接索引到指定的Value,比遍历二维数组有效得多。


20170616
修正:形如'if ...then 声明变量'的行处理问题,感谢  txm888 !见152楼
更新:使用说明.


20170615
重要修正:在某些情况下,可能出现加密函数缺失的BUG,强烈建议更新(20170409-20170612版本都有此问题)
修正:在XP,2003下无法显示LOGO,以至于无法进行换肤.
优化:Au3Encode在XP,2003界面表现.



20170613
修正:历史文件列表一处功能 bug,感谢  Alam !
优化:多国语言处理模块
修正:在多语言处理过程中,会将被注释的字符串纳入处理范围
更新:加入换肤功能:在主界面logo上单击右键可以换肤


20170415
更新:加入设置保存功能,不用每次启动重新调整设置了.加入历史功能,处理过的文件保存在历史列表中,最多保存十个


20170411
在AU3早期版本,编译后的程序碰到运行错误会弹出错误窗口,提示错误的行及语句.方便查错.但新版本把这一功能给简化了,可能是为了保护脚本代码的需要,仅提示错误的行.
有很多时候,脚本未编译前测试N次没发生错误,编译完成运行也正常.但是!也许几百次会偶而那么一次发生运行错误.弹出讨厌的错误窗口,这种错误在编译前是很难发现的.显示错误的行去源代码查也查不出什么,因为完全对不上.现在提供一种方法

新增:新功能测试,.检测脚本,生成实际行号与"解释器内部行号(不知道怎么描述,姑且这么称呼)"的对照表,如果哪天程序发生了错误,根据报告的行,利用对照表,可以方便查出究竟是哪行出现了问题!
效果展示在118楼


20170409
优化:寻找autoit安装路径逻辑


20170408
修改: 不再处理预处理指令,感谢131738
增加:新的include文件处理方式
增加:对于不能自动获得标准库路径的问题,添加手动指定的方式


20170329 修正: include A3x文件错误,A3X文件不再纳入整合范畴

20170224 修改:考虑到非注册版本混淆脚本,需要添加排除变量,函数步骤,才能正常混淆脚本.因此将函数名称混淆(进阶),变量名称混淆(进阶)功能开放,未注册也可使用!,目前需要注册使用的功能仅限于数字及字符串加密处理


201601112 修正:代码转换一处BUG,感谢ddrs


20160928 重新温习了一下#include 搜索次序
修正:#include文件路径解析的错误 比如 #include 'Includes\_CRC32ForFile.au3'
修正:#include文件互相包含对方,从而导致无限循环的错误
增加:当字符串加密时,将会自动排除fileinstall函数第一个参数(此参数内定必须为字符串),现在可以在混淆后的脚本中正确使用fileinstall了
调整:功能按钮响应逻辑.


20160924 修复已知bug.附加了二个小工具.
字符串转换可以将任意二进制文件数据转换为AU3函数,以替换Fileinstall函数.如果是文本文件还支持生成释放文本文件的代码.
au3脚本附加多语言版本的功能,可以让你的AU3程序成为多国语言版本!只需简单几步就可完成,无需教程.
在转换前如果使用检测功能,还可自由选择是否转换某字符串.如果跳过检测,那么程序将按默认规则转换字符串.生成的文件内有说明,只需按提示将相应代码放入指定区域,即可完成脚本的多国语言化工作!.


20160905 修复已知bug

20160720偷偷的更新了一下.现在支持多語言版本了

20160716偷偷的更新了一下.现在支持十进制数字加密了还有其它细节上的一些调整

=====================================























本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 7金钱 +340 贡献 +37 收起 理由
itqijian + 30 谢谢分享 很给力的工具
redapple2008 + 10 + 2 很给力!
zpmc123 + 10 TUBABA历害啊!
nqawen + 10
131738 + 10 鼓励一下

查看全部评分

 楼主| 发表于 2018-7-22 08:38:29 | 显示全部楼层
xz00311 发表于 2018-7-20 17:42
可惜了换了个固态硬盘所以注册码失效了哎

付费用户可额外获得一次领取注册码机会
发表于 2016-5-29 14:38:59 | 显示全部楼层
回复 7# tubaba
谢谢!己注册!
发表于 2016-5-28 17:31:24 | 显示全部楼层
回复 1# tubaba

下载试试,不知好用不?
发表于 2016-5-28 17:35:12 | 显示全部楼层
回复 1# tubaba

下载了
机器码:
HGST HTS725032A7E630RC040ACK002APJBFE9FBFF000106C2
发表于 2016-5-28 18:18:40 | 显示全部楼层
谢谢楼主,机器码BFEBFBFF00010676
发表于 2016-5-28 18:25:45 | 显示全部楼层
测试下,谢谢分享!
发表于 2016-5-28 18:32:02 | 显示全部楼层
收藏一下,其实对于脚本语言来说,迷惑也只是浮云。据说从内存中可以直接看到代码,当然具体方法没有说。
 楼主| 发表于 2016-5-29 11:17:03 | 显示全部楼层
回复 3# chzj589


    6CCFH-F9YTW-BT3PJ-QRJ2R-R4P4D
 楼主| 发表于 2016-5-29 11:18:12 | 显示全部楼层
回复 4# 虫子樱桃


    PPF37-GB8YB-HDTMV-HBW3Y-Q4F8Y
发表于 2016-5-29 18:59:15 | 显示全部楼层
这个试试看。
发表于 2016-5-29 19:03:31 | 显示全部楼层
WDC WD3200AAKS-75L9A0WD-WMAV2F359060BFEBFBFF0001067A

请求注册码,谢谢。
 楼主| 发表于 2016-5-30 00:21:50 | 显示全部楼层
回复 11# lpxx


    DCD86-4KB7V-GJBF7-MFCVJ-FWRPD
发表于 2016-5-30 10:39:36 | 显示全部楼层
路过,进来看看,可惜我不明白
发表于 2016-5-31 07:53:47 | 显示全部楼层
这个是好东西,不知道跟A大的迷惑工具相比,那个更优秀一点
发表于 2016-5-31 07:58:07 | 显示全部楼层
178BFBFF00100FA0 我的机器码,求注册
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-25 06:06 , Processed in 0.085171 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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