Bueno pues como algunos no lo tendran muy claro vamos a explicarlo a grandes rasgos:Conocimientos necesarios
1 - Saber como funciona un crypter
2 - Saber un minimo de php
Bueno pues ya podemos empezar a crear nuestro crypter online. Lo primero que vamos a necesitar será el stub, si ya lo tenemos hecho podemos seguir.¿Como funciona el builder?
1 - Abrir el archivo que quieres encriptar
2 - Encriptarlo
3 - Juntarlo con el stub
¿Como funciona el stub?
1 - Al abrirlo se lee
2 - Coge el contenido encriptado
3 - Lo desencripta
4 - Lo carga en memoria (si es runtime)
Bien cuando ya tenemos el stub hecho vamos a proceder a hacer el upload de archivos en php (que seria el paso 1 del builder), constaria de 2 archivos index.html (el formulario de carga) y crypter.php(este archivo recibe el archivo y hace el resto de los pasos).
El index.html te deberia de quedar asi
y su codigo es:
Bien, pues ahora a por lo "dificil" del asunto el archivo crypter.php, que usara otros dos archivos mas funciones.php (que contendra las funciones necesarias junto con la encriptacion que usaremos) y configuracion.php (que tendra la configuracion (nombre del stub, version.....).
Vamos a empezar explicando funciones.php:
Tenemos 3 funciones Leer, Crear y XOREncryption, voy a explicar para que sirve cada una:
Y ahora vamos a hecharle un ojo al archivo configuracion.php. Correccion (Si os fijais donde $split_stub pone "// He usado lo mismo para el split y para la clave, no es obligatorio" eso borrarlo, porque lo tenia asi al principio cuando lo estaba probando)Leer: Simplifica la lectura de un archivo(para que sea todo mas organizado), se le pasa un parametro $nombre, que es el nombre del archivo que se quiere leer (si esta en el mismo directorio y si no lo esta la ruta junto con el nombre del archivo a leer).
Crear: Al igual que en la anterior funcion sirve para simplifcar y dejar todo mas organizado, solo que a esta funcion se le pasan 2 parametros $nombre(nombre del archivo a crear, si solo se escribe el nombre lo creara en el mismo sitio donde este el archivo funciones.php) y $contenido(lo que se escribira dentro del archivo creado).
XOREncryption: Esta sirve para encriptar el archivo y se le pasan 2 parametros $InputString(datos a encriptar) y $KeyPhrase (clave para encriptar).
Dentro tenemos 5 variables $nombre_stub , $version_stub, $split_stub, $clave_encriptacion y $nombre_final_archivo_encriptado:
Pues ya si que si, vamos a por crypter.php$nombre_stub: Como se llama el stub, en mi caso Stub.exe
$version_stub: La version del stub (realmente no lo uso, pero se podria poner para que en el index la mostrara junto con la fecha de cuando a sido actualizado)
$split_stub: El texto que usaremos para el split, en mi caso ##$$##
$clave_encriptacion: Clave para encriptar los archivos en mi caso ZXCVBNMASDFGHJKL
$nombre_final_archivo_encriptado: El nombre del archivo que se generara en mi caso encriptado"rand()".exe (rand() es una funcion de php que genera numeros aleatorios)
Aunque la imagen ya viene comentada, voy a explicarlo de todos modos:
Y si todo ha ido bien nos mostraba un bonito:crypter.php escribió:<?php ¿Lo explico ?error_reporting(0); La incluimos para que no salga ni un solo error que si no queda cutreinclude('funciones.php');
include('configuracion.php');
Esto lo hago asi para que no quede muy "guarreado" porque si no con tanto codigo en un mismo sitio te acabas liando$archivo_peso = $_FILES["archivo"]["size"];
$archivo_temporal = $_FILES["archivo"]["tmp_name"];
Esto es parte del uploadif ($archivo_peso != 0){ comprobacion para asegurarnos de que haya llegado un archivo entero (no estoy realmente seguro de que sea la forma mas deacuada pero funciona )$archivo = Leer($archivo_temporal); Creamos una variable y dentro de ella almacenamos el archivo subido$archivo_encriptado = XOREncryption($archivo, $clave_encriptacion); Creamos una variable y dentro de ella guardamos el archivo que se a subido (una vez leido) encriptado$stub = Leer($nombre_stub); Creamos una variable y dentro de ella almacenamos el stub$archivo_a_guardar = $stub.$split_stub.$archivo_encriptado.$split_stub; Creamos una variable y en ella guardamos:
El stub leido($stub) + El texto de corte($split_stub) + El archivo encriptado($archivo_encriptado) + Otra vez el texto de corte($split_stub)$archivo_final = Crear($nombre_final_archivo_encriptado, $archivo_a_guardar); En una variable ponemos la llamada a la funcion Crear y creamos el archivo (esto se puede/debe hacer sin la variable, poniendo directamente Crear($nombre_final_archivo_encriptado, $archivo_a_guardar);, pero yo lo hago si porque molo mazo )echo "Encriptado correctamente :) <a href=$nombre_final_archivo_encriptado>$nombre_final_archivo_encriptado</a>"; Como todo a ido bien pues mostramos el link para descargar el archivo}else{ este else viene por la comprobacion de si el archivo pesaba menos de 0echo "Error al subir :("; Mostramos error
}?> y se acabo
Bueno pues eso es todo, tengo que decir que no es que sea muy profesional porque lo he ido haciendo sobre la marcha, le falta aun registro, que lea EOF (lo mismo otro dia lo hago), que tuviera varios stub y que los elegiera de manera aleatoria, asique nada espero que os guste
Tutorial en pdf: [Enlace externo eliminado para invitados]
SaludosContrseña: indetectables.net
Link actualizado 11/01/2013