2010-10-20 6 views
6

Ho cercato in lungo e in largo un modo per compilare il mio file .hta (e le risorse) in un file .exe.Compilazione del file .hta su .exe

Ci sono un sacco di applicazioni che affermano di essere in grado di fare questo - ma non hanno funzionato per questa applicazione - che è una miscela di javascript e VB.

Semplicemente, (e ingenuamente,) Non voglio che le persone guardino/rovinino il codice. Qualsiasi suggerimento o soluzione sarebbe molto apprezzato.

EDIT: Ovviamente, capisco che javascript e VB non siano "compilabili" poiché sono lingue interpretate. Sto solo cercando un modo per nascondere veramente la fonte.

+0

Se si convertono le parti di vbscript in jscript, è possibile eseguire tutto il codice tramite un compressore come il compilatore di chiusura di Google o il compressore YUI. Quelli farebbero un lavoro decente di offuscare il codice. – jimbojw

+0

Sì, ho cercato di comprimere il codice. Lo vedo come un ultimo caso. Anche se non è "sicuro", sarebbe certamente di aiuto a scoraggiare il reverse engineering. – devinpleuler

risposta

2

È possibile "compilare exe" semplicemente avvolgendo l'HTA in un file eseguibile che sa come impostare il contesto/finestra HTA.

L'approccio più banale (che suona come ExeScript) è semplicemente estrarre prima le risorse HTA e poi eseguirle. Si potrebbe teoricamente fare questo senza file temporanei iniettando dati in un contesto di IE in esecuzione, ma l'attività diventa più difficile. Il JS interno può o meno essere offuscato e il wrapper può aggiungere o meno un ulteriore livello di offuscamento/"crittografia". (PayMo, e sono sicuro che ce ne sono altri, usa un approccio di contesto incartato per distribuire un singolo exe eseguibile).

Se proteggere "proprietà intellettuale" è l'obiettivo, assumere un buon avvocato :-)

+1

Sì, il consiglio del buon avvocato è purtroppo rilevante. Il software stesso è meno prezioso dell'idea che sta dietro. Generalmente è facile replicare il software. Questa particolare API che stiamo usando non è mai stata utilizzata in questo modo specifico prima. – devinpleuler

1

Non sono sicuro della compilazione di un exe, ma se si minimizza il codice sorgente &, a meno che non si abbia qualcosa di incredibilmente prezioso, sarebbe un lavoro enorme da decodificare.

http://developer.yahoo.com/yui/compressor/

Buona fortuna.

+1

Sono stato in grado di "compilare" su un file .exe utilizzando ExeScript (http://www.hide-folder.com/overview/hf_7.html). Ma l'ho preso barare ... Dice che non scrive nulla sull'HD ma ho trovato tutti i file sorgente nel file temporaneo dell'utente mentre era in esecuzione. Proverò il tuo suggerimento. – devinpleuler

+0

Inoltre, sai se questo supporta non solo un file .hta ma anche file sorgente correlati? (come .js e .htm (l), ecc ...) – devinpleuler

+0

Il mio consiglio sarebbe quello di inserire il più possibile JavaScript nei file .js esterni e minimizzarli. Non sono sicuro di come si possa mai offuscare/minificare l'HTML in modo significativo. –

3

Provare a utilizzare VBSedit, funziona sicuramente per la conversione sia VBS e HTA a exe

3

HtaEdit, fornito di serie con VBSedit, non nasconde veramente il codice hta. In fase di esecuzione, estrae il file hta originale in una sottodirectory in% temp% e lo passa a mshta.exe per l'esecuzione. Gli exe convertiti creati da VBSedit non sembrano farlo per quanto posso dire.

+0

Nel mio caso HTAEdit "compilato" exe estrae il file HTA a% LOCALAPPDATA%/Temp/{*}/*. Hta – omegastripes

1

Non è necessario un compilatore, è necessario un codificatore/decodificatore, come il mio progetto (in costruzione), il progetto CFS (Cryptographica File Security).

0

Il mio indizio è creare file VBScript o JScript per HTA da generare dinamicamente. Quindi non compilare HTA, ma la sceneggiatura. Questo approccio soddisfa i requisiti di sicurezza molto meglio di HTA impacchettato in SFX.

Preparare prima le risorse - importare in HTA tutti i file esterni: script, fogli di stile e immagini (codificati in base64), per rendere l'app standalone HTA. Quindi crea, ad esempio, il file VBScript e copia tutto il contenuto HTML dall'HTA alla variabile stringa nello script, sostituendo i nuovi simboli di riga e di tabulazione su " & vbCrLf & " e " & vbTab & ". Aggiungi il codice a create HTA window dynamically, .write() quella stringa variabile sul documento della finestra e lascia lo script.

Si noti che Window_OnLoad() potrebbe non funzionare correttamente a causa del passaggio del contenuto alla finestra, che era già stato caricato.

Quindi basta crittografare il file VBScript completato in exe (utilizzando l'utilità di crittografia vera, ad esempio Primal Script 2012, ExeScript, VbsEdit o ScriptCryptor). E cambia icona con PE Explorer.

Tutto ciò richiederà un po 'di tempo, ma vale la pena farlo.

UPD: Ecco un esempio di script preparato da link.