Reverse engineering in EDV



  • Hallo,

    ich habe reverse enginnering als Thema in der Schule genommen und suche gerade
    mehr Informationen über den Einzug von reverse enginnering im EDV bereich.
    Google gibt mir nur wertlose Informationen zurück und dachte ich frage mal die
    Experte hier ob ihr evtl. Bücher oder Links dazu habt. Auch Informationen über
    die rechtlichen Aspekt (International / Deutschland) weren sehr hilfreich.

    Kern der Ausarbeitung ist das aushelben von Sicherheitsmechanismen...

    Hoffe ihr könnt mir hier helfen.



  • Dklay schrieb:

    Informationen über den Einzug von reverse enginnering im EDV bereich.

    Ich finde die Formulierung etwas komisch.

    Bücher gibts zu dem Thema genug mittlerweile. Such einfach nach "REverse Engineering" bei Amazon. Speziell das Aushebeln von Sicherheitsmechanismen ist ein etwas heikles und umfangreicheres Thema. Früher nannte sich das einfach "Cracking" und es gab tausende Tutorials im Internet, die sich mit den damaligen Sicherheitsmechanismen (z.B. Schlüssel bei Shareware) befasst haben. Sowas einfaches wirst in den Büchern wahrscheinlich schon noch finden, irgendwelche neueren Sachen werden wahrscheinlich nicht im Detail behandelt, aber schau dir einfach die Bücher durch, das Thema interessiert mich schon seit Jahren nicht mehr, kanns nicht mit Sicherheit sagen.
    Es gibt legitimere Einsatzmöglichkeiten für Reverse Engineering, z.B. die Analyse von Viren/Malware, was ich dann auch wieder interessanter finde. Das wird eher in den Büchern behandelt. Und so eine Grauzone ist Reverse Engineering im Open Source Bereich, um nicht dokumentierte Protokolle/Formate/Dateisysteme usw. zu analysieren und dann als Open Source Implementierungen umzusetzen.



  • Danke, für deine Antwort erstmal.

    Reverse engineering ist ja keine Erfindung des Computerzeitalters. Meine Frage ist eigentlich was wurde zuerst reverse engineerd, waren das Viren, Kopierschutz arten oder Verschlüsselungsverfahren...

    Bücher habe ich auch da, aber diese beschäftigen sich hauptsächlich mit dem reversing vom Code.

    Auch über die rechtlichen Aspekte findet man zwar kurze verschwommene Aussagen welche immer meinen man ist dabei in einer Grauzone aber Gesetzestexte oder ähnliches werden in meinen Quellen nie zitiert.



  • Ich weiß nicht, ob du großartig was über die "Geschichte des Reverse Engineerings in der IT" findest. Der Gedanke ist ja relativ naheliegend.

    DKlay schrieb:

    Bücher habe ich auch da, aber diese beschäftigen sich hauptsächlich mit dem reversing vom Code.

    Was genau meinst du damit und was erwartest du stattdessen?



  • Es gibt ein sehr gutes Buch von Eldad Eilam:
    "Reversing: Secrets of Reverse Engineering"

    Nettes kleines Buch für (nicht nur) jugendliche Einsteiger:
    Simon Singh
    "Codes: Die Kunst der Verschlüsselung. Geschichte - Geheimnisse - Tricks"

    In die Googlesuchmaske kannst du mal sowas wie Malwareanalyse Diplomarbeit eingeben und dann gucken, ob dir das weiterhilft.



  • Vielleicht hilft dir das hier weiter:
    http://www.exploit-db.com/wp-content/themes/exploit/docs/23277.pdf

    Hier ein ganz simples Beispiel wie das ganze im Prinzip funktioniert:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
    
    string str;
    
    cout<<"Password: ";
    cin>>str;
    
    	if ( str == "bob") {
    		cout<<"Richtig :D \n";
    	}
    
    	else{
    		cout<<"Falsch -.-\n";
    	}
    
    return 0;
    }
    

    Das Disassembly dazu:

    00401199   68 A2404000      PUSH Project2.004040A2                   ; ASCII "Password: "
    0040119E   FF35 70714000    PUSH DWORD PTR DS:[<&CC3280.@std@cout>]  ; CC3280.@std@cout
    004011A4   E8 FB000000      CALL Project2.004012A4
    004011A9   83C4 08          ADD ESP,8
    004011AC   8D4D D8          LEA ECX,DWORD PTR SS:[EBP-28]
    004011AF   51               PUSH ECX
    004011B0   FF35 6C714000    PUSH DWORD PTR DS:[<&CC3280.@std@cin>]   ; CC3280.@std@cin
    004011B6   E8 09030000      CALL Project2.004014C4
    004011BB   83C4 08          ADD ESP,8
    004011BE   68 AD404000      PUSH Project2.004040AD                   ; ASCII "bob"
    004011C3   8D45 D8          LEA EAX,DWORD PTR SS:[EBP-28]
    004011C6   50               PUSH EAX
    004011C7   E8 18050000      CALL Project2.004016E4
    004011CC   83C4 08          ADD ESP,8
    004011CF   84C0             TEST AL,AL
    004011D1   74 15            JE SHORT Project2.004011E8
    004011D3   68 B1404000      PUSH Project2.004040B1                   ; ASCII "Richtig :D 
    "
    004011D8   FF35 70714000    PUSH DWORD PTR DS:[<&CC3280.@std@cout>]  ; CC3280.@std@cout
    004011DE   E8 C1000000      CALL Project2.004012A4
    004011E3   83C4 08          ADD ESP,8
    004011E6   EB 13            JMP SHORT Project2.004011FB
    004011E8   68 BE404000      PUSH Project2.004040BE                   ; ASCII "Falsch -.-
    "
    004011ED   FF35 70714000    PUSH DWORD PTR DS:[<&CC3280.@std@cout>]  ; CC3280.@std@cout
    004011F3   E8 AC000000      CALL Project2.004012A4
    

    An Adresse 004011C7 wird eine Funktion aufgerufen die deine Eingabe überprüft wenn du den string bob eingeben hast dann wird zu Adresse 004011D3 ansonsten zu Adresse 004011E8.

    An Adresse 004011BE wird der string bob auf den Stack gepusht damit hast du schon das Passwort.

    An Adresse 004011D1 steht JE SHORT Project2.004011E8

    Das könntest du z.b. umändern in JMP 004011D3 dann ist es egal was du da im Programm eingibst jedes Passwort ist dann korrekt.

    In richtigen Programmen ist das natürlich meist nicht so einfach da kommen dann noch Anti Debug Funktionen und so ins Spiel.

    Ich könnte dir hier jetzt noch so ein paar Sachen zum Thema Reverse Engineering schreiben aber ka was du da genau wissen willst/muss von daher lass ich es.^^

    Hier noch ein paar Links:
    http://www.symantec.com/connect/articles/windows-anti-debug-reference

    http://tuts4you.com/download.php?list.17 ( Reversing for Newbies 01 könnte interessant für dich sein )

    http://waleedassar.blogspot.de/ ( Hat immer interessante Artikel )
    http://www.immunityinc.com/products-immdbg.shtml ( Guter kostenloser Debugger )



  • Hi nochmal, danke für das kurze Tutorial und die Links aber eigentlich suche ich
    wie schon erwähnt nach der Geschichte von reverse engineering aber auch nach den
    Gesetzen welche es ausdrücklich erlauben bzw. verbieten. Also sowas wie, dass die Analyse von Protokollen legal usw.


Anmelden zum Antworten