Reverse Engineering with Ghidra Tutorial #2 - A Simple Task

  Рет қаралды 24,865

The Morpheus Tutorials

The Morpheus Tutorials

Күн бұрын

Пікірлер: 48
@joaquins.a.2830
@joaquins.a.2830 4 жыл бұрын
sehr cool danke
@1vader
@1vader 4 жыл бұрын
Also die Hexadezimal-Umwandlung geht aber auch einfacher. z.B. im Python REPL einfach 0x4d2 eingegeben, dann gibt der das in Dezimal zurück. Für die andere Richtung einfach hex(1234). Python gehört für jeden Reverse-Engineer eigentlich zum Standard, aber geht natürlich äquivalent auch in fast jeder anderen Sprache. Außerdem bin ich mir ziemlich sicher das man sich das Ghidra auch als Dazimal-Zahl anzeigen lassen kann, vermutlich im Kontextmenü über einen Rechtsklick. Und das __stack_chk_fail() Zeugs ist übrigens eins Stack-Cookie zum verhindern von Buffer-Overflows. Die "local_10 = ..." Zeile am Anfang der Funktion schreibt da einen bestimmten zufälligen Wert auf den Stack und am Ende wird dann geprüft ob der verändert wurde. Wenn ja heißt dass das da irgendwas schief gelaufen ist, vermutlich eben ein Buffer-Overflow, also das irgendwo die Länge eines Arrays nicht richtig geprüft wurde, was es einem Angreifer ermöglicht im Speicher einfach weiterzuschreiben und alles mögliche zu machen. Der Check führt dann dazu dass das Programm sofort mit einer Meldung crasht um das zu verhindern. Abschließend noch ein Tipp: Für eventuell unbekannte Funktionen wie scanf sind die Unix man-pages super hilfreich. Wenn man z.B. einfach im Terminal "man scanf" eingibt kriegt man ausführliche Infos über die Funktion und was sie macht. Geht unter Windows auch wenn man WSL benutzt, ansonsten gibts die auch im Internet. Teilweise muss man zusätzlich noch die Kategorie angeben, z.B. bei "read" oder "printf" gibt es nämlich auch einen Bash-Befehl der genauso heißt, da muss man dann "man 2 read" (2 für system calls) oder "man 3 printf" (3 für clib functions) benutzen. Alternativ krietg man je nach Konfiguration auch angezeigt dass es mehrere Einträge gibt und muss dann halt den richtigen auswählen.
@AnikaMilano
@AnikaMilano 2 жыл бұрын
In Ghidra kannst du auch einfach Rechtsklick auf ein Hexadezimal wert klicken und das umwandeln.
@CREOLESCREAM
@CREOLESCREAM 4 жыл бұрын
Wow, ich hab null Ahnung von programmieren, aber das leuchtet selbst mir ein. Super erklärt. 👌🏻
@MalcomJPrince
@MalcomJPrince 4 жыл бұрын
Gut erklärt, jetzt wird es bald mehr Cra-cks und Key-gens usw geben 🤣🤣🤣✌️ Die deutsche scene hat eh nachgelassen, da Top Talente Angst haben 🤷‍♂️
@heapspray
@heapspray 4 жыл бұрын
Für sowas ist das Tutorial nicht gedacht. Das ist illegal.
@Joe.o0
@Joe.o0 4 жыл бұрын
Mega interessantes Video!
@paulbieringer3941
@paulbieringer3941 4 жыл бұрын
Cool
@lukas-vaelinalsorna1834
@lukas-vaelinalsorna1834 4 жыл бұрын
Kostenloser Decompiler is schon je geile nummer, muss man echt sagen
@friedrichii...582
@friedrichii...582 3 жыл бұрын
Bei mir kommt folgender Fehler wenn ich auf die a.exe datei klicke: Error in plugin event listener. Weiß jemand was ich da tun kann. Hab schon weil ich dachte dass es was mit Java zu tun hat komplett Java neu installiert.
@analebanane508
@analebanane508 4 жыл бұрын
Könntest du mal einen Beispielcode dazu bereitstellen, den du bewusst nicht in deinen Videos behandelst und wo wir bestimmte Inhalte (Strings rausfiltern müssen, weil da steht n Passwort zu nem Gewinnspiel oder wie hier n Intwert für das Passwort der SW) rauskriegen müssen? Dann könnten wir für uns so üben. Hab deinen Githubaccount gesehen aber wusste adhoc nicht, ob ich mir da was nehmen darf ^^ Bin da immer bisschen vorsichtig ^^
@TheMorpheusTutorials
@TheMorpheusTutorials 4 жыл бұрын
Ja, warts ab 😂
@analebanane508
@analebanane508 4 жыл бұрын
@@TheMorpheusTutorials Ja tut mir leid, aber deine Serie mit Ghidra kommt perfekt. Habe durch einen Arveitskollegen erst kürzlich erfahren, wie cool Reverseengineering ist und wollte das dann ausprobieren und Zack! Dein erstes Video zu Ghidra. Hat einfach gepasst. Jetzt hab ich Bock und Blut geleckt ^^. Habs auch schon zum Laufen gebracht. Bei Windows kann man übrigens auch einfach den Spass Gui starten. (Doppelklick auf die Batch)
@yasyasmarangoz3577
@yasyasmarangoz3577 4 жыл бұрын
Wunderschön😍
@yasyasmarangoz3577
@yasyasmarangoz3577 4 жыл бұрын
Danke fürs Herz!
@danielma2824
@danielma2824 4 жыл бұрын
he super video aber was macht man wenn man die main nicht findet bei andere crackme?. und gibt es auch so extra plugs wie bei x32dbg das xAnalyzer?
@knorkecheck2527
@knorkecheck2527 4 жыл бұрын
Wenn man in dem Reverse Engineering C-Code das == in != (Ungleichheit) ändert und zu einer neuen Exe (Binary) compiliert, dann ist das Passwort 1234 oder auch dieser Hex-Wert total egal. Dann ist das richtige Passwort, jede andere Eingabe, außer eben 1234. Dann wäre 1234 das einzige falsche Passwort ;) Ich schätze mal, so wurden zu C64 und Amiga Zeiten die Spiele "passwortbefreit"
@yunix898
@yunix898 3 жыл бұрын
Ich bin der meinung das er sowieso schlechte tutorials bringt und auf hacker tut.
@UndercoverDog
@UndercoverDog 2 жыл бұрын
Nein, soweit ich weiß hat man alle Check Funktionen(wie den PW Check, btw ka ob man die so nennt) umgeschrieben, dass sie immer true zurückgeben
@UndercoverDog
@UndercoverDog 2 жыл бұрын
@@yunix898 nein, 1) er zeigt in diesem Part hier gerade nur mal ganz grob und vereinfacht ghidra 2) er hat Informatik (ich weiß nicht welche Bereiche, hat er aber im Video über den Bundestrojaner erwähnt) studiert und nur ein kleiner Teil seines Kanals ist über hacking
@flowfian
@flowfian 4 жыл бұрын
Kannst du uns noch die easy.c datei zur Verfügung stellen?
@NoName-ui5ou
@NoName-ui5ou 4 жыл бұрын
den code sieht man bei 13:18, aber download wre cool
@Duke_Raoul
@Duke_Raoul Жыл бұрын
Hmm, wenn ich es mit gcc unter Linux compiliere gehts einwandfrei. Wenn ich es jedoch mit Visual Studio(c++) compiliere, hab ich bei Exports keine main, warum ?
@saschavloggt6232
@saschavloggt6232 4 жыл бұрын
Andere Frage - kann man auf die Art auch Dateiformate reversen? (Beispielsweise sowas wie OGG, WebM, FLAC, ... um mal bei den ohnehin offenen Formaten zu bleiben)
@Erarnitox
@Erarnitox 4 жыл бұрын
Kann man, wenn du damit programme reversed die diese dateiformate exportieren. Also da dann eben die export funktion des programmes in ghidra reversen, das gibt dann aufschluss darüber wie das dateiformat funktioniert.
@RubyX_Coded
@RubyX_Coded 4 жыл бұрын
Werden wir am Ende des Tutorials ganze Spiele von Konsolen in den Quellcode zurück übersetzen können? Wie es ja z.B. mit Super Mario 64 gemacht wurde? 👀 Eine nice Reihe auf jeden Fall und sowas wollte ich tatsächlich schon immer lernen, danke! ✌🏻
@RubyX_Coded
@RubyX_Coded 4 жыл бұрын
Wurde ja per Reverse Engineering gemacht, lol.
@itsvale9908
@itsvale9908 4 жыл бұрын
​@@RubyX_Coded Da hast du prinzipiell recht, sowas nimmt aber Dimensionen von Reverse Engineering an, die dir eine Tutorialreihe wie diese nicht beibringen kann. Für sowas musst du dich intensiv mit den Schichten der Abstraktion beschäftigen, die eine Spielekonsole zusammensetzen und brauchst zudem Jahre an Übung, um ein Verständnis für moderne Optimierungen durch Compiler aufzubauen. Software Reversing hat nicht das primäre Ziel, ein Programm in lesbaren Quelltext zurückzuübersetzen, sondern zu offenbaren, wie ein Programm funktioniert. Code zu rekonstruieren ein noch weitaus schwierigerer Ansatz, gerade wenn die Spiele nicht mehr in C, sondern C++ geschrieben wurden.
@RubyX_Coded
@RubyX_Coded 4 жыл бұрын
@@itsvale9908 Okay, danke für die ausführliche Antwort. hab tatsächlich nicht gedacht, dass das nochmal in eine komplett andere Richtung funktioniert samt ne eigene Dimension hat. Hast du denn irgendwie nen Ansatz wie ich das lernen könnte?
@Erarnitox
@Erarnitox 4 жыл бұрын
@@RubyX_Coded ist diese reihe hier wahrscheinlich ein gute anfang. Zudem dann eben die technologie lernen, mit der das was du reversen willst gebaut wurde. Wenn man selbst ganz genau weiss wie man es selbst programmieren kann und auch den unterbau versteht, fällt einem das reversen deutlich leichter. Dazu kannst du dir ja anfangs open source dinge vornehmen um übung zu bekommen und kannst dann auch immer überprüfen wie es tatsächlich gemacht wurde. Ist auf jeden fall sehr aufwändig und im normalfall kein projekt für nur wenige monate. Ich finde auch das online tool "compiler comapare" recht cool. Da kann man online den asm output von einem compiler den man ausgewählt hat anschauen. Z.b. hat man ne vermutung wie der source aussehen könnte und gibt dann z.b. eine for schleife in das online tool ein und lässt es mit dem compiler der verwendet wurde compilieren und schaut ob der resultierende asm code wirklich mit dem übereinstimmt was ghidra sagt. Als kleine anmerkung noch: ghidra ist auch ziemlich gut im c++ code analysieren, aber ist wirklich etwas aufwändiger als pures c
@RubyX_Coded
@RubyX_Coded 4 жыл бұрын
@@Erarnitox danke dir^^ werde mich mal umschauen und auch das Projekt weiterverfolgen.
@mk5257
@mk5257 4 жыл бұрын
Wie geht man vor, wenn man die Programmiersprache der Exe nicht kennt?
@alexander3293
@alexander3293 4 жыл бұрын
Nun ja bei interpretierten Sprachen ists ja eh easy (just throw it into dnSpy, ferflower, usw) und der rest generiert eh maschienencode "die programmiersprache" ist also eh immer z.b. x86 binary. egal ob ich jetzt nen rust programm oder nen c programm hab.
@heapspray
@heapspray 4 жыл бұрын
wäre cool wenn du die materialien irgendwo zum download bereitstellst :)
@flok.7735
@flok.7735 4 жыл бұрын
13:00
@oj0024
@oj0024 4 жыл бұрын
Für alle die probleme mit ghidra auf nem window manager, haben versucht mal `wmname compiz`.
@oj0024
@oj0024 4 жыл бұрын
Vom Humm: `_JAVA_AWT_WM_NONREPARENTING=1` geht auch
@saschavloggt6232
@saschavloggt6232 4 жыл бұрын
Also mein Taschenrechner macht das noch einfacher. Einmal bevor man irgendwas eingibt auf das Hexadezimalsystem umschalten, 4D2[Enter], und dann auf das Dezimalsystem umschalten. Ergebnis: 1234
@sylus121
@sylus121 4 жыл бұрын
funktioniert das auch mit jars ? 😅
@Erarnitox
@Erarnitox 4 жыл бұрын
Nein, für java byte code gibt es aber sehr viele tools um sie zu decompilen. Einfach mal nach java decompiler suchen. Btw. Um an die class datein zu kommen, einfach das jar unzippen.
@Ragnarek72
@Ragnarek72 4 жыл бұрын
Hi! there is an opportunity to take an inexpensive D-Link ANT70-1400N. It has several connectors (it can work with several spatial streams). Will the evil twin attack work (if you connect 2 adapters to it). Or do I need two antennas for each adapter?
@adrianhillmann3741
@adrianhillmann3741 4 жыл бұрын
Ich weiß... Dumme Frage Sind auch EXE Dateien im Tutorial vorhanden? Uhm... Ich frag für'n Freund.
Reverse Engineering with Ghidra Tutorial #1 - Ghidra vs. Ida Pro
11:33
The Morpheus Tutorials
Рет қаралды 36 М.
99.9% IMPOSSIBLE
00:24
STORROR
Рет қаралды 31 МЛН
Become a hacker - how to learn to hack?
17:10
The Morpheus Tutorials
Рет қаралды 730 М.
I made Tetris in C, this is what I learned
15:15
Austin Larsen
Рет қаралды 27 М.
Wir reversen WannaCry #1 - Strings [Ghidra Tutorial #6]
11:00
The Morpheus Tutorials
Рет қаралды 16 М.
New Law: Software Bugs Liability Explained!
24:58
The Morpheus Tutorials
Рет қаралды 64 М.
Malware Development: Processes, Threads, and Handles
31:29
Bare-metal ARM firmware reverse engineering with Ghidra and SVD-Loader
14:40
Failed Linux Switch 2024: Morpheus' Setup Disaster
39:21
The Morpheus Tutorials
Рет қаралды 63 М.