本帖最后由 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偷偷的更新了一下.现在支持十进制数字加密了还有其它细节上的一些调整
=====================================
|