Forum: Mikrocontroller und Digitale Elektronik Hardware Hacking - Wo anfangen?


von Interessierter (Gast)


Lesenswert?

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

von Gebildeter Mensch (Gast)


Lesenswert?

Interessierter schrieb:
> und habe einen guten Überblick der Embedded-Programmierung
> bekommen.


Ach wirklich?


Warum Fragst du dann hier?

von Walter (Gast)


Lesenswert?

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

von Danny (Gast)


Lesenswert?

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!

von Thomas H. (thoern)


Lesenswert?

Gebildeter Mensch schrieb:
> Ach wirklich?
>
> Warum Fragst du dann hier?

Warum fragst du, warum er fragt?

von Pepe (Gast)


Lesenswert?

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...

von Steffen R. (steffen_rose)


Lesenswert?

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.

von Th. B. (thbaum)


Lesenswert?

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

von Fitzebutze (Gast)


Lesenswert?

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.

von Pepe (Gast)


Lesenswert?

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.

von Sebastian (Gast)


Lesenswert?

Weil eine Fernbedienung genannt wurde:
http://www.bettyhacks.com/
(Siehe Forum / Wiki)

von Interessierter (Gast)


Lesenswert?

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

von mse2 (Gast)


Lesenswert?

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...

von Ulrich P. (uprinz)


Lesenswert?

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

von Interessierter (Gast)


Lesenswert?

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

von Ulrich P. (uprinz)


Lesenswert?

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
Noch kein Account? Hier anmelden.