当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
5 Star 14 Fork 4

WLDragon / MixSWF
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-2-Clause

#MixSWF

swf混淆工具,用于混淆FD/FB工程打包的swf文件,可智能提取项目中的包名、类名和类成员名等,并可以减少swf文件体积。bin目录下的MixSWF.swf已经进行了混淆处理,可以使用JPEXS Free Flash Decompiler等反编译工具查看混淆效果。修改bat/SetupSDK.bat里的FLEX_SDK字段指向你自己的flexSDK,运行Run.bat即可使用。或者运行FD工程重新编译。

##使用方法

  • 打开FD工程并编译运行MixSWF,会出现绿色和蓝色的两个圆角矩形
  • 把装有项目源码的src文件夹拖到右边的圆角矩形里,MixSWF会提取源码中的包名、类名及类成员名覆盖到mixs.txt文件
  • 把使用release发布的swf文件拖到左边的圆角矩形里,swf同级目录上多出的*_mix.swf文件即是经过混淆的文件

##文件说明

  • mixs.txt 配置需要混淆的字符,使用英文字符","分隔字段,由MixSWF自动生成
  • nomixs.txt 配置不需要混淆的字符,使mixs.txt失效,格式跟mixs.txt一致
  • *_table.txt 混淆后出现在swf同级目录,列出混淆前后的字段,用于对照
  • *_min.swf 这个你懂的

##实现原理

swf把所有使用到的类名、方法名和字符串等都存储到一个叫常量池的区域,MixSWF的工作就是根据swf的文件格式找到这个区域,并把里面的字符串都替换成简短的字符组合,然后重新包装成一个新的swf

##注意事项

  • 不能混淆主文档类名,例如Main,因为MixSWF没有处理标明swf入口的Tag
  • 不能混淆主文档的包名,如果主文档包含在其他包内,请把包名填入nomixs.txt,例如plat.Main,则需要把plat填入nomixs.txt
  • 不能混淆使用debug发布的swf,因为debug版里有多个doABCTag,而MixSWF只处理第一个
  • 不能混淆关键字以及和flash内置类一致的类名、方法名和变量名等,例如is,Sprite,x,y,width,height,parent等,如果你的项目中存在这样的自定义类或方法,请配置nomixs.txt不对其进行混淆
  • 如果你的项目混淆后不能正常运行,请修改MixData类里的CHAR_SET为_abcde等编译器能识别的字符集,重新混淆后使用JPEXS Free Flash Decompiler或其他反编译工具提取源码,使用混淆过的代码搭建新的工程,然后进行调试。一般都是混淆了内置关键词造成的,使用*_table.txt定位。

##参考

Copyright (c) 2016, WLDragon All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

用于混淆swf文件,减少swf体积 展开 收起
ActionScript
BSD-2-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
ActionScript
1
https://gitee.com/wl/MixSWF.git
git@gitee.com:wl/MixSWF.git
wl
MixSWF
MixSWF
master

搜索帮助