vuivui 发表于 2012-11-29 07:20 http://www.autoitx.com/images/common/back.gif
我现在整合已经实现了,现在有想法“精简整合”,暂时木头绪…… 如果实现了似乎可以取代“Obfuscator 代码迷惑”的精简脚本的功能。 我现在整合已经实现了,现在有想法“精简整合”,暂时木头绪…… 如果实现了似乎可以取代“Obfus ...
afan 发表于 2012-11-29 18:54 http://www.autoitx.com/images/common/back.gif
我觉得先整合不合适。不整合的话,根据引用函数名逐层在头文件寻找函数,把常量和变量同时提取出来,然后分别合并有用函数和变量就可以了。如果整合了,怎么去除多余内容呢?
函数提取出来后,判别有用变量是很方便的。
抽空我也做个试试。 关键是整合了就不好判别函数是否用到,只能是从主脚本开始逐层找的。 关键是整合了就不好判别函数是否用到,只能是从主脚本开始逐层找的。
vuivui 发表于 2012-11-29 21:36 http://www.autoitx.com/images/common/back.gif
很多情况下,包含的文件不一定只有变量声明及函数定义的,也会有功能的执行。如果只在主脚本中找函数及变量,那就有可能漏掉那些脚本的执行。所以,我还是认为先要整合,当然,这只是我个人想法而已…… 本帖最后由 vuivui 于 2012-11-29 23:02 编辑
很多情况下,包含的文件不一定只有变量声明及函数定义的,也会有功能的执行。如果只在主脚本中找 ...
afan 发表于 2012-11-29 21:45 http://www.autoitx.com/images/common/back.gif
如果除了变量声明和函数段外还有其他功能代码,那就不是标准的头文件,其实相当于把一个脚本拆成了两个文件,既然是这样肯定有拆开的理由,本身就没有整合的必要了,这种Include不是头文件,应该是纯粹的包含文件。
这种情况下有两个办法,一个是手工把那个纯包含文件合并,因为是功能脚本应该都是有用内容。另一种办法就是整合后,先把所有非函数内的引用函数名列出来,然后逐步在函数内找出引用函数名,同时把引用到的函数都做上标记,全找出来后,删除未做上标记的函数(也就是无用函数)即可。变量的话,把预处理后的头文件整合,把此脚本中只匹配到一次的声明变量删除。整合前无用的注释等东西有必要先预处理一下。 如果除了变量声明和函数段外还有其他功能代码,那就不是标准的头文件,其实相当于把一个脚本拆成 ...
vuivui 发表于 2012-11-29 22:44 http://www.autoitx.com/images/common/back.gif
精简函数我大致完成了,枚举使用的函数成列表,再一次性删除未在列表中的。
精简变量还在想办法,还木有头绪 声明的变量,如果只出现一次,说明没被用到过,删除这个声明,刚才在编辑20#已讲到,想不到你那么快回复了。 声明的变量,如果只出现一次,说明没被用到过,删除这个声明,刚才在编辑20#已讲到,想不到你那么快回复了 ...
vuivui 发表于 2012-11-29 23:13 http://www.autoitx.com/images/common/back.gif
有些是函数内部的局部变量,可能会和全局变量同名,“把此脚本中只匹配到一次的声明变量删除”难以简单判读。另外,还有很多续行之类的,麻烦鸟。
Global Enum _
$TestControlForceBilinear = 0, _
$TestControlNoICM = 1, _
$TestControlGetBuildNumber = 2
Global Enum _
$HistogramFormatARGB, _
$HistogramFormatPARGB, _
$HistogramFormatRGB, _
$HistogramFormatGray, _
$HistogramFormatB, _
$HistogramFormatG, _
$HistogramFormatR, _
$HistogramFormatA 不该弄这个的,难度高,死脑细胞…… 辛苦了,我已在被窝里了,早点休息吧。我再想想。 猛按手机发不出去,等页面出来,已重复发n条了。 猛按手机发不出去,等页面出来,已重复发n条了。
vuivui 发表于 2012-11-29 23:32 http://www.autoitx.com/images/common/back.gif
没关系,一出来就已被我消灭……
标题
有些是函数内部的局部变量,可能会和全局变量同名,“把此脚本中只匹配到一次的声明变量删除”难 ...afan 发表于 2012-11-29 23:18 http://www.autoitx.com/images/common/back.gif
第一点,有用函数本就不多,就算偶尔重复一条也没关系。
第二点,先把回车符续行符替换为特殊字符,比如造个特殊变量,删除单个声明变量后,再替换为回车符续行符。 本帖最后由 afan 于 2012-11-30 19:22 编辑
回复 28# vuivui
我在想先枚举所有的全局变量,再从枚举列表中删除有重复的,剩下的就是孤家寡人,清除之~ 关键是清除不好处理,形态比较多……
现在已能摘掉很多未使用变量了,但还没达到很精简的地步。变量的书写格式较为多样,还得处理“Assign、Eval、IsDeclared”的介入问题。
页:
1
[2]