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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Como resolver estos errores?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Como resolver estos errores?  (Leído 5,086 veces)
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Como resolver estos errores?
« Respuesta #10 en: 14 Marzo 2017, 21:03 pm »

Antes de nada, me aprece raro que al generar la librería de esos errores. ¿Siempre te los dió?


En línea

Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: Como resolver estos errores?
« Respuesta #11 en: 14 Marzo 2017, 21:38 pm »

Al final me devuelve este error cuando añado la libreria que es (hook.c) con todas sus .o ficheros de linkeado, y perdona por liarla tanto con tanto texto, me devuelve:
Código:
C:\Users\Androide\Desktop\minhook\Dynamic>g++ -o bot.exe Dynamic.o hook.o hde32.
o buffer.o trampoline.o
hook.o:hook.c:(.text+0x60b): undefined reference to `OpenThread'
hook.o:hook.c:(.text+0x69d): undefined reference to `OpenThread'
hook.o:hook.c:(.text+0xa2c): undefined reference to `InitializeBuffer'
hook.o:hook.c:(.text+0xa7d): undefined reference to `UninitializeBuffer'
hook.o:hook.c:(.text+0xb14): undefined reference to `IsExecutableAddress'
hook.o:hook.c:(.text+0xb27): undefined reference to `IsExecutableAddress'
hook.o:hook.c:(.text+0xb52): undefined reference to `AllocateBuffer'
hook.o:hook.c:(.text+0xb7c): undefined reference to `CreateTrampolineFunction'
hook.o:hook.c:(.text+0xca0): undefined reference to `FreeBuffer'
hook.o:hook.c:(.text+0xd82): undefined reference to `FreeBuffer'
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw
32/bin/ld.exe: hook.o: bad reloc address 0x13c in section `.rdata'
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw
32/bin/ld.exe: final link failed: Invalid operation
collect2.exe: error: ld returned 1 exit status

Supongo que tendré que linkear tambien a la librería openthread añadiendo -lopenthread o algo así.

Con gloox se me soluciono los errores añadiendo el linkeado de estas librerias -lws2_32 -ldnsapi -lgdi32 -lcrypt32 -lsecur32 supongo será igual para este proyecto pero con otras librerias de linkeado.


« Última modificación: 14 Marzo 2017, 22:01 pm por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Como resolver estos errores?
« Respuesta #12 en: 14 Marzo 2017, 22:41 pm »

Prueba compilando como hacías antes así:
Código:
gcc -o bot.exe Dynamic.cpp -L"Direccion de la carpeta de los archivos de la librería" -lhook -lhde32 -lbuffer -ltrampoline

De todos modos, estaba leyendo y:
Código
  1. #pragma comment(lib, "MinHook.x64.lib")
Tienes eso en el código. Eso solo funciona en VC++. Y esa es otra, ¿tienes un .lib? Si tienes ese .lib, entonces prueba algo como:
Código:
gcc -o bot.exe Dynamic.cpp -L"Direccion de la carpeta de los archivos de la librería" -l"MinHook.x64"

En fin, si no te funciona nada de esto, mira información sobre la librería...
En línea

Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: Como resolver estos errores?
« Respuesta #13 en: 14 Marzo 2017, 23:55 pm »

Me referia a esto(lo solucione así como indicastes solo añadiendo los linkeados):
-------------- Build: Debug in main (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -fexceptions -g -IC:\openssl-1.0.1c_static_w32_mingw\include -IC:\openssl-1.0.1c_static_w32_mingw\include -IC:\Users\Androide\Desktop\gloox\src -c C:\Users\Androide\Desktop\main\main.cpp -o obj\Debug\main.o
mingw32-g++.exe -LC:\openssl-1.0.1c_static_w32_mingw -LC:\Users\Androide\Desktop\gloox -o bin\Debug\main.exe obj\Debug\main.o   C:\openssl-1.0.1c_static_w32_mingw\libcrypto.a C:\openssl-1.0.1c_static_w32_mingw\libssl.a C:\Users\Androide\Desktop\gloox\libgloox.a -lws2_32 -ldnsapi -lgdi32 -lcrypt32 -lsecur32


Me han recomendado usar cmake pero no se muy bien como compilar mi proyecto con cmake ya que usa una version antigua:
Código:
TDM-GCC 4.9.2 SJLJ (released in October 30, 2014),

Pero la cuestión es como usar cmake captura de cmake y mis ficheros:



Supongo que tendré que hacer un proyecto en codeblocks y compilarlo. Se supone que tengo que generar el makefile de mi proyecto con mingw creo y luego compilarlo con cmake que esta actualizado y no da estos problemas.
« Última modificación: 14 Marzo 2017, 23:57 pm por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: Como resolver estos errores?
« Respuesta #14 en: 15 Marzo 2017, 02:28 am »

Parece ser que el error open thread es resuelto usando la versión de msys que utiliza una versión mas actualizada. Me aparecen los mismos errores de undefined reference es decir del proyecto como los que resolvistes anteriormente:
Código:
$ g++ -o /c/Users/Androide/Desktop/minhook/Dynamic/Dynamic.exe /c/Users/Androide/Desktop/minhook/Dynamic/Dynamic.o /c/Users/Androide/Desktop/minhook/Dynamic/hook.o
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xab6): undefined reference to `InitializeBuffer()'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xb07): undefined reference to `UninitializeBuffer()'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xba2): undefined reference to `IsExecutableAddress(void*)'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xbb1): undefined reference to `IsExecutableAddress(void*)'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xbec): undefined reference to `AllocateBuffer(void*)'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xc16): undefined reference to `CreateTrampolineFunction(_TRAMPOLINE*)'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xd3d): undefined reference to `FreeBuffer(void*)'
C:/Users/Androide/Desktop/minhook/Dynamic/hook.o:hook.c:(.text+0xe17): undefined reference to `FreeBuffer(void*)'
collect2.exe: error: ld returned 1 exit status


Supongo que se podrá resolver usando void en estos métodos como me dijistes anteriormente.

Te pongo el código de la librería:
http://rextester.com/GLAIG22887
« Última modificación: 15 Marzo 2017, 15:04 pm por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: Como resolver estos errores?
« Respuesta #15 en: 15 Marzo 2017, 15:05 pm »

Hola ivancea te he puesto el error actualizado que es de la librería pienso que se solucionara igual si tienes unos instantes fijate sino lo dejo asi. saludos y gracias.
En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
ivancea96


Desconectado Desconectado

Mensajes: 3.414


ASMático


Ver Perfil WWW
Re: Como resolver estos errores?
« Respuesta #16 en: 15 Marzo 2017, 15:21 pm »

No, esos son errores del linker. Tienes que diferenciarlos. Cuando pone "ld returned 1" es error del linker ("ld" es el linker de GCC). Las undefined references también son del linker. "hook.o", está trabajando con el código objeto, ergo probablemente también sea del linker. ".text+0xab6", ".text" es una sección de un ejecutable, así que también implica linker.

En cualquier caso. Los errores de linker se solucionan linkeando bien las librerías, valga la redundacia. Intuyo que "InitializeBuffer" es una función de una librería. No veo que se la hayas indicado al compilar, con -L y/o -l.
En línea

Borito30


Desconectado Desconectado

Mensajes: 481


Ver Perfil
Re: Como resolver estos errores?
« Respuesta #17 en: 15 Marzo 2017, 15:36 pm »

Te pongo un ejemplo, tengo hasta el buffer creado .a:


Muchas gracias funciono. Os pongo el ultimo comando que teneis que poner:
Código:
g++ -o bot.exe Dynamic.o hook.o -L/c/Users/Androide/Desktop/minhook/Dynamic/ trampoline.a buffer.a hde32.a

Recordaros que codeblocks trae una versión antigua que a veces pues no incluye ciertas librerias por defecto y si actualizais evitais conflicto , gracias  ivancea por tu ayuda.
« Última modificación: 15 Marzo 2017, 18:56 pm por Ragaza » En línea

Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Urgente ayudenme resolver estos ejercicos en C#
Ejercicios
Ruben Yiyo 4 5,552 Último mensaje 16 Febrero 2010, 02:13 am
por micky123
[C][?]Ayuda a resolver estos errores
Programación C/C++
Xcution 1 1,646 Último mensaje 1 Noviembre 2013, 20:50 pm
por vangodp
Necesito ayuda para resolver estos errores en este programa de C
Programación C/C++
Xcution 0 968 Último mensaje 29 Noviembre 2013, 03:44 am
por Xcution
Microsoft te ayuda a resolver errores provocados por actualizaciones en ....
Noticias
wolfbcn 0 697 Último mensaje 24 Diciembre 2016, 19:04 pm
por wolfbcn
Como solucionar estos errores de mi proyecto
Programación C/C++
Borito30 1 841 Último mensaje 13 Marzo 2017, 01:56 am
por Borito30
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines