hallo, ich lese gerade ein asm wiki buch und ich soll mein erstes programm mit dem debuger.exe starten. ich habe win8.1 64bit und keinen debuger. Bisher habe ich 2 ausprobiert aber die gingen nicht, ich habe nicht gefunden wo ich die register einsehen kann. könnt ihr mir sagen wo ich den debuger für cmd oder dosbox bekomme? oder einen empfehlen? danke und frohe ostern
Kritical R. schrieb: > hallo, > ich lese gerade ein asm wiki buch > und ich soll mein erstes programm mit dem debuger.exe starten. > ich habe win8.1 64bit und keinen debuger. > Bisher habe ich 2 ausprobiert aber die gingen nicht, ich habe nicht > gefunden wo ich die register einsehen kann. > > könnt ihr mir sagen wo ich den debuger für cmd oder dosbox bekomme? oder > einen empfehlen? > > danke und frohe ostern IDA (www.hex-rays.com), OllyDBG (www.ollydbg.de)
vorab: gdb: nein grund: meine englischkenntnisse reichen für die doku nicht aus www.hex-rays.com : sihet gut aus -habe sogar die wahl eine 16bit datei zuwählen, ich hatte das nicht erwähnt und dachte ich werde das buch bestimmt wechseln müssen. -ich habe ein com datei gemacht und hex-rays weißt mich sogar darauf hin, dass ich den break point auswählen und mit der taste [c] bestätigen soll das finde ich klasse :D. Also asm macht weiterhin spaß, danke pegel, Arc Net, Heinz V.:D
Kritical R. schrieb: > grund: meine englischkenntnisse reichen für die doku nicht aus Dann brich Deine Forschung an dieser Stelle ab und arbeite zuerst an Deinen Englischkenntnissen. Denn auf Deinem Weg zur "Bug-Bounty" wirst Du noch an vielen anderen Stellen vorbeikommen, wo "gemeinsames Lesen" von Büchern nicht ausreicht, und wo viel Sprachverständnis gefordert wird. Die Dokumentation der Dinge, mit denen Du Dich beschäftigen willst, ist fast ausnahmslos auf Englisch geschrieben. Sei es das Programmierhandbuch zum x86 (von Intel selbst), sei es das Datenblatt des x86 (auch von Intel), oder seien es irgendwelche Hinweise darauf, wie man effizient mit einem Entwicklungssystem arbeitet, wie man mit einem Debugger klarkommt, wie Assembler generell funktioniert -- alles auf Englisch. Es gibt sicherlich auch die eine oder andere brauchbare Übersetzung, aber das deckt keine 5% von dem Material ab, mit dem Du Dich beschäftigen willst und musst. Also: Lern Englisch. Jetzt.
danke für den tip. aber warum so radikal? das intel english verstehe ich und auch die doku vom 2. programm
Kritical R. schrieb: > aber warum so radikal? Weil das eine essentiell wichtige Grundlage ist. Ohne die bist Du immer darauf angewiesen, "leicht verständliche" oder übersetzte Dokumentation zu finden, und kannst Programme nicht nach ihrer Funktion aussuchen, wie Du es gerade hier vorgeführt hast, gdb geht nicht, weil Du die Dokumentation nicht lesen kannst. Naja, und ansonsten hast Du in Deinen verschiedenen Threads hier verschiedene Messlatten sehr, sehr hoch gestellt - wenn ich an "bugbounties" denke, das ist etwas, wofür man mindestens etliche Jahre, wenn nicht gar Jahrzehnte an Erfahrung braucht, um überhaupt mitreden zu können. Und da sehe ich eine sehr große Diskrepanz zwischen Wollen (Bugbounty) und Können (gdb geht nicht, weil Dokumentation zu schwer lesbar).
also rufus, zum teil sind deine Sätze ganz nett und motivierend, aber sowas hier, ist wie vom anderem Stern: "und kannst Programme nicht nach ihrer Funktion aussuchen" nach welchen Kriterien sollte ich denn die Software aussuchen?
:
Bearbeitet durch User
In den DOS-Hochzeiten™ war mir der TDB (Turbo Debugger von Borland) neben anderen (ICE... :-)Tools ein treuer Begleiter. http://vetusware.com/download/Turbo%20Debugger%205.5/?id=4612
Kritical R. schrieb: > Bisher habe ich 2 ausprobiert aber die gingen nicht, ich habe nicht > gefunden wo ich die register einsehen kann. > > könnt ihr mir sagen wo ich den debuger für cmd oder dosbox bekomme? oder > einen empfehlen? Wenn du dosbox, dosemu oder anderes am Start hast brauchst du ja noch ein DOS selber, beim freedos zB. gibts dem Original nach empfunden den 'debug' http://help.fdos.org/de/hhstndrd/base/debug.htm wird sicher auch komfortableres geben. :)
1 | C:\>debug |
2 | -R |
3 | AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 |
4 | DS=07BE ES=07BE SS=07BE CS=07BE IP=0100 NV UP DI PL NZ NA PO NC |
5 | 07BE:0100 F60000 TEST BYTE PTR [BX+SI],00 DS:0000=CD |
Kritical R. schrieb: > also rufus, zum teil sind deine Sätze ganz nett und motivierend, aber > sowas hier, ist wie vom anderem Stern: > "und kannst Programme nicht nach ihrer Funktion aussuchen" > nach welchen Kriterien sollte ich denn die Software aussuchen? Du kannst das schon glauben. Wenn dein Englisch nicht schon gut ist, wie willst du dich durch die Datenblätter hangeln? Da kommt noch hinzu, dass du auch die Thematik verstehen musst. Was alleine schon eine Aufgabe für sich ist. Es ist in der Elektronik zwingend nötig Englisch zu können.
Kritical R. schrieb: > "und kannst Programme nicht nach ihrer Funktion aussuchen" > nach welchen Kriterien sollte ich denn die Software aussuchen? Kann es sein, daß Du mich nicht verstanden hast? Weil Dir Englischkenntnisse fehlen, bist Du darauf angewiesen, Programme danach auszusuchen, daß es deutschsprachige Dokumentation für sie gibt.
Kritical R. schrieb: > vorab: > gdb: nein > grund: meine englischkenntnisse reichen für die doku nicht aus Oh man, der GDB ist wirklich nicht schwierig zu bedienen. Wenn's daran schon scheitert...
Dr. Sommer schrieb: > Oh man, der GDB ist wirklich nicht schwierig zu bedienen. Wenn's daran > schon scheitert... Das ist dann die Kurzfassung warum Englisch nötig ist ...
Kritical R. schrieb: > ich lese gerade ein asm wiki buch Wie kommst du denn darauf, ausgerechnet Assembler ohne Englischkenntnisse programmieren zu wollen? Assembler-Befehle sind reines Englisch, da wird es sehr sehr mühsam, wenn du beim Begriff Carry erst nachschlagen musst, dass das auf Deutsch Übertrag heisst (was auch noch kein tieferes Verständnis garantiert). Es hat Versuche gegeben, sowas wie ein deutsches Basic zu definieren, aber das ist alles ausgestorben (mit Recht! das war grausam). Mir fällt im Moment keine nicht-englische Programmiersprache ein. Übrigens schreibe ich in Assembler auch die Kommentare englisch, ich finde Assembler-Code mit deutschen Erläuterungen sieht irgendwie albern aus. Georg
georg schrieb: > Mir fällt im Moment keine nicht-englische Programmiersprache ein. "Logo" natürlich. Durften wir in der Schule benutzen, weil der Informatik Lehrer kein Englisch konnte.
@rufus mir ist gerade klargeworden, dass ich dich nicht verstanden habe :D Du meintest also, dass ich nicht die funktionen bewerten kann, ohne dafür notwendigen englisch kenntnisse. bug bounty thread gings mir nur darum zu erfahren wie man legal hacken lernen kann, ich war mir sicher, dass das geht, da man auch legal für die fähigkleiten bezahlt werden kann, die lösung ist für mich ein eigenes offline netzwerk. und wieso weshalb? ich werde mal weiter an dem wiki x86asm buch weiter arbeiten weil ich lust drauf habe, ich hoffe, dann eine vorstellung zu bekommen wie das mit anderen chips funktioniert. Ich werde mich einfach auf das thema fixiren und dannach hoffe ich die möglichkeiten zu erkennen, die ICH mit asm haben werde. bei dem buch hoffe ich, das es da keine stolperfallen gibt, da ich die cpu habe und den assembler, das empfohlene debug programm gabs ja leider nicht, in win8, aber ich hoffe weiter einfach das buch abarbeiten zu können. und danke nochmal an alle für euere links, ich probiere bestimmt alle aus :)
Kritical R. schrieb: > Du meintest also, dass ich nicht die funktionen bewerten kann, ohne > dafür notwendigen englisch kenntnisse. Nein: Kritical R. schrieb: > gdb: nein > grund: meine englischkenntnisse reichen für die doku nicht aus
Ich werde erst weiter am debug kapitel arbeiten. Wenn Du dann noch anderen themen mit mir besprechen willst kannst du mich gerne anschreiben
:
Bearbeitet durch User
georg schrieb: > Mir fällt im Moment keine nicht-englische Programmiersprache ein. Excel. Kritical R. schrieb: > und ich soll mein erstes programm mit dem debuger.exe starten. Mir ist kein solches Programm bekannt. Zu DOS (inkl. FreeDOS) gehört DEBUG.COM (oder DEBUG.EXE), und wenn dein Buch auf irgendwelche Programme verweist, sollte es auch Informationen darüber enthalten, wo man diese bekommt. Windows enthält meines Wissens keinen Debugger. An deiner Stelle würde ich die GNU Toolchain lernen (also gdb). Reichen deine Kenntnisse nicht dafür aus, dann besorge sie dir zuerst.
S. R. schrieb: > Excel Mit dem häßlichen Effekt dass die Dateien inkompatibel zwischen den verschiedenen Sprachversionen werden sobald man Formeln benutzt. Wie kam MS nur auf die Idee das direkt abzuspeichern statt es nur einfach in der passenden Sprache anzuzeigen.
Blechbieger schrieb: > statt es nur einfach in der passenden Sprache anzuzeigen. Einen "Programmcode" live zu bearbeiten zwischen Anzeige und Speicherung ist aber auch haarig und bietet allerlei Möglichkeit für Probleme. Da würde ich diese Mehrsprachigkeit lieber ganz weglassen...
Es geht wieder weiter. Ich habe jetzt die dosbox und das Programm DebugX, was ich einfach entpacken musste hier ist ein screen shoot http://www.bilder-upload.eu/upload/315d0f-1523987482.png man kann sehen wie ich mein erstes programm mit dem tool anschaue, so wie es im buch auch gemacht wird. und die dateien die mit dem tool kommen, also ordnerstruktur, die firs.* dateien sind von mir. und hier nochmal die adresse des wiki buches asm x86: https://de.wikibooks.org/wiki/Assembler-Programmierung_f%C3%BCr_x86-Prozessoren
@Kritical, Warum willst Du unbedingt mit dem segmentierten 16 - Bit Kram anfangen? Den braucht heut keiner mehr, wenn Du nicht gerade im Bios rumhuren willst. Hole Dir die Schnupperversion von Purebasic,(32 Bit Version) schreib ein kleines Proggy und sehe Dir den produzierten Assembler in dessen Debugger an! Dann läßt Du IDA auf das Proggy los und staunst! Lerne! Weil die EXE dann nur 3 KB groß ist, kann man wunderbar mit IDA rumspielen! Und dann, wie die hasen hier vorgeschlagen haben, English lernen! mfg
hi Mercedes, ich will ja irgendwann microkontroller programmieren, ich dachte es ist egal was für ein asm buch ich jetzt neheme und habe dieses ältere ausgewählt, es ist ja auf deutsch. sicher in meine elektronik buch lerne ich arduino, aber ich wollte asm nebenbei schonmal einsteigen. bios wollte ich erst mal für einen älteren pc, weil ich gerne jede linux distribution zum laufen kriegen wollte, aber ich habe mich entschieden einen neueren pc mit 1GB ram zu kaufen, somit laufen mehr distributionen drauf und so lasse ich das bios asm erstmal weg
Die Assemblersprachen für die meisten Mikrocontroller sind viel einfacher und wohlstrukturierter als X86-ASM. Da würde ich lieber erst damit anfangen als sich mit dem elenden völlig veralteten 8086er-Assembler rumzukrücken.
ich habe bisher auch alles gut verstanden, aber als die debug analyse kamm, da war die erklärung dann doch etwas viel für mich, bestimmt, weil es soviele register und flags gibt, bei microcontroller sind das bestimmt weniger, stimmts? Also ich kann jetzt auch erst mal das asm buch zumachen und nur das elektronikbuch machen, das pausiert nur, weil ich erst 2 relais 9v bestellen muss, ich finde es komisch, das diese 3 euro kosten, wo die anderen bauteile alle nur cents kosten. naja und ich lese ja noch ein linux buch, also bin kann ich ja erstmal das asm buch zu machen, wenn die normalen microkontroller wirklich besser für den einstieg sind
Hole Dir ein Assemblerbuch von O'Reilly, die gibts auch in deutsch. Und die Schnupper Version von IDA 7.0, die kann seit Neuestem auch 16 Bit. Versuchs einfach mit Purebasic. IDA ist das Ding im reverse engineering, Du mußt es lernen! Und die Vollversion kann dann eine Menge Prozessoren, auch Mikrocontroller. Assembler lernen solltest Du aber mit WinAsm oder ähnlichem in 32 Bit! mfg
@~Mercedes~ habe leider nur das Make: avr buch von o`Reilly gefunden, IDA sieht schon mal super cool aus, hm, ...wegen dem buch frage ich morgen mal den buchhändler bei mir, ...also gibt es das buch?
:
Bearbeitet durch User
@Kritical, fröhliches suchen! ;-P Ich hab gerade mal geschaut, leider gibts von O'Reilly zur Zeit nix in Deutsch, das einzig brauchbare Buch, das ich gefunden hab und das auch nicht historisch ist: ISBN-10: 3486200011 ISBN-13: 978-3486200010 Das Buch hat den Vorteil, auch Hochsprachen zu berücksichtigen ( Stack - Rahmen u.s.w. ) ist aber offenbar nicht ganz für Anfänger. Während es fürs Hacken mit Kali - Linux mehere Bücher gibt ist das Meiste über Assembler von 2000 oder früher. :-O mfg
wieso muss den das asm buch relativ aktuell sein? um was geht es den? klar ist einen neue Arbeitsumgebung für aktuelle Computer ausgelegt, und eventuell werden neue usb programmer unterstützt, ist das der Grund, das man mit einer aktuellen entwicklungs Paket begleitet wird? Die Bücher habe ich auch gefunden, wusste aber jetzt nicht genau nach welchen Kriterien ich suchen sollte. 32 bit und deine Software Auswahl ist schon mal ein guter Anhaltspunkt, ich werde auch mal nach dem basic Büchern suchen. als board habe ich natürlich auch den ardurino im meinem Elektronik buch, das ist aber schon eine höhere spreche. aber c und basic gefallen mir schon mal, anstatt c++ fühle ich mich aber bei VS-basic wohler (also c++ und vs basik habe ich bisher nur reingeschaut, aber c und irgend ein basic habe ich schon erfolgreich was zustande gekriegt)
:
Bearbeitet durch User
Wenns um Assembler an sich geht, ist der Real Mode 8086 am allerungeeignetsten, um was zu lernen. Mit der Verwurstelung von Segment und Adresse ist er sehr weit entfernt von allen anderen Assemblern. Kritical R. schrieb: > als board habe ich natürlich auch den ardurino im meinem Elektronik > buch, das ist aber schon eine höhere spreche Aber klar kann man da auch in Assembler programmieren. Eigentlich kann man das auf jedem Prozessor, denn die Befehle im Assembler sind im wesentlichen die Maschinenbefehle der Prozessor-Hardware. Ganz hartgesottene Entwickler brauchen nicht mal ein Assembler-Übersetzungsprogramm, sondern codieren direkt in Hex - so haben wir Alten mal angefangen. Meine Empfehlung daher: programmiere auf deinem Arduino in Assembler. Georg
@georg, ich will mir nur kein falsches buch kaufen
:
Bearbeitet durch User
georg schrieb: > Wenns um Assembler an sich geht, ist der Real Mode 8086 am > allerungeeignetsten, um was zu lernen. Mit der Verwurstelung von Segment > und Adresse ist er sehr weit entfernt von allen anderen Assemblern. Ach watt. Das ist nur eine Perversion dieser Architektur, die den Perversionen anderer Architekturen in nix nachsteht, sondern eher sogar noch verhältnismäßig harmlos und leicht zu verstehen ist. Der entscheidende Knackpunkt auf dem Weg zum wirklichen Assembler-Programmierer ist, all die Obszönitäten der jeweiligen Zielarchitektur 1) zu verstehen und 2) diese sinnvoll (also effizient) nutzen zu lernen. Dabei ist 1) typischerweise das weitaus kleinere Problem, denn das erfordert nur reinen Lern-Fleiß... 2) hingegen erfordert schöpferische Intelligenz. Das ist nicht nur die Spielwiese guter Asm-Programmierer, sondern auch die der Compilerbauer. Hier scheidet sich die Spreu vom Weizen.
da bin ich mit meinen kleinen ardurieno projekten bestimmt raus, ich möchte z.B. auch einen VR handschuh bauen aber die chips habe heute bestimmt viel mehr leistung als ich brauche, einen pc werde ich wahrscheinlich nicht bauen
Kaufe auf keine Fall von Schwabel-Schmidt (weiß nicht ob es richtig geschrieben ist). Der Type hat's zwar drauf, aber unlesbar. Da kriegst du Augenkrebs.
jo danke, ich werde die augen offen halten ;) ich hoffe ich werde alles auf lunux machen können, wegen WinAsm. ich schreibe das mit lWinAsm auch jetzt nur nach gefühl, weil ich erst ein paar tage pause machen :) edit: beziehungs weise ich muss erst alle infos suchen und sortieren und einbischen ausprobieren
:
Bearbeitet durch User
Kritical R. schrieb: > ich hoffe ich werde alles auf lunux machen können, wegen WinAsm. Hä? > WinAsm Studio is a free Integrated Development Environment IDE > for developing 32-bit Windows and 16-bit DOS programs using > the Assembler.
Kritical R. schrieb: > wegen WinAsm Das ist ein Programm auf Windows für Windows - warum die Sache mit Gewalt verkomplizieren? Für einen blutigen Anfänger ist das nicht die optimale Strategie. Ausserdem kannst du das Ergebnis ja nur unter Windows realistisch testen. So alle paar Minuten, wenn du ein Programm schreibst. Georg
ich denke ich mache beise systeme auf mein laptop weil ich linux lernen möchte und am desktop pc habe ich dann ja sowieso windows
http://radare.org darf natürlich nicht fehlen. Und hier ein kurzweiliger Talk dazu: https://media.ccc.de/v/33c3-8095-radare_demystified
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.