Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - z_ane_666

#1
Scripting / [PERL]script corrompe archivo
22 Junio 2013, 08:08 AM
Este script ,(que es parte de uno mas completo) lee un archivo y luego procede a almacenarlo en un archivo llamado "salida"

#!/usr/bin/perl -w
use File::Slurp;
my $file_contents = read_file($ARGV[0]);
open my $filehand, ">","salida";
print $filehand $file_contents;
close $filehand;


el problema es que el archivo final no es identico al original, se imprimen unos caracteres "0D" adicionales a lo largo del archivo salida, ¿que podria hacer?
#2
Cita de: EleKtro H@cker en 18 Junio 2013, 02:52 AM
El problema que tienes es con el número total de líneas, ¿o con la longitud de la linea?

Si es lo primero, prueba así (testeado con 100.000 lineas):

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion

set "dirvar=%~dpn0.%~nx1"
mkdir "%dirvar%"

for /f "usebackq delims=" %%a in ("%1") do (
set /A x+=1
echo Linea !x!
echo %%a>"%dirvar%\!x!"
)

Pause&Exit



En caso de ser lo segundo, no hay solución, Batch es limitado y no puede leer/almacenar más hallá de una linea de 8.191 caracteres de longitud, es decir 8191 bytes,
la solución sería usar otro lenguaje.

EDITO:
Aquí tienes una información adicional que di en "X" sitio en inglés, para que de verdad no hagas intentos en vano:

Saludos!

Exactamente, mi problema era la longitud de linea.

estoy reescribiendo el script en perl, saludos
#3
El siguiente codigo almacena cada linea de un archivo pasado como primer argumento en archivos con nombres numericos:
@echo off
setlocal enableextensions enabledelayedexpansion
set dirvar=%~d0%~p0%~n0.%~n1%~x1
mkdir "%dirvar%"
set seleccion=%1
set /A x=0
for /f "delims=" %%a in (%seleccion%) do (
echo %%a>"%dirvar%\!x!"
set /A x+=1
echo !x!
)
endlocal
pause


Pero si le paso un archivo que contenga lineas con un tamaño superior a cierta cantidad(creo que superior a 9000 o lo mismo 9kb) de caracteres el codigo deja de funcionar o no guarda esas lineas, quisiera algun consejo, que puedo hacer?  :-[ :huh:
#4
Perdon por la demora en contestar pero ya solucione mi problema volviendo a instalar tanto el servidor apache como el php ;-)
#5
Ultimamente instale slackware y me he dado con la sorpresa que solamente envia las cookies(obviamente cuando se le solicita) a localhost mas no sucede lo mismo en los otros ordenadores que tengo conectados a la red. En resumen,parece que  setcookie() solo esta trabajando localmente ¿Como podria dar solucion a mi problema? :-(
#6
Programación C/C++ / problema con strncat
5 Noviembre 2012, 14:44 PM
Foro como estan ! tengo un problema a la hora de usar la funcion strncat, me da segmentacion faul a la hora de querer concatenar un char obtenido a partir de la transformacion de un int ascii a char, algo asi (char * )59.

En fin aca les dejo el código:

#include <stdio.h>
#include <stdlib.h>

int main()

{
char *chratexto;
chratexto =(char *)calloc( 5, sizeof(char));
strncat(chratexto,(char *)59,1);
printf("%s\n",chratexto);
return 0;
}


#7
Ahora que el sandbox es un componente "indispensable" del avast antivirus, se ha aumentado la seguridad que brinda y auque sea molesto, muchos deciden tenerlo activo.

¿Ustedes creen que sea posible bypassearlo?
#8
He hecho un pequeño codigo que le puede servir a muchos administradores de sistema, para hallar las claves olvidadas de las pcs cliente que tengan instalado el Pcweb Cliente 4.3.26.

Para usarlo obviamente tienes que estar con la terminal cliente desbloqueada! :laugh:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>

void ayuda(char * argumento)
{
printf("\nuso %s [/clave clave_encriptada] || [/ruta ruta_en_el_registro_de_windows]\n\nEjecute el programa sin parametros para mostrar la contraseña descifrada desde la ruta por defecto (HKEY_LOCAL_MACHINE\\SOFTWARE\\IWindow\\Bootear\\Clave)\n\nOPCIONES:\n\n/clave : Debe ingresar la clave cifrada en hexadecimal, separando cada elemento con - ejemplo: /clave h4-54-12\n\n/ruta : Le permite especificar una ruta del registro para la busqueda de la clave",argumento);
exit(0);
}

char * RegQueryStringValue(HKEY hKey, char * strValueName,long TIPODATO)
{
long lResult;
char * strBuf;
unsigned long lValueType;
unsigned long lDataBufSize;
strBuf = (char *) calloc(200, sizeof(char));
if (strBuf==NULL)
   {
   printf("falta de memoria");
   RegCloseKey(hKey);
   exit(1);
   }
   lResult = RegQueryValueEx(hKey, strValueName, NULL, &lValueType, strBuf, &lDataBufSize);
   if (lResult == ERROR_SUCCESS)
       {if (lValueType == TIPODATO)
           {
            return strBuf;
           }
   else {return "";}
       }
   else {return "";}
}

char * obtenervalor(HKEY hKey, char * strPath, char * strValue, long tipodato)
{
PHKEY Ret;
char * valorllave;
long resultado;
resultado=RegOpenKey(hKey,strPath,&Ret);
if (resultado==ERROR_SUCCESS)
{
valorllave=RegQueryStringValue((HKEY)Ret,strValue,tipodato);
RegCloseKey((HKEY)Ret);
return valorllave;
}
else{
return "";}
}

char * desencriptandoclave(char * claveencriptada)
{
int semilla;
char * clavedesencriptada;
long i;
semilla=(int)claveencriptada[0];
clavedesencriptada = (char *) calloc(strlen(claveencriptada)-1+1, sizeof(char));//en realidad solo debiera pedir 9 espacios pero pido +1 para el '\0'
if (clavedesencriptada==NULL)
   {
   printf("falta de memoria");
   exit(1);
   }
for(i=0;i<strlen(claveencriptada)-1;i++)
   {
   clavedesencriptada[i]=(char *)((int)claveencriptada[i+1]-semilla-i-1);
   }
clavedesencriptada[strlen(claveencriptada)-1]='\0';
return clavedesencriptada;
}

char * volteandocadena(char * cadenaprocesar)
{
char * cadenaprocesada;
cadenaprocesada = (char *) calloc(strlen(cadenaprocesar)+1, sizeof(char));//+1 para el '\0'
if (cadenaprocesada==NULL)
   {
   printf("falta de memoria");
   exit(1);
   }
long i;
for(i=strlen(cadenaprocesar)-1;i>-1;i--)
   {
  cadenaprocesada[strlen(cadenaprocesar)-1-i]=cadenaprocesar[i];
   }

cadenaprocesada[strlen(cadenaprocesar)+1-1]='\0';
return cadenaprocesada;
}

int main(int argc,char **argv)
{
char siclave[7]="/clave";
char siruta[6]="/ruta";
char siayuda[7]="/ayuda";
char versionprogram[7]="4.3.26";
char * retorno;
if (argc==1){
retorno = obtenervalor(HKEY_CURRENT_USER,"SOFTWARE\\ARSON Group SAC\\Pcweb Cliente","Last Installed Version",REG_SZ);
   {if (strncmp(versionprogram,retorno,strlen(versionprogram))==0)
   {char * claveencriptada;
    claveencriptada = obtenervalor(HKEY_LOCAL_MACHINE,"SOFTWARE\\IWindow\\Bootear","Clave",REG_SZ);
       if(claveencriptada!="")
       {char * clavedesencriptada;
        clavedesencriptada=desencriptandoclave(claveencriptada);
        printf("%s",clavedesencriptada);
        exit(0);
       }
       else
       {printf("Error, no se pudo encontrar la clave \n");}

   exit(1);}
   else
   {printf("No esta instalado Pcweb Cliente 4.3.26");
   exit(1);}}
}
else
{
if ((strncmp(siclave,argv[1],strlen(siclave))==0)||(strncmp(siruta,argv[1],strlen(siruta))==0)||(strncmp(siayuda,argv[1],strlen(siayuda))==0))
{   if(strncmp(siayuda,argv[1],strlen(siayuda))==0){ayuda(argv[0]);}
   if (argc<3){printf("Falta parametros");exit(1);}
   if (strncmp(siclave,argv[1],strlen(siclave))==0)
   {
   char *separacion;
   char *cadenalista;
   long i=0;
   cadenalista=(char *) calloc(500,sizeof(char));
   if (cadenalista==NULL)
       {
       printf("falta de memoria");
       exit(1);
       }
   unsigned short decimal;
   separacion = strtok(argv[2],"-");
   while ((separacion != NULL))
       {
           sscanf(separacion, "%hx", &decimal);
           cadenalista[i]=(char *)decimal;
           separacion = strtok(NULL, "-");
           i++;

       }
   cadenalista=(char *) realloc ( cadenalista, i+1*sizeof(char) );//+1 para null
   cadenalista[i]='\0';
       if(i>1)
           {char * clavedesencriptada;
           clavedesencriptada=desencriptandoclave(cadenalista);
           printf("%s",clavedesencriptada);
           exit(0);
           }
           else{printf("Error, solamente ha escrito la semilla\n");ayuda(argv[0]);exit(1);}
   }
   else if(strncmp(siruta,argv[1],strlen(siruta))==0)
   {
   char * rutaregistro;
   char * raizregistro;
   HKEY trueraizregistro;
   char * nombrevalor;
   //---------------validaciones de ***** -----------------------------
   rutaregistro=strstr(volteandocadena((argv[2])),"\\");
       if(rutaregistro)
       {rutaregistro=strstr(volteandocadena(rutaregistro+1),"\\");
           if(rutaregistro)
           {rutaregistro=rutaregistro+1;}
           else{ayuda(argv[0]);exit(1);}
       }
       else{ayuda(argv[0]);exit(1);}
   //---------------validaciones de ***** -----------------------------
   raizregistro=strrchr(volteandocadena(argv[2]),'\\');
       if(raizregistro)
       {raizregistro=volteandocadena(raizregistro+1);}
       else{ayuda(argv[0]);exit(1);}
   //---------------validaciones de ***** -----------------------------
   nombrevalor=strrchr(argv[2],'\\')+1;
   strupr(raizregistro);
   {if(strncmp("HKEY_CLASSES_ROOT",raizregistro,17)==0)
   {
   trueraizregistro=HKEY_CLASSES_ROOT;
   }
   else if(strncmp("HKEY_CURRENT_USER",raizregistro,17)==0)
   {
    trueraizregistro=HKEY_CURRENT_USER;
   }
   else if(strncmp("HKEY_LOCAL_MACHINE",raizregistro,18)==0)
   {
   trueraizregistro=HKEY_LOCAL_MACHINE;
   }
   else if(strncmp("HKEY_USERS",raizregistro,10)==0)
   {
   trueraizregistro=HKEY_USERS;
   }
   else if(strncmp("HKEY_CURRENT_CONFIG",raizregistro,19)==0)
   {
    trueraizregistro=HKEY_CURRENT_CONFIG;
   }
   else{ayuda(argv[0]);exit(1);}}
   char * claveencriptada;
   claveencriptada = obtenervalor(trueraizregistro,rutaregistro,nombrevalor,REG_SZ);
       if(claveencriptada!="")
       {char * clavedesencriptada;
        clavedesencriptada=desencriptandoclave(claveencriptada);
        printf("%s",clavedesencriptada);
        exit(0);
       }
       else
       {printf("Error, no se pudo encontrar la clave \n");exit(1);}
   }
}
else
{
printf("Opcion no existe\n");
exit(1);
}
}

return 0;
}



Espero que le sea de utilidad y quisiera recibir consejos para optimizar el programa. Saludos ;)
#9
Hacking Wireless / Re: Handshake
2 Marzo 2012, 19:11 PM
descifrar un hash que teng como password por ejemplo "miguelito4125" , es facil, porque estas palabras se encuentran en la mayoria de diccionarios, pero un password tipo "h45ef454ff45a" no se hallaria jamas en un diccionario, solo quedaria el ataque a fuerza bruta,o con diccionarios generados pero es muy demoroso, peor un si la longitud de la contraseña es laguisima... te demorarias años
#10
NO siempre funciona esa tecnica.

lo que podrias hacer es desautenticar un cliente del AP con el  que quieres autenticarte y luego de eso cambiar la MAC de tu interfaz monitor(en este caso mon0 ) con la mac del cliente que desautenticaste.. En resumen usurpar la MAC de un cliente legitimo del AP


aireplay-ng -0 (numero de intentos, yo le pongo 30) -a (mac del AP) -c (mac de un cliente del AP) mon0

ifconfig mon0 down

macchanger -m (mac del cliente desautenticado) mon0

ifconfig mon0 up


luego de eso prueba autenticandote