Reverse Engineering. Die Geschichte. Meins


Hallo allerseits


Diesmal wird der Artikel nicht technisch sein (obwohl er auf einige technische Begriffe / Momente stoßen wird), sondern eher autobiografisch, wenn ich so sagen darf. In diesem Artikel geht es darum, wie ich kam zu einem solchen Leben Ich bin zum Reverse Engineering gekommen, das ich gelesen habe, woran ich interessiert war, wo ich es verwendet habe usw. Und aus irgendeinem Grund bin ich mir sicher, dass meine Geschichte viele Unterschiede zu Ihrer haben wird. Lass uns gehen ...


Starten Sie


Und alles begann noch in der fernen Kindheit. Ich denke, wie viele Männer (und vielleicht auch Mädchen) war ich immer daran interessiert zu wissen, wie alles funktioniert, warum es funktioniert, warum es nicht funktioniert usw.
Zuerst begann ich alle batteriebetriebenen Autos zu zerlegen, die ich hatte (sogar die, die mein Bruder hatte). Natürlich war es nicht immer möglich zu sammeln, aber das Interesse war höher. Dann fand er einen alten Radiorecorder seines Vaters in der Speisekammer und nahm ihn auch auseinander. Es gab auch Tamagotchi . Aber da konnte ich überhaupt nichts verstehen: eine Mikroschaltung, einen Tropfen und einen Bildschirm. Obwohl ja, habe ich den Bildschirm geschichtet.
Natürlich erhielt ich für alles, was nicht gesammelt wurde, einen Hut.


Sega Mega Drive



Mein Vater hat es zu meinem Geburtstag gekauft: ein gewöhnlicher Pirat, weil es damals keine Lizenz gab, plus die Contra: Hard Corps Patrone. Ich bin mir sicher, dass der Zeitpunkt des Kaufs der Set-Top-Box für viele Kinder der 90er Jahre bisher nicht vergessen wurde (Romhacker und Retro-Gamer - hallo!), Und für mich wurde sie auch in Zukunft zu einem Schlüssel. Aber das Wichtigste zuerst.


Die Zeit verging, ich wuchs. Die Schule war schon immer an Informatik und Physik (auch Chemie) interessiert. Assembler dort wurde natürlich nicht unterrichtet, aber das Programmieren in der algorithmischen Umgebung von (eine belarussische Entwicklung für Schulen) ist sehr gleichmäßig. Und es war ein Schock für mich, als ich zur regionalen Olympiade der Informatik ging, und alle außer mir hatten blaue Turbo Pascal- Fenster und ich hatte weiß - . Aber dann habe ich einen ehrenvollen dritten Platz belegt.


11. Klasse



( Anmerkung des Autors: der gleiche Computer, erst viel später)


Im Herbst 2005 kaufte ich einen Computer. Von den ersten Tagen an habe ich angefangen, Spiele zu spielen. Das Studium in der Schule sank, blieb aber für das Gymnasium auf einem normalen Niveau. Und nach sechs Monaten bin ich es leid zu spielen. Dann geschah der Wendepunkt!


Nonheimer


Damals, im Jahr 2006, begann, wie mir scheint, der Warez-Boom. Eine Reihe von Websites mit Rissen, Keygens, Patches. Alle haben versucht, das Installationsprogramm so neu zu verpacken (Hallo zu den Windows-Builds), dass der Downloader nichts extra tun musste: Es wurde installiert und funktioniert, obwohl manchmal etwas von sich selbst hinzugefügt wurde.


Und ich war so. Er hat zwar keine „ Tablets “ hergestellt, sondern sie nur gefunden, eine NFO Box NFO , das Installationsprogramm neu verpackt (meistens war es Inno Setup ), und dann wissen Sie.



Übersetzer



Aus irgendeinem Grund hat es mir nicht gefallen, dass nicht alle Programme ins Russische übersetzt wurden, und ich wollte das Problem beheben. Ich habe verschiedene Ressourceneditoren hochgeladen, z. B. Resource Hacker , habe begonnen, alle exe und dll Dateien der Programme zu öffnen, die ich in den Program Files , und habe mir angesehen, welche Zeichenfolgenressourcen übersetzt werden können. Ich übersetzte es, packte es in die .lng oder .RUS Datei des Installationsprogramms und lud es .RUS (ich wusste nicht, wie diese Rus-Dateien funktionierten). Aber das ging so weiter, bis ich auf gepackte und geschützte Dateien stieß.


cracklab.ru


Jetzt exelab.ru . Dort habe ich gelernt, dass ausführbare Dateien gepackt (und manchmal geschützt) sind und wie man damit umgeht. Und da die Autoren in ihren Artikeln oft Dinge wie „ Assembler “, „ Disassemblierung “, „ Kalaschnikow-Mailingliste “ erwähnten, musste ich mich mit dem Material befassen.


Ich habe ein paar „ Crackmakes “ für Experimente heruntergeladen (Programme, die speziell geschrieben wurden, um beim Lernen des Hackens umgekehrt zu werden und Schutz ) Ich habe es versucht - es hat mir sehr gut gefallen! Beim ersten Mal stellte sich alles heraus, worüber ich unglaublich glücklich war.


Infolgedessen wurden einfache Abwehrmechanismen ein- oder zweimal mit Hilfe von Patches (aus dem Wort Patch - ein Patch) entfernt, aber bei denen, die schwieriger waren (ich beschloss, erotische Kontrolleure und Werbegeschenke auszuprobieren), wurde es irgendwie schon schwierig, und ich hörte auf und beschloss, zurückzukehren zu Übersetzungen.



Romhacking


Manchmal, als ich in Sega spielte , stieß ich auf Kassetten in russischer Sprache, auf deren Titelbildschirmen Inschriften wie „ SHEDEVR Translation SHEDEVR “, „ NEW-GAME.RU Translation “ zu sehen waren. Ob es sich um Entwickler oder um Organisationen von Drittanbietern handelte, wusste ich nicht, aber sie hatten eindeutig Zugang zu einigen Manuskripten, alten Texten der Sumerer, in denen erklärt wurde, wie man Spiele ins Russische übersetzt. Und ich wollte dieses Wissen beherrschen.



Also habe ich das " Masterpiece " Forum entdeckt.


Sie hatten Artikel, es gab Programme - alles Notwendige, um Ihr Lieblingsspiel auch „ Ihr Lieblingsspiel auf Russisch “ zu machen. Die Artikel waren zwar nur für NES ( Nintendo Entertainment System oder im Volksmund : Dandy , Suybor ). Aber trotzdem cool! Und ich habe mich in neue und aufregende Themen vertieft : Romhacking und Emulation von Retro-Konsolen auf einem PC.



Kurz gesagt, Romhacking ist jede Änderung des Bildes oder der Datei eines Spiels für irgendeinen Zweck: Übersetzung, Korrektur von Code, Grafik.


Es war ein sehr unterhaltsamer Prozess: Sie sitzen, zeichnen die Quadrate der Spielschrift Pixel für Pixel neu, übersetzen und fügen den Text mit dem PokePerevod Übersetzungsprogramm PokePerevod und sehen, was passiert ist. Stimmt, kein Assembler für dich, nur Hardcore! Aber dies war bereits die Latte, durch die nur sehr wenige springen konnten (gemessen an der Anzahl der aktiven im Masterpiece-Forum).


Ich bin ein Lehrer


Nachdem ich einige Übersetzungen "zur Tabelle" und einige zu den Leuten gemacht hatte, kehrte ich zu den ausführbaren Windows- Dateien zurück. Als etwas erfahrener im Assembler stellte ich fest, dass ich jetzt zu viel „ geheimes “ Wissen habe und aus meiner Erfahrung etwas zu erzählen habe, dass es etwas zu teilen gibt und was in den verfügbaren Artikeln noch nicht beschrieben wurde. Ich wollte Wissen an dieselben Anfänger weitergeben wie ich selbst (anscheinend wirkt sich dies auf die Tatsache aus, dass meine Mutter Lehrerin ist).


Nachdem ich das erste Programm absolviert hatte, für das eine Lizenz erforderlich war (und fast alle Artikel, in denen Cracking unterrichtet wurde, begannen auf diese Weise), beschloss ich, es zu recherchieren und mir zu sagen, was ich tat. Dann wird es nicht so aussehen, als ob das Programm speziell aus der alten Version stammt, die lange studiert und kaputt ist, aber im Gegenteil, es wird eine so frische und relevante Lektion mit Screenshots und fast keinen absoluten Adressen werden, um die Relevanz des Artikels zum Zeitpunkt des Lesens durch jemanden in irgendwie aufrechtzuerhalten die Zukunft.


Nachdem ich positives Feedback erhalten hatte, schrieb ich immer mehr und stellte fest, dass Nachfrage besteht.


Die Werkzeuge



Beim Schreiben jedes Artikels habe ich versucht, nur die neuesten und bequemsten Programme zu verwenden: Olly Debugger mit Plugins, PEiD , PE Explorer und PEiD anderen. Keine SoftICE , HIEW und DEBUG.COM , die die meisten Autoren gewohnt sind, obwohl ihre Verwendung in der modernen Welt ein echtes Problem war.


Zu diesem Zeitpunkt habe ich jedoch noch nie IDA Pro . Es schien mir kompliziert und unverständlich, es war sehr schwierig, darin zu debuggen, und die einfachsten Dinge wie FS[0x30] und LastError , wie in Olly Debugger , waren sehr schwer herauszufinden.


Unterrichten Universitätsstudenten umgekehrt?


Kurz gesagt, in Belarus ist es eng und, soweit ich weiß, auch in Russland und der Ukraine. Warum? Ja, weil Spezialisten in diesem Beruf normalerweise in anderthalb Organisationen und normalerweise in anderthalb Personen benötigt werden. Eigentlich gibt es nicht so viele Lehrer.



Ja, Assembler wird natürlich auch in einigen Colleges unterrichtet. Nur ein Student, der sich eine schriftliche Assembler-Liste ansieht, kann kaum erkennen, dass all diese Register, Operanden und Opcodes in irgendeiner Weise mit Informationsschutz, Exploits, Rissen, Keygenes, Patches, Malware, Antivirenprogrammen, Firmware usw. verbunden sind.


In Weißrussland kenne ich beispielsweise nur zwei oder drei Stellen, an denen Reverse Engineers erforderlich sind. In Russland ist die Situation natürlich besser, aber es gibt auch wenige Spezialisten.


Erster Job


Ich beschloss, zu einem dieser Unternehmen zu gehen, um als viraler Analyst zu arbeiten, und stellte fest, dass es tatsächlich keinen anderen Ort gab, an den ich gehen konnte.
Sie kehren die Malware um, kleben Signaturen, studieren die Prinzipien des Malware-Betriebs, schreiben Entschlüsseler für Ransomware (falls möglich) und verbessern dabei den Kernel.


Im Prinzip ist die Arbeit nicht schlecht, aber erst nach einer Weile wurde mir klar, dass es nicht näher ist, zu beobachten, wie die Malware Schwachstellen ausnutzt, sondern sie selbst zu finden, als Erste dies zu tun und die Informationswelt mit Berichten an Entwickler zu schützen.


Anderer Assembler


Als ich herausfand, dass es neben dem Assembler-Code von Intel (16-, 32-, 64-Bit) noch einen anderen gibt, der auf den ersten Blick völlig anders zu sein scheint als der, den Sie kennen. Dies geschah in dem Moment, als ich zur Übersetzung meines Lieblingsspiels " Thunder Force III " kam, in dem mein Bruder besser spielte als ich.



Die darin enthaltenen Ressourcen wurden von einem unbekannten Packer komprimiert, weil Ich konnte die Schriftart mit keinem Kacheleditor finden ( in solchen Programmen werden häufig Spielbuchstaben neu gezeichnet, die auf dem Bildschirm angezeigt werden ).


Daher begann ich zu googeln und stieß schließlich auf die Arbeit eines Franzosen, der gerade den Komprimierungsalgorithmus des Spiels herausgefunden hatte. Ich kontaktierte diese Person und fragte, wie sie das Prinzip des Komprimierungsalgorithmus studiert habe, für den er mir meine erste IDB Karte (dies ist die IDA Pro Datenbankdatei) IDB , in der viele Punkte des IDB analysiert wurden, was mich wirklich beeindruckte!


Also stürzte ich mich in den Dschungel von IDA Pro und dem Assembler Motorola 68000 , aus dem ich bis jetzt nicht ausgestiegen bin (und nicht will).



PS Ich habe die Thunder Force III nicht übersetzt, aber ich habe einen Level-Editor dafür geschrieben.


Sony Playstation



Ja, der nächste war der " erste Lockenstab ". Sie hatte auch einen anderen Assembler - MIPS mit verschiedenen Registern, Opcodes und Adressen. Und auf dieser Konsole gab es immer noch Spiele mit geernteten Ressourcen, die lokalisiert werden mussten.


Reverse Thinking und der erste Keygen


Weißt du, was dann ein echter Test für mich wurde? Schreiben Sie einen Wrapper, der nur eine Assemblycode-Liste enthält, die etwas dekomprimiert. Hier war es notwendig, ein umgekehrtes Denken zu entwickeln, das beim Ausbessern von „ Crackmills “ praktisch nicht erforderlich war, und Programme von Gier zu heilen.


Ich habe versucht, vom Gegenteil auszugehen und zu verstehen, was am Ausgang, am Eingang und welche Bytes komprimierter Daten für was verantwortlich sind, um dasselbe zu tun.


Nachdem ich viele weitere Dienstprogramme für eine Reihe von Spielen zum Auspacken und Packen von Daten geschrieben hatte, wurde mir klar, dass ich bereit war, meinen ersten Keygen zu schreiben, weil schon gelernt, aus dem Gegenteil zu denken.


Ich kann mich nicht erinnern, um welche Art von Programm es sich handelte, aber keygen war ein Erfolg, und anhand des Benutzernamens konnte ich immer die richtige Seriennummer ermitteln. Was wird auch im Artikel erzählt.


Keygen Artikel


Aber einen Artikel über Keygen zu schreiben war schwierig. Schwerer als Keygen zu schreiben. Weil Es ist ziemlich schwierig, das Prinzip des umgekehrten Denkens in dem Artikel zu vermitteln. Wie alles, was mit Erfahrung einhergeht.


Crackerteams



Wenn Sie, wie ich, zum Autodidakten gekommen sind, werden Sie zunächst einen für sich selbst (oder für die Menschen, es wird so gehen) rückgängig machen. Und es passt zu dir. Aber dann stolpern Sie über eine Art Release des Cracker-Teams (dies sind diejenigen, die gehackte Software mit Cracks und Keygens veröffentlichen) und beschließen, sich ihnen anzuschließen. Dort können Sie Ihre Stärken mit denen anderer Menschen vergleichen und gleichzeitig Erfahrungen mit ihnen sammeln.


Im Geiste versammelt, schreiben Sie einen Brief, in dem Sie aufgefordert werden, sich anzuschließen. Sie senden die Aufgabe in Form von Keygenmy. Sie lösen es, danach erhalten Sie Zugriff auf das Chat-Team.


Tatsächlich sind nicht alle von ihnen Umkehrer. Jemand ist ein Künstler, jemand kann kostenpflichtige Software erhalten, jemand hat Rechenleistung (die Fähigkeit, jeden öffentlichen RSA-512 Schlüssel in zwei Tagen für 2013 zu berücksichtigen, wenn dies erforderlich war, um den Lizenzschutz zu entfernen). Im Allgemeinen liegen die Vorteile auf der Hand. Aber die Software für die Veröffentlichung ist immer noch die, die Sie am häufigsten auswählen. Und Sie bekommen kein Geld für Veröffentlichungen. Die Wahrheit ist.


Was ist dann der Gewinn, fragen Sie? Es soll vor einem anderen Team ( FFF , CoRE und vielen anderen) veröffentlicht werden. Dieses Thema wurde in der Web-Serie " Scene " sehr gut enthüllt.


Probleme mit dem Gesetz?


Ja, für die Verteilung von Crack und Keygen besteht immer noch die Möglichkeit zu donnern (insbesondere wenn das Programm beliebt ist und viel Geld kostet). Es kann jederzeit zu einem Testkauf kommen: Ein Onkel, der Ihnen schreibt, um „ Adobe / 1C zu hacken , schreibt Ihnen, wie viel es kosten wird “ (eine echte Geschichte). Aber die Jungs wollen überleben, besonders wenn es keine Arbeit gibt, aber du willst die " Fähigkeit " nutzen, es ist egal, wo bisher. Und sie fangen an, bis zum Äußersten zu gehen ...


... mit kaputter Software rumoren, Programme für Geld knacken.


Und in dem Moment, in dem der Wunsch besteht, ehrlich zu leben, wird der Cracker einen Job bekommen, seine Vergangenheit wird dort ausgegraben und - " Entschuldigung, aber Ihre Vergangenheit war nicht zu Ihren Gunsten! ". Obwohl aus meiner Sicht eine Person mit einer solchen Erfahrung mit Armen und Beinen aufgenommen werden sollte, weil Sie zum einen einer Person die Möglichkeit geben, sich zu verbessern, und zum anderen ihr Wissen in die richtige Richtung lenken. Unter meinen Bekannten gibt es wirklich Beispiele für eine erfolgreiche Beschäftigung im Antivirenbereich, wo ein Genosse für soziale Sicherheit sagte, er habe Programme auf Bestellung geknackt.


Ehrlich verdienter Lizenzschlüssel


Ja, und es passiert. Sogar der Cracker. Es gab irgendwo Artikel darüber, wie man den Entwickler um einen Schlüssel bittet. Und so habe ich es versucht. Es hat nicht geholfen.


In jenen Jahren habe ich gerade die " blinde " Presse studiert und nach geeigneten Programmen dafür gesucht. Shahidzhanyan hat mit seinem das Gehirn in die Luft gesprengt , also habe ich nach Alternativen gesucht. Stolperte über Tippreflex. Sie wurde bezahlt, aber sehr gut.


Dann übersetzte ich das Programm ins Weißrussische und schickte dem Autor eine Sprachdatei. Für die ich als Antwort einen Lizenzschlüssel in meinem Namen erhalten habe! Mein erster Lizenzschlüssel.



Was weiter?


Wenn Sie als Pirat genug gespielt haben, kommen Sie allmählich zu dem Schluss, dass Sie einen Job haben, das Gehalt stabil ist, Sie Ihre Lieblingssache tun, was bedeutet, dass es Zeit ist, sich mit schlechten Dingen zu beschäftigen.


Zu den Optionen, wohin Sie gehen sollten: Antiviren-Unternehmen, industrielle Sicherheit (Reverse-Firmware, industrielle Protokolle, Schwachstellensuche), spezielle Abteilungen einiger großer Unternehmen wie Sony , in denen Sie die Sicherheit Ihrer eigenen Produkte untersuchen müssen oder werden müssen stark und ein unabhängiger Reverse Engineer und verdienen Sie Geld mit einem Bugbounty, sprechen Sie auf Konferenzen usw.


Es gibt auch Reverse Engineers, die Hardware-Ingenieure sind (diejenigen, die Hardware umkehren), aber ich weiß wenig über sie. Obwohl das Thema sehr interessant ist. Ich bin mehr auf der Softwareseite.


Nirvana


65c816 verschiedene Plattformen 65c816 , den Assembler-Code ( Intel , ARM , PowerPC , M68K , 6502 , MIPS , 65c816 , Blackfin , IA64 und einige andere, an die ich mich nicht erinnere), kommen Sie zu dem Schluss, dass das Prinzip für alle Assembler fast gleich ist ( 65c816 , außer vielleicht Itanium), und Sie beginnen, diese endlosen Auflistungen auf eine andere Art und Weise zu betrachten: Zuerst finden Sie die Sprungbefehle, move Befehle, kehren von der Funktion zurück, welche Seite der source , welches Ziel und dann die Umstände. So erreichen Sie das Nirvana ...

Source: https://habr.com/ru/post/de438376/


All Articles