mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Pic 18F1320 sourcecode verloren


Autor: Markus Wegener (Firma: mw elektronik) (markuswegener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

wir haben ein Problem: wir stellen Geräte her auf denen ein pic 18 F 
1320
verbaut ist. Programmiert werden die mittels hexfiles und dem MPlab 
icd2.
Jetzt ist irgendwie die die Software und der sourcecode abhanden 
gekommen
und wir haben nun lediglich verschiene hex-files. Änderungen am Programm
kann man da nicht machen. Gibt es die Möglichkeit die software aus dem 
Pic
zu recovern oder mittel der hexfiles das programm wieder herzustzellen?
wir zahlemn demjenigen der das Problem lösen kann eine größzügige 
Aufwandsentschädigung.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
backup suchen, file-recovery-programm über HDD laufen lassen, neu 
schreiben (lassen), assembler lernen,... viel glück!

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

Bewertung
0 lesenswert
nicht lesenswert
Du musst Dir das vorstellen wie eine Kuh und einen Hamburger. Von der 
Kuh zum Hamburger kommst Du mit einem Fleischwolf, das ist das 
Äquivalent zum Compiler. Für den Weg rückwärts brauchst Du ... etwas, 
was es (praktisch) nicht gibt.

Ein guter Disassembler wie z.b. IDA könnte helfen, aber mehr als 
Assembler-Quelltext kommt dabei nicht heraus.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du den originalen Sourcecode nicht mehr bekommen kannst, dann ist 
die Herstellung des Codes aus dem HEX-File mindestens (!) genauso 
aufwändig, wie die komplette Neuentwicklung. Denk also besser gleich an 
eine Neuentwicklung, zumal Du darin auch gleich Verbesserungen mit 
einbauen kannst.

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Disassemblerlisting lässt sich in MPLAB mit Bordmitteln erzeugen.
Aber die Symbole, d.h. Variablennamen, Defines, Sprungmarken etc. lassen 
sich so nicht rekonstruieren.
Wenn der Sourcecode in Assembler geschrieben worden war, dann lassen 
sich damit u.U. kleinere Änderungen noch durchführen.
Hängt halt davon ab, ob noch grössere Änderungen zu machen sind, oder ob 
der Code stabil ist und nicht mehr gross weitergepflegt werden soll.

Aber eine ev. nicht mehr ganz aktuelle Version muss doch noch auf irgend 
einer Sicherungskopie vorhanden sein, oder?

Autor: ttl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich hab sowas schon mal für einen Kunden gemacht.

Man kommt aber nur wieder bis auf Assembler-Ebene.
Ist auch sehr zeitaufwändig, aber möglich. Bei Interesse 0211/59861212
 www.  ml-engineering .net

Autor: Markus Wegener (Firma: mw elektronik) (markuswegener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

das Programm ist in C geschrieben. Sicherungskopie wurde leider keine
gemacht.

Danke für die Mühe.

Autor: Markus Wegener (Firma: mw elektronik) (markuswegener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich warte mal die anderen antworten ab. Melde mich dann.

Autor: Master Snowman (snowman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Man kommt aber nur wieder bis auf Assembler-Ebene.
> Ist auch sehr zeitaufwändig
das gibts gratis, und ist in ein paar sekunden gemacht ;-)

falls du von assembler zu C meintest: ja, das ist eben der 
rückwärts-fleischwolf

Autor: Bascomfehler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was macht das ganze Teil denn?
Bei max. 8K-Code ja nicht allzuviel.

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde mich an deiner Stelle auf die Festplatte konzentrieren, auf 
der es mal drauf war, oder ist die auch abhanden gekommen? Der 
C-Sourcecode lässt sich nicht wieder herstellen, das liegt einfach 
daran, dass die Symbole alle aufgelöst werden, alle Variablen in 
Adressen gewandelt werden und keine Kommentare mit in das Hexfile 
aufgenommen werden. Diese Information ist für immer verloren. Man kann 
zwar die Struktur und Funktion wieder herstellen, aber auskennen wird 
sich niemand mehr in dem dann generierten C-Code.

Ich kann innerhalb von Sekunden aus dem Hexfile wieder C-Code machen, 
allerdings muss man alle Variablen und Funktionen wieder benennen und es 
ist nicht gewährleistet, dass das Programm strukturell so aussieht wie 
vorher. Optimierungen, die der Compiler durchgeführt hat, sind nicht 
rückgängig zu machen, alle #define sind entfernt und Konstanten hart in 
den Code implementiert, eventuell hat sich die Reihenfolge der 
Abarbeitung geändert, also das was dabei rauskommt ist alles andere als 
wartungsfreundlich.

Ich würde es an deiner Stelle wirklich neu schreiben, wenn du dich noch 
in etwa daran erinnerst, was es gemacht hat. Da kann ein decompiliertes 
hexfile natürlich dabei helfen. Aber wie die Variablen alle heißen, so 
dass es in dem Kontext deiner Schaltung Sinn macht, kannst nur du selbst 
wissen, im hexfile ist diese Information nicht gespeichert.

Ich habe schon öfter erfolgreich gelöschte Daten von meinen Festplatten 
wieder herstellen können. Bei Interesse kann ich die Festplatte gerne 
analysieren. Wichtig ist, dass so wenig wie möglich damit gemacht wird, 
bevor ich sie bekomme, also optimalerweise nicht mal das Betriebssystem 
booten.

Viele Grüße,

Peter

Autor: Draco (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gint einen ganzen Sack Programme, die gelöschte Dateien der üblichen 
Filesysteme wieder herstellen können. Sogar freie:

http://www.officerecovery.com/freeundelete/
http://ntfsundelete.com/

Am besten auf einem anderen PC installieren und dann die zu 
untersuchende Festplatte dort mit dran hängen, so dass man sicher sein 
knn das Windows nicht von sich aus drauf rumschreibt.

Autor: Markus Wegener (Firma: mw elektronik) (markuswegener)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erst mal schönen Dank für die vielen Beiträge und Angebote. Muß jetzt 
erst mal sondieren was wirklich Sinn macht.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Master Snowman wrote:
>> Man kommt aber nur wieder bis auf Assembler-Ebene.
>> Ist auch sehr zeitaufwändig
> das gibts gratis, und ist in ein paar sekunden gemacht ;-)

Falls Du eine Software hast, die das in ein paar Sekunden macht
UND deren Ergebnis sich ohne Nacharbeit, die mehr als ein paar Sekunden 
dauert, wieder ohne Fehlermeldungen assembliert bekommt
UND das Ergebnis dann auch auf dem Prozessor überhaupt wieder läuft
UND auch noch genau das Gleiche macht, wie das Original,
dann hast Du eine Wundersoftware.

Mir ist noch kein Dis-/Reassembler begegnet, der ohne jede Nacharbeit 
Code-, Datenbereiche, Sprungtabellen usw. 100% sicher automatisch 
erkannt hat...

Gruß aus Berlin
Michael

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>dann hast Du eine Wundersoftware.

Die Wundersoftware heißt MPLAB.

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Wundersoftware CCS Compiler kann das nicht nur nach ASM, sondern 
auch gleich nach C, und auch sofort kompilierbar ohne Probleme. Aber wie 
gesagt nicht mehr für Menschen verständlich, solange man das nicht 
nacharbeitet.

Für den Fall, dass du mit Datenrecoverysoftware keinen Erfolg hast, habe 
ich immer noch realistische Chancen an die benötigten Quellcodes 
heranzukommen. Recoverysoftware hat keine Chance mehr, wenn die 
entsprechenden Dateisystemeinträge überschrieben worden sind. Meine 
Tools können Rohdaten auf Festplatten suchen, mit ein wenig Übung findet 
man damit Textdateien mühelos, solange die Sektoren nicht wirklich 
überschrieben worden sind.


Grüße,

Peter

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.