Forum: Compiler & IDEs Tools gesucht


von Rangi J. (rangi)


Lesenswert?

Hallo Forum,

ich suche Tools oder Ideen um eine Firmware zu verschlüsseln und zu 
übertragen. Es soll unter Windows laufen und möglichst nicht 
selbst-programmiert sein. Also gescriptete Tools die man in Batches 
rufen kann. Es soll für den Anwender leicht nachvollziehbar sein, was 
mit der Firmware passiert. Desweiteren soll derjenige, der dann mal ein 
das Firmwareupdate macht, nicht die Firmware entschlüsseln können. Die 
verschlüsselten Daten soll erst auf µC wieder entschlüsselt werden.
Folgendes ist meine Vorstellung:
- S19-File zeilenweise AES verschüsseln
- (Länge + Verschüsseltet Zeile) * Zeilenanzahl in Datei speichern
- je eine Zeile per serieller Schnittstelle senden und auf ACK warten

Auf dem µC steht eine AES-Hardware zur Verfügung, jedoch ist diese nur 
Atomar verwendbar, da diese gleichzeitig noch für andere Aufgaben 
verwendet wird. Es steht auch nicht genügend Platz (weder RAM noch 
Flash) zur Verfügung um ein komplettes S19-File zu speichern.
Ich hab schon mit teraterm rumgespielt, aber das kann keine Binärdaten 
verarbeiten (bricht ab, wenn 0x00 in Datei enthalten ist).
Wie würdet Ihr das lösen?

von Guest (Gast)


Lesenswert?


von Guest (Gast)


Lesenswert?


von Rangi J. (rangi)


Lesenswert?

hmm, ganz schön teuer ...

von Karl M. (Gast)


Lesenswert?

Rangi J. schrieb:
> hmm, ganz schön teuer ...

Sicherheit kostet Geld, auch die Menschen/ Entwickler wollen etwas im 
Kühlschrank haben.
Der Beruf und das Einkommen eines Mathematikers ist nicht sonderlich 
hoch.
Wenn Du es kostenlos entwickeln kannst, dann bitte.

von Pic T. (pic)


Lesenswert?

naja, aber du hast auch komische Anforderungen.
Mit dem tinybootloader Protocol (pic) könntest du die Applikation haben,
dann musst du aber von deinen Vorderungen abkommen.

von Random .. (thorstendb) Benutzerseite


Lesenswert?

Hab das mal selbst geschrieben, mit SW AES lib. Die PC Version landete 
in einem Konsole-Programm. In der µC Variante sind Intrinsics, AES 
Tables liegen im Flash (dahingehend wurde der original AES angepasst).

Ich würde die Binärversion der Firmware blockweise ver-/entschlüsseln, 
in Häppchen, die in einem Rutsch in den FlashAlg geschoben werden können 
(z.B. 256 Byte).

In meinem Fall wird die neue Firmware von einer SD Card gelesen, aber 
das ist prinzipiell ja egal.

von Patrick C. (pcrom)


Lesenswert?

Da keine microcontroller genennt wird nehme ich an es geht sich um die 
Cypress PSOC 3/5LP.

Der gibt ein professioneller bootloader mit einige standardfunktionen 
die password und dabei gibt es, wenn ich mich nicht irre, auch die 
source-code frei.

Falls es um einen anderen controller geht, bitte angeben welches weil es 
pro hersteller sehr unterschiedlich ist.

von Patrick C. (pcrom)


Lesenswert?

O ja, und wenn du Teraterm benutzt, wuerde es schoen wenn dein 
bootloader zB via ZMODEM funktioniert.

von Rangi J. (rangi)


Lesenswert?

so, habs hinbekommen. funktioniert.

Hab jetzt nur noch ne kleinigkeit: Wie kann ich im CCS6 einen Step 
"starten" nach dem HEX Utility?

Es gibt unter "Project" - "Properties" - "Build" - Tab "Steps" die 
Möglichkeit Pre-build und Post-build steps einzutragen. Das hab ich 
gemacht, wird auch gerufen, leider aber zeitlich vor dem HEX-Utility. 
Ich will aber die Ausgabe dieses Hex-Tools verwenden.
Wie kann ich etwas nach dem HEX-Utility starten?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Den Aufruf des "Hex Utility" durch was anderes ersetzen?

von Patrick C. (pcrom)


Lesenswert?

> Wie kann ich etwas nach dem HEX-Utility starten?

Nur einen batchfile starten. Dann in der batchfile die verschiedene 
tools nacheinander starten.

https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/start.mspx?mfr=true

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.