actionscript-3 – 任何逆向工程师都有使用secureSWF的经验吗?
我正在写一个flash应用程序,我担心它会被反编译.为了最大限度地减少这种机会,我想混淆文件.
我听说过secureSWF(http://www.kindisoft.com/),他们确实列出了一些“用户评论”.然而,这些都是如此乐观,以至于难以信任.没有一个悲观评论(甚至不是例如用户界面或支持),所以有些东西告诉我他们可能不会发布所有评论.根据我的经验,即使是最好的公司也时不时会有某种批评. 那么,这里的任何逆向工程师都可以告诉我你在工作中的经验 – 以及你是否设法对secureSWF混淆文件进行逆向工程?如果是这样,你需要多长时间?你会推荐这个软件吗? 非常感谢提前. 解决方法
免责声明:我为Kindisoft工作.
secureSWF是最好的ActionScript混淆器.我相信毫无疑问: http://asgamer.com/2009/why-how-to-encrypt-your-flash-swf 代码混淆器应该使逆向工程师无法使用可以检索可读源代码的自动化工具(即反编译器).在此范围内,secureSWF非常成功.由于不再能够自动化该过程,因此对混淆的应用程序进行逆向工程的时间和精力取决于其大小.应用程序越大,逆向工程就越复杂和耗时.从头开始重写代码通常更简单. 混淆不是加密.它应该是一个单向的过程.重命名标识符时,原始名称不再存在.让他们回来的唯一方法是猜测.同样的事情适用于控制流混淆.管理指令并更改代码在字节码中执行的方式不遵循ActionScript的相同规则.考虑以下: // swapping the values of a and b var t = a; a = b; b = t; // will be compiled to something similar to: get a set t; get b; set a; get t; set b; // and will be obfuscated to something similar to: get a get b set a set b // then it can become: goto l1: l2: set a set b goto l3 l1: get b get a swap goto l2 l3:... // after that it becomes: goto l1: l2: set a set b goto l3 get b dup add l1: get b get a swap goto l2 l3:... // and finally (? denotes an unprinted char) goto l1: l2: set ? set ? goto l3 get ? dup add l1: get ? get ? swap goto l2 l3:... 现在想象一下,应用于你的所有代码.每次都以不同的方式.我要求进一步声称反向工程SWF文件变得像本机代码一样难.我说它变得更难了. 但这可能吗?当然如此.如果你有一些如此重要的东西,攻击者会遇到所有这些麻烦,那么绝对不应该在可能充满敌意的环境(客户端)中执行.虽然它有所帮助,但混淆不应主要被视为安全措施.更多信息可以在这里找到: 其他替代方案包括保持敏感代码在服务器上运行和加密.服务器端编码并不总是可行的.在许多情况下,您确实需要在客户端上运行代码.加密更糟糕,解密必须在客户端上进行,您必须将解密代码和密钥发送给客户端,不留任何东西以防止攻击者自己解密代码. 我希望我提供足够的技术内容来支持我的观点.现在回到无耻的营销:).下载演示版并自行测试.除了我们留在处理过的文件上的水印之外,它不受时间限制并且功能齐全.由于我们在论坛和stackoverflow.com上寻求帮助,我们的技术支持服务肯定超出预期;) 更多信息可以在这里找到: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |