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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  cabeceras
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: cabeceras  (Leído 1,449 veces)
XKC

Desconectado Desconectado

Mensajes: 128



Ver Perfil
cabeceras
« en: 27 Junio 2017, 14:18 pm »

Hola a todos, estoy mirando cosillas por github y tengo dudas con algunas cosas.
Os dejo el link:
https://github.com/graniet/fsociety-ransomware-MrRobot/tree/master/source
Alguien me puede explicar este fragmento de codigo?
Código:
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(_CYGWIN_) //Por que tantas comprobaciones, no valdria solo defined(win32)??
    #define WIN32_WINNT 0x0500 // Para que es esto???
    #include <windows.h>
#endif
Despues en ciertos pasos dentro del codigo hace
Código:
/*
 * Estas comprobaciones las hace para poder compilar el codigo y ejecutarlo en una plataforma diferente a windows??
 * Si es asi en la linea 21 del main.cpp hace esto:
 *      char *folder = "/root/Bureau"; //¿es una ruta UNIX, no funcionara en windows?, me he perdido...
 */
#if defined(win32)
Hace alguna cosa..
#else
Otras funciones
#endif


« Última modificación: 27 Junio 2017, 14:20 pm por XKC » En línea

Para poder atacar y vencer con seguridad, ataca donde ellos no puedan defenderse.
Para defenderte y resistir firme, defiéndete en donde ellos no atacarán.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: cabeceras
« Respuesta #1 en: 27 Junio 2017, 14:37 pm »

Las primera comprobación es larga porqué debe preveer todas las distintas formas en que las APIs definen código para Windows y que no formen parte de Cygwin que recrea un entorno Linux dentro de windows.

El WIN32_WINNT es un símbolo para que las APIs activen, en durante la compilación condicional, ciertas funciones y tipos de datos.

Sobre la ruta que marcas sí, es una ruta *nix y no, no funciona con windows (pero sí bajo cygwin)

Lo último es la compilación condicional que compilará una cosa si está definido el símbolo win32 o el otro si no lo está (por ser otro S.O.)


En línea

XKC

Desconectado Desconectado

Mensajes: 128



Ver Perfil
Re: cabeceras
« Respuesta #2 en: 27 Junio 2017, 14:57 pm »

Las primera comprobación es larga porqué debe preveer todas las distintas formas en que las APIs definen código para Windows y que no formen parte de Cygwin que recrea un entorno Linux dentro de windows.

El WIN32_WINNT es un símbolo para que las APIs activen, en durante la compilación condicional, ciertas funciones y tipos de datos.

Sobre la ruta que marcas sí, es una ruta *nix y no, no funciona con windows (pero sí bajo cygwin)

Lo último es la compilación condicional que compilará una cosa si está definido el símbolo win32 o el otro si no lo está (por ser otro S.O.)
osea, que este codigo esta reparado para compilarse bajo cualquier entorno.
¿Si solo quisieras utilizarlo sobre windows bastaria con omitir todas las comprobaciones de las API ?
Otra cosa, como funciona esto sobre entornos windows si la ruta es *nix?
Gracias por tu respuesta.
En línea

Para poder atacar y vencer con seguridad, ataca donde ellos no puedan defenderse.
Para defenderte y resistir firme, defiéndete en donde ellos no atacarán.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
comando FOR + NC + cabeceras.txt ?
Scripting
Azielito 1 2,302 Último mensaje 19 Noviembre 2009, 21:56 pm
por Azielito
Cabeceras HTTP
Nivel Web
Constantinoplero 2 5,545 Último mensaje 3 Diciembre 2009, 08:47 am
por WHK
Cabeceras
Programación C/C++
M:D 3 2,498 Último mensaje 9 Junio 2010, 21:19 pm
por M:D
SPF: Cabeceras
Redes
huerto123 7 3,903 Último mensaje 11 Marzo 2015, 18:37 pm
por el-brujo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines