www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik *.hex zurück in Source?


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Mir ist was dummes passiert, hab im AVR-Studio ausversehen meine main.c 
gelöscht, wollt aber eigentlich eine andere Datei löschen.

Welche möglichkeit hab ich nun an den Sourcecode wieder zu kommen?
Hab lediglich nur noch die HEX file...

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keine

Autor: Dennis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls du Assembler kannst, kannst du das Hex-File durch einen 
Disassembler schicken, dann ist es wenigstens wieder lesbar ;)
Aber ob du damit dann was anfangen kannst...

Den C-Code bekommst du jedenfalls aus dem HEX-File nicht mehr zurück. 
Aber wenn die Datei "nur gelöscht" wurde, kann man sie vielleicht mit 
irgendeiner Datenrettungssoftware wiederbekommen.

Gruß

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch, lade Dir ein Dateirestaurationprogramm herunter (PCFileInspektor) 
und versuche Dein Glück. Oder gucke mal in den Papierkorb auf Deinem 
Rechner, suche die Datei und klicke auf Wiederherstellen. Wenn das alles 
nicht hilft, hast Du Pech gehabt.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Daniel,

Reverse-Engineering ist mit C nicht (sinnvoll) moeglich. Das naechste 
mal legst Dir ne Sicherheitskopie von Deinen Sourcen an, aus Schaden 
wird man bekanntlich klug ;)

Greets,
Michael

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es hat mal jemand das Problem mit einem Ei und einem Omelette 
verglichen. Das C-Sourcefile ist das Ei, das Hex-File ist das Omelette 
...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel wrote:
> Mir ist was dummes passiert, hab im AVR-Studio ausversehen meine main.c
> gelöscht, wollt aber eigentlich eine andere Datei löschen.


Und wo ist das Problem?

Nimm einfach die *.bak Datei und benenne sie in *.c um.
Oder schau mal im Papierkorb nach.

Wenn Dein Editor beim Speichern keine *.bak anlegen sollte, schmeiß ihn 
weg und nimm nen richtigen.


Kann man im AVR-Studio überhaupt Dateien löschen?

Viele IDEs können nur ne Datei aus dem Build entfernen, löschen muß man 
sie dann extra im Explorer.


Peter

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es hat mal jemand das Problem mit einem Ei und einem Omelette
> verglichen. Das C-Sourcefile ist das Ei, das Hex-File ist das Omelette

Das Omelette einfach in eine Form eines Eies pressen :-D.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der .LST-Datei ist auch der Sourcecode enthalten, allerdings nicht am 
Stück, sondern zu jeder C-Anweisung folgen die entsprechenden 
ASM-Befehle.
Ob sich die Mühe lohnt, das Ganze zu extrahieren, musst Du selber 
entscheiden.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Backup wieder einspielen? >:-]

Ich habe zuweilen wirklich auch schon Disassembler-Listings in
Hochsprache zurück transferiert, aber es ist eine ziemlich
aufwändige Angelegenheit.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Severino R. schrieb:
> In der .LST-Datei ist auch der Sourcecode enthalten, allerdings
> nicht am Stück, sondern zu jeder C-Anweisung folgen die
> entsprechenden ASM-Befehle. Ob sich die Mühe lohnt, das Ganze zu
> extrahieren, musst Du selber entscheiden.

Weniger Mühe hat man, wenn man das den sed machen lässt:
sed -ne '/^ *[0-9]\+:/s/^[^*]*\*\*\*\* //p' main.lst >main.c

Das extrahiert sämtliche in main.lst enthaltenen Quellcodezeilen und
schreibt sie in main.c.

Voraussetzung ist natürlich, dass das main.lst noch vorhanden ist.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wow,

erfreut mich der vielen Vorschläge.

Naja AVR-Studio hat die direkt aus dem Projekt gelöscht mittels "Delete 
File" und im Ordner selbst ist keine Datei mehr vorhanden.

Habs schon mit diversen Datenrettungsprogrammen (ObjectRescue und 
EasyRecovery) probiert, aber die finden keine Datei...

AVR-Studio legt wie mir bekannt ist, leider keine Backups an...

Wo finde ich die Main.lst? verwende, AVR-Studio mit WinARV gcc

Autor: Outi Outlaw (outlaw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wäre es mit einem undelete ??

Falls noch net zu viel auf der Festplatte "rumgesaut" wurde, kann sowas 
(wenns noch net zu lange her ist) noch gerettet werden.

Avira (Hersteller vom gleichnamigen Antivirusprogramm) hat da was 
kostenlos zum runterladen.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel wrote:
> Wo finde ich die Main.lst? verwende, AVR-Studio mit WinARV gcc
Die gibts nur dann, wenn Du vor dem Compilieren unter "Project | 
Configuration Options" im Tab "General" die Option "Generate List File" 
ausgewählt hast. Default-mäßig wird kein .lss erzeugt...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.