Suche Quellcode .BINI <--> .INI

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Lorca
Beiträge: 147
Registriert: Di 3. Nov 2020, 12:25

Suche Quellcode .BINI <--> .INI

Beitrag von Lorca »

Hallo zusammen, :)

.BINI Dateien sind verschlüsselte .INI Dateien.
Nun möchte ich gerne diese .BINI Dateien nach .INI Dateien entschlüsseln.
Ich kenne jedoch weder den Algorithmus dazu, noch den Aufbau der Struktur in den BINI Dateien.
Vllt. habe ich ja Glück und einer von euch kann helfen.


Gruß
Lorca

Benutzeravatar
theo
Beiträge: 9859
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche Quellcode .BINI <--> .INI

Beitrag von theo »


Lorca
Beiträge: 147
Registriert: Di 3. Nov 2020, 12:25

Re: Suche Quellcode .BINI <--> .INI

Beitrag von Lorca »

Hallo zusammen, hallo theo, :)

herzlichen Dank für Deinen Link.
Ist leider C. Meine C (Grund) Kenntnisse sind über 30 Jahre alt. :roll:
Ich hatte im stillen gehofft, Zugang zu einen LAZ Pascal QuellCode zu bekommen. :lol:
Den hatte ich auch schon einmal aus einem anderen Forum erhalten. Aber dort kann ich keine Anfragen mehr stellen. Scheint für neue Themen geschlossen zu sein.
Dummerweise ist mir dieser Code über die Jahre verloren gegangen.
Naja mal Schauen,vllt. gelingt mir eine Umsetzung in Laz pascal.

Viele Grüße
Lorca
PS: Ja ich kenne BINI.EXE und UNBINI.EXE Nuzt mir aber nichts. Allein der QuellCode hilft

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 5739
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Suche Quellcode .BINI <--> .INI

Beitrag von af0815 »

In dem Artikel ist der Aufbau sehr gut beschrieben. Das sollte machbar sein. Verwrnde für deine Versuche eine einfaches Programm ohne viel externe Komponenten, dann kann man den Code auch hier im Forum hochladen und schauen wo es zwickt.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Lorca
Beiträge: 147
Registriert: Di 3. Nov 2020, 12:25

Re: Suche Quellcode .BINI <--> .INI

Beitrag von Lorca »

Hallo zusammen, :)

OK, vergesst diese Frage. Ich denke meine Vermutung passt.

Gruß
Lorca

Benutzeravatar
theo
Beiträge: 9859
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche Quellcode .BINI <--> .INI

Beitrag von theo »

Code: Alles auswählen

    puint8_t = ^uint8_t;
    uint8_t = byte;
    uint16_t = word;
    uint32_t = dword;

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 221
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint20.3, Win10, Lazarus 2.2.0, FPC3.2.2
CPU-Target: 64Bit
Wohnort: Illertissen
Kontaktdaten:

Re: Suche Quellcode .BINI <--> .INI

Beitrag von h-elsner »

Im FPC gibt es auch uint8, uint16 usw. Die verwende ich in solchen Fällen, um auf der sicheren Seite zu sein.

Gruß HE

Lorca
Beiträge: 147
Registriert: Di 3. Nov 2020, 12:25

Re: Suche Quellcode .BINI <--> .INI

Beitrag von Lorca »

Hi, :)

danke für Deine Antwort :)

Ich verstehe derzeit nicht ganz den Datentypen: float f32
Bei den realen Datentypen hat der Typ: EXTENDED genau 10 Bytes.
Hier sind aber 32 Bytes gefordert.

Was verstehe ich falsch?

Gruß
Lorca

Benutzeravatar
h-elsner
Lazarusforum e. V.
Beiträge: 221
Registriert: Di 24. Jul 2012, 15:42
OS, Lazarus, FPC: LINUX Mint20.3, Win10, Lazarus 2.2.0, FPC3.2.2
CPU-Target: 64Bit
Wohnort: Illertissen
Kontaktdaten:

Re: Suche Quellcode .BINI <--> .INI

Beitrag von h-elsner »

Würde ich mit double übersetzen.

Benutzeravatar
theo
Beiträge: 9859
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche Quellcode .BINI <--> .INI

Beitrag von theo »

h-elsner hat geschrieben:
So 6. Nov 2022, 09:18
Würde ich mit double übersetzen.
Nö, Single hat 32bit.

Benutzeravatar
theo
Beiträge: 9859
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche Quellcode .BINI <--> .INI

Beitrag von theo »

Der faule Programmierer bescheißt und nimmt h2pas :mrgreen:
( ~/fpcupdeluxe/fpc/bin/x86_64-linux/h2pas)

Code: Alles auswählen

unit test;
interface

{
  Automatically converted by H2Pas 1.0.0 from test.h
  The following command line parameters were used:
    test.h
}

{$IFDEF FPC}
{$PACKRECORDS C}
{$ENDIF}


  type
   //diese sind von mir
    puint8_t = ^uint8_t;
    uint8_t = byte;
    uint16_t = word;
    uint32_t = dword;
    int32_t = longint;    
    
   { 0x494e4942 "BINI"  }
  { 0x00000001  }
  { file offset to string table  }   
  
    bini_header = record
        magic : uint32_t;
        version : uint32_t;
        stroff : uint32_t;
      end;

  { string table offset  }
  { number of entries to follow  }
    bini_section = record
        name : uint16_t;
        nentry : uint16_t;
      end;

  { string table offset  }
  { number of values to follow  }
    bini_entry = record
        key : uint16_t;
        nvalue : uint8_t;
      end;


  const
    VALUE_INTEGER = 1;    
    VALUE_FLOAT = 2;    
    VALUE_STRING = 3;    
  { string table offset  }

  type
    bini_value = record
        _type : uint8_t;
        value : record
            case longint of
              0 : ( i32 : int32_t );
              1 : ( f32 : single );
              2 : ( _string : uint16_t );
            end;
      end;


implementation


end.

Lorca
Beiträge: 147
Registriert: Di 3. Nov 2020, 12:25

Re: Suche Quellcode .BINI <--> .INI

Beitrag von Lorca »

Hallo zusammen, :)

zunächst einmal herzlichen Dank für eure Hilfe bis hierher. :)

Und nun nehmt bitte meine Entschuldigung an.
Man, man man, ich sollte nicht mehr am frühen morgen Themen bearbeiten, bei denen man seinen Grips braucht.
Die Frage nach den Datentypen war echt kriminell. Dennoch danke für eure Hilfe.

Gruß
Lorca

Lorca
Beiträge: 147
Registriert: Di 3. Nov 2020, 12:25

Re: Suche Quellcode .BINI <--> .INI

Beitrag von Lorca »

Eine weitere Frage,

derzeit nutze ich die EDITOR.EXE zur Kontrolle der BINI Datei.
Dieser ist jedoch völlig unzureichend, da ich nicht die Position eines Zeichens in der BINI Datei gemeldet bekomme.
Da ich diese BINI Datei mit TFileStream auslese benötige ich sehr intensiv die Methode SEEK.
Ich positioniere wohl falsch, da ich mit ReadAnsiString immer einen Abbruch bekomme.

Ein Editor bei dem die Position des Zeichens gemeldet wird, würde mein Verständnis zur Positionierung deutlich verbessern.

Kann jemand helfen?


Gruß
Lorca

Benutzeravatar
theo
Beiträge: 9859
Registriert: Mo 11. Sep 2006, 19:01

Re: Suche Quellcode .BINI <--> .INI

Beitrag von theo »

Was du suchst, nennt man HEX Editor.
Auf KDE z.B. Okteta.

PascalDragon
Beiträge: 666
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Suche Quellcode .BINI <--> .INI

Beitrag von PascalDragon »

Lorca hat geschrieben:
So 6. Nov 2022, 12:20
Da ich diese BINI Datei mit TFileStream auslese benötige ich sehr intensiv die Methode SEEK.
Ich positioniere wohl falsch, da ich mit ReadAnsiString immer einen Abbruch bekomme.
ReadAnsiString liest einen String, der mit WriteAnsiString geschrieben wurde. Es ist nicht dazu geeignet beliebige Daten in einen String zu lesen. Für beliebige Daten musst du Read direkt nutzen.
FPC Compiler Entwickler

Antworten