Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Mostrar Mensajes

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


Mensajes - mr.blood

Páginas: [1] 2 3 4
1
Ingeniería Inversa / [KeygenMe] Matrix
« en: Marzo 24, 2015, 02:48:04 pm »
Aquí os dejo un KeygenMe, espero que os guste. Está programado en C++ no sé que nivel de dificultad decir que tiene, para crackearlo será nivel 0, pero el reto es hacer un keygen :).

https://mega.co.nz/#!CBdAyZhS!nhpX7Mji2TzPJSk3JAGlSttlsxQFX-h_kVnSLa1r9Ag

SaluDoS

2
Para empezar de 0 probablemente Batch o Bash, algo sencillo y funcional, de ahí puedes pasar a un lenguaje como Python o VB y ya dar el salto a C o C++ para hacer cosas mas serias. (No me gusta Java, por muy de moda que esté).

Sa1uDoS

3
Dudas y pedidos generales / Re:¿Que partes son las que hacen buena PC?
« en: Agosto 04, 2013, 05:23:12 am »
Depende para que quieras el PC.

Tienes que tener en cuenta cuanto consumen los componentes para comprar la fuente de alimentación, por eso yo dejaría esta para el final.
Si no quieres un PC para jugar, puedes comprar una gráfica más normalita y gastarte más en el procesador (que es lo más caro).
Antes que nada debes mirar una placa madre compatible con los componentes que quieras comprar.
La RAM es bastante barata, solo debes mirar la compatibilidad con la motherboard.

No tiene porque ser el mejor PC, tiene que ser un PC adecuado a tus necesidades, para no gastar más de la cuenta.

Sa1uDoS

4
C / C++ / Re:Calculadora básica en C
« en: Julio 15, 2013, 07:42:06 am »
Te dejo el código un poco más corto:

Código: C
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.    printf("####################################\n");
  5.    printf("## Calculadora basica by Metadato ##\n");
  6.    printf("####################################\n");
  7.  
  8.    char operaciones;
  9.    float a,b;
  10.    printf("Suma (S), Resta (R), Multiplicacion (M), Division (D): ");
  11.    scanf("%c",&operaciones);
  12.    
  13.    printf("Ingresa los operandos:\n");
  14.    scanf("%f %f",&a,&b);
  15.  
  16.    switch(operaciones){
  17.  
  18.     case 'S' :
  19.     printf("%.2f + %.2f = %.2f",a,b,a+b);
  20.     break;
  21.  
  22.     case 'R' :
  23.     printf("%.2f - %.2f = %.2f",a,b,a-b);
  24.     break;
  25.  
  26.     case 'M' :
  27.     printf("%.2f * %.2f = %.2f",a,b,a*b);
  28.     break;
  29.  
  30.     case 'D' :
  31.     printf("%.2f / %.2f = %.2f",a,b,a/b);
  32.     break;
  33.  
  34.     default : puts("Error!! Quizas hayas escrito la letra en minuscula...");
  35.    }
  36.  
  37.     return 0;
  38. }
  39.  

Sa1uDoS

5
O no tienes conceptos claros o yo no te entiendo. PEB es una estructura de Windows: http://msdn.microsoft.com/en-us/library/windows/desktop/aa813706(v=vs.85).aspx y http://en.wikipedia.org/wiki/Process_Environment_Block

Creo que te refieres al PE y no al PEB. Puedes meter los datos que quieras, pero dependiendo de lo que quieras hacer con esos datos debes darle unos permisos u otros. Para que se ejecuten, en algún punto tiene que haber una llamada a esa zona. La forma más sencilla es cambiar el Entry Point.

Sa1uDoS

6
Ingeniería Inversa / Re:[InyectMe] Edge
« en: Julio 08, 2013, 06:32:09 pm »

7
Me apunto, si me dejan :P.

Sa1uDoS

8
Dudas y pedidos generales / Re:¿Qué hago con la shellcode?
« en: Junio 30, 2013, 06:24:42 pm »
No se en Win, no lo toco demasiado, pero en Linux funciona ;).

Debería funcionar dándole los permisos adecuados no?

Sa1uDoS

9
Dudas y pedidos generales / Re:¿Qué hago con la shellcode?
« en: Junio 30, 2013, 04:39:21 pm »
Sí, es C, puedes quitar la sentencia del printf. Solo muestra la longitud de la shellcode, es algo opcional.

Puedes compilar con gcc o g++ como quieras, lo suyo, por ser C, es compilar con gcc ;). (Dev-C++ es un IDE, bastante obsoleto por cierto, te recomiendo usar otro como Code::Blocks).

Sa1uDoS

10
Dudas y pedidos generales / Re:¿Qué hago con la shellcode?
« en: Junio 30, 2013, 12:38:54 pm »
Tienes un array de char, cada char ocupa 1 byte, en el metes la shellcode byte a byte.

El printf imprime la longitud de la shellcode.

(*(void(*)()) code)();

Simplemente llama a code como si fuera una función sin parámetros y que no devuelve ningún valor.

Sa1uDoS

11
Dudas y pedidos generales / Re:¿Qué hago con la shellcode?
« en: Junio 30, 2013, 12:05:22 pm »
Ese es un código de Sagrini.

Donde pone code[]="..." pones tu shellcode ;).

Sa1uDoS

12
Dudas y pedidos generales / Re:¿Qué hago con la shellcode?
« en: Junio 30, 2013, 12:01:30 pm »
Código: C
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. char code[] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80";
  5.  
  6. int main(int argc, char **argv)
  7. {
  8.         printf ("TinShell V1.0 : By Sagrini : %d bytes\n", strlen (code));
  9.         (*(void(*)()) code)();
  10.         return 0;
  11. }
  12.  

Te sirve?

Sa1uDoS

13
Dudas y pedidos generales / Re:ayuda con c
« en: Junio 30, 2013, 05:35:37 am »
Eso creo que debes hacerlo en ring0, porque hoy en día los distintos procesos no comparten la memoria sino que el SO virtualiza memoria para cada proceso. Creo que no puedes acceder a toda la memoria a no ser que trabajes a nivel ring0.

Sa1uDoS

14
Dudas y pedidos generales / Re:Duda de kali
« en: Junio 23, 2013, 11:45:26 am »
Teóricamente no deberías tener ningún problema, solo que no aprovecharán todos los recursos de tu PC.

Prueba y nos cuentas ;)

Sa1uDoS

15
Dudas y pedidos generales / Re:para que sirve usar push ebp?
« en: Junio 23, 2013, 11:41:29 am »
Antes de nada, debeis saber que ESP y EBP son punteros al stack. StackPointer(SP) y BasePointer(BP). SP apunta al tope y BP a la base.



Se utiliza antes de entrar a una función para cambiar el marco del stack.

ESP
datos
datos
EBP

Guarda en el stack el antiguo valor de EBP para luego recuperarlo. Mueve ESP a EBP de modo que no se sobreescriban los datos anteriormente guardados ;). El sub ESP, 4 "reserva" 4 bytes en el stack.

Luego, al salir de la funcion debes usar leave para que los registros tomen los valores que tenian al principio.

Sa1uDoS

16
Me funciona perfectamente. El OllyDbg no crashea.

Sa1uDoS

17
La primera instrucción que pongo, y el Olly no crashea...

Sa1uDoS

18
Ingeniería Inversa / [InyectMe] Edge
« en: Junio 16, 2013, 03:10:08 pm »
Hoy les dejo un InyectMe muy sencillito, para que los nuevos practiquen un poco ;).

Deben cambiar el "Cambiame" del MessageBox por su nick, así de sencillo. Cuando lo consigan me envían un MP con una captura y les agrego al Hall Of Fame.

[Edge] InyectMe.rar (486 B)
https://mega.co.nz/#!HZ0hmRDK!QDgKJHCprddUBsNUEYVjQ1WM2JphG5A_V84Mqzf2SjU
http://www.mediafire.com/?l4tqbh6oat6mlfd

Sa1uDoS

19
Off Topic / Re:una pregunta para todos
« en: Junio 11, 2013, 04:43:13 am »
Totalmente autodidacta, estoy cursando 1º Bachiller y es la primera vez en mi vida que doy informática.

Creo que si le pone interés y tiene ciertas habilidades naturales, el que estudia será mejor que el autodidacta. Al menos en mi caso no me pongo a mirar, por poner un ejemplo, matemáticas mientras que en una carrera las dan.

Aun así conozco muchos "ingenieros" sin ninguna idea, así que todo depende. Lo que está claro es que estudiando deberías aprender más en menos tiempo. (Yo llevo 4 años en esto y no se lo mismo que DEBERÍA saber cualquier ingeniero).

Sa1uDoS

20
Códigos Fuentes / [C] Agenda con listas enlazadas
« en: Junio 11, 2013, 03:14:13 am »
EDITO: Sorry, Google me trolleó este código no es mío es de myguestp lo confundí con uno mío muy parecido. Todos los créditos a él.



Traigo este código como un pequeño ejemplo de listas enlazadas. Lo hice hace ya un par de años así que seguramente no lo volvería a hacer igual :P.

Código: C
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define ID_NAME 60
  6. #define ID_APELLIDO1 61
  7. #define ID_APELLIDO2 62
  8. #define ID_TELEFONO 63
  9.  
  10.  
  11. typedef struct lista
  12. {
  13.     char nombre[10], apellido1[10], apellido2[10], telefono[10];
  14.     struct lista *siguiente;
  15. }lista;
  16.  
  17. lista *primero=NULL, *ultimo=NULL;
  18.  
  19. void cls();
  20. void pause();
  21. void delnewline(char *array);
  22. void additem();
  23. void recorrer();
  24. bool finditem(char *word, int flag);
  25.  
  26. int main()
  27. {
  28.     int opc, id;
  29.     char word[10], op[10];
  30.     lista *aux;
  31.    
  32.     while(opc!=4)
  33.     {
  34.         printf("Indica que hacer:\n\n 1.Introducir contacto\n 2.Recorrer agenda\n 3.Buscar contacto\n 4.Salir\n\n");
  35.         scanf("%i", &opc);
  36.         cls();
  37.         switch(opc)
  38.         {
  39.             case 1:
  40.                 additem();
  41.             break;
  42.             case 2:
  43.                 recorrer();
  44.                 pause();
  45.             break;
  46.             case 3:
  47.                 printf("Indica por que criterio buscar(nombre, apellido1, apellido2 o telefono): ");
  48.                 scanf("%s", op);
  49.                 delnewline(op);
  50.                 if(strcmp(op, "nombre")==0) id=ID_NAME;
  51.                 else if(strcmp(op, "apellido1")==0) id=ID_APELLIDO1;
  52.                 else if(strcmp(op, "apellido2")==0) id=ID_APELLIDO2;
  53.                 else if(strcmp(op, "telefono")==0) id=ID_TELEFONO;
  54.                 else break;
  55.                 cls();
  56.                 printf("Indica la palabra a buscar:\n\n");
  57.                 scanf("%s", word);
  58.                 cls();
  59.                 finditem(word, id);
  60.                 pause();
  61.             break;
  62.             case 4:
  63.             break;
  64.             default:
  65.                 printf("Elije una opcion correcta");
  66.             break;
  67.         }
  68.         cls();
  69.     }
  70.     aux=primero;
  71.     while(aux!=NULL)
  72.     {
  73.         free(aux);
  74.         aux=aux->siguiente;
  75.     }
  76.     return 0;
  77. }
  78.  
  79. void cls()
  80. {
  81.     #ifndef WIN32
  82.      system("clear");
  83.     #else
  84.      system("cls");
  85.     #endif
  86. }
  87.  
  88. void pause()
  89. {
  90.     setbuf(stdin, NULL);
  91.     getchar();
  92. }
  93. void delnewline(char *array)
  94. {
  95.     while(*array!='\0')
  96.     {
  97.         if(*array=='\n')
  98.         {
  99.             *array='\0';
  100.         }
  101.         array++;
  102.     }
  103. }
  104.  
  105. void additem()
  106. {
  107.     lista *nuevo;
  108.     nuevo=(lista*)malloc(sizeof(lista));
  109.     printf("Introduce el nombre completo(ejemplo: Miguel Ruiz Cruz):\n\n");
  110.     scanf("%s %s %s", nuevo->nombre, nuevo->apellido1, nuevo->apellido2);
  111.     printf("\nIntroduce ahora el numero de telefono(9 cifras): ");
  112.     scanf("%s", nuevo->telefono);
  113.     cls();
  114.     delnewline(nuevo->nombre);
  115.     delnewline(nuevo->apellido1);
  116.     delnewline(nuevo->apellido2);
  117.     delnewline(nuevo->telefono);
  118.     if(primero==NULL)
  119.     {
  120.         primero=(lista*)malloc(sizeof(lista));
  121.         ultimo=(lista*)malloc(sizeof(lista));
  122.         if(!primero || !ultimo)
  123.         {
  124.             printf("No se pudo reservar memoria para el item");
  125.             return;
  126.         }
  127.         primero=nuevo;
  128.         primero->siguiente=ultimo;
  129.         ultimo=nuevo;
  130.         ultimo->siguiente=NULL;
  131.         return;
  132.     }
  133.     ultimo->siguiente=nuevo;
  134.     ultimo=nuevo;
  135.     ultimo->siguiente=NULL;
  136.     return;
  137. }
  138.  
  139. void recorrer()
  140. {
  141.     lista *aux;
  142.     aux=primero;
  143.     if(aux==NULL)
  144.     {
  145.         printf("Lista vacia");
  146.         return;
  147.     }
  148.     while(aux!=NULL)
  149.     {
  150.         printf("Nombre: %s %s %s  Telefono: %s\n\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  151.         aux=aux->siguiente;
  152.     }
  153.     return;
  154. }
  155.  
  156. bool finditem(char *word, int flag)
  157. {
  158.     lista *aux;
  159.     int cont=0;
  160.     aux=primero;
  161.     if(aux==NULL)
  162.     {
  163.         return false;
  164.     }
  165.     if(flag==ID_NAME)
  166.     {
  167.         while(aux!=NULL)
  168.         {
  169.             if(strcmp(aux->nombre, word)==0)
  170.             {
  171.                 printf("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  172.                 cont++;
  173.             }
  174.             aux=aux->siguiente;
  175.         }
  176.     }
  177.     else if(flag==ID_APELLIDO1)
  178.     {
  179.         while(aux!=NULL)
  180.         {
  181.             if(strcmp(aux->apellido1, word)==0)
  182.             {
  183.                 printf("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  184.                 cont++;
  185.             }
  186.             aux=aux->siguiente;
  187.         }
  188.     }
  189.     else if(flag==ID_APELLIDO2)
  190.     {
  191.         while(aux!=NULL)
  192.         {
  193.             if(strcmp(aux->apellido2, word)==0)
  194.             {
  195.                 printf("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  196.                 cont++;
  197.             }
  198.             aux=aux->siguiente;
  199.         }
  200.     }
  201.     else if(flag==ID_TELEFONO)
  202.     {
  203.         while(aux!=NULL)
  204.         {
  205.             if(strcmp(aux->telefono, word)==0)
  206.             {
  207.                 printf("Nombre: %s %s %s Telefono: %s\n", aux->nombre, aux->apellido1, aux->apellido2, aux->telefono);
  208.                 cont++;
  209.             }
  210.             aux=aux->siguiente;
  211.         }
  212.     }
  213.     if(cont==0)
  214.     {
  215.         printf("No se encontraron resultados");
  216.         return false;
  217.     }
  218.     printf("\nSe encontraron %i resultados", cont);
  219.     return true;
  220. }

Sa1uDoS

Páginas: [1] 2 3 4