Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有adobe flash的情况下编译flash代码_Flash_Actionscript_Adobe - Fatal编程技术网

在没有adobe flash的情况下编译flash代码

在没有adobe flash的情况下编译flash代码,flash,actionscript,adobe,Flash,Actionscript,Adobe,我有一个用AS2编写的adobe flash的flash项目,当然还有.fla文件。 此程序具有某种身份验证,可以更改编写代码时使用的参数。这意味着我写了这样的东西: if (userEnteredPassword == "xyz") { //login success logic } 现在我给用户的唯一东西是.exe文件。我希望用户能够更改密码。我该怎么做?在编译上述代码时,如何更改代码中的“xyz”?我想我可以散列密码并存储在.exe文件旁边的文件中;并检查哈希字符串的身份验证。我可以制作

我有一个用AS2编写的adobe flash的flash项目,当然还有.fla文件。 此程序具有某种身份验证,可以更改编写代码时使用的参数。这意味着我写了这样的东西:

if (userEnteredPassword == "xyz")
{
//login success logic
}

现在我给用户的唯一东西是.exe文件。我希望用户能够更改密码。我该怎么做?在编译上述代码时,如何更改代码中的“xyz”?我想我可以散列密码并存储在.exe文件旁边的文件中;并检查哈希字符串的身份验证。我可以制作一个简单的哈希函数。可能吗?如何处理文件?谢谢

如果您的Flash是用AS2(而不是AS3)编写的,并且您拥有所有ActionScript源代码,则可以使用编译器,但这可能会很棘手,具体取决于应用程序的编写方式。如果您没有源代码,那么就必须对SWF进行反编译,并祈祷反编译器能够全面解构所有内容。不幸的是(谢天谢地),我看到的那些无法解构可重建的Flash。

如果没有FLA文件,很难给您提供具体的解决方案。我只能给你一个简单的说明。您的初始编译仍然需要Flash,并且您可以轻松获得60天的试用期

解决方案一是在AS类中外部化此密码,但仍然使用SWF对其进行编译以获得更好的安全性(但由于反编译器可以很容易地找到密码,所以不会太多)

您需要找到密码编码的区域,比如说,它是一个带有一团ActionScript的帧。让我们假设这个声明是这样的

if (userEnteredPassword == "xyz")
{
    //login success logic
}
你可以把它改写成

if (userEnteredPassword == appsetting.Settings.password )
{
    //login success logic
}
然后在appsetting文件夹中创建AS文件Settings.AS:

将FLA编译成SWF,并确保没有错误。随后,MTASC可能会在不使用Flash IDE的情况下更新SWF

假设SWF和passwordas文件在同一个目录中,那么您的MTASC命令如下所示

mtasc.exe-swf your_swf_file.swf-cp./-使用新密码.swf退出您的_swf_

安全考虑 正如我前面所说,以纯文本形式存储的密码是错误的。一种简单的方法是使用单向加密(如MD5)对密码进行加密,然后需要将加密的用户输入与加密的密码进行比较。这还需要加密库,您需要一些Flash知识才能做到这一点


最好的解决方案是让服务器验证密码。您可以进行http调用并让服务器验证密码是否匹配,这样您就永远不会以任何形式公开密码。这种方法更复杂。

你需要帮助破解其他程序员的工作吗?我有代码,但我的客户每年都想更改密码。我怎么做?谢谢。我的代码在AS2中,但我有.fla文件。如何将.as文件制作为文件?谢谢:)在我编辑我的问题时,没有任何编译器,有没有办法做到这一点?我想让用户更改密码,这对用户来说有点困难,除了写一些批处理文件等等…如果你按照上面提到的MTASC路线,那么一旦你让MTASC正确编译源代码,你的逻辑下一步就是使用NANT/ANT或PowerShell(Windows)来简化这个过程,所以用户只需要更新一个文本文件而不是AS文件,但是文本文件将被流式传输到AS代码中并进行编译。如果你在服务器端这样做,你可以为这个过程创建一个图形用户界面。我非常高兴你为你的项目的具体设置所做的努力,非常欢迎你私下与我联系。
class appsetting.Settings
{
    public static var password:String = "xyz";
}