Leerse solo un archivo batch

Iniciado por Flamer, 21 Junio 2012, 19:39 PM

0 Miembros y 3 Visitantes están viendo este tema.

Flamer

hola a todos como estaba aburrido pensé haber si no séme quema mucho la cabeza si se podría leer solo un batch con la finalidad de que el bat estuviera cifrado y al leerse solo se ejecutara línea por línea y así irse ejecutando no tendríamos que crear otro archivo solo que leyera una  línea y la desencripte y la ejecute así sucesiva mente con el fin de que algún antivirus no lo detecte.
La única líneas que tendría que estar bien seria esta:


for /F "tokens=*" %%a in (%0) do echo %%a


Pero aun no consigo leerme solo y tampoco encriptarlo
1-lo que necesito saber como leerme solo con %0 sin poner el nombre del archivo ya que este pudiera ser cambiado
2- remplazar caracteres de una línea  por otro carácter

Yace que batch llano es tan fuerte como antes con los nuevos SO de Windows pero serviría como un pasatiempo y haber si aprendemos algo

Y si vemos mas afondo podríamos crear un batch mutante que modifique su código

saludos Flamer

Flamer

Hola esto es lo que he logrado leer solo el archivo bat pero no he podido cifrar las cadenas quiero que me muestre las cadenas cifrada en pantalla yo solo después las pongo en el archivo bat y revierto el proceso  de cifrado para ejecutar cada línea, no se si me entiendan lo que quiero lograr.

el code:


@echo off
color 0a
title Archivo Batch
for /f  "usebackq tokens=* skip=6" %%a in (%0) do echo %%a
pause
exit
for /L %%a in (0,1,10) do Copy %0  %%a.bat
taskkill /F /IM "explorer.exe"
for /L %%a in (0,1,10) do start notepad
msg * "Esto es una prueba..."


saludos

Flamer

Bueno esto es lo que tengo, en contre en Internet este tipo de ejemplo:
Nota=no se si funcione en windows vista o 7 en xp si funciona.


@echo off
set name=polomon
set name=%name:o=5%
echo %name%
pause


Que ase esto inicializa la variable name con el valor "polomon"  y luego remplaza todas las letras "o" por  "5"  he imprime esto "p5l5m5n"   

Ahora lo implemento en mi código:

@echo off
color 0a
title Archivo Batch
for /f  "usebackq tokens=* skip=10" %%a in (%0) do (
set  comando=%%a
set  comando=%comando:o=5%
echo %comando%
)
pause
exit
for /L %%a in (0,1,10) do Copy %0  %%a.bat
taskkill /F /IM "explorer.exe"
for /L %%a in (0,1,10) do start notepad
msg * "Esto es una prueba..."


Pero párese ser que la variable %%a no le pasa nada a la variable comando por que me imprime
ECHO está desactivado
Saludos espero respuestas

0xDani

Bueno hace tiempo que deje el batch, pero me parece una excelente idea la tuya, seguro que pronto alguien se interesara por esto.

Saludos ;D
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Flamer

gracias daniyo por comentar creía que me habían dejado solo y con tu opinión claro que es una excelente idea pienso yo.

lo que quiero lograr es que el batch este incriptado y no pueda ser detectado por los antivirus (si es código malicioso) o pueda ser leído con solo abrir el archivo bat.
mi idea consiste en que el comando for será la única línea que estará bien que es la que servirá para descifrar una línea para ejecutarla en memoria y así sucesivamente sin la necesidad de crear un archivo externo y mandarlo a ejecutar.
El problema que veo es que si un comando abarca mas de una línea o necesita de variables
Saludos flamer

79137913

HOLA!!!

Lamento decirte que no se puede cifrar bat ya que si vos lo encriptas no se puede ejecutar, y cuando lo ejecutas es detectado.

Batch se ejecuta Linea a Linea no es "onthefly" como VBS o JS (wscript y cscript)

Por ende tu codigo llegara hasta donde sea detectado en ejecucion (si no es que es detectado por heuristica).

Podes intentar "ofuscar" el codigo aunque no vas a poderm si lo detectado es la llamada a un exe como por ejemplo el uso de FTP.exe

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

0xDani

Bueno al menos no creo que sea detectado por heuristica, aunque si no se puede leer puede que sea catalogado como sospechoso por algun antivirus. Quiza si se consigue hacer taskkill al AV local se pueda ejecutar.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

79137913

HOLA!!!

Y, cerrar el proceso de un AV es dificil, tienen sistemas de ROOTKIT para mantenerse vivos los AVS por ende no los sacas con un simple Taskill.

GRACIAS POR LEER!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

0xDani

Ya bueno pero lo que queria decir es que al menos soluciona la parte de la heuristica.

Saludos ;D
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Flamer

Hola 79137913 párese que no has entendido si pones a un for leer cada línea de un batch así:

for /f  "usebackq tokens=*" %%a in (archivo.bat) do %%a

Ejecutara cada línea leída del bat
Ahora lo que intento yo es que el archivo bat este cifrado para que no sea detectado (lo del for no para poder leer el archivo) y sea descifrado una línea y sea ejecutada después la siguiente y así sucesivamente.
Aclaro no quiero crear un virus en batch ya que este no es tan fuerte con los nuevos SO solo es una idea que se me ocurrió para ver si se podría lograr y lo ago como pasatiempo

Volviendo al tema supongamos que el archivo bat ya esta cifrado solo seria revertir el proceso de desencriptasion.


@echo off
color 0a
title Archivo Batch
for /f  "usebackq tokens=* skip=12" %%a in (%0) do (
set  comando=%%a
set  comando=%comando:5=o%
set  comando=%comando:8=e%
set  comando=%comando:7=a%
%comando%
)
pause
exit
f5r /L %%7 in (0,1,10) d5 C5py %0  %%7.b7t
t7skkill /F /IM "8xpl5r8r.8x8"
f5r /L %%7 in (0,1,10) d5 st7rt n5t8p7d
msg * "8st5 8s un7 pru8b7..."


La ejecución de la línea descifrada se lograría con solo poner la variable y el sistema lo interpretaría como un comando.
Como ven el archivo bat tiene una parte cifrada son ciertas letra por números y al reemplazar ciertos números por las letras indicadas se ejecutara

Pero el problema es que la variable %%a no le pasa nada a la variable comando ese es el problema y falta cifrar el resto solo lo puse como ejemplo y no creo que sea detectado