Como convertir AA a C++ MapleStory

Tema en 'Temas Archivados' iniciado por NelSon Ortiz, 19 Ene 2012.

Estado del tema:
Cerrado para nuevas respuestas
  1. Nel

    NelSon Ortiz
    Expand Collapse
    Soldado Raso

    Mensajes:
    58
    Me Gusta recibidos:
    19
    Bueno este tema es una manera sencilla de aprenderlo ya que esto no es nada del otro mundo aprender para aquella persona que esta programando y trabajando en algun trainer para MapleStory o sea cual sea el juego.

    Primero que nada usare un script de eMS que lo converti para gMS v104 que es el Freeze Walking Monsters AA (AutoAssambler).

    Código:
    [Enable]
    alloc(Freeze,128)
     
    00B6DB67: //8B 8E ? ? 00 00 57 E8 ? ? ? FF 85 C0 0F 8F
    jmp Freeze
    db 90
     
    Freeze:
    mov [esi+00000290],06
    mov ecx,[esi+0000063C]
    jmp 00B0E603
     
    [Disable]
    dealloc(Freeze)
     
    00B6DB67:
    db 8B 8E 3C 06 00 00
    Ahora descargaremos el CheatEngine de su pagina web

    Descargar CheatEngine

    Ahora una vez instalado abrimos el CheatEngine y MapleStory y lo dejamos hasta el paso donde se marca el proceso y quedara asi.

    http://imageshack.us/photo/my-images/406/93533818.jpg/

    Luego de ello nos dirigimos al Memory View y presionas "CTRL + A" y se abrir una ventana donde insertaremos el script modelo que estamos usando, observemos la imagen.

    http://imageshack.us/photo/my-images/862/43990022.jpg/

    Luego de haber insertado el script dentro de la ventana vamos a

    Código:
    File > Assign to current cheat table
    http://imageshack.us/photo/my-images/207/57606348.jpg/

    Y nos dirigmos nuevamente al CheatEngine y miramos que se agrego a nuestra lista de cheats activamos la casilla que se encuentra dentro del recuadro

    Ahora vamos haber el script y encontraremos que nuestra primera y unica direccion es la siguiente "00B6DB67" regresamos al memory view y presionamos dentro "CTRL + G" o sino hacemos "Click Derecho > Go to Address" y presionas el boton "OK"

    http://imageshack.us/photo/my-images/252/17559382.jpg/

    Nos llevara al address que estamos buscando lo señalamos y le damos "Click Derecho > Follow" donde nos llevara al script en ASM.

    http://imageshack.us/photo/my-images/528/19961385.jpg/

    En este caso lo veremos igual no hay nada que agregar ni convertir para colocarlo en C++ seria de esta manera.

    http://imageshack.us/photo/my-images/214/28049447.jpg/

    Código:
    //Prototipo de la Funcion
    bool FWM(bool);
    //////////////////////////////////////////////////////////////////
    //Booleamos
    UINT bFreezeWalkingMonsters;
    /////////////////////////////////////////////////////////////////
    //Direcciones
    DWORD FWMADDY = 0x00B6DB67;
    //////////////////////////////////////////////////////////////////
    //CodeCave
    __declspec(naked) void __stdcall FreezeWalkingMonsters()
    {
            __asm
            {
                    mov [esi+0x00000290],0x06
                    mov ecx,[esi+0x0000063C]
                    jmp 0x00B0E603
      }
    }
    /////////////////////////////////////////////////////////////////
                if(wParam == IDC_FWM){
     
                    bFreezeWalkingMonsters    = IsDlgButtonChecked( hwndDlg, IDC_FWM );
                    if (bFreezeWalkingMonsters == BST_CHECKED)
                    {
                        FreezeWalkingMonsters(true);
                    }
                    else if (bFreezeWalkingMonsters == BST_UNCHECKED) {
                        FreezeWalkingMonsters(false);
                    }
                    return false;
                }
    ///////////////////////////////////////////////////////////////////////////
    bool FreezeWalkingMonsters(bool status)
    {
        if (status == true) {//E9 94 24 CA 02
        VirtualProtect((void*)FWMADDY,4,PAGE_EXECUTE_READWRITE,NULL);
        *(BYTE*)FWMADDY=0xE9;
        *(DWORD*)(FWMADDY+1)=jmp(UAADDY,FreezeWalkingMonsters);
        *(BYTE*)(FWMADDY+3)=0x02;
    }
        else if (status == false) {//8B 8E 3C 06 00 00
     
        *(BYTE*)FWMADDY = 0x8B;
        *(BYTE*)(FWMADDY+1) = 0x8E;
        *(BYTE*)(FWMADDY+2) = 0x3C;
        *(BYTE*)(FWMADDY+3) = 0x06;
        *(BYTE*)(FWMADDY+4) = 0x00;
        *(BYTE*)(FWMADDY+4) = 0x00;
        }
        return true;
    }
    Este seria la manera correcta, disculpen si use un script muy sencillo solo que no encontraba otros xD y disculpen si cometi algun error al final nose si estar bien colocado los bytes! ya que estoy retirado de esto hace mucho tiempo y he olvidado muchas cosas y seguire off hasta que Nexon muera xD!

    Espero les sirva algunos, ya que no todos entenderan esto :)

    Creditos
    NelSon Ortiz

    Fuente
    www.inngamer.com
     
Estado del tema:
Cerrado para nuevas respuestas

Compartir esta página