Un simple file to hex string [source]

Iniciado por Hu3c0, Febrero 10, 2015, 09:31:30 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 10, 2015, 09:31:30 AM Ultima modificación: Febrero 10, 2015, 09:52:37 AM por Expermicid
En primer lugar gracias por arreglarme mi post anterior Chequino, en segundo  quiero compartir este source de un simple File to hexstring, espero sirva de ayuda a gente que quiere aprender como lo hago yo todos los dias de mi vida.

Quiero y tengo en mente, pero necesito tener tiempo libre, hacer un analizador uploadfile:
Consiste en crear un javaweb proyecto con un bonito index.jsp que será el uploader a través de getter setter quiero que analize el archivo y si va metido dentro de él código .php, o lo que es lo mismo un shell.php, deniege el upload y redireccione a un html bonito.

Sin más parafernalia este es mi código espero sea de vuestro agrado.

Código: java
package @huec0designer;

/**
     __  __     _____      ____     ____   ______          __         
   / / / /_  _|__  /_____/ __ \   / / /  / ____/___  ____/ /__  _____
  / /_/ / / / //_ </ ___/ / / /  / / /  / /   / __ \/ __  / _ \/ ___/
/ __  / /_/ /__/ / /__/ /_/ /  / / /  / /___/ /_/ / /_/ /  __/ /   
/_/ /_/\__,_/____/\___/\____/  / / /   \____/\____/\__,_/\___/_/     
                              /_/_/                               
*/
import java.io.*;
import java.util.Scanner;


public class EjercicioFileReaderFileWriteenHexadecimal {
    public static void main (String []args) throws FileNotFoundException, IOException{
       
Scanner sc1= new Scanner(System.in);
        FileReader flrd=null;
        FileWriter flwr=null;
        String putinHex=null;
        int caracterin;
        int caraterout;
        int contador;
    System.out.println("Bienvenidoa File to StringHex  code by_Hu3c0");
    System.out.println("Introduzca la ruta completa de su archivo..! ");
    String patharchivo=sc1.nextLine();
    String patharchivosalida=System.getenv("TEMP");
    String pathfinal=patharchivosalida.concat("\\Stringhexout.txt");
    flrd= new FileReader(patharchivo);
    flwr= new FileWriter(pathfinal);
   caracterin=flrd.read();
    try{
        while (caracterin != -1){
           
            putinHex="0x"+Integer.toHexString(caracterin)+", ";
            contador=putinHex.length();
                for (int i =0;i<contador;i++){
                char chrnuevo= putinHex.charAt(i);
                flwr.write(chrnuevo);
            }
            caracterin=flrd.read();
            }
         }
          catch(IOException  e){
    System.out.println("Something go wrong...!");}
    finally {
    System.out.println("Okey your file was create in %TEMP% folder....!")
     flwr.close();
        flrd.close();}
   
   
    }   
   
   
}


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Hola Hu3c0,

aparte del código no demasiado bueno:
Que demonios tiene que ver un programa que lee un fichero y que después vuelve a escribir todo "codificado en Hex" con esto:
Citar
Quiero y tengo en mente, pero necesito tener tiempo libre, hacer un analizador uploadfile:
Consiste en crear un javaweb proyecto con un bonito index.jsp que será el uploader a través de getter setter quiero que analize el archivo y si va metido dentro de él código .php, o lo que es lo mismo un shell.php, deniege el upload y redireccione a un html bonito.

Y cuando algo no funciona entonces viene la pregunta en el foro sobre qué salió mal y el mensaje de error es: "Something go wrong....!" ⇒ Bloques de catch vacíos (de este modo salidas que no son enunciativas no cuentan!) son para ser evitados! Si, en tu caso puedes sencillamente lanzarlas de nuevo...

File Separator duramente codificado - Ahí sería apropiado File.separator.

En vez de la variable de entorno TEMP se debería usar System.getProperty("java.io.tmpdir").
En esta sección nosotros no escribimos scripts, sino programas Java. Ahí es inusitado definir las variables así a la cabeza. En cambio estas son definidas cuando se las necesita. Osea contigo en casi todas las variables cuando estas son inicializadas.

Referente a FileReader/Writer: usa sencillamente try with resources.

La UI o ingles o español. Consejo: quedate con el lenguaje que tu sabes... "Something went wrong....". Un inglés correcto quizás todavía sería "Something goes wrong" pero eso que causó la excepción es pasado y a continuación tu aplicación fallará... Sería diferente si tú no puedes abortar y si debes seguir soportando el error (control de una aplicación crítica y entran en parte datos de sensores incorrectos... Una conducción autónoma de un Tesla con 200 en la autopista ojala no dirá "Algo salió mal" y se apagará... Mas bién dirá: "Algo sale mal" y tratará de abortar controladamente osea de parar despacio, controladamente.)... Del mismo modo concebible: "Something will go wrong"... eso solo fue un error pequeño. El error principal es que impactará unas fracciones de segundos del Tesla con velocidad 200 en un obstáculo... O la temperatura de la batería pues es tan alta que está claro: ella está defectuosa, ya se quemará el Tesla... (Lamentablemente ambos no traído por los cabellos, como ha mostrado el pasado).

Veo positivamente que la asignación de caracteres no tiene lugar en la operación del bucle while, como se ve tan a menudo. (Es mi preferencia, se puede ver de otra manera. Pero den correspondiente a esto también una comprobación de p. e. PMD).

Todavía también es concebible que se deje el 0x puesto que el archivo generalmente debe contener valores Hex.

Eso sería sencillamente una vez un comentario concreto, algo que creo que es mejor que solamente un "código no demasiado bueno".


Saludos
Este es el mayor reproche al pueblo hispanohablante:

Que a pesar de su inteligencia y a pesar de su valentía siempre adoran el poder.

Septiembre 03, 2019, 09:52:08 AM #2 Ultima modificación: Septiembre 03, 2019, 03:40:13 PM por Bartz
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Eso sería sencillamente una vez un comentario concreto, algo que creo que es mejor que solamente un "código no demasiado bueno".

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta , El post es de 2015, dudo que el usuario lea tu comentario, pero aprovecho para comentarte que tu comentario critica mas de lo que construye.
Si tus intenciones son las de hacer criticas constructivas en cuanto al codigo me parece excelente y se te agradece, aunque podrias decirlo de una mejor manera (no es para que te lo tomes a mal a mi comentario, sino que es para que mejoremos como comunidad)

Saludos ! :D




Con la fuerza del mar, con la paz del rio