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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Dll reescrita desde VB
« en: 18 Diciembre 2009, 03:51 am »

Bueno ya que intente hacer esta Dll en vb6 y los resultado no fueron los esperados decidi que era buen momento para inicairme en c++, trabajo en el IDe dev-c++
y este es el resultado del codigo trsladado a C++ desde vb6,
quisiera que me ayudaran porque aunque segun veo esta bien, la dll no fuciona.
Si mas aqui el code:
dllmain.cpp
Código
  1. /* Replace "dll.h" with the name of your header */
  2. #include "dll.h"
  3. #include <windows.h>
  4.  
  5. DllClass::DllClass()
  6. {
  7.  
  8. }
  9.  
  10.  
  11. DllClass::~DllClass ()
  12. {
  13.  
  14. }
  15.  
  16. void Check()
  17.  
  18. {
  19.    HWND hWnd;
  20.    hWnd=FindWindow("ThunderRT6FormDC","MuPaysandú V 1.0.59");
  21.  
  22.    if (!hWnd){
  23.       SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
  24.       hWnd=0;
  25.       }else{
  26.       hWnd=FindWindow("MuPaysandu","MuPaysandu");
  27.       if (!hWnd) {
  28.       SendMessage(hWnd, WM_SYSCOMMAND, SC_CLOSE, 0);
  29.       ShellExecute(hWnd, "Open", "\\MU.exe", NULL, "0", 1);
  30.       }
  31.  
  32.       }
  33. }
  34.  
  35. BOOL APIENTRY DllMain (HINSTANCE hInst     /* Library instance handle. */ ,
  36.                       DWORD reason        /* Reason this function is being called. */ ,
  37.                       LPVOID reserved     /* Not used. */ )
  38. {
  39.    switch (reason)
  40.    {
  41.      case DLL_PROCESS_ATTACH:
  42.        break;
  43.  
  44.      case DLL_PROCESS_DETACH:
  45.           Check;
  46.        break;
  47.  
  48.      case DLL_THREAD_ATTACH:
  49.        break;
  50.  
  51.      case DLL_THREAD_DETACH:
  52.        break;
  53.    }
  54.  
  55.    /* Returns TRUE on success, FALSE on failure */
  56.    return TRUE;
  57. }
  58.  
  59.  
  60.  
dll.h
Código
  1. #ifndef _DLL_H_
  2. #define _DLL_H_
  3.  
  4. #if BUILDING_DLL
  5. # define DLLIMPORT __declspec (dllexport)
  6. #else /* Not BUILDING_DLL */
  7. # define DLLIMPORT __declspec (dllimport)
  8. #endif /* Not BUILDING_DLL */
  9. const short WM_SYSCOMMAND=0x112;
  10. const int SC_CLOSE=0xF060;
  11.  
  12. class DLLIMPORT DllClass
  13. {
  14.  public:
  15.    DllClass();
  16.    virtual ~DllClass(void);
  17.  
  18.  private:
  19.  
  20. };
  21.  
  22.  
  23. #endif /* _DLL_H_ */
  24.  


En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 859



Ver Perfil
Re: Dll reescrita desde VB
« Respuesta #1 en: 18 Diciembre 2009, 04:43 am »

 ::)

  El programa entra a :

  
Código:
BOOL APIENTRY DllMain 

  Y en ninguna de las rasones de llamado o reason for call llamas a la funcion check .

  la cosa quedaria asi:
Código:
BOOL APIENTRY DllMain (HINSTANCE hInst /* Library instance handle. */ ,
DWORD reason /* Reason this function is being called. */ ,
LPVOID reserved /* Not used. */ )
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
     {Check()
       break;
      }

case DLL_PROCESS_DETACH:
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;
}

/* Returns TRUE on success, FALSE on failure */
return TRUE;
}

Corrijo si llamas a la funcion pero en el reason equivocado ese es cuando descargas la dll de memoria  :)


« Última modificación: 18 Diciembre 2009, 04:45 am por Jaixxon Jax » En línea

shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Dll reescrita desde VB
« Respuesta #2 en: 20 Diciembre 2009, 07:21 am »

aun asi sigue sin fucioanar
he puesto cuadros de mensaje en cada ducnion de dllmain yy ninguno se muestra nose que pasa
En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 859



Ver Perfil
Re: Dll reescrita desde VB
« Respuesta #3 en: 20 Diciembre 2009, 14:02 pm »

Como y con que estas cargando la DLL ?  :¬¬
En línea

shaggikpo

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: Dll reescrita desde VB
« Respuesta #4 en: 20 Diciembre 2009, 21:57 pm »

EL metodo es hook hecho con ollydbg en asm

aqui te detallo la escturctura del hook
Código
  1. PUSH + offset Loader.dll
  2. LOADLIBRARYA
  3. JMP OEP
Segun tengo entendido la funcion
BOOL APIENTRY DllMain
permite a la dll ser iniciada automaticamnet cuando se carga, es decir necesitar llamar a un proceso interno de la dll para haceelo, pero puede que me equivoque pues nos oy habilidos en C
En línea

dneyrabust

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Dll reescrita desde VB
« Respuesta #5 en: 23 Abril 2015, 05:06 am »

comente este tema tan antiguo por que corregi tu source para q sea operativo...
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines