Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


[LEAK]MAPLE STORY SECRET

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Random spam
View previous topic :: View next topic  
Author Message
407
Master Cheater
Reputation: 0

Joined: 25 Oct 2007
Posts: 357

PostPosted: Wed Apr 15, 2009 4:52 pm    Post subject: [LEAK]MAPLE STORY SECRET Reply with quote

CREDITS TO CHEESELOVER FOR DOXING/HAXING SF
GMZorita wrote:
Rope / Ladder:


Portal:


Mob:


Inventory:


Platafforms:


Full credits to: PedraSimon & KittonKicker.




kittonkicker wrote:
As promised in the teleporting thread, here are the unpacked binary files for NNB.

You will have to get the rest of the trainer yourself.

http://rapidshare.com/files/199351129/nnbunpfiles.rar ~ (v1.09)
http://rapidshare.com/files/199365457/nnb2.06unp.rar ~ (v2.06)

Both are traffic share enabled (so you can download without having to wait).

These are posted here solely for reversing/analysis.

I am releasing them solely on the basis that on downloading, you agree to post any and all discoveries about the trainer in this thread.

















._Henley wrote:
Heres a pic:


Functions:
Read addys/pointers
Freeze values
Change values

Inject it into a process and just add the addys you wanna read. Please report all the bugs here ._.

if nothing show when you inject it -> Download.(remember to extract)[/b]













Quote:



sponge wrote:
Code:
.686
.model  flat, stdcall

    option      casemap :none
    include     \masm32\include\windows.inc
   
    include     \masm32\include\kernel32.inc
    includelib  \masm32\lib\kernel32.lib

    include     \masm32\include\user32.inc
    includelib  \masm32\lib\user32.lib

    include     \masm32\m32lib\dw2ah.asm

consoleOut            PROTO :DWORD
consoleProc           PROTO :DWORD   
loadLibraryHook       PROTO :DWORD

.data

    hConsole         dd 0

    szTitle          db "memWZ", 0
    szIntro1         db "memWZ - by spunge", 0Ah, 0
    szIntro2         db "_____________________________", 0Ah, 0Ah, "Loading hooks...", 0Ah, 0Ah, 0

    szKernel32       db "kernel32.dll", 0
    szLoadLibrary    db "LoadLibraryA", 0
    dwLoadLibrary    dd 0
    szCreateFile     db "CreateFileA", 0
    dwCreateFile     dd 0
    szCreateMap      db "CreateFileMappingA",0
    dwCreateMap      dd 0
    szMapView        db "MapViewOfFile", 0
    dwMapView        dd 0

    szNameSpace      db "NAMESPACE.DLL", 0
    dwNameSpace      dd 0
    dwNSHook         dd 0
    bNSBool          dd 0

    szError1         db "Cannot set up console control handler; memWZ is shutting down."
   
    dwRandom         dd 0
    dwRandom2        dd 0
    bExit            dd 0
    dwCounter        dd 0
    dwAquired        dd 0
    dwAquired2       dd 0

    szBase           db "Base.wz:      ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szCharacter      db "Character.wz: ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szMob            db "Mob.wz:       ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szSkill          db "Skill.wz:     ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szReactor        db "Reactor.wz:   ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szNPC            db "Npc.wz:       ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szUI             db "UI.wz:        ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szQuest          db "Quest.wz:     ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szItem           db "Item.wz:      ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szEffect         db "Effect.wz:    ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szString         db "String.wz:    ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szETC            db "Etc.wz:       ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szMorph          db "Morph.wz:     ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szTamingMob      db "TamingMob.wz: ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szSound          db "Sound.wz:     ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szMap            db "Map.wz:       ", 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00
    szAddress        dd 0
                     dd 0
                     dd 0

    dwTblIndex       dd 0
    szTable          dd offset szBase
                     dd offset szCharacter
                     dd offset szMob
                     dd offset szSkill
                     dd offset szReactor
                     dd offset szNPC
                     dd offset szUI
                     dd offset szQuest
                     dd offset szItem
                     dd offset szEffect
                     dd offset szString
                     dd offset szETC
                     dd offset szMorph
                     dd offset szTamingMob
                     dd offset szSound
                     dd offset szMap

    scbufinfo        CONSOLE_SCREEN_BUFFER_INFO <>
.code

OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE

createFileHook proc
    mov      dword ptr ss:[esp+4], GENERIC_READ or GENERIC_WRITE
    call     dword ptr ds:[dwCreateFile]
    push     eax
    mov      eax, dword ptr ds:[dwNameSpace]
    add      eax, 0C7dEh
    mov      dword ptr ds:[dwRandom], eax
    pop      eax
    jmp      dword ptr ds:[dwRandom]
createFileHook endp

createFileMapHook proc
    mov      dword ptr ss:[esp+8], PAGE_READWRITE
    call     dword ptr ds:[dwCreateMap]
    push     eax
    mov      eax, dword ptr ds:[dwNameSpace]
    add      eax, 0D098h
    mov      dword ptr ds:[dwRandom], eax
    pop      eax
    jmp      dword ptr ds:[dwRandom]
createFileMapHook endp

mapViewHook proc
    mov      dword ptr ss:[esp+4], FILE_MAP_WRITE
    call     dword ptr ds:[dwMapView]
    push     eax
    mov      eax, dword ptr ds:[dwNameSpace]
    add      eax, 0D109h
    mov      dword ptr ds:[dwRandom], eax
    pop      eax
    jmp      dword ptr ds:[dwRandom]
mapViewHook endp

mapViewRetHook proc
    pushad
    pushf
    invoke  dw2ah, eax, addr szAddress
    mov     eax, dword ptr ds:[dwTblIndex]
    mov     ecx, dword ptr ds:[szTable+eax]
    invoke  lstrcat, ecx, addr szAddress
    ;invoke  consoleOut, eax
    add     dword ptr ds:[dwTblIndex], 4
    popf
    popad
    test    eax, eax
    mov     dword ptr ds:[esi+18], eax
    push     eax
    mov      eax, dword ptr ds:[dwNameSpace]
    add      eax, 0D10Fh
    mov      dword ptr ds:[dwRandom], eax
    pop      eax
    jmp      dword ptr ds:[dwRandom] 
mapViewRetHook endp

nameSpaceBase proc
    pushad
    pushf
    cmp      dword ptr ds:[bNSBool], 01h
    jne      @f
   
    mov      dword ptr ds:[dwNameSpace], eax
    push     eax
    push     eax
    push     eax
    push     eax

    add      eax, 0C7D9h
    invoke   VirtualProtect, eax, 936h, PAGE_EXECUTE_READWRITE, addr dwRandom
   
    pop       eax
    add      eax, 0C7D9h
    push     eax
    mov      byte ptr ds:[eax], 0E9h
    mov      ecx, offset createFileHook
    add      eax, 5
    sub      ecx, eax
    sub      eax, 4
    mov      dword ptr ds:[eax], ecx
    pop      eax
    add      eax, 5
    mov      byte ptr ds:[eax], 090h
   

    pop      eax
    add      eax, 0D093h
    push     eax
    mov      byte ptr ds:[eax], 0E9h
    mov      ecx, offset createFileMapHook
    add      eax, 5
    sub      ecx, eax
    sub      eax, 4
    mov      dword ptr ds:[eax], ecx
    pop      eax
    add      eax, 5
    mov      byte ptr ds:[eax], 090h

    pop      eax
    add      eax, 0D104h
    push     eax
    mov      byte ptr ds:[eax], 0E9h
    mov      ecx, offset mapViewHook
    add      eax, 5
    sub      ecx, eax
    sub      eax, 4
    mov      dword ptr ds:[eax], ecx
    pop      eax
    add      eax, 5
    mov      byte ptr ds:[eax], 090h

    pop      eax
    add      eax, 0D10Ah
    mov      byte ptr ds:[eax], 0E9h
    mov      ecx, offset mapViewRetHook
    add      eax, 5
    sub      ecx, eax
    sub      eax, 4
    mov      dword ptr ds:[eax], ecx

    mov      dword ptr ds:[bNSBool], 0

    @@:
    popf
    popad
    mov      ecx, dword ptr ss:[ebp-014h]
    and      byte ptr ss:[ebp-4], 0
    mov      esi, dword ptr ds:[dwNSHook]
    add      esi, 5h
    jmp      esi
nameSpaceBase endp

loadLibraryHook proc lpFileName:DWORD
    pushad
    pushf

    cmp      dword ptr ds:[dwAquired], 01h
    je       continueLoad
   
    mov      ecx, dword ptr ds:[esp+026h]

    @@:
    xor      eax, eax
    mov      edx, dword ptr ds:[dwCounter]
    mov      al, byte ptr ds:[ecx+edx]
    cmp      al, 00h
    je       stringEnd
    inc      dword ptr ds:[dwCounter]
    jmp      @b

    stringEnd:
    lea      eax, dword ptr ds:[ecx+edx-0Dh]
    invoke   lstrcmp, eax, addr szNameSpace
    test     eax, eax
    jnz      continueLoad
    popf
    popad

    push     eax
    invoke   VirtualProtect, dword ptr ss:[esp+10h], 5h, PAGE_EXECUTE_READWRITE, addr dwRandom
    push     eax
    mov      eax, dword ptr ds:[esp+8]
    mov      dword ptr ds:[dwNSHook], eax
    mov      byte ptr ds:[eax], 0E9h
    push     ecx
    mov      ecx, offset nameSpaceBase
    add      eax, 5
    sub      ecx, eax
    sub      eax, 4
    mov      dword ptr ds:[eax], ecx
    mov      eax, dword ptr ds:[dwNSHook]
    add      eax, 5
    mov      word ptr ds:[eax], 09090h
    pop      ecx
    pop      eax
    pop      eax

    mov      dword ptr ds:[dwAquired], 01h
    mov      dword ptr ds:[bNSBool], 01h
    jmp      @f

    continueLoad:
    mov      dword ptr ds:[dwCounter], 0h
    popf
    popad
    @@:
    push     ebp
    mov      ebp, esp
    push     eax
    mov      eax, dword ptr ds:[dwLoadLibrary]
    add      eax, 5
    mov      dword ptr ds:[dwRandom], eax
    pop      eax
    jmp      dword ptr ds:[dwRandom]
loadLibraryHook endp

OPTION PROLOGUE:PrologueDef
OPTION EPILOGUE:EpilogueDef

botConsole proc
    invoke   SetConsoleTitle, addr szTitle
    invoke   SetConsoleTextAttribute, dword ptr ds:[hConsole], FOREGROUND_RED or  FOREGROUND_GREEN or FOREGROUND_BLUE or FOREGROUND_INTENSITY
    invoke   consoleOut, addr szIntro1
    invoke   SetConsoleTextAttribute, dword ptr ds:[hConsole], FOREGROUND_INTENSITY
    invoke   consoleOut, addr szIntro2

    invoke   GetModuleHandle, addr szKernel32
    mov      ebx, eax
    invoke   GetProcAddress, ebx, addr szCreateFile
    mov      dword ptr ds:[dwCreateFile], eax
    invoke   GetProcAddress, ebx, addr szCreateMap
    mov      dword ptr ds:[dwCreateMap], eax
    invoke   GetProcAddress, ebx, addr szMapView
    mov      dword ptr ds:[dwMapView], eax
    invoke   GetProcAddress, ebx, addr szLoadLibrary
    mov      dword ptr ds:[dwLoadLibrary], eax

    invoke   VirtualProtect, dword ptr ds:[dwLoadLibrary], 05h, PAGE_EXECUTE_READWRITE, addr dwRandom

    mov      eax, dword ptr ds:[dwLoadLibrary]

    mov      byte ptr ds:[eax], 0E9h
    mov      ecx, offset loadLibraryHook
    add      eax, 5
    sub      ecx, eax
    sub      eax, 4
    mov      dword ptr ds:[eax], ecx
   
    invoke   SetConsoleCtrlHandler, addr consoleProc, TRUE
    test     eax, eax
    jne      @f

    invoke   consoleOut, addr szError1
    invoke   Sleep, 02710h
    ret
   
    @@:
    invoke   Sleep, 04E20h
    xor      edx, edx
    @@:
    push     edx
    mov      eax, dword ptr ds:[szTable+edx]
    invoke   consoleOut, eax
    pop      edx
    add      edx, 4h
    cmp      edx, 040h
    jne      @b
    @@:
    invoke   Sleep, 02710h
    jmp      @b
     
    @@:
    ret
botConsole endp

consoleProc proc fdwCtrlType:DWORD
    cmp      dword ptr ds:[fdwCtrlType], CTRL_CLOSE_EVENT
    jne      @f
    mov      dword ptr ds:[bExit], 01h
   
    @@:
    ret
consoleProc endp

consoleOut proc lpBuffer:DWORD
    invoke   lstrlen, lpBuffer
    invoke   WriteConsole, dword ptr ds:[hConsole], dword ptr ds:[lpBuffer], eax, dword ptr ds:[dwRandom2], NULL
    ret
consoleOut endp

consoleCreate proc
    invoke   AllocConsole
    invoke   GetStdHandle, STD_OUTPUT_HANDLE
    mov      dword ptr ds:[hConsole], eax
    call     botConsole
    invoke   ExitThread, 0
consoleCreate endp

DllMain proc hinstDLL:HINSTANCE, fdwReason:DWORD, lpvReserved:LPVOID
    cmp     dword ptr ds:[fdwReason], DLL_PROCESS_ATTACH
    jne     @f
        invoke  CreateThread, NULL, NULL, addr consoleCreate, NULL, NULL, NULL
@@:
    mov     eax, 1
    pop     ebp
    retn    0Ch
DllMain endp
end DllMain


Something stupid, maybe you can actually make use of it. Map.wz is never mapped, yet maps still are loaded. (Themida uses up too much memory and the API returns an error.) So obviously, you need to dig a little deeper. I'm not sure what would happen if you changed the mapped memory. Never got the chance.


























Quote:



After looking over Pedra's mob struct information, etc I managed to find the one that controls platforms.

Using this, it's possible to make your own "Active" or "Live" pvac that doesn't require .wz edits or a CRC bypass (by directly modifying the structure).

The platform structure works as a linked list just like the mob structure, as follows:

GMS 0.62:

0x978138[0x88] = firstplatform+0x10 (just like mob structure).

Code:
platformlist:
0 = seh or template address
4 = nextplatformlist (is a ptr)
8 = previousplatformlist (is a ptr)
...
10 = ep of the base ptr (if is first platform in list)
14 = platformdata
18 = sizeof(struct)

platformdata:
0 = seh or template address
...
c = left boundary of platform
10 = top boundary of platform
14 = right boundary of platform
18 = bottom boundary of platform
...
30 = an unknown "double byte value"
38 = an unknown "double byte value"
40 = an unknown "double byte value"
48 = the .wz platformID of the platform
4c = nextplatformdata (follows .wz defintions, is a ptr)
50 = previousplatformdata (follows .wz defintions, is a ptr)
...
80 = sizeof(struct)


I've made simple structs for access to this information in c++:

Code:
struct platdata {
unsigned template1;
unsigned unknown2;
unsigned unknown3;
unsigned left;
unsigned top;
unsigned right;
unsigned bottom;
unsigned unknown8;
unsigned unknown9;
unsigned unknown10;
unsigned unknown11;
unsigned unknown12;
double unknown13;
double unknown14;
double unknown15;
unsigned platformid;
platdata* next;
platdata* previous;
unsigned unknown19;
unsigned unknown20;
unsigned unknown21;
unsigned unknown22;
unsigned unknown23;
unsigned unknown24;
unsigned unknown25;
unsigned unknown26;
unsigned unknown27;
unsigned unknown28;
unsigned unknown29;
unsigned size;
};

struct platlist {
unsigned template1;
platlist* next;
platlist* previous;
unsigned template2;
unsigned unknown;
platdata* data;
unsigned size;
};


And functions for accessing/reading the structs:

Code:
unsigned platlistaddr = 0x978138;
unsigned platlistoffset = 0x88;

unsigned long readPointer( unsigned long addr, unsigned long offset)
{
if ( IsBadReadPtr( (void*) addr, 4 ) != 0 ) {
return -1;
}
unsigned long *ptr = (unsigned long*) addr;
unsigned long base = ptr[0];
if ( IsBadReadPtr( (void*) (base+offset), 4 ) != 0 ) {
return -1;
}
ptr = (unsigned long*) (base+offset);
return ptr[0];
}

platlist* getPlatList() {
unsigned platlistreal = readPointer(platlistaddr,platlistoffset);
if(platlistreal==0)
return NULL;
platlistreal-=0x10;
return (platlist*)platlistreal;
}

unsigned getPlatNumberFromPlatData(platdata* obj) {
if(obj==NULL)
return -1;

return obj->platformid;
}

platdata* getPlatDataByPlatId(unsigned id) {
platlist* thisplat = getPlatList();
while(thisplat!=NULL) {
if(getPlatNumberFromPlatData(thisplat->data) == id)
return thisplat->data;
thisplat = thisplat->next;
}
return NULL;
}



Why am I spoonfeeding again you ask? I want you idiots to get to work and find more shit than .wz edits to make your vacs.

EDIT:

Couple more functions for you guys to play about with:

Code:
platlist* addPlatform(platlist* original) {
platlist* newplat = new platlist;
memcpy(newplat,original,sizeof(platlist));
platdata* newdata = new platdata;
memcpy(newdata,original->data,sizeof(platdata));
newplat->data = newdata;
return newplat;
}

platlist* getFirstPlatform() {
return getPlatList();
}

platlist* getLastPlatform() {
platlist* thisplat = getPlatList();
while(thisplat!=NULL) {
if(thisplat->next==NULL)
break;
thisplat = thisplat->next;
}
return thisplat; //FIXED NAO
}


EDIT: summore new functions...
Code:

platlist* getPlatListByPlatId(unsigned id) {
platlist* thisplat = getPlatList();
while(thisplat!=NULL) {
if(thisplat->data->platformid == id)
return thisplat;
thisplat = thisplat->next;
}
return NULL;
}

void duplicatePlatforms() {
platlist* lastplat = getLastPlatform();
if(!lastplat)
return;
platlist* thisplat=getFirstPlatform();
int totalplats = lastplat->data->platformid;
int originaltotalplats = totalplats;
platlist* firstdupedplatform = NULL;
int curpos = 1;
while(curpos <= originaltotalplats) {
platlist* newplat = addPlatform(thisplat);
if(!newplat)
break;
if(!firstdupedplatform)
firstdupedplatform = newplat;

totalplats++;
newplat->data->platformid = totalplats;
newplat->previous = lastplat;
newplat->next = 0;
lastplat->next = newplat;
lastplat = newplat;
thisplat = thisplat->next;
curpos++;
}

//redirecting new platforms
thisplat = firstdupedplatform;
while(thisplat!=NULL) {
int next = getPlatNumberFromPlatData(thisplat->data->next);
int nextget = originaltotalplats+next;
if(next!=-1)
thisplat->data->next = getPlatDataByPlatId(nextget);

int previous = getPlatNumberFromPlatData(thisplat->data->previous);
int previousget = originaltotalplats+previous;
if(previous!=-1)
thisplat->data->previous = getPlatDataByPlatId(previousget);

thisplat = thisplat->next;
}

//redirecting old platforms
thisplat = getFirstPlatform();
while(thisplat!=firstdupedplatform) {
int next = getPlatNumberFromPlatData(thisplat->data->next);
int nextget = originaltotalplats+next;
if(next!=-1)
thisplat->data->next = getPlatDataByPlatId(nextget);

int previous = getPlatNumberFromPlatData(thisplat->data->previous);
int previousget = originaltotalplats+previous;
if(previous!=-1)
thisplat->data->previous = getPlatDataByPlatId(previousget);

thisplat = thisplat->next;
}
}


Ignore the sloppyness of that... I wrote it in like 10 minutes.



The Extension 'zip' was deactivated by an board admin, therefore this Attachment is not displayed.

Back to top
View user's profile Send private message
korby
Master Cheater
Reputation: 0

Joined: 07 Sep 2007
Posts: 401

PostPosted: Wed Apr 15, 2009 4:53 pm    Post subject: Reply with quote

bitches don't know about my keylog
_________________
Batman wrote:


Experience as a GM: been a GM on a GM private server.

Back to top
View user's profile Send private message
Deleted193960
Master Cheater
Reputation: -1

Joined: 03 Jan 2009
Posts: 348

PostPosted: Wed Apr 15, 2009 4:54 pm    Post subject: Reply with quote

ger
Back to top
View user's profile Send private message
SGL
Grandmaster Cheater
Reputation: 14

Joined: 04 May 2007
Posts: 758

PostPosted: Wed Apr 15, 2009 4:54 pm    Post subject: Reply with quote

Are you Arcane or another fag trying to steal him name?
_________________
I'm SirGodlike
Back to top
View user's profile Send private message
Noz3001
I'm a spammer
Reputation: 26

Joined: 29 May 2006
Posts: 6220
Location: /dev/null

PostPosted: Wed Apr 15, 2009 4:55 pm    Post subject: Reply with quote

Woah, outdated public shit which no one cares about Laughing


GOOD JOB
Back to top
View user's profile Send private message MSN Messenger
Loganator
Master Cheater
Reputation: 4

Joined: 29 Oct 2008
Posts: 472

PostPosted: Wed Apr 15, 2009 4:59 pm    Post subject: Reply with quote

SirGodlike wrote:
Are you Arcane or another fag trying to steal him name?

Diamonds/Miley Cyrus
Back to top
View user's profile Send private message
407
Master Cheater
Reputation: 0

Joined: 25 Oct 2007
Posts: 357

PostPosted: Wed Apr 15, 2009 5:00 pm    Post subject: Reply with quote

Loganator wrote:
SirGodlike wrote:
Are you Arcane or another fag trying to steal him name?

Diamonds/Miley Cyrus
We share accs
Back to top
View user's profile Send private message
W8Baby
Master Cheater
Reputation: -1

Joined: 18 Oct 2008
Posts: 497
Location: Your Face

PostPosted: Sat Jan 30, 2010 2:38 pm    Post subject: Reply with quote

Thanks this is useful
Back to top
View user's profile Send private message AIM Address
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Random spam All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites