@gian82,
devi tenere SEMPRE presente che DECOMPILARE un eseguibile e' una pratica non particolarmente complicata:
- e' semplice nel caso di un binario (CL o Java) NON offuscato, perche' il risultato e' perfettamente comprensibile
- e' semplice nel caso di un binario (CL o Java) offuscato, ma leggermente piu' complesso da analizzare, perche' il nome delle classi, dei metodi sono 'strani'. Ma comunque e' ancora analizzabile, visto che non e' possibile offuscare le classi del JDK e difficilmente uno offusca le classi delle librerie esterne.
- non e' particolarmente complicato nel caso di binari nativi: NON OTTIENI il sorgente C/Delphi/ecc, ma ottieni un sorgente assembler che e' tranquillamente analizzabile.
QUINDI se la tua password e' memorizzata in chiara, non serve a nulla.
Ma poiche' il tuo eseguibile deve chiamare un'altro eseguibile e questo lo fai attraverso le API di windows, che NON PUOI affuscare, ecco che con un po' di pazienza uno puo' intercettare la chiamata (mediante un debugger) e ricuperare la password.
Ti consiglio di studiarti un po' di crittografia, non tanto gli algoritmi, ma i concetti base ed i protocolli, perche' quello che stai realizzando, per quanto PER TE interessante, non prende in considerazione l'assioma FONDAMENTALE della crittografia:
LA CHIAVE NON DEVE ESSERE SALVATA DA NESSUNA PARTE.
Quale chiave?
LA PRIMA.
Cioe' quello che si fa di solito e' avere un repository di chiavi, che sono difficili da memorizzare (perche' ad esempio sono dei numeri da 1024 bit), CIFRATO e la CHIAVE di cifratura/decifratura la inserisci SOLO quando necessario, e la devi inserire mediante un sistema che non lasci traccia sul PC:
- da tastiera,
- mediante un file memorizzato in una chiavetta esterna
- mediante qualche sistema biometrico
- ecc...
Ricorda: LA FORZA del sistema crittografica sta SOLO ED ESCLUSIVAMENTE nella chiave, che DEVE ESSERE ESTREMAMENTE COMPLICATO ricuperare a meno di non essere quello che la conosce.