Forum: Mikrocontroller und Digitale Elektronik Pic 18F1320 sourcecode verloren


von Markus W. (Firma: mw elektronik) (markuswegener)


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.

von Master S. (snowman)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


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.

von Manfred (Gast)


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.

von Severino R. (severino)


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?

von ttl (Gast)


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

von Markus W. (Firma: mw elektronik) (markuswegener)


Lesenswert?

Hallo,

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

Danke für die Mühe.

von Markus W. (Firma: mw elektronik) (markuswegener)


Lesenswert?

Hallo ich warte mal die anderen antworten ab. Melde mich dann.

von Master S. (snowman)


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

von Bascomfehler (Gast)


Lesenswert?

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

von Peter D. (pdiener) Benutzerseite


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

von Draco (Gast)


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.

von Markus W. (Firma: mw elektronik) (markuswegener)


Lesenswert?

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

von Michael U. (amiga)


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

von Thomas (Gast)


Lesenswert?

>dann hast Du eine Wundersoftware.

Die Wundersoftware heißt MPLAB.

von Peter D. (pdiener) Benutzerseite


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

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.