Hallo,
flog hier nichtmal ein Snippet rum, wo man seinen Text eingeben konnte und was einen String zurücklieferte, wo alle Buchstaben mit chr() codiert waren?
Eingabe: ABC
Programm liefert zurück: Chr(65)+Chr(66)+Chr(67)
Das dient dazu einfache Texte in einer .exe halbwegs unlesbar zu machen...
Einfacher Textverschlüssler für .exe ... chr(x)
Liegt daran, dass PB erkennt, dass die 2 Strings den selben Inhalt haben
und dann gleich das ganze sogar noch ein Schritt weiter optimiert:
und dann gleich das ganze sogar noch ein Schritt weiter optimiert:
Code: Alles auswählen
; bla$ = "ABC"
MOV edx,_S1
LEA ecx,[v_bla$]
CALL SYS_FastAllocateStringFree
; blu$ = Chr(65) + Chr(66) + Chr(67)
MOV edx,_S1
LEA ecx,[v_blu$]
CALL SYS_FastAllocateStringFree
Deine Lösung?
Ich stand vor dem gleichen Problem und hab die Caesar-Chiffre von NTC
http://www.purearea.net/pb/CodeArchiv/E ... Chiffre.pb
mal ein bisschen abgewandelt:
Ich hab abd = 132 gewählt, weil evtl. ansonsten mache Zeichen als " wiedergegeben werden könnten.
Einfach die neu erstellte Datei spracheneu.txt öffnen und dann die Data$ in das eigene Programm kopieren und den Decodierer über die so erstellte Data laufen.
Herzlichen Dank an NTQ für die Vorarbeit
http://www.purearea.net/pb/CodeArchiv/E ... Chiffre.pb
mal ein bisschen abgewandelt:
Code: Alles auswählen
kload = 5
Dim Language$(kload)
Dim Language1$(kload)
Restore BaseLanguage
For k=0 To kload
Read Language$(k)
Next
abd = 132
For abc = 0 To kload
For Position.l=1 To Len(Language$(abc))
z$=Mid(Language$(abc),Position,1)
var1=Asc(z$)+abd
If var1>255
var1-256
EndIf
Language1$(abc) = Language1$(abc)+Chr(var1)
Next
Next
;---------------Dieser Text muss in das orignäre Programm zur Decodierung--------------
;abd=132
;For abc = 0 To kload
;abc$=""
;For Position.l=1 To Len(Language$(abc))
; z$=Mid(Language$(abc),Position,1)
; var1=Asc(z$)+256-abd
; If var1>255
; var1-256
; EndIf
; abc$=abc$+Chr(var1)
;Next
;language$(abc) = abc$
;Next
;---------------Ende Text muss in die Programmdecodierung--------------
For abc=0 To kload
language1$(abc) = "Data$ "+Chr(34)+language1$(abc)+Chr(34)
Next
FF = CreateFile(#PB_Any, "spracheneu.txt")
If FF
For abc=0 To kload
WriteStringN (language1$(abc))
Next
CloseFile(FF)
Else
; Couldn't create file
EndIf
DataSection
BaseLanguage:
Data$ "Abcdefghijklmnopqrstuvwxyundzett" ;0
Data$ "Dein eigener Test" ;1
Data$ "Dein eigener Text" ;2
Data$ "Probier es aus" ;3
Data$ "und noch einmal? " ;4
Data$ "es reicht!" ;5
EndDataSection
Einfach die neu erstellte Datei spracheneu.txt öffnen und dann die Data$ in das eigene Programm kopieren und den Decodierer über die so erstellte Data laufen.
Herzlichen Dank an NTQ für die Vorarbeit
