Editieren Schönen Mittag, ich habe mich schon eine weile mit dem Discovery-Board (STM32F4) beschäftigt und habe einen guten Überblick der Embedded-Programmierung bekommen. Nun möchte ich mich ein wenig in das Hardware-Hacking einlesen. Erreichen damit möchte ich "erst mal" Dinge wie: Auslesen der Firmware ö. ä. Daten, auslesen des Boot-Logs, evtl. Modifizierung der Firmware (werde ich wahrscheinlich nicht hin bekommen, wäre nur eine Idee in welche Richtung das gehen soll). Mir ist durchaus klar, dass das definitiv nicht einfach ist/wird. Meine Frage letztendlich ist, kennt ihr Geräte (Fernbedienungen, Ebook-Reader usw...) mit denen man besonders einfach basteln/spielen kann? Grüße
Interessierter schrieb: > und habe einen guten Überblick der Embedded-Programmierung > bekommen. Ach wirklich? Warum Fragst du dann hier?
Ich glaube, er meint, daß er eine Weile mit dem Eval.-Board gespielt und programmiert hat. Nun sucht er Consumer-HW, die er SW-mäßig modifizieren kann. Mir fällt so was ein wie: -Custom-ROM für Telefone (Cyanogen-Mod) -DSL Router mit OpenWRT -Raspberry PI Gruß, Walter
Ein "guten Überblick " zu haben bedeutet nicht,dass keine Fragen mehr offen sind. Leider habe ich keine Ahnung über das Genannte, aber der "Gebildete Mensch" eben auch nicht. Also sind eigentlich die letzten 2 Beiträge nicht hilfreich!
Gebildeter Mensch schrieb: > Ach wirklich? > > Warum Fragst du dann hier? Warum fragst du, warum er fragt?
Ich will Dich nicht zu stark frustrieren, aber von Hardware-Hacking bist Du noch ziemlich weit weg, wenn ich Deinen Post so lese. Wenn Du einen Prozessor ausliest, erhältst Du im besten Fall ein Assembler Listing ohne Sprunglabels, ohne Variablennamen etc. Du bekommst nur ein Memorydump. (=Zahlenkolonen). Das wird wahrscheinlich eher nichts. Es ist schon teilweise schwierig zu verstehen, was der Compiler aus Deinem eigenen Quellcode gemacht hat, wenn er fertig ist mit seiner Optimierung. Und jetzt ohne Quellcode und ohne Erfahrung als Einsteiger. Das frustriert. Bleib doch erstmal beim Discovery und lass LEDs blinken, kommuniziere mit anderer Hardware ( wo die Schnittstellen beschrieben ), bau Deine eigene Fernbedienung etc. Ist weniger frustrierend...
Pepe schrieb: > Es ist schon teilweise schwierig zu verstehen, was der > Compiler aus Deinem eigenen Quellcode gemacht hat, wenn er fertig ist > mit seiner Optimierung. > Und jetzt ohne Quellcode und ohne Erfahrung als Einsteiger. Das > frustriert. Sehe ich auch so. Vielleicht ist dies ein Anfang um die Problematik zu verstehen: Erstelle für dein Discovery Board ein etwas komplexeres Programm. Nutze dabei auch Funktionen wie sprintf(), atoi() usw. Aktiviere die *.hex Erstellung. (Alternativ schalte die Debugsymbole im *.elf aus). Nun kannst Du anfangen diesen hex-code zu analysieren.
Wenn es statt ARM auch AVR 8Bit sein darf dann sind die beiden für den Einstieg geeignet: Beitrag "[AVR] Hackbare Handy-Dockingstation mit IR (MRC-60)" Beitrag "[AVR] FM-Transmitter für 1,50EUR --> Ansteuerung?" http://tiny.systems/categorie/hardwareHacks/ Billigst in der Bucht zu bekommen und vielseitig einsetztbar. Zudem ist die Hardware bestens dokumentiert. Alleine hier im Forum findest du einiges an Tipps zu den beiden Teilen. Gruß Thomas
Tach, Interessierter schrieb: > Meine Frage letztendlich ist, kennt ihr Geräte (Fernbedienungen, > Ebook-Reader usw...) mit denen man besonders einfach basteln/spielen > kann? Ja, der alte Klassiker sind die digitalen Foto-Schlüsselanhänger. Google mal nach "dpf hack". Die Dinger sind teils auf Ebay noch für einige wenige Euro zu kriegen. Auf dem 8051 kann man gut hacken lernen, Toolkosten gleich Null. Eher was für Fortgeschrittene sind div. Linux-Plattformen, auf denen man sich am Nachweis von GPL-Verletzungen versuchen kann.. Sonst einfach mal bei hackaday.com inspirieren lassen. Nach oben gibt's kaum Grenzen und ist immer nur eine Frage der "kriminellen Energie" :-) Pepe schrieb: > > Wenn Du einen Prozessor ausliest, erhältst Du im besten Fall ein > Assembler Listing ohne Sprunglabels, ohne Variablennamen etc. Du > bekommst nur ein Memorydump. (=Zahlenkolonen). Das wird wahrscheinlich > eher nichts. Es ist schon teilweise schwierig zu verstehen, was der > Compiler aus Deinem eigenen Quellcode gemacht hat, wenn er fertig ist > mit seiner Optimierung. > Und jetzt ohne Quellcode und ohne Erfahrung als Einsteiger. Das > frustriert. > Ich bin da anderer Meinung. Die Leute, die den Biss haben, an kniffligen Reverse-Engineering-Aufgaben dranzubleiben, sind später die besten Fehlerfinder und sparen dem Arbeitgeber u.U. viel Geld. Oder sie verdienen mit Reverse-Engineering viel Geld. Derjenige, der da nicht aufgibt, schlussendlich versteht, wie die CPU funktioniert und auch nen Oszi bedienen kann, hat deutlich die besseren Karten als der gelernte Einserkandidat, der in einem Tag ne tolle Java-App schreibt. Also nur Mut und ran an den Speck, Frust muss nicht vergebene Zeit sein.
Fitzebutze schrieb: > Die Leute, die den Biss haben, an kniffligen > Reverse-Engineering-Aufgaben dranzubleiben, Da geb ich Dir schon Recht. Aber damit dies funktioniert, musst Du aber mehr als nur einen "Überblick" haben. Natürlich kann man auch den harten Weg gehen, und gleich mit der "Königsklasse" einsteigen. Aber die meisten bleiben dann irgendwo auf der Strecke und werfen das Projekt dann in die Ecke ;-) PS. Ich hab da meine eigene Meinung zu Einserkandidaten. Mit auswendig Lernen kommt man in gewissen Bereichen dann doch nicht weiter. Übrigens, ich war aber bei weiten keiner.
Vielen Dank für die vielen Vorschläge, diese werde ich auf jeden Fall berücksichtigen. Für alle die mich falsch verstanden haben, ich beschäftige mich "schon" seit zwei Jahren mit Mikrocontrollern (Das Discovery-Board war nur ein Beispiel, bzw. das Resultat. nach einem Jahr AVR's. Mit diesem Board durfte ich schon einiges basteln), das verstehe ich unter einen guten Überblick ;) Grüße
Pepe schrieb: > PS. Ich hab da meine eigene Meinung zu Einserkandidaten. Mit auswendig > Lernen kommt man in gewissen Bereichen dann doch nicht weiter. Übrigens, > ich war aber bei weiten keiner. Wer in technisch/naturwissenschaftlichen Fächern der Meinung ist, gute Noten lassen sich nur/überhaupt mit Auswendiglernen erzielen, der hat meiner Meinung nach irgendwas wichtiges nicht mitgekriegt...
Es ist immer schwer, jemanden einzuschätzen, der sagt, er hätte einen Überblick. Ich mache reverse-engineering vom MCS51 bis zum Cortex A17 auf HEX Basis oder auch mit IDA und das seid >10 Jahren. Aber ich hätte auch geschrieben, dass ich einen Überblick habe... Zum Reverse-Engineering zählen so viele Kleinigkeiten und die variieren auch noch sehr nach Themengebiet und Quelle der Hardware. Aber wenn du mit Assembler groß geworden bist, dann hast Du ein Gefühl dafür bekommen, warum Leute auf die Idee kamen Compiler zu erfinden. Und wenn Du dann viele Jahre damit verbracht hast, Deinen Code nach dem compileren noch mal als Assembler Listing zu betrachten, um Optimierungspunkte zu finden, damit es doch noch in den Speicher passt, dann kann man auch heute recht schnell Schemata in Assembler erkennen und findet Function-Entry- und Function-Exit-Code, kann anhand von Stackframes auf die Anzahl der lokal angelegten Variablen schätzen und so weiter. Dann kann man auch mal einen kompletten Kernel im Disassembler zerlegen und die nötige Hardware Konfiguration für sein China-Tablet daraus hervorzaubern. Heute bedeutet aber Hardware-Hacking oft etwas anderes. Man sucht eine Einsteigslücke, also z.B. Testpunkte für die Serielle oder ein JTAG Interface. Man probiert die üblichen Kombinationen von admin:admin oder root:[Enter] und schaut, ob man das Gerät (VOIP Telefon, TV, Bilderrahmen, Android Tablet) so weit frei geschaltet bekommt, dass man eigene Tools installieren kann... Das ist erst einmal viel Einfacher, als zu analysieren, welche CPU ein Autoradio mit Navi benutzt, ob es ein Tool dafür gibt, die CPU zu flashen und das Flash auszulesen. Einen Adapter bauen, mit dem man Auslesen kann, dann zu sehen, dass der Hersteller das Auslesen nicht verhindert hat und man den kompletten Code durch einen Disassembler schicken kann. Da findet man dann den Code, der die Lenkradfernbedienung erkennt und auswertet... Schick! Normal hätte man 120€ für ein Adapter-Modul von Lenkradfernbedienung auf das Radio bezahlen müssen, nun tut es ein AVR mit 1.5kB Code und ein paar zusätzliche Bauteile. Die Welt des Hardware-Hacking und Modding ist so bunt, dass es für den Anfänger und den Fortgeschrittenen viele Betätigungsfelder gibt. Am Besten ist es aber sicherlich, erst einmal einige vorhandene Hacks nachzuvollziehen. Alle großen Künstler haben erst einmal kopiert :) Gruß Ulrich
Ulrich P. schrieb: > Heute bedeutet aber Hardware-Hacking oft etwas anderes. Man sucht eine > Einsteigslücke, also z.B. Testpunkte für die Serielle oder ein JTAG > Interface. Man probiert die üblichen Kombinationen von admin:admin oder > root:[Enter] und schaut, ob man das Gerät (VOIP Telefon, TV, > Bilderrahmen, Android Tablet) so weit frei geschaltet bekommt, dass man > eigene Tools installieren kann... Danke dafür. Genau das wollte ich eigentliche fragen, bzw wissen, wahrscheinlich habe ich mich zu undeutlich ausgeprochen. Mehr möchte ich erst einmal nicht in die Tiefe gehen ;) Grüße
Dann such Dir ein passendes Opfer... äh... Gerät und leg los. Es gibt hier im Forum unzählige Dinge, die gehackt worden sind. Vom einfachen Thermostat vom Aldi bis hin zu VoIP Telefonen. Mit Sicherheit kann man Dir aber hier auch wirkliche Ratschläge geben, wenn Du mit was definierbaren kommst. Also quasi "Ich habe Gerät X und darin steckt CPU Blabla und ich habe schon mal folgende Testpunkte A, B, C entdeckt, die das und das machen. Wie komme ich jetzt weiter?" Dann haben wir einen Anhaltspunkt und können Dir was raten. Nimm dir ein lohnenswertes Objekt vor, selbst wenn es am Anfang ein wenig zu schwer erscheint und bleibe dran. Dann kommt hier Fragen, wenn Du stecken bleibst. Kein Problem! Gruß und viel Spaß! Ulrich
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.