Compilar nmpa estático

Algoritmos, estructuras de datos, estrategias o patterns. Lenguaje' de programasión, vieja! Ce, loco, Ce! Páison, y todo eso.

Compilar nmpa estático

Notapor john_doe el Lun Dic 15, 2008 11:05 am

¿Gente, alguien sabe si es posible compilar nmap de manera estática, onda que no necesite instalar todas las librerías a las que linkea?

¡Saludos!
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Compilar nmpa estático

Sponsor

Sponsor
 

Re: Compilar nmpa estático

Notapor buanzo el Lun Dic 15, 2008 3:14 pm

el ./configure te deberia dar eso.

Si no te alcanza, siempre tenes el ELF Statifier. http://freshmeat.net/projects/statifier/
Avatarde Usuario
buanzo
Administrador
 
Posts: 673
Registrado: Sab Dic 09, 2006 11:17 am
Ubicación: Buanzonia (ok, Florida, Buenos Aires)

Re: Compilar nmpa estático

Notapor john_doe el Lun Dic 15, 2008 5:33 pm

¡¡Genial! Ahora voy a leer bien el README de las fuentes porque ensima lo voy a crosscompilar para arm jajaja lindo desastre!! :lol:
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Re: Compilar nmpa estático

Notapor john_doe el Mar Dic 16, 2008 9:46 am

AAAAggghhh! Logré compilar nmap (aunque tuve que prescindir de openssl, que de todas formas no tengo idea de para qué lo usa). Pero sigo con el problema de las librerías. Compilé un Hello World y ejecuta joya, eso me deja tranquilo de que el toolchain que estoy usando genera bien los binarios.

El statifier solo funciona para x86, x86_64, y alpha...así que no tengo otra forma de generar un binario estático en arm. En el sitio de statifier dice que puede portarse a otro cpu facilmente, pero ni idea de cómo ni si se puede estatificar un binario de una plataforma estando en otra, igual voy a consultar en el foro de statifier si se puede.

Les detallo un poco más lo que estoy tratando de hacer:

Quiero compilar nmap para la arquitectura armv5tel que es la del teléfono celular Motorola a1200. Este aparato viene con la distro Montavista Linux Consumer Electronics Edition 3.1, pero MUY toqueteada por Motorola y reducida así que muchas de las librerías que necesito no las tiene. Esto me motiva a querer un binario estático (no puedo modificar el filesystem del sistema oeprativo).

¿A alguien se le ocurre alguna otra forma?...Quizá compilando las librerías, poniéndolas en un filesystem que sí puedo escribir, y hacer que el binario las busque ahí, pero no sé si esto ultimo se puede hacer.
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Re: Compilar nmpa estático

Notapor john_doe el Mar Dic 16, 2008 4:16 pm

Me respondió la desarrolladora de statifier: https://sourceforge.net/forum/forum.php ... _id=358807

Esto es lo que dijo:

Statifier in nutshell work as following:
1) Run (I repeat: RUN) program to be statified under debugger till certain point.
This point is AFTER all shared libraries are loaded and relocated and JUST before their _init functions invoked
2) Dump process memory and registers to the disk.
3) From data collected in 2) and some processor specific starter (part of statifier package) create statified executable.
Whole purpose of the starter is restore registers as they were, and jump to the address were execution was stopped by debugger.

As you can see, RUNNING program is essential part of the process.
And it can't be done in cross-build environment :(((

So as I see you have following options:
1) Struggle with static build in the cross-compiling environment
2) Struggle with static build in the native environment (you can use QEMU to emulate arm)
3) Try to port statifier to ARM yourself. (I tried my best - and wasn't able to :((
4) Try to use Ermine (http://magicErmine.com).
Ermine commercial, but it support ARM.
Also Ermine much better work on system with memory randomization

Statifier and ermine comparison can be found here:
http://www.magicermine.com/products.htm ... comparison

Voy a ver si puedo hacer algo haciendo que statifier use qemu para correr el programa...
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Re: Compilar nmpa estático

Notapor Adriano el Mar Dic 16, 2008 4:57 pm

Perdón, no, pero si el resultado final que querés es nmap corriendo sobre linux-arm, por qué no ver si alguien ya lo hizo?
http://seclists.org/nmap-hackers/2002/0037.html
Saludos
Adriano
Avatarde Usuario
Adriano
Administrador
 
Posts: 392
Registrado: Sab Dic 09, 2006 12:50 pm
Ubicación: Argentina

Re: Compilar nmpa estático

Notapor john_doe el Mar Dic 16, 2008 7:15 pm

Te agradezco che por el tip.....yo ya sabía que hay ports de nmap para arm en paquetes ipkg y que corren joya en mi sistema, pero mi problema es el mismo que compilándolo yo: no tengo las shared libraries en el sistema donde lo quiero correr, por eso mi interés en un binario estático.
Mi idea es tener binarios que puedan correr sin tener que instalar nada más en el sistema. Porque el filesystem del sistema operativo es read only. La única manera de meterle las librerías sería tener en unos directorios una copia de todo el /lib y/o /usr/lib que ya viene en el sistema, agregarle las libs que necesito, y montar esos directorios en /lib y /usr/lib respectivamente (es la misma forma que uso para modificar las configuraciones de /etc) pero me suena a muy desprolijo o enquilombado qué sé yo...
Si veo que se me complica demasiado esto voy a ir al plan B que es lo de montar los directorios, que claro también me trae temas que resolver como generar las librerías que necesito...
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Re: Compilar nmap estático

Notapor buanzo el Mar Dic 16, 2008 11:49 pm

Googleate LD_LIBRARY_PATH, o hacete el ./configure con el path a donde estan esas libs, y se usa ese path en realtime. Chau mambo de /usr y blah, blah.

Como te dije varias veces, John: si queres hacer cosas de programador, pensa como programador... ponete a programar... y googlea, googlea y segui googleando. No todo es ./configure && make && make install como les quieren hacer creer a los linuxeros el dia de hoy.
Avatarde Usuario
buanzo
Administrador
 
Posts: 673
Registrado: Sab Dic 09, 2006 11:17 am
Ubicación: Buanzonia (ok, Florida, Buenos Aires)

Re: Compilar nmpa estático

Notapor john_doe el Mie Dic 17, 2008 8:51 am

Bueeeno che, yo tampoco espero que alguien me solucione la vida. Yo posteo por si alguno se le ocurre algo que pueda ayudar. :D
Esto que me decís del LD_LIBRARY_PATH es algo que justamente ayer me acordaba que vi en unos scripts de otros programas que corren en mi celular (que es el dispositivo para el que quiero compilar nmap), y ahora que me lo decís vos seguro que es una solución viable.
Igual estoy leyendo la documentación de statifier que está MUY interesante, para mí que no sé programar. :)
Sé que no todo es ./configure && make && make install (y make clean muchas veces hasta que salga bueno XD) y creeme que busco en google como loco jejeje
Y lo de pensar como programador...bueno me tengo que poner a programar :D
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Re: Compilar nmpa estático

Notapor john_doe el Mar Dic 23, 2008 3:02 pm

Bueno, gente, parece que estatificar el binario no era la solución que necesitaba. Finalmente haciendo uso del framework mkezx, pude generar nmap con todas sus dependencias. Corre bárbaro en mi teléfono.
Es una version viejita, la 4.20...voy a ver si puedo generar la versión 4.76 que es la última (disponible en nmap.org) después.

¡Bueno, les gradezco la ayuda!

¡¡Felices fiestas!! :metal:
Ultima edición por john_doe el Mie Dic 24, 2008 9:13 am, editado 1 vez en total
A veeer...
homer@head:~# ln -s /dev/null /dev/brain
homer@head:~# doh!
bash: doh!: command not found
Connection to head closed.
Avatarde Usuario
john_doe
Amigo del Jefe
 
Posts: 133
Registrado: Dom Ene 07, 2007 11:44 am

Siguiente

Volver a Programación y Diseño de Sófwer.

¿Quién está conectado...?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron