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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: [1] 2
1  Programación / Programación C/C++ / [Ayuda] Multiples Dialog Boxes WinAPI en: 8 Mayo 2017, 03:57 am
Hola quisiera saber donde me estoy equivocando ya que estoy creando una dll pero al momento que inyecto solo me abre el DIALOG1 y cuando doy clic al BUTTON1 no abre el DIALOG2. Si pudieran iluminarme seria de mucha ayuda.

https://pastebin.com/1zmAcAFh

Saludos Cordiales,
2  Programación / Programación C/C++ / 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
3  Programación / Ingeniería Inversa / Re: [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 14 Febrero 2013, 19:01 pm
Disculpa si no formule bien mi pregunta, pero quiero saber si al crear el script se agregan los pointers automaticamente y hablo de direcciones estaticas.

La otra pregunta era que si FTLGame.exe"+B133F: lo reemplazo por el addy que deberia de ser que es "00123456" CE leeria igual el script.
4  Programación / Ingeniería Inversa / Re: [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 14 Febrero 2013, 18:39 pm
Ahora entiendo un poco mas esa funcion ^^! lo que pasa que yo años atras jugaba MapleStory un juego muy peculiar y divertido en aquellos tiempos diseñado en 2D, al buscar addys en la memoria pues comenze encontrando un Unlimited Attk, consistes en saltar el limite de ataques que te da el juego que era "99" hits.

Ejemplo:

http://foro.elhacker.net/ingenieria_inversa/tutorial_hallar_pointers_offset_con_ce_mhs5-t342767.0.html

Ojo que aqui realizo usando otra herramienta para hacerlo mas facil y comprensivo.

Volviendo a mi pregunta, en el script ejemplo que muestras señala "FTLGame.exe"+B133F: pero si yo lo cambio por el addy se me ocurre 00123456: ¿vendria hacer lo mismo? ¿el debugger lo leeria normal? ¿Ahora hay scripts que incluyen pointers y multipointers? podrias explicarme un poco mas sobre ello porfavor.

Ejemplo del script del unlimited attk que incluye pointers.

[enable]
alloc(UnlimitedAttk, 512)
label(dontReset)

UnlimitedAttk:
push ecx
mov ecx,[997EDC] //Direccion del Unlimited Attk
cmp [ecx+2250], 61 // Unlimited Attk Offset | 99 Ataques
jle dontReset
dec [ecx+E50] //Item X | Viene hacer un puntero que resetea el conteo de los ataques moviendose para cualquier lado
dontReset:
pop ecx
cmp eax,edi
mov [ebp-20],eax
ret
005B9343: // AOB del Addy 3B C7 89 45 E0 74 5F FF B3 B0 03 00 00 8D 83 A8
call UnlimitedAttk

[disable]
005B9343:
cmp eax,edi
mov [ebp-20],eax
dealloc(UnlimitedAttk, 512)
5  Programación / Ingeniería Inversa / Re: [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 14 Febrero 2013, 03:50 am
Te felicito y agradezco por tomarte el tiempo por enseñar partes de un debugger como es el CE, tengo muy claro todo lo unico que aun no aprendia era la parte de crear scripts en AA, ahora que lo se me gustaria saber ya que hablastes del alloc y label, podrias decirme en que casos o para que sirve el registersymbol y un ejemplo para que asi los demas tambien puedan entenderlo.

Gracias.
6  Programación / Ingeniería Inversa / Re: [Duda] Para aclarar algunas cosas en: 8 Enero 2012, 02:55 am
@Y2Quake

Bueno, aver creo que quieres decir es que si usando el OllYDbg sin agregarle ningun tipo de pluggin o configuracion se puede crackear software o necesitar algun programa tercero para poder completar el cracking en el programa.

Si es esa la pregunta, mayormente usan OllyDbg para debuggear software, otros usan el IDA eso ya esta depende de cada uno eso pienso yo, al menos yo uso el OllyDbg para debuggear clientes de juegos online, aunque aun soy newbie xD!

Perdon si me equivoco pero fue eso lo que crei o lei entender =).
7  Programación / Ingeniería Inversa / [Tutorial] Hallar Pointers & Offset con CE & MHS5 en: 24 Octubre 2011, 20:53 pm
¿Que es un Pointer y un Offset?

Bueno un pointer y un offset son una
direccion estatica y el offset (lo que significa es que no se mueven, a
diferencia de la direccion que esta apuntando tambien) apunta a una
direccion especifica que muestra informacion sobre el juego.


¿Por que tengo que saber como encontrarlos?

Los pointers y offsets son de vital importancia
porque cuando se quieren hacer algunos trainers. Tu lo puedes utilizar
para actualizar scripts como el Unlimited Attk o SS Mouse
 Fly entre otros. Tambien la puedes usar para armar tus propios
cheats/scripts, en realidad las posibilidades son infinitas. Ahora si
quieres aprender a hackear acontinuacion, tu debes saber como hacer
esto.


Vamos a comenzar con el tutorial - Buscando la Direccion

Primero que nada debes tener abierto el CheatEngine y el MapleStory pero
 aun no presiones Play, en ese momento debes marcar el proceso de
MapleStory haciendo click en el icono superior donde aparece una computadora con una lupa le dan click y buscan el proceso de MapleStory.(Puedes descargar el CheatEngine desde AQUI)


Asi que deben tener algo asi:




Listos vamos a buscar el pointer y offset del Unlimited Attk,¿Que es esto?
 No muestra la cantidad de ataques que ha hecho el personaje. Ahora para
 encontrarlo tenemos que realizar un ataque es decir vamos analizar la
cantidad de ataques.

Consejo: Cuando vas a comenzar a
realizar el primer ataque recomiendo que no muevas ni a la izquierda ni a
 la derecha a tu personaje ya que eso ocasionaria el reset del conteo de
 ataques.


Bueno entonces para empezar lo que tienes que hacer es realizar dos
veces el ataque. Ahora el primer ataque es para habilitar el contador y
el segundo ataque ya empiezara a contar. Sigamos ya una vez realizado
dos veces el ataque vamos al CheatEngine y en el casillero en blanco
tipeamos "1" luego presionamos "First Scan" para realizar el primer filtro que haremos en la memoria de maplestory.


La cual deberia quedarte asi:




Ahora una vez realizado tu primer scanner te mostrara al lado derecho direcciones encontradas con el valor "1". Asi que seguiremos intetando en la busqueda hasta encontrar solo una direccion.

En el siguiente paso vamos a realizar una vez mas un ataque, una vez realizado esto vamos al cheatengine y tipeamos el valor "2" y luego pulsamos "Next Scan"(Esto
 lo que hara es seguir filtrandose en la memoria de maplestory para asi
reducir la cantidad de direcciones encontradas para que asi ls busqueda
sea mas
rapida).


Deberia quedar asi:




Ahora como veras tu resultado es de direcciones :XD" intentemos una vez mas.

Para terminar nuestra busqueda realizaremos un ataque mas, luego en el cheatengine tipeamos el valor "3" y luego "Next Scan"
 debe quedar solo un address ahora si no le da ningun resultado, no
pierdas las esperanzas y vuelve a intentarlo con 4 ataques ahora la cual
 estoy seguro que les dara el address que estamos buscando.


Asi quedara observen.




Ahora como veras en la imagen anterior llegamos ha
encontrar la direccion despues de algunos filtros a la memoria de
maplestory la cual nos muestra el conteo que vamos realizando hasta
ahora, ustedes mismos pueden observarlo hagan otro ataque y veran como
aumenta el conteo. Bueno yo se que tu piensas que esto termino aqui ¿Cierto?, pues dejame decirte querido amigo de PcHack esto aun no termina, ¿Sabes porque?
 la direccion que hemos encontrado es dinamica osea cada vez que
entremos a MapleStory la direccion cambiara y tendriamos que buscarla
nuevamente pero llo que nosotros buscamos es el pointer y offset
estatico que apunta a esta direccion actual, la cual esto llevara a la
siguiente parte del tutorial.


SEGUNDA PARTE - BUSCANDO POINTERS Y OFFSETS USANDO MHS5

Bueno en esta segunda parte del tutorial se va a
poner algo complicado asi que pido que presten atencion ya que tenemos
que encontrar el pointer y offset estatico la cual apuntan a la
direccion que hemos encontrado.

Ahora el metodo que les enseñare es el mas rapido para encontrar lo que estamos buscando es la unica forma la cual he probado.


Lo primero que debes hacer es descargar el MHS5.


Ahora ustedes se preguntaran ¿Que es esto?,
 bueno amigo dejame comentarte que esto es un software similar
 al CheatEngine, ahora ustedes pensaran porque usaremos el MHS5 o Acaso
el CheatEngine no sirve para buscar pointers y offsets.


Ahora te explico mira a mi persona el MHS5 tienes un scanner de pointers que es mucho mejor que el CheatEngine.


Oh ya veo entonces sigue enseñandonos
:<<"

Bueno entonces sigamos una vez descargado el MHS5.exe




File > Open Process > MapleStory


Luego de haber marcado el proceso vamos a la siguiente pestaña



Search > Pointer Search


Tendra el siguiente aspecto:



Como veras el cuadro de busqueda se ve algo complejo ¿verdad?, pero no
te preocupes por la mayor parte de ajustes en lo unico que debes
asegurarte es en:



-Evaluation Type
-Range
-Find Only Static Pointers (Marcado)


Ahora el siguiente paso es copiar el address que encontramos en el CheatEngine y pegarlo en el cuadro del MHS5



-Target from
-To




Ahora lo siguiente que tienes que hacer es eliminar los 4 ultimos numeros de la direccion que pusistes en 'Target From' y cambiarlos por "0".

Tendria que quedar asi:




Luego das click en Aceptar

Bueno ahora terminada la busqueda te debe de dar de resultado un
address, ahora si no te da ningun address lo que haras es reemplazar por
 otro "0" e intentarlo de nuevo. Otro caso seria que si te da mas de 100 address lo que tendrias que hacer es ya no reemplazarlo por 4 ceros sino solamente reemplazarlo por 3 ceros.


La cual deberia quedarte asi:




Y listo al fin conseguimos que el es el pointer y el es el offset

Ahora solo agrega el pointer y el offset a la direccion que encontrastes en el CheatEngine.




Nota:

Ya conseguistes aprender ahora esto te debe servir para buscar otro tipo
 de pointers como el del Channel,Char X & Char Y,etc. Bueno ahora
suerte para tus proximas busquedas!



Si esta algo mal, podrian decirmelo para corregirlo no es mucho mi aporte pero espero les sirva a algunos.
8  Programación / Ingeniería Inversa / Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine en: 24 Octubre 2011, 20:35 pm
Sinceramente es muy bueno el conocimiento compartido, pero si me permites yo tambien hare una publicacion del hacking para juegos online sobre hallar pointers & offsets, simplemente usare CheatEngine & MHS5.

Muy buen tutorial.
9  Programación / Ingeniería Inversa / Re: reversear? HACK SHIELD PRO, para .:UNDER:. en: 1 Octubre 2011, 21:08 pm
Para nada, si tu gustas puedes descargarlo desde los hilos originales.

Puedes registrarte y descargarlo tu mismo si deseas, no soy una persona que me gusta infectar a otras personas con una tema de mucho interes de aprendizaje para mi.


http://www.forum.tastyexploit.com/threads/more-bypass-useful-info.859/

http://www.forum.tastyexploit.com/threads/unpacked-and-unprotected-ehsvc-dll.883/


PD: Un dato mas, lugares donde tambien navego y me he informado sobre los anti-cheats es aqui.

http://www.gamedeception.net/forums/313-Other-Anti-Cheats

Todo lo realizionado con anticheats, espero les sirva.
10  Programación / Ingeniería Inversa / Re: reversear? HACK SHIELD PRO, para .:UNDER:. en: 1 Octubre 2011, 05:48 am
Claro, aqui tienes el DLL unpacked y unprotected.

http://www.mediafire.com/?vm6h723r16pmt79

Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines