Cours n°1 - Adieu YouNAG Bienvenue dans la cité du crack! ;) J'utiliserai au dé

Cours n°1 - Adieu YouNAG Bienvenue dans la cité du crack! ;) J'utiliserai au début des crackmes, c'est-à-dire des programmes prévus exclusivement pour être crackés. Cela évite les problèmes de droits d'auteurs et permet de cibler plus facilement la protection ;) . Ce dont vous avez besoin : Olly, PEID, LordPE (prenez la version deluxe par yoda + mise à jour) et le crackme : UnNagMe1 Certains programmes utilisent comme "protection" ce que l'on appelle un NAG screen, c'est à dire un message indésirable qui s'affiche par exemple au démarrage du programme pour nous rappeler de nous enregistrer ou d'autres choses désagréables du genre. Analyse du logiciel Certaines étapes du cracking doivent devenir un réflexe. L'analyse du logiciel en est une. Nous ouvrons donc PEID, puis nous chargeons notre UnNagMe1 soit par glisser-déposer soit par le bouton ouvrir (1). Si la signature d'un compilateur ou d'une protection est trouvée, PEID l'affichera (2) Dans notre cas PEID ne trouve rien. En fait, le programme est tellement petit qu'il ne trouve pas de signature connue. Ce n'est pas grave, prenons Olly et voyons de quoi il retourne Lancez Olly, ouvrez l'UnNagMe en cliquant sur la petite icône représentant un dossier Nous pouvons maintenant commencer l'observation. Observation Si nous lançons l'exécutable, nous voyons que nous avons deux MessageBox. Une NAG et une OK. Il ne faut donc garder que la 2eme. Analyse du code Grâce à Olly, nous voyons directement les appels aux deux MessageBox. MessageBox est une API Windows qui permet d'afficher une petite fenêtre préfabriquée pour afficher des messages d'informations comme un message d'erreur par exemple. Voici la définition de l'API MessageBox (vous pouvez aller voir vous-même dans l'API-Guide ou le W32 SDK Reference pour plus d'infos) int MessageBox( HWND hWnd, // handle de la fenetre propriétaire LPCTSTR lpText, // adresse du texte de la message box LPCTSTR lpCaption, // adresse du titre de la message box UINT uType // style de la message box ); En asm, les paramètres sont passés à l'envers. Retenez bien cela car vous y aurez souvent affaire. Grâce à Olly, vous voyez bien à quoi correspondent ces paramètres. Patching Pour ne pas afficher la première MessageBox (le NAG) plusieures solutions s'offrent à nous : ¤ Nopper le CALL de la première MessageBox Pour cela, cliquez sur la ligne du CALL en 40100E, Ensuite tapez "nop" (qui signifie no opération en asm, c'est à dire on ne fait rien!), vérifiez que la case "Fill with NOP's" est bien cochée (cette case sert à remplir les bytes qui resteraient avec des NOPs) et cliquez sur "Assemble". En noppant le CALL (en le remplaçant par des NOP si vous préférez ;) ) , on n'appelle plus la fonction pour afficher la MessageBox et donc elle ne s'affiche plus. Cette solution n'est pas très élégante vu que les PUSHs des paramètres de la MessageBox sont toujours dans la pile et ne seront pas dépilés. Dans un programme comme celui-ci ça n'aura pas de conséquence mais dans un programme un peu plus important cela pourrait être désastreux, imaginez qu'on ait poussé quelque chose dans la pile pour le récupérer après, on ne va plus récupérer notre valeur mais le dernier paramètre de la MessageBox! Il faut donc nopper les 4 PUSHs de paramètres(le style, le titre, le message et le propriétaire de la messagebox) si on ne veut pas avoir de problèmes. ¤ Sauter à la bonne MessageBox A l'EP (Entry Point, endroit où démarre le programme - ici en 401000), plutot que d'afficher le NAG, on va sauter directement à la bonne MessageBox. Mais attention, la deuxième MessageBox commence avec son premier paramètre en 401013. Nous allons donc écrire JMP 401013 en 401000 (L'EP). Nous écrasons ainsi des données mais ce n'est pas grave puisqu'elles ne serviront plus. Au final nous avons ceci(en rouge ce qui a été modifié) : Si vous voulez enregistrer les changements (Olly modifie en mémoire seulement) : clic droit > Copy to executable>All modifications>Copy All. Une nouvelle fenêtre s'ouvre, fermez-la et enregistrez. ¤ Modifier l'EP C'est pour moi la meilleure méthode. Si on dit au programme de démarrer non plus en 401000 mais en 401013, il n'affichera plus le NAG. Pour faire cela, je préfère utiliser LordPE qu'un éditeur hexa, il y a moins de risques de se tromper. Pensez à fermer Olly et tous les programmes qui pourraient utiliser l'UnNagMe sinon vous ne pourrez pas le modifier. On lance LordPE, on clique sur PE Editor et on choisit notre UnNagMe. LordPE nous affiche une quantité d'informations sur l'exe mais nous n'allons ici nous intéresser qu'aux deux premières : EntryPoint et ImageBase. Notre EP dans le programme était de 401000 ce qui est en fait EntryPoint+ImageBase. Nous voulons démarrer en 401013 donc il suffit de changer la valeur 1000 de l'EntryPoint en 1013. Cliquez sur Save et le tour est joué! Voilà vous pouvez être fier de vous, vous avez déjà pas mal travaillé ;) ! uploads/S4/ cours-n1-nagscreen.pdf

Documents similaires
Zythom t4 Zythom Dans la peau d'un informaticien expert judiciaire Tome Au nom de la commune Je jure d'apporter mon concours à la Justice d'accomplir ma mission de faire mon rapport et de donner mon avis en mon honneur et en ma conscience Serment prêté en 0 0
Mise à disposition des EPI appropriés Pour préserver la santé et la sé- curité 0 0
Le cadre juridique franc ais des ope rations de cre dit islamique 0 0
VOTRE DOCUMENT SUR LABASE-LEXTENSO.FR - 16/05/2020 13:10 | UNIVERSITE DE SAVOIE 0 0
Guide de verification des enregistreurs 0 0
Chapitre I. L’impact du droit comparé sur l’évolution du statut personnel (Cas 0 0
Droit foncier 4 ? Armand Colin Téléchargé le sur www cairn info IP ? Armand Colin Téléchargé le sur www cairn info IP DROIT FONCIER ET DÉVELOPPEMENT LES ENJEUX DE LA NOTION DE PROPRIÉTÉ ÉTUDE DE CAS AU SÉNÉGAL Caroline Plançon Armand Colin Revue Tiers Mon 0 0
SYLLABUS 2017-2018 ------------------------------ Intitulé du cours Contentieux 0 0
Droit economique 1 NOTES DE COURS DROIT ÉCONOMIQUE Professeur SAKATA CINTRODUCTION GÉNÉRALE D'après la summa divisio du Droit il n'y aurait que deux branches du Droit le Droit privé et le Droit public Mais au ?l de l'évolution industrielle il est apparu d 0 0
Transport routier TRANSPORT ROUTIER CPlan Introduction Dé ?nition du Contrat de transport routier de marchandises ? I Base juridique et document de transport II les obligations des parties au contrat de transport routier Obligation de l ? expéditeur Oblig 0 0
  • 30
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Aoû 11, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.1060MB