elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / :: Base64 :: by wizard_0 (un Reto para TODOS) en: 28 Noviembre 2008, 05:15 am

Weno  aki  esta  el  reto...  8)

Se trata  de  la  Base64  un  metodo  de  cifrado
http://es.wikipedia.org/wiki/Base64


puej  lo  acabo  de  terminar...






Código:
 @echo off
Title Encriptor--^>BASE64
setlocal enabledelayedexpansion
set e=echo
set sw=false
if %1. EQU . (echo Digite %~nx0 /? o help para mejor manejo&&goto fin)
if /I "%1" EQU "help" (call:help "%1") else (if "%1" EQU "/?" call:help "%1")
if /I "%1" NEQ "-c" (%e% Sintaxis Incorrecta..  %1&& exit)
if %2. NEQ . (set str=%2)
if %3. NEQ . (%e% Sintaxis Incorrecta..  && exit)
set str=%str:"=%
call:ini
cls
%e% Resultado...
%e%.
echo String  : %~2
echo Cifrado : !cifrado!
pause >nul
endlocal
%e% Bye..
exit

:ini
cls
set pal=
set cifrado=
set base64=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
set p1=0
call:base64
del %temp%\enc.vbs
del ascii.txt
goto:EOF

:base64
cls
if %p1% EQU 3 (set p=&&set p1=0) else (set /a p1+=1&&set p=.%p%)
echo Codificando%p%
if not defined str goto:EOF
set chr3=%str:~0,3%
set code=
set sw=0
call:contar_chr "%chr3%"
if [%count%] LSS [3] (
  if [%count%] EQU [2] (set sw=2)
  if [%count%] EQU [1] (set sw=1)
)
call:ascii "%chr3%"
if exist ascii.txt (
for /f "tokens=*" %%a in (ascii.txt) do (
  for %%b in (%%a) do call:dec_bin %%b
  call:contar_bits !code!
  call:codificar
  )
)
set str=%str:~3%
goto base64

:codificar
if not defined code (
   if ["%sw%"] EQU ["2"] (set cifrado=%cifrado%=)
   if ["%sw%"] EQU ["1"] (set cifrado=%cifrado%==)
   goto:EOF
)
set dig6=%code:~0,6%
set n=%dig6%
set c=0
set s=0
call:bin_dec
call set wzr=%%base64:~%s%,1%%
set cifrado=%cifrado%%wzr%
set code=%code:~6%
goto codificar

:dec_bin
set n=%1
set cad=
set c=0
call:binario
call:bits 8 %cad%
set code=%code%%cad%
goto:EOF

:bits
set digs=0
set long=%2
call:dim
:dimensionar
if [%digs%] LSS [%1] (set cad=0%cad%&& set /a digs+=1&&goto dimensionar) else (goto:EOF)

:dim
if not defined long goto:EOF
set long=%long:~1%
set /a digs+=1
goto dim

:bin_dec
if not defined n goto:EOF
call set bit=%%n:~-1%%
if [%bit%] EQU [1] call:sumar
set /a c+=1
set n=%n:~,-1%
goto bin_dec

:sumar
set /a d="1<<c"
set /a s+=d
goto:EOF

:binario
set /a c+=1
set /a dig=n%%2
set /a n/=2
set cad=%dig%%cad%
if %n% EQU 0 (if %c% EQU 1 (set cad=0%cad% & goto:EOF))
if %n% EQU 0 (goto:EOF) else (goto binario)

:contar_chr
set chrs=%~1
set count=0
:count_chrs
if not defined chrs goto:EOF
set chrs=%chrs:~1%
set /a count+=1
goto count_chrs

:contar_bits
set tbits=%1
set count=0
call:count_bits
if [!sw!] GTR [0] call:rellenar
goto:EOF

:rellenar
if [!sw!] LSS [2] (
if !count! LSS 12 (
set code=%code%0
set /a count+=1
goto rellenar)
)
if [!sw!] GTR [1] (
if !count! LSS 18 (
set code=%code%0
set /a count+=1
goto rellenar)
)
goto:EOF

:count_bits
if not defined tbits goto:EOF
set tbits=!tbits:~1!
set /a count+=1
goto count_bits

:ascii
echo Function enc (cad)>%temp%\enc.vbs
echo for i=1 to Len (cad)>>%temp%\enc.vbs
echo enc=enc ^& Asc(Mid(cad,i,1)) ^& " ">>%temp%\enc.vbs
echo Next>>%temp%\enc.vbs
echo End Function>>%temp%\enc.vbs
echo Set shell = CreateObject("Scripting.FileSystemObject")>>%temp%\enc.vbs
echo set b=shell.CreateTextFile("ascii.txt")>>%temp%\enc.vbs
echo b.write enc("%~1")>>%temp%\enc.vbs
echo b.close>>%temp%\enc.vbs
start %temp%\enc.vbs
ping 127.0.0.1 -n 1 >nul
goto:EOF

:help
%e%.
%e%.
%e%            /\  \                     /\__\         /\  \         /\  \   
%e%           _\:\  \       ___         /::^|  ^|       /::\  \       /::\  \   
%e%          /\ \:\  \     /\__\       /:/:^|  ^|      /:/\:\  \     /:/\:\__\ 
%e%         _\:\ \:\  \   /:/__/      /:/^|:^|  ^|__   /:/ /::\  \   /:/ /:/  / 
%e%        /\ \:\ \:\__\ /::\  \     /:/ ^|:^| /\__\ /:/_/:/\:\__\ /:/_/:/__/___
%e%        \:\ \:\/:/  / \/\:\  \__  \/__^|:^|/:/  / \:\/:/  \/__/ \:\/:::::/  /
%e%         \:\ \::/  /     \:\/\__\     ^|:/:/  /   \::/__/       \::/~~/~~~~
%e%          \:\/:/  /       \::/  /     ^|::/  /     \:\  \        \:\~~\     
%e%           \::/  /        /:/  /      ^|:/  /       \:\__\        \:\__\   
%e%            \/__/         \/__/       ^|/__/         \/__/         \/__/   
%e%.                                               
%e%                                      _____   
%e%                                     /::\  \   
%e%                                    /:/\:\  \ 
%e%                                   /:/  \:\__\
%e%                                  /:/__/ \:^|__^|
%e%                                  \:\  \ /:/  /
%e%                                   \:\  /:/  /
%e%                                    \:\/:/  / 
%e%                                     \::/  /   
%e%                                      \/__/   
ping 127.0.0.1 -n 3 >nul
%e%.
%e%.
%e%.
%e% Ej:%~nx0  %~1
%e%.
%e%.
%e% -c "cadena a cifrar" Con comillas si hay espacio
%e% -f "Archivo a cifrar" "Archivo cifrado"
%e%.
%e%.
%e%.
%e%.
%e%.
%e%.
%e%.
%e%.
%e% The magic.
exit

Suele  tener  un  error  al  no  poner  las  comillas  " "  cuando  existe  un  espacion  en  el  -c resolverlo  y  poner  la  condicion  correcta  sera  (primer reto)

Como  veran   falta   la  operacion   -f   para  cifrar  todo  un  archivo  y  rederigir  el   resultado  en  otro  archivo...   no  es  muy  complicado..  (segundo  reto)

el  mayor  Reto   para  uds..   sera  hacer   en  base  por  supuesto  a las  funciones  q  utilizo...,  o  si  kieren   utilizan  sus  propias  funciones.... 

lograr  el  Decodificador  para  la  Base64 (reto  final)


mis  respetos   akellos   q lo  logren...,  dare  todo  el  tiempo  necesario   para q  lo  logren   dado  el  caso  q   nadie   llege  hacerlo, aunke  no kreo q  suceda ::),  publicare   el   Decodificador...  ::)


salu2-->
2  Programación / Scripting / BATCH!!! Obtener la Ip Public en: 21 Junio 2008, 06:30 am
Weno  aki  les  dejo  uno  de  mis  jugetes  en  BATCH!!!  la  funcion  como  obtener  la  Ip  Public  de  nuestra  PC  8)
weno  en este  caso  utilizo  la  pagina  www.showmyip.com  utilizando  el  GET.exe

Descarga  del  Get.exe
http://w17.easy-share.com/1700694154.html

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. pushd %windir%\system32
  4. if not exist get.exe (call:info " No se encuentra  el archivo get.exe  sugiero una  descarga" "                 imposible realizar la operacion..." 16 "** ERROR **" && exit) else (
  5. get www.showmyip.com ipp.txt
  6. ping 127.0.0.1 -n 3 >nul
  7. for /f  "tokens=8 delims= " %%a in ('find /I " Connection" ipp.txt') do (call:gett "%%a")
  8. )
  9.  
  10. :gett
  11. set ipp=%1
  12. if %1. NEQ . (call:info " Tu ip public es : !ipp:~1,-1! " "        CONGRATULATIONs" 48 "**** wIzArD ****") else (call:info "Problemas con la pagina q usamos" "  no  esta  activa!!! " 16 "** ERROR **")
  13. del ipp.txt >nul
  14.  
  15. :info
  16. echo wzr=%1 ^& Chr(13) ^& %2 >%temp%\winfo.vbs
  17. echo msgbox wzr,%3,%4 >>%temp%\winfo.vbs
  18. start %temp%\winfo.vbs
  19. ping 127.0.0.1 -n 2 >nul
  20. del %temp%\winfo.vbs >nul
  21. goto:EOF
  22.  

Ojo!!  la  pagina  al  veces  no  esta  activa   es  por  eso  q puse  una  exception.. de  Error
aunke  pueden   hacerlo  con  cualkier...  otra    page.
claro  el  codigo seria  distinto..  8)

salu2-->
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines