Cracking - le code assembleur de recherche de pointe afin de trouver une vulnérabilité, il a suivi dans l'analyse et le cambriolage
Introduction à la fissuration
début
Disappoint ceux qui pensent que vous pouvez faire exactement la fissuration sans certaines connaissances, les compétences et la persévérance. Ne vous contentez pas de prendre un virage à télécharger le logiciel requis pour pirater et casser le programme. Ne pensez pas que les interruptions de programme pendant 5 minutes (même si vous avez déjà une expérience et de la protection programme 1, il est possible, encore plus dans une période de temps plus courte).
Donc, si vous avez eu un grand désir d'apprendre à la fissuration, prêt à lire un grand nombre de documents, passer beaucoup de temps, alors c'est l'article pour vous.
Pour commencer , vous devez étudier les bases de l' assemblage, ne même pas besoin d'apprendre à écrire juste besoin de connaître la valeur des fonctions et des commandes sur ce programme doit être capable de lire le code. Pensez-vous que si vous pouvez lire un livre en espagnol, sans le savoir à partir du matériau par Asma vous conseiller de lire: bulletin Kalashnikov (http://www.Kalashnikoff.ru), «Assembler IBM PC" Yurov, de l'article "Assembleur pour Cracker ' s "de Dr.Golova, et" Cracking pour tots "par Crack.
Après avoir maîtrisé le matériel, vous devez connaître le but des fonctions, un peu de compréhension du code de programme assemblerskom. Comprendre que tout programme écrit dans un langage de programmation, est transmis au processeur pour le traitement distribué en code natif, pour un traitement ultérieur et l'exécution des fonctions intégrées en elle. Code de la machine pour qu'il soit converti en un assembleur lisible. Ses quelque chose que nous pouvons voir, modifier, avec des programmes spéciaux. Mais les changements ne sont pas possibles si le programme de logiciel upakovana.Upakovka fait pour réduire sa taille et de protéger contre les manipulations (par exemple, UPX, Aspack et beaucoup d'autres).
Variétés et programmes de la mission
(OllyDbg)
(KWdsm)
(QUnpack)
(Hiew)
(Tpe)
Tout ce logiciel peut être téléchargé séparément, mais il existe une version combinée, il est appelé CrackersKit (version au moment de l'écriture: 1.1, poids: 7 Mo), vous pouvez le télécharger depuis cracklab.ru presque tous ces programmes là-bas (ou leurs équivalents). Une fois que nous avons les connaissances de base dans ce domaine, et nous avons le droit d'étudier le logiciel de comprendre dans les types de logiciels:
shareware - shareware
freeware - logiciel libre
adware - programmes de publicité payés
commercialware - Payez!
DONATIONWARE - frais, si vous le souhaitez
L'objectif - le type de programme shareware, ad ware et articles commerciaux.
Barre d'outils et Olly DASM
Je pense que vous avez déjà au moins une certaine expérience avec les alliés (sinon vous pouvez lire l'article Olly Debugger AZ cracklab.ru)
Permettez-moi de rappeler les fonctions du débogueur avec lesquels nous travaillons:
Toujours en vue doit être CPU (fenêtre principale alliée), les points d' arrêt et les correctifs.
Fenêtre CPU:
Nous comprendrons à destination fonctions les plus élémentaires DASM.
Afin d'analyser le code de sécurité à son début à trouver.
Rechercher Comment vérifier le code (en utilisant OllyDGB et kWdsm)
Le but de la recherche - la recherche et la modification du code arbitraire ou valine trouver le numéro de série. code de validation de recherche requis pour le piratage des programmes.
Le but principal de ce code:
1 pour vérifier la validité du numéro de série (les données saisies dans le formulaire d'entrée CH)
2 aller à l'adresse, si elle est correcte / incorrecte
3 Rapport no / enregistrement correct
Les principales façons de trouver le code de vérification:
1 point d'arrêt (intermodules appel)
2 Référencé
3 moyens de fenêtre de recherche (dump) Mémoire
4 Recherche dans la pile
5 recherche en utilisant kWdsm
Mettez un point d'arrêt peut être soit par
ligne _komandnuyu, par exemple:
bpx MessageBoxA
bpx - breakpoint équipe
MessageBoxA - fonction, qui est fixé breakpoint
Objet des fonctions peuvent être trouvées dans les manuels de référence sur WinAPI (cracklab.ru)
Soit par le biais
_poisk inter-module d'appel (appels intermodules) tels que:
Nous trouvons la fonction MessageBoxA puis cliquez à droite et choisissez Set point d'arrêt sur tous les appels MessageBoxA
Dans cette recherche, utilisé une phrase qui apparaît par exemple lors de la saisie d'un numéro de série incorrect. Exécutez le programme, accéder au programme de CH jure que CH est pas vrai (par exemple comme: Faux SN Essayer à nouveau!) => Pour la recherche et ispolzovat cette phrase plus loin, nous entrons dans le All chaîne de texte référencé (qui se trouve dans l'onglet Recherche) et rechercher la phrase .
Exemple de piratage des programmes avec différents types de protection
1 forme de l'introduction de CH
2 étiquette dans le programme (par exemple, non enregistré)
Programme pour la recherche, ou de prendre le magazine avec des blancs (PS, un pirate, jeu) ou à partir de sites tels que softodrom.ru, etc. (il sont à la recherche de logiciels sharovanny (ie type de shareware) et explorer).
Théorique plan de rupture:
Commençons directement le processus de recherche de code et sa rupture, je vais vous montrer les étapes de l'exemple EscapeClosePro
Toutes les étapes suivantes sont recommandées pour mener avec moi, car il est difficile de percevoir que par la lecture des documents. Si vous ne comprenez toujours pas comment je pouvais pratiquer sur crackme possible du fantôme et l'artisanat (ngh.void.ru/soft/d/crackme.rar; ngh.void.ru/soft/d/craft1.rar)
EscapeClosePro
La méthode de protection: CH, inscription non enregistré dans la fenêtre du programme
Le packer / protecteur: aucun (et nous savons cela grâce peid, et si le programme a été emballé, il fallait juste trouver sous unpackers)
Coût: 100 roubles
Hacking Recherche par CH:
Cette méthode de piratage est caractérisé par le fait que le défi est de trouver le code de vérification , il peut être en réglant le point d' arrêt sur la commande que vous voulez, ou voir la référence d'une chaîne de texte, ou tout simplement voir le code désassemblé du programme et de trouver un numéro de série valide.
nom vizor
CH vizor
0040262E programme arrêté à l'adresse située à cette commande adresse d'appel avec cette commande est affiché (dans ce cas) le texte: Avis de Mauvais code de la boîte de décharge (la boîte de CPU principale), essayez de trouver des choses intéressantes par la seule visualisation du code pour faire défiler et voir à 0012F3D0 quelques chiffres plus de 10 chiffres en bref: 56C520AE713B563D5119 il y a une suspicion d'insuffisance cardiaque, un test et une déception.
personne interdit multiple (voire la totalité) façons de rechercher immédiatement
Maintenant mis un point d'arrêt non pas sur le message lui-même, et la phrase de commande d'éjection (code incorrect!) Push.Snova-à-dire de remplir un formulaire qui est OK, le programme est arrêté à 00.402.620 (où PUSH 0) .Tourner tourner notre regard vers le vidage de la mémoire et nous voyons là:
0012F438 004088E8 ASCII "9B2BC2C55272E0C32B44" << suspecté CH 0012F43C 0012F518 << ici notre breakpoint 0012F440 00402200 EscapeCl.00402200Test nous a trouvé 1 plus CH pour la validité. (Nom vizor sn 9B2BC2C55272E0C32B44) et vous remercions pour votre inscription!
Changer la fonction de sortie:
Modification de la fonction de sortie, à son tour, est caractérisé par la recherche de code de validation, changer à un à- dire cyclique arbitraire de telle sorte que pour toutes les données saisies examinera lui - même enregistré.
Encore une fois, définissez le point d'arrêt sur MessageBoxA comme avant, entrez tezhe nom du champ de données, CH, arrêter là. Seulement maintenant, nous allons plus dans la transition de la recherche (Jampa, saut) .po analyser la façon dont toutes les transitions. Une promotion est composée de manière, si une telle fonction pour afficher le message est à peu près à l'adresse 5, son test se produit au-dessus de cette adresse, car il est toujours testé ci-dessus résultat (le concept de la pile).
Fait défiler ci-dessus, voir:
004025CD> 85C0 EAX TEST, EAX 004025CF. A3 58AF4000 MOV DWORD PTR DS: [40AF58], EAX 004025D4 74 4A JNE SHORT EscapeCl.00402620Analyse JNE 00402620 transition, faites attention avant d'aborder Jampa ie 00402620.Smotrim qui est à cet endroit, nous voyons que les messages concluent que le programme nezaregistrirovanna.Teper si nous changeons le JNE de transition (saut sinon égale ie saut sinon égale) à JE (saut en cas d'égalité à savoir si saut égal) .Dvoynym cliquez sur le bouton gauche de la souris, cliquez sur:
004025D4 74 4A JNE SHORT EscapeCl.00402620et changer le JNE sur JE.Teper entré tout programme de CH estime pour le bon (bien sûr en plus de ce HF Et ceci est dû au fait que sa fonction de sortie est modifiée de sorte que le programme retourne toujours un résultat positif dans l'une quelconque des données saisies.
Mais il est pas tout, il ne faut pas se dépêcher et exécuter Patch 1, la sortie de ce programme. Rappelons quelle autre façon de protéger le programme utilise? droite, simple à première vue signe non enregistré dans la fenêtre. Juste après le programme, elle était à la recherche de changer si un redémarrage est l'inscription sur autre chose, et si oui, il se sent enregistré, mais nous avons par exemple nebylo si pas tout est encore fait avancer.
Nous avons mis un point d'arrêt sur les MessageBoxA déjà surexposées.
Nous commençons à parler si le programme est non enregistré, alors il peut être vu l'inscription non enregistré donc quelque part dans le code, il faut la recherche de programme byt.Nachinaem, mais avant que le code juste proskrolim et le voir .. pour faire défiler vers le bas et voir:
0040265F. 85C0 ESSAI EAX, EAX << la comparaison des données dans les registres 00402661 74 23 JE SHORT EscapeCl.00402686 << transition 00.402.663. 8B5424 70 MOV EDX, DWORD PTR SS: [ESP + 70] 00.402.667. 68 64724000 PUSH EscapeCl.00407264; / Text = "La version non enregistrée!" ... 00402686> 8B7424 70 MOV ESI, DWORD PTR SS: [ESP + 70] 0040268A. 8B3D 70714000 MOV EDI, DWORD PTR DS: [<& USER32.SetDlgIte>; USER32.SetDlgItemTextA 00.402.690. 68 54724000 PUSH EscapeCl.00407254; / Text = "Enregistré à:""SetDlgItemTextA - titre ou fonction du texte dans la fenêtre"
Et voilà le message. Obtenir l'analyse du code. Nous voyons un modèle standard et de vérifier le contenu de la fonction de registres Jampa. JE 00402686 - JE - passer sur le code. Nous regardons ce qui est sur 00402686 et il y a un message qui RegiRegistered à programmer: => si vous changez de programme JE JNZ au scénario lyudom se considère enregistré et écrit à ce sujet dans sa fenêtre principale.
Donc, la modification de ces deux fonctions, le programme sera toujours enregistré et tout cela balgodarya autour des 2e octets modifiés dans le code.
Patching:
programme Patcher est effectué directement après le programme de piratage.
Pour patcher notre programme expérimental pour être changé:
fonction de changement d'adresse adresse de la fonction transition 004025D4 JNE 00402620 JE 00402661 00402686 JE JNEPour le rapiéçage utilisera hiew, hiew'a de commandes peut être trouvé dans mon article (ngh.void.ru/lec/crack.html).
Avant que nous faisons programme patcher besoin de créer un dossier (où le dos, peut être dans le répertoire racine) et copiez le fichier exe EscapeClosePro, dans le cas si nous avons fait quelque chose de faux. Une fois que nous avons copié, run hiew trouver et l'ouvrir dans notre dossier (EscapeClosePro.exe) .Sur ce point, je voudrais parler un peu plus sur les options de base hiew'a.V ce menu, sélectionnez Decode.
Le principal hiew'a du panneau:
Téléchargez notre fichier, EscapeClosePro.exe dans hiew, à la recherche d'une phrase (F7), ou (F5) .I serait conseillé de chercher l'expression, donc appuyez sur F7 et entrez le Enregistré à: après avoir trouvé cette phrase, rappelons les conclusions que nous vous devez patch:
004025D4 JNE 00402620 JE 00402661 00402686 JE JNEPatches. Après la correction, (rappelez-vous je l'ai dit nous avons besoin de copier les fichiers du programme EXE et patches il) de canard ici après que nous lui patché pereminuem par exemple p.exe et copie non modifiée du fichier de programme, à savoir que nous avons maintenant dans le dossier 2 fichiers, 1 propatchiny et autres programnyy.Eto de deflotovy nous avons besoin de faire un patch via patchmeykera tpe:
Pour créer un patch est nécessaire dans cette fenêtre sous la forme fichier d'origine (l'original, à savoir, non modifié / non patché) choisir le fichier patchées et la boîte de fichier patché en conséquence patché fayl.Posle tpe dans la fenêtre principale, remplir des formulaires qui ont créé le patch, et onglet fichier sayt.I, choisissez de créer patcha.Posle enregistrer le nom de votre choix, et tout le patch est prêt!
J'espère que cet article vous a aidé à apprendre les rudiments de l'art krekerskogo, a répondu à une partie de votre tout voprosy.Dalshe sera beaucoup plus intéressant, plus pratique, et de voir que vous devez tous réussir.
ps cet article, il est une application sous forme de Veda-rouleaux EscapeClosePro programme de piratage de diverses manières.
ps merci Armiolu pour ce qui m'a incité pas la bonne façon, aidé dans le développement des choses incompréhensibles pour moi)
Par Rel4nium (ngh.void.ru)
Commentaires
Commentant, gardez à l' esprit que le contenu et le ton de vos messages peuvent blesser les sentiments des gens réels, montrer du respect et de la tolérance à ses interlocuteurs, même si vous ne partagez pas leur avis, votre comportement en termes de liberté d'expression et de l' anonymat offert par Internet, est en train de changer non seulement virtuel, mais dans le monde réel. Tous les commentaires sont cachés à l'index, le contrôle anti - spam.