Knacken - die Kunst Forschung Assembler-Code, um eine Lücke zu finden, gefolgt es bei der Analyse und Einbruch

Einführung in die Rissbildung

Anfang

Knacken - die Kunst Forschung Assembler - Code , um eine Lücke zu finden, gefolgt es bei der Analyse und Einbruch.
Disappoint diejenigen, die denken, dass Sie Knacken tun können, nur ohne bestimmte Kenntnisse, Fähigkeiten und Ausdauer. Nehmen Sie nicht nur eine Umdrehung um die erforderliche Software herunterladen zu hacken und das Programm zu knacken. Denken Sie nicht, dass die Programmpausen für 5 Minuten (auch wenn Sie bereits Erfahrung und Schutzprogramm 1 haben, ist es möglich, noch mehr in kürzerer Zeit).
Also, wenn Sie einen großen Wunsch zu Rissbildung zu lernen hatte, bereit, eine Menge von Dokumenten zu lesen, viel Zeit zu verbringen, dann ist dies der Artikel für Sie.
Um zu beginnen müssen Sie die Grundlagen der Montage zu studieren, brauchen nicht einmal zu lernen , nur zu schreiben , müssen Sie den Wert von Funktionen und Befehle auf sie das Programm wissen müssen den Code lesen können. Glauben Sie, ob Sie ein Buch in Spanisch, ohne sie aus dem Material von Asma zu wissen, raten Sie lesen können, zu lesen: Kalaschnikow-Newsletter (http://www.Kalashnikoff.ru), "Assembler IBM PC" Yurov, aus dem Artikel "Assembler für Cracker ' s "von Dr.Golova und" Cracking for tots "von Sprung.
Nachdem das Material beherrschen, müssen Sie den Zweck der Funktionen kennen, ein wenig Verständnis für die assemblerskom Programmcode. Verstehen Sie, dass jedes Programm in einer beliebigen Programmiersprache geschrieben, an den Prozessor übertragen wird als native Code verteilte Verarbeitung, zur weiteren Verarbeitung und Ausführung von Funktionen in sie eingebettet. Maschinencode für sie umgewandelt in lesbaren Assembler werden. Sein etwas, das wir, zu ändern, mit speziellen Programmen anzeigen können. Aber die Veränderungen sind nicht möglich, wenn upakovana.Upakovka Software-Programm gemacht seine Größe zu reduzieren und zum Schutz vor Manipulationen (zB UPX, Aspack und viele andere).

Sorten und Mission Programme

weiter Advancing ohne spezielle Software nicht möglich ist, brauchen wir:
  • Debugger / Debugger - dient dazu , Debug - Code, Spur, usw. Setup - Grenzwerte.
    (OllyDBG)
  • Disassembler - Programm , das in Assembler aus dem Maschinencode Quellcode bekommt
    (KWdsm)
  • Analyzer - analysiert die Programmdatei und berichtet , was er verpackt (wenn es verpackt ist. :) br> (PEiD)
  • Entpacker - entpacken Sie die komprimierte Datei.
    (QUnpack)
  • Patcher - das Programm mit Hilfe derer Sie assemblersky Code - Datei zu ersetzen und dann die Änderungen zu speichern.
    (Hiew)
  • Patchmeyker - brauchen diejenigen , die nicht die Möglichkeit haben , zu knacken / Patch selbst schreiben. Wie das Programm funktioniert einfach, da wir bereits das Programm mit Hilfe von (Hiew) geflickt und nicht gepatcht, patchmeyker berechnet Änderungen im Programm, bei der Erstellung des Patch-exe-Datei.
    (TPE)
    All diese Software kann separat heruntergeladen werden, aber es ist eine kombinierte Version, ist es CrackersKit (Version zum Zeitpunkt des Schreibens: 1.1, Gewicht: 7 MB) genannt Sie es von cracklab.ru herunterladen können fast alle diese Programme gibt (oder deren Äquivalente). Sobald wir die Grundkenntnisse in diesem Bereich haben, und wir haben das Recht , die Software zu studieren ist in der Art der Software zu verstehen:
    Shareware - Shareware
    Freeware - freie Software
    Adware - Werbeprogramme bezahlt
    commercialware - zahlen!
    Spende ware - Gebühr, falls gewünscht
    Das Ziel - die Art von Programm Shareware, Ad-ware und kommerzielle Ware.

    Toolbar und Olly DASM

    Run Olly
    Ich glaube, Sie haben bereits zumindest einige Erfahrung mit den Alliierten (wenn nicht Sie den Artikel Olly Debugger AZ cracklab.ru lesen kann)
    Lassen Sie mich die Debugger-Funktionen erinnern, mit denen wir arbeiten:

  • M - Speicherkarte (Memory Card)
  • C - CPU Haupt ollie Fenster
  • / - Patches Patches, also gepatcht Programmplätze
  • B - Haltepunkte Haltepunkte
  • R - Textstring Textstring Referenz verwiesen
    Immer im Blick muss CPU sein (Hauptfenster Verbündeter), Haltepunkte und Patches.
    CPU-Fenster:

    Run kWdsm
    Wir werden am Ziel grundlegendsten Funktionen DASM verstehen.
  • Öffnen Sie die Datei auf disassambler - Öffnen Sie die Datei in Disassembler
  • Projektdateien und und Kommentare - speichern in eine ASCII-Dateiliste
  • Text suchen - Textsuche
  • Goto-Code Start - Umzug in den Anfang des Codes
  • Springen Programmeinstiegspunkt - das Programm Einstiegspunkt
  • Gehe zu Seite - Gehe zu Seite
  • Führen Sie JMP - für den Übergang
  • Return From Last Jmp - Rückkehr aus poslednednego Übergang
  • Aufruf ausführen - einen Anruf zu tätigen
  • Return From Anruf - Rückkehr des letzten Anrufs
    Um den Sicherheitscode an den Anfang zu analysieren zu finden.

    Suchen Wie um den Code zu überprüfen (mit OllyDGB und kWdsm)


    Das Ziel der Suche - Suche und Änderung von beliebigem Code oder Valin die Seriennummer zu finden. Search Validierungscode für Hacking-Programme erforderlich.
    Der Hauptzweck dieses Codes:
    1, um die Gültigkeit der Seriennummer (die eingegebenen Daten in der Eingabemaske CH) zu überprüfen
    gehen 2 an die Adresse, wenn es richtig / falsch ist
    3 Bericht keine / korrekte Registrierung

    Die wichtigsten Möglichkeiten, den Bestätigungs - Code zu finden:
    1 Stützpunkt (intermodularen Aufruf)
    2 referenzierten
    3 Suchfenster Mittel (Dump) Speicher
    4 Suche in dem Stapel
    5 Suche mit kWdsm
    | 1 |
    Breakpoint - Breakpoint- Funktion.
    Put kann ein Haltepunkt entweder durch
    _komandnuyu Linie, zum Beispiel:
    bpx MessageBoxA
    bpx - Team Breakpoint
    MessageBoxA - Funktion, die Breakpoint gesetzt wird
    Zweck der Funktionen finden Sie in Referenzhandbüchern auf WinAPI zu finden (cracklab.ru)
    entweder durch
    _poisk Zwischenmodul-Aufruf (intermodulare Anrufe) wie zum Beispiel:
    Wir finden MessageBoxA Funktion dann mit der rechten Maustaste, und bei jedem Aufruf MessageBoxA Set Haltepunkt wählen
    | 2 |
    Suche nach referenz Textzeichenfolge (referenzierten Textzeichenfolge).
    In dieser Forschung verwendet, um eine Phrase, die beispielsweise angezeigt, wenn eine falsche Seriennummer eingeben. Führen Sie das Programm, geben Sie die CH-Programm schwört, dass CH nicht wahr ist (zB als: Falsche SN Versuch wieder!) => Für die Suche und wird ispolzovat diesen Satz weiter wir in die alle referenzierten Textzeichenfolge gehen (die für die in der Registerkarte Suchen ist) und suchen Sie nach dem Begriff .
    | 3 |
    Führen Sie das Programm, füllen Sie das Anmeldefenster gedrückt den Buchstaben M (Memory-Fenster) In der DUMP den rechten Knopf klicken, und geben Sie die Kontaktinformationen im Passwort-Feld eingetragen. Sobald das Programm ein Stück Speicher gefunden hat, die unsere Daten eingegeben hat, setzen wir einen Haltepunkt auf der Linie mit einem Passwort (rechts Haltepunkt klicken -> Speicherzugang) erneut versuchen, das Programm zu registrieren. Geben Sie die Daten und es hört auf ein Stück Code, der durch uns eingegebene Passwort gefunden wurde. Entfernen Sie den Haltepunkt Speicher und weiter zu studieren.
    | 4 |
    Suchen Sie auf dem Stapel wie folgt hergestellt, klicken Sie im Fenster Stapel der rechten Maustaste Suche nach -> Binary Sting und suchen nach einer Phrase, die erscheint, wenn Sie einen falschen Befund geben, dass der Satz SN.Dalshe dort Befehl Dissambly Feld sehen Blick nach links, kopieren Sie sie in das Hauptfenster zu gehen (CPU) rechts Serach für klicken -> Befehl
    | 5 |
    Suchen Sie in kWdsm.Poisk über kWdsm sehr einfach ist, den Bestätigungs-Code suchen und finden einen Satz zur Ausgabe einer falschen Registrierung eingeben, oder schauen Sie auf der Linie Mögliche String Ref von Kodex Obj -> "

    Beispiel Hacking-Programme mit verschiedenen Arten von Schutz

    Um zu erfahren, wie man Risse, müssen Sie so viele Programme wie möglich zu erforschen, mit unterschiedlicher Komplexität geschützt, so bewegen sich auf den Fall. In diesem Artikel werde ich nur zwei Arten von Schutz diskutieren (wie sie die häufigsten sind):
    1 Form der Einführung von CH
    2 Label im Programm (zB noch nicht registriert)
    Programm für Forschung, oder nehmen Sie das Magazin mit Rohlingen (SPs, ein Hacker, Glücksspiel) oder von Websites wie softodrom.ru usw. (dort suchen sharovanny Software (zB Art der Shareware) und erkunden).
    Theoretische Bruchplan:
  • Suchen Prüfcodes
  • Code-Analyse-Funktionen
  • Suche nach CH oder bearbeiten Ausgabefunktionen
  • Patching Programm oder die Einführung von CH gefunden
    Lassen Sie uns direkt mit dem Code-Suchprozess und dessen Bruch beginnen, zeige ich Ihnen die Schritte am Beispiel EscapeClosePro
    Alle folgenden Schritte werden empfohlen, mit mir zu tragen zusammen, da es schwierig ist, durch das Lesen des Materials nur wahrzunehmen. Wenn Sie immer noch nicht verstehen, wie ich in der Lage war, auf Crackme möglich aus dem Phantom zu üben und Handwerk (ngh.void.ru/soft/d/crackme.rar; ngh.void.ru/soft/d/craft1.rar)
    EscapeClosePro

    Die Schutzmethode: CH, ist noch nicht registriert Inschrift im Programmfenster
    Der Packer / Beschützer: keine (und wir wissen, dass diese dank PEiD, und wenn das Programm war voll, man musste es nur unter Entpacker zu finden)
    Kosten: 100 Rubel :)
    Hacking Suche nach CH:
    Diese Methode der Hacking ist dadurch gekennzeichnet , dass die Herausforderung besteht darin , den Verifizierungscode , um es zu finden , indem Sie den Haltepunkt auf dem Befehl sein können Sie wollen, oder die Referenz einer Textzeichenfolge zu sehen, oder einfach nur die zerlegten Code des Programms anzeigen und eine gültige Seriennummer finden.
    1
    Setzen Sie einen Haltepunkt bpx MessageBoxA (Methode der Suche nach den Bestätigungscode Nummer 1) .Zapuskaem Registrierungsfenster, geben Sie die Daten:
    Name vizor
    CH vizor
    0040262E Programm hielt an der Adresse an dieser Adresse Aufruf Befehl befindet sich mit diesem Befehl (in diesem Fall), um den Text angezeigt: Falscher Code Beachten Sie die Dump-Box (die Haupt-CPU-Box), versuchen Sie einige interessante Dinge zu finden, indem Sie einfach den Code sehen zu blättern und bei 0012F3D0 einige Zahlen mehr als 10 Zahlen auf einen Blick: 56C520AE713B563D5119 gibt es einen Verdacht auf Herzinsuffizienz, einem Test und einem bummer.
    niemand verbot mehrere (auch alle) Möglichkeiten , sofort zu suchen
    Jetzt einen Haltepunkt setzen nicht auf die Nachricht selbst, und der Auswurfbefehlsphrase (Falscher Code!) Push.Snova dh ein Formular ausfüllen, die in Ordnung ist, beendet das Programm bei 00.402.620 (wo PUSH 0) .Am unseren Blick auf das Speicherabbild drehen und wir sehen, dass es:
     0012F438 004088E8 ASCII "9B2BC2C55272E0C32B44" << Verdacht CH 0012F43C 0012F518 << hier unsere Haltepunkt 0012F440 00.402.200 EscapeCl.00402200 
    Testing gefunden us 1 mehr CH für die Gültigkeit. (Name vizor sn 9B2BC2C55272E0C32B44) und Danke für die Registrierung!
    2
    Lassen Sie uns versuchen Sie es erneut, aber etwas andere Art und Weise, wieder an die Adresse zurück 00402620 (die diese Push vergessen) und starten Sie im Hauptfenster interessant etwas zu suchen, um nach oben .. .. und stolpern auf die Adresse 00402598, in der wir in der klaren bereits vertraut CH sehen ) 9B2BC2C55272E0C32B44. (können Sie noch einmal überprüfen die Gültigkeit seiner :)
    3
    Gehen Sie auf die Suche nach -> Alle Textzeichenfolge verwiesen und sehen nur schreckliche Dinge :) CH gültig unverschlüsselte strechaetsya 10 Mal in der Referenztextzeichenfolge.
    Ändern Ausgangsfunktion:
    Ändern der Ausgangsfunktion, die wiederum wird durch die Suche nach Validierungscode gekennzeichnet, ändern Sie es in einem beliebigen zyklischen dh auf , so dass für alle eingegebenen Daten werden prüfen , selbst registriert.
    Wieder, wie vor den Haltepunkt auf MessageBoxA gesetzt, tezhe Datenfeldnamen eingeben, CH, dort zu stoppen. Erst jetzt bewegen wir uns weiter oben in der Suche Übergang (Jampa, Sprung) .PO die Art und Weise analysieren bis alle Übergänge. Eine Förderung besteht aus so, wenn eine solche Funktion die Meldung angezeigt werden 5 grob an der Adresse ist, deren Prüfung über diese Adresse auftritt, weil es immer oben Ergebnis (das Konzept des Stapels) getestet wird.
    Scrolls oben zu finden unter:
     004025CD> 85C0 TEST EAX, EAX
     004025CF.  A3 58AF4000 MOV DWORD PTR DS: [40AF58], EAX
     004025D4 74 4A JNE SHORT EscapeCl.00402620 
    
    Analyse JNE 00402620 Übergang, achten in erster Linie Jampa dh 00402620.Smotrim zu adressieren, die an diesem Ort ist, sehen wir, dass die Nachrichten, dass nezaregistrirovanna.Teper Programm schließen, wenn wir den Übergang JNE (Sprung, wenn nicht gleich, dh Sprung ändern wenn nicht gleich) JE (Sprung, wenn gleich dh Sprung, wenn gleich) .Dvoynym Sie mit der linken Maustaste klicken Sie auf:
     004025D4 74 4A JNE SHORT EscapeCl.00402620 
    
    und ändern Sie die JNE auf JE.Teper eingegeben jede CH-Programm hält für die richtige (natürlich zusätzlich zu dieser HF :) Und dies geschieht aufgrund der Tatsache, dass es Ausgabefunktion geändert wird, so dass das Programm immer ein positives Ergebnis in einem der eingegebenen Daten zurückgibt.
    Aber es ist nicht alles, es nicht notwendig ist, sich zu beeilen und Patch-1 laufen, die Ausgabe dieses Programms. Daran erinnern, was andere Möglichkeit, das Programm zu schützen, verwendet? rechts, einfach auf den ersten Blick noch nicht registriert Schild im Fenster. Kurz nach dem Programm, suchte sie, ob ein Neustart zu ändern, ist die Inschrift auf etwas anderes, und wenn ja, es registriert fühlt, aber wir haben eine solche nebylo so nicht alles getan wird, noch weitergehen.
    Wir setzen einen Haltepunkt auf den bereits überbelichtete MessageBoxA.
    Wir beginnen zu sprechen, wenn das Programm nicht registriert ist, dann kann es die Inschrift noch nicht registriert deshalb irgendwo im Code zu sehen ist, ist es byt.Nachinaem Programm suchen sollte, aber vor diesem nur proskrolim Code und sehen es .. nach unten zu scrollen und zu sehen:
      0040265F.  85C0 TEST EAX, EAX << Vergleichen von Daten in den Registern
     00402661 74 23 JE SHORT EscapeCl.00402686 << Übergang
     00.402.663.  8B5424 70 MOV EDX, DWORD PTR SS: [ESP + 70]
     00.402.667.  68 64724000 PUSH EscapeCl.00407264;  / Text = "unregistrierte Version!"
     ...
     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 = "Hier zu:"
    
    "SetDlgItemTextA - Titel oder Funktion des Textes im Fenster"
    Und das ist die Botschaft. Erste Code-Analyse. Wir sehen ein Standard-Design und überprüfen den Inhalt der Register Funktion Jampa. JE 00402686 - JE - Verschiebung auf den Code. Wir sehen uns an, was auf 00402686 und es gibt eine Nachricht, die an Programm RegiRegistered: => wenn Sie zu JE JNZ Programm lyudom Szenario ändern hält sich für registrierte und schrieb darüber in seinem Hauptfenster.
    So ändert diese beiden Funktionen das Programm immer registriert werden und alle diese balgodarya um die zweiten Bytes im Code geändert.
    Patching:
    Patching-Programm wird direkt nach dem Hacking-Programm gemacht.
    Um unser experimentelles Programm zu flicken geändert werden:
     Adressänderung Funktion
      Funktionsadresse
    	  Übergang
     004025D4 JNE 00402620 JE
     00402661 00402686 JE JNE
    
    Für das Patchen verwenden Hiew, hiew'a von Befehlen finden Sie in meinem Artikel (ngh.void.ru/lec/crack.html) gefunden werden.
    Bevor wir Programm machen das Patchen müssen einen Ordner erstellen (wo der Rücken, im Stammverzeichnis sein kann), und kopieren Sie die exe EscapeClosePro, falls Datei, wenn wir etwas nicht wahr gemacht haben. Sobald wir kopiert haben, laufen Hiew finden und öffnen Sie sie in unserer Datei (EscapeClosePro.exe) .Auf dieser Stelle möchte Ich mag ein wenig über die grundlegenden Optionen hiew'a.V diesem Menü wählen Sie Decode zu sprechen.
    -Code-Anzeige-Menü

    Das Hauptfenster hiew'a:

  • Hilfe - Funktion HELP (F1)
  • Bearbeiten - Bearbeiten (F3)
  • Mode - Text-Viewer-Modus (F4)
  • Springen - Suche nach Adresse (F5)
  • Suche - Suche nach Text (F7)
  • Dateien - sohranienie Änderungen (F9)
    Laden Sie unsere Datei, EscapeClosePro.exe in Hiew, auf der Suche nach einer Phrase (F7) oder an (F5) .Ich würde darauf hingewiesen werden, für die Phrase zu suchen, so drücken Sie F7 und geben Sie die registrierte zu: nach diesem Begriff zu finden, lassen Sie uns daran erinnern, was Schlussfolgerungen, die wir Sie müssen Patch:
     004025D4 JNE 00402620 JE
     00402661 00402686 JE JNE
    
    Patches. Nach diesem Patch (erinnere, sagte ich, dass wir die EXE-Programm Dateien und Patches zu kopieren müssen) Ente hier, nachdem wir ihn pereminuem zB p.exe und unveränderte Kopie der Programmdatei gepatcht, dh wir jetzt in den Ordner 2-Dateien haben, 1 propatchiny und andere deflotovy programnyy.Eto wir brauchen einen Patch über patchmeykera tpe zu machen:

    Um einen Patch zu erstellen, ist in diesem Fenster notwendig in Form Original-Datei (das Original, dh unmodifizierten / ungepatchte) wählen ungepatchte Datei und gepatchten Datei-Box entsprechend fayl.Posle tpe im Hauptfenster gepatcht, Ausfüllen von Formularen, die den Patch erstellt, und sayt.I Registerkarte Datei, wählen Sie patcha.Posle speichern zu dem gewünschten Namen zu erstellen und alle Patch ist fertig!
    Ich hoffe, dieser Artikel hat Ihnen geholfen, die Grundlagen der Kunst krekerskogo zu lernen, hat einige Ihrer voprosy.Dalshe alles wird viel interessanter, mehr Praxis sein, und sehen Sie alle erfolgreich sein müssen.
    ps diesen Artikel gibt es eine Anwendung in Form von Veda-Rollen EscapeClosePro auf verschiedene Arten Programm Hacking.
    ps danken Armiolu für das, was mich dazu veranlasst nicht der richtige Weg, bei der Entwicklung von unverständlichen Dinge zu mir geholfen)
    Durch Rel4nium (ngh.void.ru)