Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Borito30

#141
Para cargar la libreria:
Código (cpp) [Seleccionar]
HINSTANCE hGetProcIDDLL = LoadLibrary("libreria");´

Para resolver su funcion:
Código (cpp) [Seleccionar]
f_funci funci = (f_funci)GetProcAddress(hGetProcIDDLL, "funci");
 if (!funci) {
   std::cout << "could not locate the function" << std::endl;
   return EXIT_FAILURE;
 }


En la dll le defines el export para poder utilizarla:
Código (cpp) [Seleccionar]
int __declspec(dllexport) __stdcall funci() {
  // ...
}
#142
Te pongo un ejemplo, tengo hasta el buffer creado .a:


Muchas gracias funciono. Os pongo el ultimo comando que teneis que poner:
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.
#143
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.
#144
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:
$ 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
#145
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:
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.
#146
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:\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.
#147
Vale tienes razón no sabía que se podia hacer por partes lo cual  es de gran utilidad. Tengo una pequeña duda ahora he compilado la libreria para la versión para mingw (la cual me da los archivos .o para el linkeado), aparentemente se crea pero en consola me muestra lo siguiente:

C:\Users\Androide\Desktop\minhook-master\build\MinGW>windres -i ../../dll_reso
ces/MinHook.rc -o MinHook_rc.o   && dllwrap --driver-name g++ -o MinHook.dll -
sm=intel --def ../../dll_resources/MinHook.def -Wl,-enable-stdcall-fixup -Wall
inHook_rc.o ../../src/*.c ../../src/HDE/*.c -I../../include -I../../src -Werro
-std=c++11 -s -static-libgcc -static-libstdc++  || pause
../../src/hook.c: In function 'void Freeze(PFROZEN_THREADS, UINT, UINT)':
../../src/hook.c:319:82: error: 'OpenThread' was not declared in this scope
            HANDLE hThread = OpenThread(THREAD_ACCESS, FALSE, pThreads->pItem
i]);

 ^
../../src/hook.c: In function 'void Unfreeze(PFROZEN_THREADS)':
../../src/hook.c:338:82: error: 'OpenThread' was not declared in this scope
            HANDLE hThread = OpenThread(THREAD_ACCESS, FALSE, pThreads->pItem
i]);

 ^
dllwrap: g++ exited with status 1


Después cojo el fichero .o y linkeo:
C:\Users\Androide\Desktop\minhook\Dynamic>g++ -o Dynamic.o -c Dynamic.cpp

C:\Users\Androide\Desktop\minhook\Dynamic>g++ -o bot.exe Dynamic.o MinHook_rc.o
Dynamic.o:Dynamic.cpp:(.text+0x48): undefined reference to `MH_Initialize@0'
Dynamic.o:Dynamic.cpp:(.text+0x9e): undefined reference to `MH_EnableHook@4'
Dynamic.o:Dynamic.cpp:(.text+0xe7): undefined reference to `MH_DisableHook@4'
Dynamic.o:Dynamic.cpp:(.text+0x126): undefined reference to `MH_Uninitialize@0'
Dynamic.o:Dynamic.cpp:(.text$_Z18MH_CreateHookApiExIFiP6HWND__PKwS3_jEE9MH_STATU
SS3_PKcPvPPT_[__Z18MH_CreateHookApiExIFiP6HWND__PKwS3_jEE9MH_STATUSS3_PKcPvPPT_]
+0xfffffd2e): undefined reference to `MH_CreateHookApi@16'
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw
32/bin/ld.exe: Dynamic.o: bad reloc address 0x22 in section `.text$_Z18MH_Create
HookApiExIFiP6HWND__PKwS3_jEE9MH_STATUSS3_PKcPvPPT_[__Z18MH_CreateHookApiExIFiP6
HWND__PKwS3_jEE9MH_STATUSS3_PKcPvPPT_]'
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


Crees que se deba al error de la libreria o al mejor pienso que el .o que obtengo sea la causa del problema.

Pienso que la razón es el error que no me incluye los .o correctamente de mi fichero hook.c por el error que cite.
#148
Cita de: ivancea96 en 14 Marzo 2017, 19:27 PM
Varios de esos errores son lo mismo:

Hola disculpa tienes razón pero ahora creo que tendré que declararlos porque me devuelve estos error, supongo algo habré me faltara o no lo habré incluido bien:
C:\Users\Androide\Desktop\minhook\Dynamic>gcc -o bot.exe Dynamic.cpp
C:\Users\Androide\AppData\Local\Temp\ccHkYwzX.o:Dynamic.cpp:(.text+0x48): undefi
ned reference to `MH_Initialize@0'
C:\Users\Androide\AppData\Local\Temp\ccHkYwzX.o:Dynamic.cpp:(.text+0x9e): undefi
ned reference to `MH_EnableHook@4'
C:\Users\Androide\AppData\Local\Temp\ccHkYwzX.o:Dynamic.cpp:(.text+0xe7): undefi
ned reference to `MH_DisableHook@4'
C:\Users\Androide\AppData\Local\Temp\ccHkYwzX.o:Dynamic.cpp:(.text+0x126): undef
ined reference to `MH_Uninitialize@0'
C:\Users\Androide\AppData\Local\Temp\ccHkYwzX.o:Dynamic.cpp:(.text$_Z18MH_Create
HookApiExIFiP6HWND__PKwS3_jEE9MH_STATUSS3_PKcPvPPT_[__Z18MH_CreateHookApiExIFiP6
HWND__PKwS3_jEE9MH_STATUSS3_PKcPvPPT_]+0xfffffd2e): undefined reference to `MH_C
reateHookApi@16'
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/mingw32/4.9.2/../../../../mingw
32/bin/ld.exe: C:\Users\Androide\AppData\Local\Temp\ccHkYwzX.o: bad reloc addres
s 0x22 in section `.text$_Z18MH_CreateHookApiExIFiP6HWND__PKwS3_jEE9MH_STATUSS3_
PKcPvPPT_[__Z18MH_CreateHookApiExIFiP6HWND__PKwS3_jEE9MH_STATUSS3_PKcPvPPT_]'
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
#149
Hola estoy verificando un pequeño programa para obtener la ip actualizada de mi dns lo que hago es lo siguiente:
Código (python) [Seleccionar]
#!/usr/bin/python
import requests
import json
user = "email"
password = "pass"
checkip = "http://thisisnt.com/api/getRemoteIp.php"
dynupdate = "https://members.dyndns.com/nic/update"
print "starting. Get current IP..."
ipraw = requests.get(checkip)
if ipraw.status_code is not 200:
 raise "Cannot get IP address"
 exit

ip = ipraw.json()['REMOTE_ADDR']
print "Remote IP: " + ip
print "updating..."
# update dyndns
headers = {'user-agent': 'mPythonClient/0.0.3'}
dyn = requests.get(dynupdate, \
             headers=headers, \
             auth=(user, password), \
             params={'hostname': 'mydyndns', \
                      'myip': ip, \
                      'wildcard': 'NOCHG', \
                      'mx': 'MX', \
                      })
if dyn.status_code is not 200:
 print "Update failed. HTTP Code: " + str(dyn.status_code)
if "good" in dyn.text:
 print "update successful.."
else:
 print "Update unsuccessful: " + dyn.text.strip()


El resultado que obtengo siempre es
Update unsuccessful:

Es decir dyn.text la peticion no la hace bien por lo que tenga hacer la peticion de otra manera. Alguien sabría como podría obtener mi ip con my dyndns usando python?
#150
El proyecto mio es este:
Código (cpp) [Seleccionar]
#include <Windows.h>
#include "C:\Users\Androide\Desktop\minhook\Dynamic\MinHook_133_src\include\MinHook.h"

#if defined _M_X64
#pragma comment(lib, "MinHook.x64.lib")
#elif defined _M_IX86
#pragma comment(lib, "MinHook.x86.lib")
#endif

// Helper function for MH_CreateHookApi().
template <typename T>
inline MH_STATUS MH_CreateHookApiEx(LPCWSTR pszModule, LPCSTR pszProcName, LPVOID pDetour, T** ppOriginal)
{
   return MH_CreateHookApi(pszModule, pszProcName, pDetour, reinterpret_cast<LPVOID*>(ppOriginal));
}

typedef int (WINAPI *MESSAGEBOXW)(HWND, LPCWSTR, LPCWSTR, UINT);

// Pointer for calling original MessageBoxW.
MESSAGEBOXW fpMessageBoxW = NULL;

// Detour function which overrides MessageBoxW.
int WINAPI DetourMessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType)
{
   return fpMessageBoxW(hWnd, L"Hooked!", lpCaption, uType);
}

int main()
{
   // Initialize MinHook.
   if (MH_Initialize() != MH_OK)
   {
       return 1;
   }

   // Create a hook for MessageBoxW, in disabled state.
   if (MH_CreateHookApiEx(L"user32", "MessageBoxW", &DetourMessageBoxW, &fpMessageBoxW) != MH_OK)
   {
       return 1;
   }

   // Enable the hook for MessageBoxW.
   if (MH_EnableHook((void*)&MessageBoxW) != MH_OK)
   {
       return 1;
   }

   // Expected to tell "Hooked!".
   MessageBoxW(NULL, L"Not hooked...", L"MinHook Sample", MB_OK);

   // Disable the hook for MessageBoxW.
   if (MH_DisableHook((void*)&MessageBoxW) != MH_OK)
   {
       return 1;
   }

   // Expected to tell "Not hooked...".
   MessageBoxW(NULL, L"Not hooked...", L"MinHook Sample", MB_OK);

   // Uninitialize MinHook.
   if (MH_Uninitialize() != MH_OK)
   {
       return 1;
   }

   return 0;
}


Y cambie lo de messagebox añadiendole los void*. Aún así obtengo otros errores crees que los podría solucionar igual?:
C:\Users\Androide\Desktop\minhook\Dynamic>cd C:\Users\Androide\Desktop\minhook\D
ynamic

C:\Users\Androide\Desktop\minhook\Dynamic>g++ -o Dynamic.exe Dynamic.cpp
Dynamic.cpp: In function 'int main()':
Dynamic.cpp:37:88: error: no matching function for call to 'MH_CreateHookApiEx(c
onst wchar_t [7], const char [12], int (__attribute__((__stdcall__)) *)(HWND, LP
CWSTR, LPCWSTR, UINT), int (__attribute__((__stdcall__)) **)(HWND, LPCWSTR, LPCW
STR, UINT))'
    if (MH_CreateHookApiEx(L"user32", "MessageBoxW", &DetourMessageBoxW, &fpMes
sageBoxW) != MH_OK)

       ^
Dynamic.cpp:37:88: note: candidates are:
In file included from Dynamic.cpp:2:0:
C:\Users\Androide\Desktop\minhook\Dynamic\MinHook_133_src\include\MinHook.h:141:
22: note: MH_STATUS MH_CreateHookApiEx(LPCWSTR, LPCSTR, LPVOID, void**, void**)
    MH_STATUS WINAPI MH_CreateHookApiEx(
                     ^
C:\Users\Androide\Desktop\minhook\Dynamic\MinHook_133_src\include\MinHook.h:141:
22: note:   candidate expects 5 arguments, 4 provided
Dynamic.cpp:12:18: note: template<class T> MH_STATUS MH_CreateHookApiEx(LPCWSTR,
LPCSTR, LPVOID, T**)
inline MH_STATUS MH_CreateHookApiEx(LPCWSTR pszModule, LPCSTR pszProcName, LPVO
ID pDetour, T** ppOriginal)
                 ^
Dynamic.cpp:12:18: note:   template argument deduction/substitution failed:
Dynamic.cpp:37:88: note:   cannot convert 'DetourMessageBoxW' (type 'int (__attr
ibute__((__stdcall__)) *)(HWND, LPCWSTR, LPCWSTR, UINT) {aka int (__attribute__(
(__stdcall__)) *)(HWND__*, const wchar_t*, const wchar_t*, unsigned int)}') to t
ype 'LPVOID {aka void*}'
    if (MH_CreateHookApiEx(L"user32", "MessageBoxW", &DetourMessageBoxW, &fpMes
sageBoxW) != MH_OK)

       ^


Sino tendré que crear mi proyecto en c y punto.