PDA

View Full Version : |Download| Main Unpacked Season 8 Ep.3



jhonhy™
11/12/2017, 04:56 PM
O mesmo não está cracked.

Versão: 1.05.07

DOWNLOAD ([Only registered and activated users can see links]!nwUyRazI!mGaQmsj_CTJeZI1XX5CJxFe6rkMqbiXIMSCB52o RCdY)

OFFSETS:


#define ConnectionVersion "2284<" //Original
#define ConnectionSerial "3Rkb8XjbU2Yjk4jn" //Original

#define IP_OFFSET 0x0118DB1A
#define VER_OFFSET 0x0118EF48
#define SERIAL_OFFSET 0x0118EF50

#define MUEXE_OFFSET1 0x004D911B
#define MUEXE_OFFSET2 0x004D9176

#define RG_OFFSET1 0x004DC3CA
#define RG_OFFSET2 0x0062D3F6
#define RG_OFFSET3 0x0062D2DA

#define CONFIG_INI_READ_OFFSET 0x004D2250

#define GG_OFFSET1 0x004D9556
#define GG_OFFSET6 0x004D9513

#define CMSTARTER_OFFSET1 0x004AB541
#define CMSTARTER_OFFSET2 0x004AB542

#define LOGINBOX_OFFSET1 0x0043DF96
#define LOGINBOX_OFFSET2 0x0043E4CC
#define LOGINBOX_OFFSET3 0x0043E4D5
#define LOGINBOX_OFFSET4 0x0043E4DD

#define PACKETTWISTER1 0x006CCCAA
#define PACKETTWISTER2 0x0A6FBFD9
#define PACKETTWISTER3 0x0A702AFA

#define TITLE_OFFS 0x01000A88

Mentor
11/12/2017, 06:21 PM
Show de bola! Eu tinha visto esse main em outro lugar, é uma pena não está craked mais pelo menos já dar para pegar offsets^^
obrigado por trazer para a PZ ;)

louis
11/12/2017, 09:57 PM
Depois que me mato pra achar os offsets no main packed você posta isso ? kkkk

obrigado mesmo assim =[

2 minutes:------- Atualizado -------

Tem offsets que mesmo unpack são vem difíceis de encontrar, segue os que encontrei:

//-> Interface
#define pLoadImage ((int(__cdecl*)(char * Folder, int Code, int Arg3, int Arg4, int Arg5, int Arg6)) 0x00787BE2) //S8 OK
#define pLoadSomeForm ((void(__cdecl*)()) 0x0078C036) //S8 OK
#define oLoadSomeForm_Call 0x0078B9CB //S8 OK

#define pDrawInterface ((void(__cdecl*)()) 0x005AFA46) //S8 OK
#define oDrawInterface_Call 0x007F3F49 //S8 OK
#define pDrawGUI ((void(__cdecl*)(DWORD, float, float, float, float)) 0x00799791) //S8 OK
#define pDrawColorText ((int(__cdecl*)(LPCTSTR Text, int PosX, int PosY, int Color, int Background, int Align, float Width, int Bold)) 0x007FF712) //S8 OK

#define pGetPosFromAngle ((void(__cdecl*)(VAngle * Angle, int * PosX, int * PosY)) 0x0062F279)
#define pCursorX *(int*)0x08B156EC
#define pCursorY *(int*)0x08B156F0
#define pSetBlend ((void(__cdecl*)(BYTE Mode)) 0x0062F75B)
#define pGLSwitch ((void(__cdecl*)()) 0x0062F6E1)
#define pGLSwitchBlend ((void(__cdecl*)()) 0x0062F7F0)
#define pDrawBarForm ((void(__cdecl*)(float PosX, float PosY, float Width, float Height, float Arg5, int Arg6)) 0x00630F0A)
#define pDrawImage ((void(__cdecl*)(int ImageID, float PosX, float PosY, float Width, float Height, int Arg6, int Arg7, float ScaleX, float ScaleY, bool ScaleSize, bool ScalePosition, bool ScaleAlpha)) 0x00631289)
#define pSetCursorFocus *(DWORD*)0x011C4454
#define pSetTextColor ((void(__thiscall*)(LPVOID This, BYTE r, BYTE g, BYTE b, BYTE h)) 0x0045140C) //S8 OK
#define pTextThis ((LPVOID(*)()) 0x0045124F) //S8 OK
#define pDrawText ((int(__thiscall*)(LPVOID This, int PosX, int PosY, LPCTSTR Text, int nCount, int nTabPositions, LPINT lpnTabStopPositions, int nTabOrigin)) 0x004514E6) //S8 OK

fabinalves
11/12/2017, 11:42 PM
Pessoal, alguém pode me explicar o que são e para que serve esses OFFSETS? e o main unpacked?

Marco_Aurélio
12/12/2017, 06:54 PM
Pessoal, alguém pode me explicar o que são e para que serve esses OFFSETS? e o main unpacked?

Então amigo. isso ja parte para area de programação os Offsets são endereços de memoria de cada função do GS, no caso do Main.
Existe o Main PAcked e Unpacked,
Packed é um processo que é feito para proteger o main, e assim tornar mais dificiu a vida de quem quer crackear ou adicionar funcões que originalmente não existem nesse main.
Resumindo Main Packe é o main protegido, e UnPacked é quando é removida essa proteção.

O OFfsets serve para poder programar funcoes novas ou ate mesmo reescrever uma função que ja existe no main, o programador acha esse offset e Hook ele na source fazendo com que o main passe a ler o que esta na dll criada pelo programador e não no proprio main, desta forma se cria as novas funcoes, assim como corrigir funções originais com erro.
Tal exemplo é os novos itens e asas, eventos, HPBar por ai vai.

antoniodel
12/12/2017, 09:41 PM
Tem como compartilhar esses 3 aqui louisMain.cpp SetCompleteHook(0xE8,0x00575F55,&DrawNewHealthBar);CustomRankUser.cpp gPreview->ObjSelect(n, pObjPreviewThis); // -> Coletar Informações da ObjPreview DWORD ViewportAddress = *(DWORD*)(0x079B9D40)+(n*0x464); ((void(*)())0x00576E40)();Agradeço de coração :D

fabinalves
12/12/2017, 09:54 PM
Então amigo. isso ja parte para area de programação os Offsets são endereços de memoria de cada função do GS, no caso do Main.
Existe o Main PAcked e Unpacked,
Packed é um processo que é feito para proteger o main, e assim tornar mais dificiu a vida de quem quer crackear ou adicionar funcões que originalmente não existem nesse main.
Resumindo Main Packe é o main protegido, e UnPacked é quando é removida essa proteção.

O OFfsets serve para poder programar funcoes novas ou ate mesmo reescrever uma função que ja existe no main, o programador acha esse offset e Hook ele na source fazendo com que o main passe a ler o que esta na dll criada pelo programador e não no proprio main, desta forma se cria as novas funcoes, assim como corrigir funções originais com erro.
Tal exemplo é os novos itens e asas, eventos, HPBar por ai vai.

Perfeito mano, então é com os offsets que os programadores conseguem fazer o lado do servidor? tipo os emuladores. Isso deve da um trabalho, por isso os caras da xteam cobra caro nos servidores. vlw mano

Marco_Aurélio
13/12/2017, 01:11 PM
Perfeito mano, então é com os offsets que os programadores conseguem fazer o lado do servidor? tipo os emuladores. Isso deve da um trabalho, por isso os caras da xteam cobra caro nos servidores. vlw mano

NÃO. Emulador amigo é por exemplo o GAMESERVER completo, que ele mesmo escreveu, o offsets é usado para injetar um codigo dentro de um GS ou MAIN ja criado Geralmente os originais da WebZen.

Voce pode ver que tem muitos programadores, que não gerar um novo GS e sim uma DLL, quando se programa em DLL ai se usa o offsets em tudo, pois esta injetando uma funcao que não existe naquele executavel que ja foi criado.
o Emulador nada mais é que o codigo do Executavel em si, não necessita de dll, e nem offsets
porem no caso so MAIN sempre irá precisar de offsets, pois ainda não vazou na net o codigo fonte dele.

fabinalves
29/12/2017, 06:29 PM
Obrigado novamente pela resposta, me esclareceu bastante coisa. Se não for incomodar queria tirar mais uma duvida.


Eu comecei a estudar C++ por alguns motivos e tambem pra tentar entender um pouco a source da xteam/muemu.


Então, minha duvida é a seguinte. Eu vi que quando um gm usa o comando /gmpost, tem uma função que faz duas verificações, a primeira é se o comando ta ativado e a segunda se o user é gm, ate aqui tudo bem, minha duvida é essa parte aqui.


gNotice.GCNoticeSendToAll(0,0,0,0,0,0,"[%s] %s",lpObj->Name,arg);


Eu queria entender como é feita a comunicação do gameserver com o cliente, pra poder mostrar aquela mensagem no meio da tela do jogo.


Eu vi que esse argumento "[%s] %s" é o nick e a mensagem que o gm digitou, mas como falei antes minha duvida é como é feita a comunicação entre o gameserver e o cliente.


Eu sei que pode ser uma pergunta noob, mas sou iniciante e queria mesmo só uma teoria pra tentar entender.

jhonhy™
30/12/2017, 11:58 AM
A comunicação do gs com o client é pelo protocolo.

No gNotice.GCNoticeSendToAll(0,0,0,0,0,0,"[%s] %s",lpObj->Name,arg);

Cada 0, tem sua especificação no GCNoticeSendToAll.

Basta seguir a sequencia dos 0: GCNoticeSendToAll(BYTE type,BYTE count,BYTE opacity,WORD delay,DWORD color,BYTE speed

Do jeito que está o Type, que seria o primeiro 0 = (0,0,0,0,0,0, em vermelho, já está a noticia no meio da tela. Se por 1 no Type ou seja, no primeiro 0, vai falar no canto da tela a esquerda <-

Abraços;

[]'s