Hacking: Die Kunst des Exploits

anarchist

New member
Ist das Buch zu empfehlen, mir ist schon klar, dass es etwas älter ist, ich hab aber eine Seite gefunden, die veraltete Themen updatet hacking - Die Kunst des Exploits - the art of Exploits
Ich frage mich dennoch, ob es sich lohnt dies noch jetzt zu lesen und falls nicht hätte ich gerne andere Vorschläge. Ich kenn mich mit Linux (nutze Arch seit 2 Jahren) und ein bisschen mit c++ und Python aus. Das Thema Netzwerke ist für mich noch relativ neu und ich habe das Gefühl, dass mir einiges an Hintergrundwissen fehlt. Im allgemeinen wären paar Links oder Buchempfehlungen nett :)
Achso und falls das Buch OK ist, kann mir jemand einen Link als PDF oder sonst was schicken, ich habe es nichts über Duckduckgo oder Google finden können und ich bin leider nicht in der Lage das Buch zu kaufen, da ich erst 16 bin und nicht gerade im Geld schwimme. Notfalls leih ich mir es in der Stadtbiblio. aus, aber es ist grade schon ausgeliehen :/
 

SchwarzeBeere

Moderator
Mitarbeiter
Ja, es ist uneingeschränkt zu empfehlen. Es ist auch desshalb zu empfehlen, weil es Menschen gibt, die dafür gezahlt und damit dem Autor die Möglichkeit eröffnet haben, damit Geld zu verdienen. Einen Downloadlink wirst du daher (und im übrigen auch aufgrund der Forenregeln, denen du bei deiner Registrierung zugestimmt hast) hier nicht bekommen.

Eventuell bekommst du ja eine gebrauchte Ausgabe über die üblichen Vertiebswege? Das Buch ist beliebt, recht weit verbreitet und wird immer wieder angeboten.
 
Zuletzt bearbeitet:

Coolzero1982

Stammuser
HI, das Buch ist definitiv zu empfehlen, ich bin mir aber nicht sicher ob es für dich das richtige ist, denn es ist nicht unbedingt einfach, und ob da 2 Jahre Linux, ein bisschen c++ und wenig Netzwerk reichen bin ich mir nicht sicher, es geht schon auch sehr in die Richtung Verständnis für Hardware und Vorallem für Speicher, vieleicht kennt hier einer eine bessere Einsteiger Alternative
 

anarchist

New member
Also ein kompletter Einsteiger bin ich nicht, ich beschäftige mich seit dem ich 11 bin mit Programmiersprachen, Hardware und so weiter. Und ich hab auch nicht vor es mir mal eben kurz durchzulesen, ich werde schon alles nochmal im Internet nachschlagen und mich intensiv beschäftigen. Ich finde Herrausforderungen wesentlich besser als etwas was einem an die Hand nimmt und ganz ganz langsam an irgendwas ranführt :)
Achso und noch eine wichtige Frage, ist der Kryptografie teil veraltet oder lohnt es sich trotzdem den zu lesen?
 
Zuletzt bearbeitet:

SchwarzeBeere

Moderator
Mitarbeiter
An den Grundlagen (asymmetrisch vs. symmetrische Kryptosysteme, Kryptographische Hashes, Zufallszahlen, Implementierungsfehler, ...) ändert sich üblicherweise nichts. Auf dem Wissen kannst du dann weiter aufsetzen und dir neues Wissen aneignen, z.B. aus Modern Cryptography.
 
Hi, hab paar Fragen zum Buch:

S. 50:
Die letzte Zeile, ist es richtig, dass da pointer statt pointer2 stehen soll oder handelt es sich um einen Druckfehler?

S. 61:
Ich kann die Falschausgaben nicht nachvollziehen
 
Zuletzt bearbeitet:

CypherL0rd

Member
3tw4s supp0rt v0m l0rd

Hi, hab paar Fragen zum Buch:

S. 50:
Die letzte Zeile, ist es richtig, dass da pointer statt pointer2 stehen soll oder handelt es sich um einen Druckfehler?

S. 61:
Ich kann die Falschausgaben nicht nachvollziehen

ist eins meiner lieblingsbücher deswegen helfe ich mal:

S.50
nein das ist kein druckfehler.
pointer2 zeigt auf die adresse von pointer, addiert um 2 bytes, was zwei char zeichen des char arrays entspricht.
pointer zeigt auf das char array: "Hello, world!\n"
pointer2 zeigt somit auf "llo, world!\n"
nun wird die stelle auf die pointer2 zeigt geändert zu "y you guys!\n",
pointer zeigt aber auf die stelle 2 char zeichen davor.
wenn nun das char array auf welches pointer zeigt ausgegeben wird erscheint "Hey you guys"
ich hoffe das war jetzt verständlich.

s.61
ich versteh nich was du hier mit falschausgaben meinst? erleuter das mal bitte wenn du hilfe magst...
ich kann nur warnungen des compilers sehen die eigentlich selbstredend sind
 
Bei S. 61 konnte ich die Entstehung der zwar richtigen aber unerwünschten werte nicht nachvollziehen aber habs jetzt. S. 50 hab ich dank dir jetzt auch verstanden. Gracie miele!

Noch eine Frage, auf S. 66/67, woher kommen die Argumente (S.66 this - is - a -test, S. 67 Hello, world!), wo wurden die definiert? Im abgedruckten Quellcode steht davon nichts.
 
Zuletzt bearbeitet:

CypherL0rd

Member
erstma danke für dein danke, bist der erste der hier zugibt das ich was draufhab, warum auch immer...

hm also es scheint als das du noch keine programmiersprache wirklich beherrscht und das du die live cd vom buch nicht zum laufen bekommen hast und die beispiele nicht selbst nochma am pc simulierst.
deine verständnisprobleme sind ziemlich grundlegende sachen deswegen behaupte ich das beides mal und nehme es an.
du musst die beispiele aus dem buch unbedingt am pc ausführen, am besten mit der live cd, bei mir funktioniert sie noch.
du musst die bootreihenfolge im bios ändern, so dass wenn die cd eingelegt wird, von dieser aus gebootet wird und dann musst du "safe graphics mode" auswählen. bei mir funzt es so.
andernfalls findest du hier anleitungen wie du dir selbst eine fücr das buch ausreichende livetestumgebung erstellst: hacking - Die Kunst des Exploits - the art of Exploits

ok kommen wir zurück auf deine andren zwei fragen.
s. 61
es geht darum das int und char zwei verschiedene datentypen sind. ein int belegt 4 byte speicher und ein char nur 1 byte.
das gilt dann auch für deren pointers.
und wenn ein int pointer auf ein char array zeigt und es inkrementiert wird, dann wird deshalb immer nur jedes vierte char innerhalb der schleife ausgegeben.
so schwer ist das wirklich nicht und es wird eigentlich sehr ausführlich im buch erklärt sehe ich grade.

s. 66/67
die argumente stehen nicht im quellcode sondern werden beim aufruf des programms von der konsole aus an das programm mitgegeben.
das programm verarbeitet dann dieses eingabe-stringarray, wird ebenfalls alles ausführlich im buch erklärt.

es ist wichtig dass du die live umgebung zum laufen bringst und die programme im terminal wie angegeben kompilierst, ausführst und debugst, darin liegt nämlich der grosse nutzen und lerneffekt des buchs.
 

bitmuncher

Senior-Nerd
erstma danke für dein danke, bist der erste der hier zugibt das ich was draufhab, warum auch immer...

Könnte dran liegen, dass du dich nichtmal Groß- und Kleinschreibung (geschweige denn grundlegende Interpunktion) beherrschst und deine bisherigen Beiträge eher nicht der Qualität deiner Antwort hier entsprachen. Es freut mich aber zu sehen, dass du langsam etwas erwachsener wirst.
 
Shiat...ich dachte dazu braucht man ein extra Programm indem man c programmiert wie Visual Studio aber das passiert alles in der konsole, epic fail. Wieder an die Startlinie..
 

Shalec

Stammuser
Shiat...ich dachte dazu braucht man ein extra Programm indem man c programmiert wie Visual Studio aber das passiert alles in der konsole, epic fail. Wieder an die Startlinie..

Ich empfehle dir eine Virtuelle Box mit einem System deiner Wahl einzurichten und darin die Programmierung durchzuführen. Ggf. auch mit einem gemeinsamen Ordner deines Host-Systems. Vorteil: Sobald du einen stabilen Entwicklungszustand hast, erzeugst du dir eine Sicherungskopie des Systems und kannst bei kritischen Fehler auf diesen Ursprung zurücksetzen, ohne viele Probleme.

Als Compiler empfehle ich "gcc".
 
Oben