Grazie delle risposte. Nel frattempo ho notato una cosa incresciosa... :) : aprendo una dll compilata tramite la Free Pascal IDE con un semplicissimo Blocco Note.... il codice non lo vedo, ma le stringhe inserite nel codice le vedo TUTTE belle belle chiare chiare. :o
E poiché ho invece notato che le variabili integer non sono riportate nella dll, mi è venuta in mente una soluzione forse per me più accessibile e che evita l' uso di password: prendiamo la Stringa 'ciao'.
Se codifico il testo in HEX con un qualsiasi convertitore online esso diventa 6369616F, che in decimale è 1667850607
Per cui se scrivo (scusate se c' è qualche errore madornale):
var
i: Int64;
Flag: String;
begin
i := 1667850607;
Flag := hexStr(i,8); // 8 è la lunghezza di '6369616F'
ShowMessage(Flag);
end;
Dovrei avere Flag = '6369616F' (da convertire successivamente in 'ciao' con una qualche funzione di decodifica, da 'scoprire' in seguito, per adesso risolviamo questa) ma invece ottengo Flag = 1667850607'. Dove sbaglio?
EDIT: ho sbagliato funzione, non hexStr ma IntToHex.... ok, vado avanti così, un pò di difficoltà la ho creata.
i numeri interi vengono salvati in esadecimale con byte meno significativo a destra
metti questo codice in un form e poi lancia SalvaNumero;
Apri poi il file con un editor di testo, cosa leggi? ;)
procedure TForm1.SalvaNumero;
begin
with TFileStream.Create('C:\ciao.txt', fmCreate) do
try
WriteDWord(1667850607);
Close;
finally
Free;
end;
end;
Edit:
questo è quello che vedresti aprendo un EXE o DLL con un editor esasdecimale