- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 7 von 7

Thema: Firmware (.hex) eines E Scooter BLDCs reversen und verstehen?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von wkrug Beitrag anzeigen
    Ich denke das die Firmware in einer Hochsprache geschrieben und dann Assembliert wurde.
    ....
    Oftmals ist es einfacher selber einen komplett neuen Quelltext z.B. in C zu schreiben, bevor man eine vorhandene .hex Datei zerfieselt.
    Oder anders formuliert, wer das selber locker programmieren kann, versteht möglicherweise den disasemblierten Code, den ein anderer geschrieben hat.

    Am Ende läuft es darauf hinaus, aus der Form einer Pfütze herzuleiten, wie der Eisblock mal ausgesehen, aus dem sie entstanden ist.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  2. #2
    Der Code ist nicht disassembliert sondern decompilliert, dürfte also deutlich besser sein als ein Disassembly. Genau da liegt auch das Problem,
    ich kann fast alles, nur Programmieren gehört leider nicht dazu, dass das für so ein Vorhaben ziemlich blöd ist nicht programmieren zu können weiß ich auch.
    Ich würde ja das Programm wenn ichs könnte neu schreiben oder jemanden fragen der das kann, aber erstens interessiert mich wie die originale Firmware da drin funktioniert (Die ist schon ziemlich gut) und zweitens dürfte es wahrscheinlich mehr aufwand sein eine Firmware von jemandem schreiben zu lassen (Wie geschrieben ich kann leider nicht wirklich programmieren) die genauso viel kann wie die die jetzt drauf ist, anstatt die jetztige so weit zu zerlegen dass man entsprechend Kennwerte ändern kann. Hier mal ein Auszug aus dem Decompilat, versche mich auch gerade dran die Memory MAP das Prozessors in IDA einzugeben, vielleicht wirds dann verständlicher, das hier ist eine Funktion:
    int __fastcall sub_800714C(int result, _DWORD *a2, unsigned int a3)
    {
    char v3; // t1
    bool v4; // cf
    unsigned int i; // r2
    int v6; // r3
    int v7; // r4
    int v8; // r5
    int v9; // r12
    bool v10; // nf
    int v11; // r3
    int v12; // r12
    int v13; // t1
    __int16 v14; // t1
    int v15; // r3
    int v16; // r12
    _DWORD *v17; // r0

    if ( a3 )
    {
    if ( (_DWORD)a2 << 30 )
    {
    while ( 1 )
    {
    --a3;
    v3 = *(_BYTE *)a2;
    a2 = (_DWORD *)((char *)a2 + 1);
    *(_BYTE *)result++ = v3;
    if ( !a3 )
    break;
    if ( !((_DWORD)a2 << 30) )
    goto LABEL_5;
    }
    }
    else
    {
    LABEL_5:
    if ( result << 30 )
    {
    v4 = a3 >= 8;
    for ( i = a3 - 8; v4; result = (int)(v17 + 1) )
    {
    v15 = *a2;
    v16 = a2[1];
    a2 += 2;
    v4 = i >= 8;
    i -= 8;
    *(_DWORD *)result = v15;
    v17 = (_DWORD *)(result + 4);
    *v17 = v16;
    }
    v10 = ((i << 29) & 0x80000000) != 0;
    }
    else
    {
    v4 = a3 >= 0x10;
    for ( i = a3 - 16; v4; result += 16 )
    {
    v6 = *a2;
    v7 = a2[1];
    v8 = a2[2];
    v9 = a2[3];
    a2 += 4;
    v4 = i >= 0x10;
    i -= 16;
    *(_DWORD *)result = v6;
    *(_DWORD *)(result + 4) = v7;
    *(_DWORD *)(result + = v8;
    *(_DWORD *)(result + 12) = v9;
    }
    v10 = ((i << 29) & 0x80000000) != 0;
    if ( __CFSHL__(i, 29) )
    {
    v11 = *a2;
    v12 = a2[1];
    a2 += 2;
    *(_DWORD *)result = v11;
    *(_DWORD *)(result + 4) = v12;
    result += 8;
    }
    }
    if ( v10 )
    {
    v13 = *a2;
    ++a2;
    *(_DWORD *)result = v13;
    result += 4;
    }
    if ( __CFSHL__(i, 31) )
    {
    v14 = *(_WORD *)a2;
    a2 = (_DWORD *)((char *)a2 + 2);
    *(_WORD *)result = v14;
    result += 2;
    }
    if ( ((i << 31) & 0x80000000) != 0 )
    *(_BYTE *)result = *(_BYTE *)a2;
    }
    }
    return result;
    }

    Ein Depp wie ich versteht natürlich noch nicht mal die Befehle in sich, da brauche ich leider noch nicht mal versuchen, das ganze Programm zu verstehen...

Ähnliche Themen

  1. Akku: Zehn Verletzte bei E-Scooter-Brand im Wohnhaus
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 26.05.2020, 12:52
  2. Motor für Elektro-Scooter
    Von AlphaRay im Forum Motoren
    Antworten: 5
    Letzter Beitrag: 04.04.2011, 11:35
  3. Kaufbeispiele für BLDCs mit Sensoren
    Von superjany im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 08.05.2010, 17:59
  4. Asuro Scooter
    Von Desti1989 im Forum Asuro
    Antworten: 7
    Letzter Beitrag: 09.11.2009, 15:08
  5. Antworten: 3
    Letzter Beitrag: 30.06.2005, 21:24

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test