Entradas etiquetadas con Java
Resolviendo CrackMe en Java
5 jul
En el foro RTHacker, un usuario posteó un CrackMe hecho en Java, realmente muy sencillo, pero interesante. Mirándolo un poco, me animé a crear un pequeño tutorial de cómo resolverlo. Es ideal para que los que recién empiezan en la Ingenieria Inversa practiquen.
Éste es el CrackMe, ahora vamos a descargarlo. Recuerden que éste es un archivo .JAR, por lo cual necesitaran la máquina virtual de Java para poder ejecutar la aplicación correctamente (Puedes descargarla de aquí).
Hechos los pasos anteriores, ejecutaremos por primera vez la aplicación y analizaremos su estructura. Por lógica e instinto, lo primero que haremos es probar una contraseña al azar para ver qué reacción nos devuelve.
¡Perfecto!, el CrackMe devuelve un mensaje de error con el texto «Incorrecto!». Ahora, lo que debemos de hacer es encontrar en el archivo esa palabra, para ello lo abriremos con un editor Hexadecimal (En mi caso usaré el Bless Hex Editor).
Mirando un poco las entrañas de éste fichero, puedo encontrar que contiene tres archivos clase llamados:
probarActionPerformed.class Pruebas.class Pruebas$1.class
Tal vez se estén preguntando, ¿cómo accedemos a ellos?…Pues la respuesta es sencilla, los ficheros .JAR también son formatos de compresión de datos, como .ZIP, .RAR, entre otros. Así que tecleando éste comando en terminal podremos obtenerlos fácilmente:
windhack@windhack-desktop:~/Escritorio$ jar Más >
Cifrado César en Java
24 may
Versión en Java del algoritmo de cifrado César, programada por [p3ll3].
package cifradocesar; import java.io.*; /** * * @author p3ll3 */ public class Main { public static BufferedReader Data = new BufferedReader (new InputStreamReader (System.in)); public static void main(String[] args)throws IOException{ CodeCesar(); } public static void CodeCesar()throws IOException{ char [] lLetter = {'a','b','c','d','e','f','g','h','i','j','k','l', 'm','n','o','p','q','r','s','t','u','v','w','x','y', 'z'}; String CesarWord = ""; int Key = 0; System.out.println("Digite la palabra que desea cifrar: "); String Word = Data.readLine(); // recibimos la palabra Word = Word.toLowerCase(); // la pasamos a minusculas System.out.println("Digite la clave para codificar (entre 1 y 24): "); // pedimos clave Key = Integer.parseInt(Data.readLine()); // pasamos a entero if( (Key >= 1)&&(Key <= 26) ){ // confirmar clave correcta for (int i=0;i<Word.length();i++){ //recorro la palabra //hasta el final for (int j=0;j<lLetter.length-1;j++){ //recorro el abecedario if(Word.charAt(i) == lLetter[j]){ //busco caracteres que esten //en la palabra y en el abecedario if( (j+Key) >= 26){ //si la clave es mayor a mi abecedario, paso al else int temp = j+Key; //suma claves temporales int tmp = temp-26; CesarWord = CesarWord.concat(""+lLetter[tmp]);//voy creando la nueva palabra }else{ CesarWord = CesarWord.concat(""+lLetter[j+Key]); //creando palabra cifrada } } } } }else{ System.out.println("Digite un numero correcto de clave"); CodeCesar(); } System.out.println("Su palabra cifrada es: "+CesarWord); } }Más >
Historia de Delphi. Desde los orígenes de la Informática hasta nuestros días
30 mar
La idea era narrar como ha evolucionado esta herramienta en estos 20 años (en realidad más), pero yendo más allá de una simple enumeración de fechas, versiones y características, sino exponiendo las cosas en su contexto, tratando de explicar porque en momentos dados las cosas se hicieron de un modo determinado y no de otro, y en que consitía lo que se hizo y lo que se dejó de hacer.
Sin embargo, al enfocarlo de este modo, el plan se mostró cada vez más ambicioso. Hablar de Borland Delphi es hablar de Turbo Pascal, y hablar de Turbo Pascal es hablar del lenguaje Pascal y es hablar de los PCs. Hablar de Delphi es hablar de Windows, pero también es hablar de MS-DOS (Borland Pascal, Turbo Pascal) y de Linux (Kilyx), y eso es hablar de Unix, y es hablar de CP/M, y es hablar de microinformática y de lenguajes, y es…
Por lo tanto se ha decidido empezar de la forma más genérica posible, desde la (pre)historia a grandes rasgos de la informática, para ir cerrando paulatinamente el círculo a modo de embudo entorno a la microinformática, al universo PC, a MS-DOS y Windows, y paralelamente, la aparición de Linux en Más >

