2010-10-20 33 views
6

He buscado por todas partes una forma de compilar mi archivo .hta (y recursos) en un archivo .exe.Compilación del archivo .hta en .exe

Hay muchas aplicaciones que afirman poder hacer esto, pero no han funcionado para esta aplicación, que es una mezcla de javascript y VB.

Simplemente, (e ingenuamente) No quiero que la gente mire/atornille con el código. Cualquier sugerencia o solución sería muy apreciada.

EDITAR: Por supuesto, entiendo que javascript y VB no son "compilables", ya que son idiomas interpretados. Solo estoy buscando una manera de ocultar realmente la fuente.

+0

Si convierte las partes de vbscript a jscript, podría ejecutar todo el código a través de un compresor como el compilador de cierre de Google o el compresor YUI. Esos harían un trabajo decente al ofuscar el código. – jimbojw

+0

Sí, he examinado la compresión del código. Veo esto como el último caso. Si bien no es "seguro", sin duda ayudaría a evitar la ingeniería inversa. – devinpleuler

Respuesta

2

Puede "compilar a exe" simplemente envolviendo el HTA en un archivo ejecutable que sepa cómo configurar el contexto/ventana de HTA.

El enfoque más trivial (que suena como ExeScript) es simplemente extraer los recursos HTA/primero y luego ejecutarlos. En teoría, se podría hacer esto sin archivos temporales inyectando datos en un contexto IE en ejecución, pero la tarea se vuelve más difícil. La JS interna puede o no estar ofuscada y la envoltura puede o no agregar una capa adicional de ofuscación/"encriptación". (PayMo, y estoy seguro de que hay otros, usa un enfoque contextual envuelto para distribuir un único ejecutable ejecutable).

Si la protección de la "propiedad intelectual" es el objetivo, contratar a un buen abogado :-)

+1

Sí, la sugerencia de buen abogado es desafortunadamente relevante. El software en sí es menos valioso que la idea detrás de él. En general, es fácil replicar el software. Esta API particular que estamos utilizando simplemente no se ha usado de esta manera específica anteriormente. – devinpleuler

1

No estoy seguro acerca de compilar a un exe, pero si minimizas & ofuscar tu código fuente, a menos que tengas algo increíblemente valioso, sería un gran trabajo de ingeniería inversa.

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

Buena suerte.

+1

Pude "compilar" a un .exe usando ExeScript (http://www.hide-folder.com/overview/hf_7.html). Pero lo pillé haciendo trampa ... Dice que no escribe nada en HD, pero encontré todos los archivos fuente en el archivo temporal del usuario mientras se estaba ejecutando. Intentaré tu sugerencia. – devinpleuler

+0

Además, ¿sabe si esto admite no solo un archivo .hta sino también archivos fuente relacionados? (como .js y .htm (l) etc ...) – devinpleuler

+0

Mi consejo sería poner tanto JavaScript en archivos .js externos como sea posible y minimizarlos. No estoy seguro de cómo podría alguna vez ofuscar/minificar el HTML de una manera significativa. –

3

Trate de usar VBSedit, definitivamente las obras para convertir ambos VBS y HTA a exe

3

HtaEdit, que se suministra junto con VBSedit, realmente no oculta el código hta. En tiempo de ejecución, extrae el archivo hta original en un subdirectorio en% temp% y lo pasa a mshta.exe para que se ejecute. Los exe convertidos creados por VBSedit no parecen hacer esto por lo que yo sé.

+0

En mi caso HTAEdit "compilado" exe extrae el archivo HTA a% LOCALAPPDATA%/Temp/{*}/*. Hta – omegastripes

1

No necesita un compilador, necesita un encriptador/descifrador, como mi proyecto (en construcción), el proyecto CFS (Cryptographica File Security).

0

Mi idea es crear archivos VBScript o JScript para que HTA genere dinámicamente. Entonces compila no HTA, sino el script. Este enfoque cumple con sus requisitos de seguridad mucho mejor que HTA empaquetado a SFX.

Prepare primero los recursos: importe a HTA todos los archivos externos: scripts, hojas de estilo e imágenes (codificadas en base64), para que su aplicación HTA sea independiente. A continuación, cree, por ejemplo, un archivo VBScript y copie todo el contenido HTML de su HTA a la variable de cadena en el script, reemplazando los nuevos símbolos de línea y pestaña por " & vbCrLf & " y " & vbTab & ". Agregue código a create HTA window dynamically, .write() esa variable de cadena al documento de la ventana y cierre la secuencia de comandos.

Tenga en cuenta que Window_OnLoad() puede no funcionar correctamente debido a empujar el contenido a la ventana, que ya estaba cargado.

Luego simplemente encripte su VBScript completado a exe (usando la verdadera utilidad de encriptación, por ejemplo, Primal Script 2012, ExeScript, VbsEdit o ScriptCryptor). Y cambie el ícono con PE Explorer.

Todo eso llevará algún tiempo, pero vale la pena hacerlo.

UPD: Aquí hay un ejemplo de script preparado por el link.

Cuestiones relacionadas