Esteganografía EOF [BATCH]

Iniciado por Segadorfelix, 7 Abril 2019, 09:36 AM

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

Eleкtro

#10
Cita de: Segadorfelix en 22 Abril 2019, 08:12 AMBatch no requiere instalar un interprete o un compilador para usarlo.

Eso no lo hace mejor en ningún aspecto. Lo del intérprete, le doy un pase, pero el compilador solo lo necesitas durante la etapa de desarrollo, y al finalizar tan solo tienes que distribuir la aplicación (o librería) compilada y ahí ya no dependes de nada (excepto de los runtimes de software que haya instalados en el sistema operativo, como ocurre con toda aplicación).

En Batch, para llevar a cabo casi cualquier cosa que sea realmente de utilidad, dependerás del uso de aplicaciones externas como en este caso certuril.exe, así que aunque no dependas de un intérprete externo ni compilador, si que dependes de la existencia de archivos/programas externos. Programas los cuales, como muchos otros, están sujetos a posibles cambios (en la entrada de sintaxis por linea de comandos) entre las distintas versiones de Windows, o en el peor de los casos a la obsolescencia y eliminación. Así que mucho mejor no es, si lo comparas bien.

Quizás deberías hacer caso a lo que muchos te han dicho ya. Batch es una completa pérdida de tiempo habiendo las alternativas que hay. Además ya conoces sus mayores desventajas (elaboración tediosa/complicada de código, sintáctica simplista en el mal sentido, y herramienta incompleta/carente de funcionalidades built-in, ni siquiera soporta el uso de arrays, joder, aparte de la nefasta velocidad de procesamiento de datos que tiene por naturaleza), así que no se que más motivos puede necesitar un programador para darse cuenta de que está todo en contra de tenerle preferencia a Batch como "lenguaje de programación" principal. Pero bueno, es tu decisión por los motivos que tengas y yo no insisto ni me meto en eso, pero quería dar mi opinión también.

Al menos podrías decantarte por el lenguaje Powershell, ya que tampoco hay dependencias (que no vengan ya instaladas por defecto en el S.O) y es infinitamente mejor, más completo y productivo de lo que jamás será Batch. Una grandísima ventaja de Powershell es que puedes utilizar al completo la librería de clases de .NET Framework. De hecho, incluso puedes escribir códio en C# o VB.NET en un script de PowerShell para compilar en tiempo de ejecución una librería dinámica (.dll) y llamar a los métodos compilados. Pero vamos, lo relevante sería que puedes utilizar los miembros de los espacios de nombres de la librería de clases de .NET Framework para leer los bytes de un archivo, "cortarlo" en trozos, cifrar lo que quieras a Base-64, y administrar/crear/eliminar certificados. Tampoco es que necesites recurrir a .NET Framework, casi todo lo puedes hacer con puro PowerShell. No necesitarías depender en absoluto de certutil.exe.

Un saludo.








Segadorfelix

Cita de: Eleкtro en  5 Mayo 2019, 19:26 PM
Eso no lo hace mejor en ningún aspecto. Lo del intérprete, le doy un pase, pero el compilador solo lo necesitas durante la etapa de desarrollo, y al finalizar tan solo tienes que distribuir la aplicación (o librería) compilada y ahí ya no dependes de nada (excepto de los runtimes de software que haya instalados en el sistema operativo, como ocurre con toda aplicación).

En Batch, para llevar a cabo casi cualquier cosa que sea realmente de utilidad, dependerás del uso de aplicaciones externas como en este caso certuril.exe, así que aunque no dependas de un intérprete externo ni compilador, si que dependes de la existencia de archivos/programas externos. Programas los cuales, como muchos otros, están sujetos a posibles cambios (en la entrada de sintaxis por linea de comandos) entre las distintas versiones de Windows, o en el peor de los casos a la obsolescencia y eliminación. Así que mucho mejor no es, si lo comparas bien.

Quizás deberías hacer caso a lo que muchos te han dicho ya. Batch es una completa pérdida de tiempo habiendo las alternativas que hay. Además ya conoces sus mayores desventajas (elaboración tediosa/complicada de código, sintáctica simplista en el mal sentido, y herramienta incompleta/carente de funcionalidades built-in, ni siquiera soporta el uso de arrays, joder, aparte de la nefasta velocidad de procesamiento de datos que tiene por naturaleza), así que no se que más motivos puede necesitar un programador para darse cuenta de que está todo en contra de tenerle preferencia a Batch como "lenguaje de programación" principal. Pero bueno, es tu decisión por los motivos que tengas y yo no insisto ni me meto en eso, pero quería dar mi opinión también.

Al menos podrías decantarte por el lenguaje Powershell, ya que tampoco hay dependencias (que no vengan ya instaladas por defecto en el S.O) y es infinitamente mejor, más completo y productivo de lo que jamás será Batch. Una grandísima ventaja de Powershell es que puedes utilizar al completo la librería de clases de .NET Framework. De hecho, incluso puedes escribir códio en C# o VB.NET en un script de PowerShell para compilar en tiempo de ejecución una librería dinámica (.dll) y llamar a los métodos compilados. Pero vamos, lo relevante sería que puedes utilizar los miembros de los espacios de nombres de la librería de clases de .NET Framework para leer los bytes de un archivo, "cortarlo" en trozos, cifrar lo que quieras a Base-64, y administrar/crear/eliminar certificados. Tampoco es que necesites recurrir a .NET Framework, casi todo lo puedes hacer con puro PowerShell. No necesitarías depender en absoluto de certutil.exe.

Un saludo.

Sí, lo de los arrays es una patada a los huevos. Después de hacer un script en Batch quede un poco inconforme, porque si deseo aplicar un método criptograma más complejo, tardaría más aun en procesar los datos y prácticamente sería inútil.

Igual fue divertido de algún modo, pero se que es un scritp que posiblemente quede obsoleto pronto.

Así que estuve leyendo un poco de Bash y Powershell. Con Get-Content y Set-Content, se puede hacer casi todo el trabajo (cortar un archivo y encriptarlo), al menos en las versiones previas a Powershell 6, desde la versión 6 se debe tener en cuenta a .Net Core.

Con .NET en Powershell se pueden hacer muchas más cosas, pero me hace falta leer :P de .NET no conozco mucho.

Fue un comentario muy constructivo, gracias.