Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ELVJop en 29 Abril 2012, 23:06 pm



Título: cifrar bat
Publicado por: ELVJop en 29 Abril 2012, 23:06 pm
Tengo una duda muy simple: Tengo un .bat y quiero cifrarlo pero que siga funcionando. Para ello lo pongo a .exe "Cifrado" ¿El error? Me lo descompila en %Temp% y claro asi la gente inteligente lo ve todo :S alguna idea?


Título: Re: cifrar bat
Publicado por: Eleкtro en 30 Abril 2012, 22:39 pm
@ELVJop:

Un bat no se puede compilar, Todos esos programas que veas, Tienen que descomprimir el bat en una carpeta temporal.

Si quieres cifrar un archivo, Puedes usar un encriptador, Pero para poder usar el bat primero tendrás que desencriptarlo con dicho programa.

Otra manera para que no vean tú código es ofuscando tú code... Te explico una forma muy sencilla que se adapta a lo que llevas aprendido hasta ahora:

Código:
@Echo OFF
Setlocal enabledelayedexpansion
REM                                   Tokens=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
For /F "Tokens=1-26 Delims=%%" %%a in ('Echo C%%V%%D%%J%%Y%%F%%T%%P%%X%%G%%A%%Z%%U%%I%%B%%O%%K%%Q%%W%%E%%L%%H%%R%%N%%S%%M') Do (

%%t%%a%%v%%p %%v%%p%%u%%k
%%y%%t%%g /%%k %%b%%k%%w=5
%%t%%a%%v%%p !%%b%%k%%w!
%%h%%k%%m%%y%%t
)

PD: Lo que está ofuscado:
(http://img254.imageshack.us/img254/1623/prtscrcaptureq.jpg)

Saludos.


Título: Re: cifrar bat
Publicado por: ELVJop en 30 Abril 2012, 22:51 pm
Esto estaria bien pero ahcer eso con algo de mas de 1000 lineas... Se podria automatizar?


Título: Re: cifrar bat
Publicado por: Eleкtro en 30 Abril 2012, 23:02 pm
eso con algo de mas de 1000 lineas... Se podria automatizar?

Si, Puedes aprender a hacer tú método de ofuscación.

PD: O usar Google, Hay ejemplos para automatizar.

Salu2!


Título: Re: cifrar bat
Publicado por: ELVJop en 1 Mayo 2012, 12:57 pm
EDITO!: Solucionado esta ofuscando si funciona hos digo el code y otros datos.

Edito : Medio fail

Edito: Pongo el code de otro, tiene el mismo error que el anterior que borre que es que me lo pone todo en mayusculas pero me lo cifra pero es mas rapido y discerto:
Si alguien lo pudiera editar para que fuera minuscula se lo agradeceria (todo minuscula no eso se hacerlo yo me refiero a mayusculas y minusculas)
Código:
@echo off
cls
echo Procesando [%~n1%~x1]
color 0c
title Ofuscar bat v.5
REM Ofuscar bat by Belphegor + filtro anti inyeccion by RockoX
set ini=1
set space=0
set out=1
set ad=0
setlocal enabledelayedexpansion
echo.>abc.txt
set st1=A
set st2=B
set st3=C
set st4=D
set st5=E
set st6=F
set st7=G
set st8=H
set st9=I
set st10=J
set st11=K
set st12=L
set st13=M
set st14=N
set st15=O
set st16=P
set st17=Q
set st18=R
set st19=S
set st20=T
set st21=U
set st22=V
set st23=W
set st24=X
set st25=Y
set st26=Z
set st27=0
set st28=1
set st29=2
set st30=3
set st31=4
set st32=5
set st33=6
set st34=7
set st35=8
set st36=9
set spct=0
set ad=0
set key=
:new
set lin=0
for /f "tokens=1 delims=" %%A in (abc.txt) do (
set /a lin=!lin! + 1
)
if %lin%==36 (goto start)
set ran=%random:~1,2%
set check=%ran:~0,1%
if %check%==0 (set ran=%ran:~1,1%)
if %ran% LSS 1 (goto new)
if %ran% GTR 36 (goto new)
find "!st%ran%!" < abc.txt>nul && (goto new) || (echo !st%ran%!>>abc.txt&set key=%key%!st%ran%!&goto new)
:start
for %%B in (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,0,1,2,3,4,5,6,7,8,9) do (
set id=1
for /F "tokens=1" %%C in (abc.txt) do (
if %%B==%%C (
set /a subid=!id! - 1
set var%%B=~!subid!,1)
set /a id=!id! + 1
)
)
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo. >"D:\Carpetita\target.bat"
copy "D:\Carpetita\target.bat" + "%~1" "D:\Carpetita\target.bat">nul
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo @set A=%key%@+-()>""D:\Carpetita\ofuscado.bat""
set out=1
set max=0
for /f "tokens=1 delims=" %%A in ('type D:\Carpetita\target.bat') do (
set /a max=!max! + 1
)
:atari
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo Contando lineas OK
for /F "skip=%out% tokens=1 delims=" %%T in ('type D:\Carpetita\target.bat') do (
set string=%%T
set word=%%T
:bucle
if not defined string (goto next)
if ["%string%"]==[" "] (set /a space=%space% + 1)
set /a ad=%ad% + 1
set string=!word:~%ad%,1!
goto bucle
:next
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo Contando lineas OK
echo Contando espacios OK
REM de esto no estoy seguro cuidado!!!
set /a space=%space% + 1
echo !word!>line.txt
find "%%" < line.txt>nul && (goto mode1) || (
find ":" < line.txt>nul && (if ["!c:~0,1!"]==[":"] (set c= !c!)&goto mode1) || (set c=!word!&goto nextm))
:mode1
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo Contando lineas OK
echo Variables:SI
set word=!word: =[ !
set word=!word:%%=%% !
:other
for /f "tokens=%ini% delims=[" %%B in ("!word!") do (
set c=%%B
for /f "tokens=1* delims==" %%l in ('set c ^| findstr /r /i ^c=') do (
set c=%%m
echo !c!>check.txt
find "%%" < check.txt>nul && (set c=!c: =!&set write%out%=!write%out%!!c!&goto no)
find ":" < check.txt>nul && (set write%out%=!write%out%!!c!&goto no)
set c=!c:0="0"!
set c=!c:1="1"!
set c=!c:2="2"!
set c=!c:3="3"!
set c=!c:4="4"!
set c=!c:5="5"!
set c=!c:6="6"!
set c=!c:7="7"!
set c=!c:8="8"!
set c=!c:9="9"!
set c=!c:a=[A:%vara%]!
set c=!c:b=[A:%varb%]!
set c=!c:c=[A:%varc%]!
set c=!c:d=[A:%vard%]!
set c=!c:e=[A:%vare%]!
set c=!c:f=[A:%varf%]!
set c=!c:g=[A:%varg%]!
set c=!c:h=[A:%varh%]!
set c=!c:i=[A:%vari%]!
set c=!c:j=[A:%varj%]!
set c=!c:k=[A:%vark%]!
set c=!c:l=[A:%varl%]!
set c=!c:m=[A:%varm%]!
set c=!c:n=[A:%varn%]!
set c=!c:o=[A:%varo%]!
set c=!c:p=[A:%varp%]!
set c=!c:q=[A:%varq%]!
set c=!c:r=[A:%varr%]!
set c=!c:s=[A:%vars%]!
set c=!c:t=[A:%vart%]!
set c=!c:u=[A:%varu%]!
set c=!c:v=[A:%varv%]!
set c=!c:w=[A:%varw%]!
set c=!c:x=[A:%varx%]!
set c=!c:y=[A:%vary%]!
set c=!c:z=[A:%varz%]!
set c=!c:"0"=[A:%var0%]!
set c=!c:"1"=[A:%var1%]!
set c=!c:"2"=[A:%var2%]!
set c=!c:"3"=[A:%var3%]!
set c=!c:"4"=[A:%var4%]!
set c=!c:"5"=[A:%var5%]!
set c=!c:"6"=[A:%var6%]!
set c=!c:"7"=[A:%var7%]!
set c=!c:"8"=[A:%var8%]!
set c=!c:"9"=[A:%var9%]!
set c=!c:@=[A:~36,1]!
set c=!c:^+=[A:~37,1]!
set c=!c:^-=[A:~38,1]!
set c=!c:[=%%!
set c=!c:]=%%!
set write%out%=!write%out%!!c!
:no
if %ini%==%space% (goto end)
set /a ini=%ini% + 1
goto other
)
)
)
:end
echo !write%out%!>>"D:\Carpetita\ofuscado.bat"
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo Contando lineas OK
echo Variables:SI
echo Salida:OK
set /a total=%max% - %out%
if %total%==1 (
cls
copy "D:\Carpetita\ofuscado.bat" "D:\Carpetita%~p1ofuscado.bat">nul
echo Finalizado correctamente.
echo Archivo ubicado en:"D:\Carpetita%~p1ofuscado.bat"
del "D:\Carpetita\ofuscado.bat"
del line.txt
del abc.txt
if exist check.txt (del check.txt)
del "D:\Carpetita\target.bat"
pause
exit /b 0
)
set /a out=%out% + 1
goto atari
:nextm
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo Contando lineas OK
echo Variables:NO
set c=!c:0="0"!
set c=!c:1="1"!
set c=!c:2="2"!
set c=!c:3="3"!
set c=!c:4="4"!
set c=!c:5="5"!
set c=!c:6="6"!
set c=!c:7="7"!
set c=!c:8="8"!
set c=!c:9="9"!
set c=!c:a=[A:%vara%]!
set c=!c:b=[A:%varb%]!
set c=!c:c=[A:%varc%]!
set c=!c:d=[A:%vard%]!
set c=!c:e=[A:%vare%]!
set c=!c:f=[A:%varf%]!
set c=!c:g=[A:%varg%]!
set c=!c:h=[A:%varh%]!
set c=!c:i=[A:%vari%]!
set c=!c:j=[A:%varj%]!
set c=!c:k=[A:%vark%]!
set c=!c:l=[A:%varl%]!
set c=!c:m=[A:%varm%]!
set c=!c:n=[A:%varn%]!
set c=!c:o=[A:%varo%]!
set c=!c:p=[A:%varp%]!
set c=!c:q=[A:%varq%]!
set c=!c:r=[A:%varr%]!
set c=!c:s=[A:%vars%]!
set c=!c:t=[A:%vart%]!
set c=!c:u=[A:%varu%]!
set c=!c:v=[A:%varv%]!
set c=!c:w=[A:%varw%]!
set c=!c:x=[A:%varx%]!
set c=!c:y=[A:%vary%]!
set c=!c:z=[A:%varz%]!
set c=!c:"0"=[A:%var0%]!
set c=!c:"1"=[A:%var1%]!
set c=!c:"2"=[A:%var2%]!
set c=!c:"3"=[A:%var3%]!
set c=!c:"4"=[A:%var4%]!
set c=!c:"5"=[A:%var5%]!
set c=!c:"6"=[A:%var6%]!
set c=!c:"7"=[A:%var7%]!
set c=!c:"8"=[A:%var8%]!
set c=!c:"9"=[A:%var9%]!
set c=!c:@=[A:~36,1]!
set c=!c:^+=[A:~37,1]!
set c=!c:^-=[A:~38,1]!
set c=!c:[=%%!
set c=!c:]=%%!
echo !c!>>"D:\Carpetita\ofuscado.bat"
cls
echo Procesando [%~n1%~x1]
echo Diccionario OK
echo Copiando archivo OK
echo Contando lineas OK
echo Variables:SI
echo Salida:OK
:endm
set /a total=%max% - %out%
if %total%==1 (
cls
echo Finalizado correctamente.
echo Archivo ubicado en:"D:\Carpetita%~p1ofuscado.bat"
del line.txt
del abc.txt
if exist check.txt (del check.txt)
del "D:\Carpetita\target.bat"
pause
exit /b 0
)
set /a out=%out% + 1
goto atari


Título: Re: cifrar bat
Publicado por: ELVJop en 1 Mayo 2012, 16:43 pm
Perdon por el doble post pero llevo 2 horas buscando ofuscadores y lo maximo que he encontrado es esto : http://mrblood.webcindario.com/ofuscador.php va muy bien para  codes pequeños pero al poner el mio y meterlo en un batch me dice no se esperaba C: windows system32 shell o algo asi y en mi code no hay ningun Shell