2013-02-04 3 views
-2

J'ai un projet flash avec Adobe Flash qui est écrit en AS2, et j'ai le fichier .fla bien sûr. ce programme a une sorte d'authentification pour changer le paramètre qui est utilisé dans l'écriture du code. cela signifie que j'ai écrit quelque chose comme:compiler le code flash sans Adobe Flash

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

maintenant la seule chose que je donne à l'utilisateur est le fichier .exe. Je veux que l'utilisateur ait la possibilité de changer le mot de passe. Comment puis je faire ça? comment puis-je changer le "xyz" dans le code ci-dessus quand il est compilé? Je pensais que je peux hacher le mot de passe et stocker dans un fichier à côté du fichier .exe; et vérifier les chaînes hachées pour l'authentification. Je peux faire une fonction de hachage simple.est-il possible? Comment puis-je travailler avec des fichiers? merci

+0

Avez-vous besoin d'aide pour pirater le travail d'un autre programmeur? – Eduardo

+0

J'ai le code, mais mon client veut changer le mot de passe chaque année. Comment puis je faire ça? – shidsun

Répondre

1

Sans le fichier FLA, il est difficile de vous donner une solution spécifique. Je peux seulement vous donner une idée. Votre compilation initiale nécessite encore Flash, et vous pouvez facilement obtenir un essai pendant 60 jours.

La solution consiste à externaliser ce mot de passe dans une classe AS, tout en le gardant compilé avec le fichier SWF pour une sécurité un peu meilleure (mais pas beaucoup car un décompilateur peut facilement trouver le mot de passe).

Vous auriez besoin de localiser la zone où le mot de passe est codé, disons qu'il s'agit d'une image avec un blob de code ActionScript. Disons que la déclaration est comme

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

Vous pouvez réécrire comme

if (userEnteredPassword == appsetting.Settings.password) 
{ 
    //login success logic 
} 

Vous créez ensuite un AS Settings.as de fichiers dans le AppSetting dossier:

class appsetting.Settings 
{ 
    public static var password:String = "xyz"; 
} 

Compile la FLA dans SWF, et assurez-vous qu'il n'y a pas d'erreur. Par la suite, votre fichier SWF peut être mis à jour par MTASC sans Flash IDE.

Alors disons que le fichier SWF et le mot de passe fichier sont dans le même répertoire, votre commande MTASC ressemblerait

mtasc.exe -swf your_swf_file.swf -cp ./ your_swf_with_new_password.swf -out

Considération de sécurité Comme je l'ai dit précédemment, le mot de passe stocké en tant que texte brut est BAD. Une approche légère serait le cryptage du mot de passe avec un cryptage unidirectionnel comme MD5, alors vous auriez besoin de comparer l'entrée utilisateur encyrptée avec le mot de passe crypté. Cela nécessite également des bibliothèques de chiffrement dont vous auriez besoin de connaître Flash pour le faire.

La meilleure solution consiste à demander au serveur de vérifier le mot de passe. Vous pouvez faire un appel http et demander au serveur de vérifier si le mot de passe correspond, de cette façon vous n'exposeriez jamais le mot de passe sous quelque forme que ce soit. Cette approche est plus impliquée.

+0

Y at-il un moyen de le faire sans aucun compilateur que j'ai édité ma question? Je veux que l'utilisateur change le mot de passe, c'est un peu difficile pour l'utilisateur de le faire, sauf écrire des fichiers batch et ainsi de suite ... – shidsun

+0

Si vous allez avec la route MTASC comme indiqué ci-dessus, une fois que vous avez MTASC correctement compiler le code source, votre prochaine étape logique serait d'utiliser quelque chose comme NANT/ANT ou PowerShell (Windows) pour rationaliser ce processus, donc l'utilisateur a seulement besoin de mettre à jour un fichier texte au lieu d'un fichier AS, mais le fichier texte sera diffusé dans le code AS et compilé. Et si vous le faites du côté serveur, vous pouvez créer une interface graphique pour le processus. –

+0

Je suis plus que ravi de vous consacrer à l'installation de votre projet, vous êtes plus que bienvenus pour me contacter en privé. –

1

Si votre Flash est écrit en AS2 (au lieu de AS3), et que vous avez tout le code source ActionScript, il est possible d'utiliser le compilateur MTASC, mais cela pourrait être compliqué selon la façon dont l'application est écrite. Si vous n'avez pas le code source, vous devrez alors décompiler le fichier SWF, et prier le décompilateur de tout déconstruire complètement. Malheureusement (et heureusement), ceux que j'ai vus ne pouvaient pas déconstruire un Flash reconstructible.

+0

merci. bien mon code est en AS2, mais j'ai un fichier .fla. comment puis-je faire un fichier .as? merci :) – shidsun