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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Llamar un DialogBox a otro Dialog WINAPI32
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Llamar un DialogBox a otro Dialog WINAPI32  (Leído 971 veces)
[NelSito*]

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Llamar un DialogBox a otro Dialog WINAPI32
« en: 4 Octubre 2013, 21:14 pm »

No entiendo muy bien el llamado de un dialog a otro dialog, nose si alguno podria darme algun tutorial o una idea de como podria ser, ya que la verdad tengo nula la cabeza y soy aprendiz programando todavia..

Código:
////////////////////////////////////////////////////////////////////////////////////////
#include "windows.h"
#include "resource.h"
#include "winuser.h"
#define JMP(frm, to) (int)(((int)to - (int)frm) - 5);
///////////////////////////////////////Prototipos de funcion/////////////////////////////////////////////////
bool GodMode(bool);
////////////////////////////////////////////////////////////////////////////////////////
DWORD charstat;
HWND myWindow;
///////////////////////////////////////Booleamos/////////////////////////////////////////////////
UINT bGodMode;
////////////////////////////////////////////////////////////////////////////////////////
HMODULE GlobalhMod = NULL;
HWND hWnd;
// Hooked API
// Gracias ferris por el VirtualProtectEx
static const FARPROC Vprotect = (FARPROC)((DWORD)GetProcAddress(GetModuleHandleA("kernel32.dll"), "VirtualProtectEx")+5);
_declspec(naked) BOOL WINAPI FixMem(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flNewProtect, PDWORD lpflOldProtect)
{
   _asm
   {
      mov edi,edi
      push ebp
      mov ebp,esp
      jmp Vprotect
   }
}
////////////////////////////////////////////ADDRESS///////////////////////////////////////
DWORD GMADDY = 0x00899260; //GodMode
///////////////////////////////////////////////////////////////////////////////////////
HINSTANCE hMod;
DWORD oldp = 0;
PDWORD oldprot = &oldp;

HINSTANCE g_hInstance = NULL;

HWND MSWIN;
HWND gameWindow;

BOOL static CALLBACK DialogProc2 (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);

/////////////////////////////////////////////////////////////////////////////////////////
BOOL static CALLBACK DialogProc(
 
                         HWND hwndDlg,     // manejador de caja de dialogo
                         UINT uMsg,        // mensaje
                         WPARAM wParam,    // primer parametro mensajes
                         LPARAM lParam     // segundo parametro mensajes
                         )
{
    DWORD OldSpeed = NULL;
    BYTE  szInfo[255];
 
    char xx[4];
 
 
int iPos;
TCHAR tempStr1[0x10];
    switch( uMsg )
    {
case WM_DESTROY:
PostQuitMessage(0);
break;       

case WM_INITDIALOG:
myWindow = hwndDlg;
return false;
            break;
 
        case WM_CLOSE:
            //UnloadMe();
            return false;
            break;
 
        case WM_HSCROLL:
            /*
iPos = (int) SendMessage(GetDlgItem(hwndDlg,IDC_SLIDER1), TBM_GETPOS, 0, 0);
            iPos = 100 + iPos*9;
            iSpeed = iPos;
            wsprintf(tempStr1, "%d", iPos);
            if (bGuild) {SetDlgItemText(hwndDlg,IDC_EDIT1, tempStr1 );}
*/
            break;
 
        case WM_COMMAND:
            if(wParam == IDCLOSE){
//                UnloadMe();
                return false;
            }
            if(wParam == IDC_GODMODE){

                bGodMode       = IsDlgButtonChecked( hwndDlg, IDC_GODMODE );
if (bGodMode == BST_CHECKED)
{
GodMode(true);
}
else if (bGodMode == BST_UNCHECKED) {
GodMode(false);
}
                return false;

            }
if(wParam == IDC_BUTTON1){
CreateDialog(GlobalhMod, MAKEINTRESOURCE(IDD_DIALOG2), hwndDlg, (DLGPROC)DialogProc2);
}


}
    return FALSE;
}

BOOL static CALLBACK DialogProc2 (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
char
texto[25];
switch
(uMsg) /* manipulador del mensaje */{

case WM_INITDIALOG:
break;

case WM_COMMAND:
EndDialog(hwndDlg,FALSE);
return TRUE;
}
return FALSE;
}

DWORD static WINAPI ThreadFunc( LPVOID )
{
    gameWindow = FindWindow(NULL,"MapleStory");
    HRSRC hrsrc = FindResource(GetModuleHandle("GamerzHacking.dll"), MAKEINTRESOURCE(IDD_DIALOG1), RT_DIALOG);
    if( !hrsrc )
    {
        MessageBoxA( NULL, "Error", "Cargando Recurso", NULL );
        ExitThread(0);
    }
//Aqui cargamos el dialogo que se encuentra dentro de este mismo dll
//Como GamerzHacking.dll se ha injectado al proceso maplestory
//Ahora lo busco y lo cargo como si fuera parte de maple
    HGLOBAL hglobal = LoadResource(GetModuleHandle("GamerzHacking.dll"), hrsrc);
    if( !hglobal )
    {
        MessageBoxA( NULL, "Error", "Cargando Recurso", NULL );
        ExitThread(0);
    }
    LPVOID hlock = LockResource( hglobal );
    if( !hlock )
    {
        MessageBoxA( NULL, "Error", "Cargando Recurso", NULL );
        ExitThread(0);
    }
 
    if( DialogBoxIndirectParam( GetModuleHandle("GamerzHacking.dll"), (LPCDLGTEMPLATE) hglobal, NULL, DialogProc, 0 ) == -1 )
    {
        MessageBoxA( NULL, "NO PUEDO CREAR DIALOGO VENTANA", "NO PUEDO CREAR DIALOGO VENTANA", NULL );
    }
    FreeLibraryAndExitThread( GetModuleHandle( "GamerzHacking.dll" ), 0 );
}

bool GodMode(bool status)
{
if (status == true) {
*(BYTE*)GMADDY = 0xEB;
*(BYTE*)(GMADDY+1) = 0x0B;
}
else if (status == false) {//0F8E
*(BYTE*)GMADDY = 0x85;
*(BYTE*)(GMADDY+1) = 0xC0;
}
return true;
}

BOOL APIENTRY DllMain(HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
{
if (ul_reason_for_call == DLL_PROCESS_ATTACH)
{
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)&ThreadFunc, 0, 0, 0); // Main thread
}
return true;
}

Me podrian decir en que parte estoy equivocado o que es lo que me falta o brindarme algun tutorial

PD: Gracias por leer mi tema de ayuda

Enjoy


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Llamar a la ejecucion de otro archivo? (Python)
Scripting
XD YO 4 15,081 Último mensaje 13 Febrero 2010, 02:37 am
por XD YO
[Duda] Llamar a argumentos de otro exe desde C.
Programación C/C++
k0ws 3 3,105 Último mensaje 15 Mayo 2011, 21:52 pm
por Queta
Llamar a otro metodo netbean grafico
Java
aldg 0 1,553 Último mensaje 21 Febrero 2012, 17:53 pm
por aldg
Como llamar a una función en otro formulario?
.NET (C#, VB.NET, ASP)
9ttnix 1 7,633 Último mensaje 14 Marzo 2012, 16:03 pm
por Novlucker
Llamar de un cpp a otro
Programación C/C++
s3v3r 4 1,960 Último mensaje 27 Diciembre 2015, 23:29 pm
por s3v3r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines