Seite 1 von 1

kein OpenFile bei .exe Datein?

Verfasst: 21.10.2005 18:23
von sen-me
irgendwie geht da sbei mir nicht. zumindest verfälscht er alles
gibts da ne lösung?

Code: Alles auswählen

       key.s=GetGadgetText(1)
       key_len=Len(key)
       Dim key_schlussel.b(key_len)
       For i=0 To key_len-1
        key_schlussel(i)=Asc(Mid(key,i+1,1))
       Next
       Dim byte_bank.b(FileSize(file))
       a=0
       For i=0 To FileSize(file)-1
        temp_byte.b=ReadByte()
        temp_byte+key_schlussel(a)
        If a=key_len-1
         a=0
        Else
         a+1
        EndIf
        byte_bank(i)=temp_byte
       Next i
       CloseFile(0)
       If CreateFile(0,file_out)=0
        Error("Konnte die Datei nicht erstellen!",0)
       Else
        For i=0 To FileSize(file)-1
         WriteByte(byte_bank(i))
        Next i
        CloseFile(0)
        SetGadgetText(3,"")
        SetGadgetText(9,"")
        SetGadgetText(1,"")
       EndIf
ja ich weis memory bank... aba daran liegts nich

Verfasst: 21.10.2005 18:36
von DarkDragon
Wenn die Exe Datei gerade läuft gehts natürlich nicht :lol:

Verfasst: 21.10.2005 18:41
von roherter
Kannst du dein Problem genauer beschreiben??

Re: kein OpenFile bei .exe Datein?

Verfasst: 21.10.2005 20:33
von Captn. Jinguji
sen-me hat geschrieben:irgendwie geht da sbei mir nicht. zumindest verfälscht er alles
gibts da ne lösung?

Code: Alles auswählen

       key.s=GetGadgetText(1)
       key_len=Len(key)
       Dim key_schlussel.b(key_len)
[b]       For i=0 To key_len-1
        key_schlussel(i)=Asc(Mid(key,i+1,1))
       Next[/b]       Dim byte_bank.b(FileSize(file))
       a=0
 .
.

ja ich weis memory bank... aba daran liegts nich[/quote]
Ist das gewollt, dass du key_schlussel ab dem 2. Zeichen von Key erst umsetzt ? Machst Du das beim Entschlüsseln genauso ?

Und falls Du so eine Exe-Datei verschlüsselst: Die enthält viele Zeichen mit einem ASCII Wert > 7 Bit kommen , wegen "signed byte" wird aus der Summe eine Differenz. Wenn Du beim Entschlüsseln wieder subtrahierst, passt das nicht mehr. 
Beispiel:
Dein Schlüssel sei '0', also ASCII 48
Das zu verschlüsselnde Zeichen habe den Absolutwert 120, zu denen Du Deine 48 addierst.Gibt 168, aber wegen Vorzeichenbehaftung wird daraus -88, die abgespeichert werden. Wenn Du die dann wieder einliest und durch abziehen von 48 "entschlüsselst", steht da irgendwie was anderes drin als ursprünglich, scheint mir.

Verfasst: 21.10.2005 23:33
von sen-me
habs schon probiert, stimmt mit exen die laufen gehts nicht thx ^^
sonst gehts...

Verfasst: 22.10.2005 10:33
von AND51
habe nicht alles geleson, wollte nur den hinweis geben, dass exe dateien binär geöffnet sein müssen, um operationen damit durchzuführen.
textdateien sind ascii-mäßig zu öffnen, da sie nicht binär sind.
das liegt (aus perl-erfahrung) mit den steuerzeichen, also zeilenumbrüchen zusammen in pb sind glaube ich die zeichen chr(0) bis chr(31) gemeint.
binäres öffnen wandelt chr(10) nicht in einen zeilenumbruch um, während ascii mäßiges öffnen (als wenn man eine normale textdatei öffnet) zeilenumbrüche auch tatsächlichals solche anzeigt.

ich hoffe das konnte helfen, wie gesagt, habe jetzt nicht alles durchgelesen...

Verfasst: 22.10.2005 10:35
von DarkDragon
AND51 hat geschrieben:habe nicht alles geleson, wollte nur den hinweis geben, dass exe dateien binär geöffnet sein müssen, um operationen damit durchzuführen.
textdateien sind ascii-mäßig zu öffnen, da sie nicht binär sind.
das liegt (aus perl-erfahrung) mit den steuerzeichen, also zeilenumbrüchen zusammen in pb sind glaube ich die zeichen chr(0) bis chr(31) gemeint.
binäres öffnen wandelt chr(10) nicht in einen zeilenumbruch um, während ascii mäßiges öffnen (als wenn man eine normale textdatei öffnet) zeilenumbrüche auch tatsächlichals solche anzeigt.

ich hoffe das konnte helfen, wie gesagt, habe jetzt nicht alles durchgelesen...
In PureBasic öffnet man jede Datei gleich, ob Binary oder Text, aber hier in diesem fall kann man EXE Dateien nur lesen(ReadFile() statt Open/CreateFile()), da sie gerade läuft.