1) Edito
Bonjour à tous ! Je suis content de vous retrouver pour un nouveau tutorial
! Ici nous verrons donc coment cracker FlashFXP.Le schéma de cracking
étant cette fois différent, nous apprendrons à utiliser
de nouvelles fonctions de ResHacker ! Allez en piste .
2) Outils neccessaires
Pour cette fois, nous n'aurons pas besoin de W32DASM.Nous utiliserons uniquement un éditeur héxadécimal et un éditeur de ressource.
Hexworkshop : éditeur héxa très bien pour ce que nous devons faire.A télécharger ici.
ResHacker: Un très bon éditeur de ressources.Disponible ici.
Phase cracking now !
3)Phase cracking
FlashFXP est un client FTP permettant de faire du FXP (c'est à dire transfert de serveur à serveur).Nous l'avons donc utilisé, on a testé ses capacités, et on a vu que dans la barre de titre on avait un vilain "- Evaluation copy".Au démarrage, un moche Nag Screen, et dans le menu about un tas de phrases pas cool.Tout d'abord sachez que le travail sera facilité car la time-limit n'empêche pas l'utilisation du programme, elle contraint juste à attendre 30 secondes que le bouton continuer se débloque.
Nous allons procéder par ordre afin de ne pas oublier des choses en chemin.Pour nous échauffer nous allons supprimer le "- Evaluation copy" de la barre de titre.Pour ce faire, nous aurons besoin d'un éditeur héxadécimal.Lancons HexWorkshop et chargeons le programme.Nous arrivons ici :
Pour trouver la chaîne de caractères evaluation copy, nous allons lancer une recherche en ASCII à l'aide du menu Edit-->Find...
Lors du click, nous arrivons ici :
A première vue, ça a l'air bon.Mais il manque pourtant le FlashFXP devant le message.Nous allons alors appuyer sur F3 (find next ou chercher suivant), jusqu'a temps que nous arrivions là :
Ici nous avons alors le FlashFXP.et en continuant ) appuyer sur Find next, nous voyons qu'il y a tout de même encore une occurence à FlashFXP Evaluation Copy.Nous nous en occuperons après.Pour le moment, nous allons patcher la première.Pour mettre fin à une chaîne, le plus efficace et pratique est de placer un 00 après les mots à garder dans la chaîne.C'est ce que nous allons faire.Avant le tiret, nous allons placer un 00.Mais mauvais surprise, lors du lancement du programme, il y a toujours ce même message ! Il s'agit fort probablement de la seconde occurence.Nous allons la patcher elle aussi.Eh oui, c'était bien elle qui nous gênait ! Voila de l'aide pour le placement des 00 :
Et lors du relancement du programme, plus de problèmes .Bien,
nous allons maintenant passer au menu about, qui contient des textes peu agréables
à voir
.
Pour modifier tout cela, nous allons encore avoir besoin de notre éditeur héxdécimal, puis de ResHacker.Nous allons chercher la chaîne Unregistered avec notre éditeur, et arriver ici :
Comme il n'y a pas d'autres occurences, il est fort probable que tout se joue ici ! Nous allons donc modifier le Unregistered par votre pseudo par exemple.Pour moi ce sera Nessus.A part si votre pseudo fait le même nombre de caractères que le mot Unregistered, vous aurez des lettres manquantes.Pour cela, pas de problèmes, il vous suffit de terminer votre pseudo par un 00 dans la partie héxa.Résultat :
Nous relancons le programme, et surprise ! Plus de Unregistered .Mais
il nous reste encore 2 phrases et deux boutons.Occupons nous des phrases en
premier lieu.Nous avons pour commencer la phrase "Please register FlashFXP
today...".Nous allons rechercher le mot today, qui ne doit pas apparaître
très souvent dans le programme.
C'est juste en dessous du Unregistered, et en prime nous avons le "Your are on day ...." et la phrase qui nous indique que notre période d'évaluation est expirée.Pour notre phrase, vous pouvez soit la modifier, soit la supprimer (en placant toujours un 00 sur la première lettre de la phrase, c'est à dire P).Pour moi, je vais la supprimer.Je relance le programme, c'est bon, ça marche ! Pour les phrases vous prevenant que la période d'évaluation est terminée ou combien de jours il vous reste avant qu'elle ne se termine, même principe, ou vous modifiez, ou vous "désactivez" avec un 00 àla place de la première lettre.Mais attention, car au dessus vous avez aussi le message qui vous dit que la période d'essai est terminée ! Veillez donc à le désactiver lui aussi.
Comme vous le voyez, reste encore à supprimer les boutons Register et How to register.Pour ce faire, nous allons utiliser ResHacker.Lancons ResHacker et chargeons le programme.Nous arrivons ici :
Ici pas d'onglet Dialog.Cela pose un problème dans la mesure où les fenêtres et composants sont dans l'onglet dialog.Mais puisqu'il n'y en a pas, nous allons nous débrouiller autrement.Nous allons explorer l'onglet RCData l'intérieur, ceci :
Comme vous le voyez, un onglet TFRMABOUT est présent.Comme ce que nous voulons modifier se situe dans l'onglet About, nous allons rentrer à l'intérieur.Une fois rentrés, nous obtenons du code.Ce programme a été codé en Delphi, je vais donc vous donnez quelques infos utiles :
- Label : zone de texte où l'utilisateur ne peut intéragir (ex.
).Texte dans Caption
- Button : Bouton (ça vous connaissez j'espere ).
Nous allons maitenant voir les proprietés des boutons qui peuvent et qui vont nous êtres utiles :
- Caption : texte affiché dans le bouton
- Top : affichage du bouton.Une valeur négative entraine l'invisibilité du bouton /ici peut-être utilisé comme Visible
- Width & Height : mensurations du bouton
- Visible : False ou True, indique si le bouton est visible ou pas
- Enabled : grisé ou dégrisé
- OnClick : fonction déclenchée lors du click
Bien, commencons maintenant la désactivation des boutons.Plusieurs choix s'offrent à nous.Nous pouvons : les rendre invisible (Visible et Top), les griser (Enabled) ou les supprimer (en supprimant les lignes de code de object... à end).Mais nous allons voir que la dernière option n'est pas possible car elle provoque l'affichage d'un message d'erreur en rouge dans un coin du programme.Ce n'est pas ce qu'il y a de plus professionel.Moi j'ai choisi de griser les boutons, après faites comme le coeur vous en dit.Pour griser le bouton Register :
object b2: TButton
Left = 6
Top = 227
Width = 75
Height = 25
Cancel = True
Enabled = False
Caption = 'Register'
TabOrder = 1
OnClick = b2Click
end
Vous pouvez faire de même pour le bouton How to register.Résultat :
La partie concernant le menu about est donc terminée.Nous allons donc passer au plus dur maintenant, le Nag Screen.Examinons le :
Tout ce qui est encadré en rouge est à modifier.Ainsi que le message dans la barre de titre.Nous allons commencer par le texte à l'intérieure du nag.Nous allons modifier le gros texte, remplacer le texte en gras par notre pseudo, et supprimer le text en bas.Pour ce faire, nous allons continuer avec ResHacker en allant dans la section RCData toujours, puis TFRMREG.Pour modifier les textes, retrouvez les textes par défaut du nag (FlashFXP is shareware blablabla...) puis remplacez les par vos textes.Exemple pour le This Dialog box will not... :
modification dans ResHacker :
Résultat :
Bien, cela fait, nous allons changer le message nous disant "You are on day % of your 30 day evaluation period", cacher la barre de progression, griser tous les boutons mais en laisser un actif qui permettra de continuer.Bien sur ce bouton ne nous fera pas attendre 30 secondes.
nous pouvons changer ça ou le supprimer.Pour des raisons d'esthetique,
mieux vaut le changer.Nous pouvons le changer par exemple en "Time limit
cracked".En dessous de ce code, nous voyons aussi un Please purchase FlashFXP
to continue.C'est certainement le message affiché après la fin
de la période d'évaluation.Nous allons aussi changer ce message
en Time limit cracked.Maintenant passons à la barre de progression.Ce
composant en Delphi se nomme TProgressbar.Et comme par hasard il est situé
tout en bas du code .Nous
allons ici jouer avec la proprieté Visible.Rajoutons la ligne Visible
= False dans le code, et observons.
Avouez que ça fait classe .Mais
ça ferait encore plus classe si on pouvait griser les boutons d'enregistrement
et éviter d'avoir à attendre 30 secondes pour continuer ! Nous
allons commencer par griser les boutons.Ceci se fera grâce à la
proprieté Enabled.Mais vous remarquerez que sur le bouton 1 (Continue),
elle est déjà à False ! Nous allons donc devoir le cacher.Ensuite
viens le bouton Exit (object b4).Pour le rendre inactif nous allons rajouter
la ligne Enabled = False dans le code.Nous en ferons de même pour Enter
Code, mais nous n'allons pas le faire pour Buy Now, que nous allons transformer
en Continue.Pour ce faire, examinons le code source, et plus précisement,
le bouton continue original.
Comme vous le voyez ici, lors du click du bouton la fonction b4 se déclenche ! Or b4 est la fonction de sortie du programme, c'est donc probablement un leure.En regardant les autres boutons nous obtenons confirmation.le bouton b3 est relié à b3click, b2 à b2click, etc..Pour créer un autre bouton Continue, nous allons certainement devoir le relier à b1click.Mais tout d'abord, cachons le premier bouton Continue.Pour ce faire un simple Visible = False devrait suffire.Si vous avez bien suivi auparavant nous n'avons pas touché le bouton Buy Now.C'est lui que nous allons transformer en Continue.
Nous allons changer la proprieté Caption en '&Continue' au lieu de '&Buy Now'.Le caractère & sert à souligner la lettre le suivant.Mais reste encore à modifier la fonction.Au lieu de laisser OnClick = b3click nous allons le changer en OnClick = b1click.Car comme dit précédemment le bouton b1 étant celui de la continuation, la fonction b1 le sera probablement aussi.Compilons et sauvegardons, puis observons le résultat.
Plutôt pas mal non .Grâce
à cette manoeuvre, même lorsque la période d'évaluation
sera terminée, nous pourrons clicker sans attendre sur le bouton continue.Mais
nous avons encore oublié une chose ! Eh oui, le - %d days left de la
barre de titre ! Nous allons sans plus attendre le supprimer avec HexWorkshop.Dans
le programme comme vous avez pu le constater, %d est la variable des jours.Nous
allons donc rechercher - %d days left.
Une seule occurence, et comme au dessus nous avons un message nous informant que notre période d'essai est terminée, nous allons lui aussi le désactiver (00 à la place de la première lettre).Au final nous obtenons le nag screen, mais reste toujours le Evaluation à coté de FlashFXP.Nouvelle recherche de FlashFXP Evaluation.
Une seule occurence, c'est donc parfait, un petit 00 sur le E de Evaluation, et le tour est joué ! Résultat final :
Et voila, FlashFXP cracked .
Autre solution : Pour le nag screen une autre solution s'offrait à vous, vous pouviez remplacer la ligne de code du début OnCreate = FormCreate par OnCreate = FormDestroy.Le gros inconvénient est le message qui s'affiche en rouge lors du démarrage et le buit de message d'erreur lors de la fermeture.
-----------------------------------------------------------------------------------------------------------------------------
Voila, c'est la fin de ce (long) tutorial ! J'espère qu'il vous aura aidé, envoyez moi vos réactions à : Nessus@Hackatak.org
@++
¶\{essus