Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Borito30 en 13 Enero 2018, 23:16 pm



Título: alguna alternativa a ilmerge pero para c++?
Publicado por: Borito30 en 13 Enero 2018, 23:16 pm
En la anterior pregunta no me explique bien lo que estoy buscando es alguna manera de usar mis librerias como recurso embedido en lugar de referencias como cuando uno usa ilmerge pero para c++- Es decir por ejemplo tengo varias dependencias en c++ nativo y quiero que estas dependencias sean incorporadas al fichero como recurso embebido en mi proyecto/programa en c++. Es posible alguna manera facil de resolver estas dependencias como uno en net pero solamente en nativo/managed? Lei sobre costura/fuddy/resource embedder pero no estoy seguro si funcionará en mi proyecto en c++?

necesito que sea recurso no libreria estatica! alguna solucion ! para c++?
saludosss


Título: Re: alguna alternativa a ilmerge pero para c++?
Publicado por: kub0x en 13 Enero 2018, 23:38 pm
Lo primero es añadir la DLL como recurso dentro del ejecutable. Segundo cargar el recurso en runtime en un buffer.

Ahora tienes dos formas de cargar dicha DLL en runtime:

La primera es escribir el buffer en disco con formato .DLL. Después cargas la DLL con LoadLibrary y listo. El problema es que guarda en disco, podrias Unlodear la lib al final de la ejecucción y borrarla de disco antes de que termine el programa.

La segunda es implementar tu mismo un loader que cargue la lib en runtime, así no escribes en disco. La ventaja de la primera es que el loader de Win$ ya te la carga. El loader tendrá que mapear la DLL en la memoria virtual del proceso y tener en cuenta ciertos parámetros de las cabeceras PE. Hay material de sobra acerca de esto.

Para llenar un buffer en runtime con el contenido del recurso mira esto: https://stackoverflow.com/questions/9240188/how-to-load-a-custom-binary-resource-in-a-vc-static-library-as-part-of-a-dll

Saludos!


Título: Re: alguna alternativa a ilmerge pero para c++?
Publicado por: Borito30 en 15 Enero 2018, 02:53 am
hola kub0x me parece interesante esto que dices. como dices puedo crear un buffer y mapear mi dll.
sin son varias se complica un poco la cosa.
o usar loadlibrary. lo cual tendría que hacer algun evento para que cargase varias.


Título: Re: alguna alternativa a ilmerge pero para c++?
Publicado por: kub0x en 15 Enero 2018, 21:12 pm
hola kub0x me parece interesante esto que dices. como dices puedo crear un buffer y mapear mi dll.
sin son varias se complica un poco la cosa.
o usar loadlibrary. lo cual tendría que hacer algun evento para que cargase varias.

Así es, ya depende de tí cual elegir, si ves que el loader te va a retrasar porque es algo nuevo pues implementa la de LoadLibrary desde disco, total la funcionalidad será la misma y es el método común a no ser que tu proyecto sea un malware (escribir en disco lo haría más detectable).

Saludos!