kein OpenFile bei .exe Datein?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

kein OpenFile bei .exe Datein?

Beitrag 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
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Wenn die Exe Datei gerade läuft gehts natürlich nicht :lol:
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Kannst du dein Problem genauer beschreiben??
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Captn. Jinguji
Beiträge: 397
Registriert: 07.06.2005 19:47
Computerausstattung: PB 4.73x64, i7, WIN 10x64, ATI NVidia RTX 2070
Wohnort: Witten

Re: kein OpenFile bei .exe Datein?

Beitrag 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.
Ist das Kunst hier, oder kann das weg ?
Benutzeravatar
sen-me
Beiträge: 478
Registriert: 17.07.2005 16:02
Wohnort: Saarbrücken
Kontaktdaten:

Beitrag von sen-me »

habs schon probiert, stimmt mit exen die laufen gehts nicht thx ^^
sonst gehts...
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag 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.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Antworten