ventura Posted March 13, 2023 Share Posted March 13, 2023 Créditos pelo tutorial : Bola Ctrl C+Ctrl V você precisará de um IDA Pro para aplicativos x86. Para começar a trabalhar você terá que encontrar um método chamado "gplayer_controller::DebugCommandHandler", para encontrá-lo você precisa carregar o gs de qual versão você deseja criar esta função, e depois de feito selecione a caixa do método e pressione a tecla ALT + tecla T em mesmo tempo, insira dentro da caixa o nome da função acima e dê ok. para encontrar a função que estamos procurando, pressione F5 para ter uma visão geral do código pseudo C++. se você descer um pouco, encontrará esta instrução para registrar o DebugCommand, vamos apagá-la e substituí-la por nossa instrução. defina o ponteiro do mouse e clique no meio da string "this->_imp->_parent_ID.id" e pressione TAB. você verá uma instrução como esta no IDA, onde Yellow é a instrução move o roleid para o bloco de memória EAX e uma linha após o bloco amarelo, a instrução do system pull roleid do ponteiro EAX+30h. Lembre-se de todas as instruções do bloco amarelo mais o ponteiro EAX+30h (pode ser outro dependendo da versão do gs). defina o ponteiro do mouse na instrução "push [ebp+cmd_type]" e vá na barra de menu na parte superior do IDA Pro, selecione Edit -> Patch Program -> Assemble. você vai escrever a palavra "NOP" até chegar na instrução "mov eax, [ebp+cmd_type]". depois que você terminar, ficará assim. agora você precisa saber onde seu método "DebugCommandHandler" termina, meu truque para isso é clicar no próximo método na caixa do método e depois ir um pouco acima da função, você encontrará o final do debughandler e então você precisa copiar o instrução de localidade para um bloco de notas ou algo assim, no meu exemplo, a localidade no canto superior esquerdo da instrução, "loc_812B8D1". então agora você pode construir o novo código de instruções, já que você tem o código antigo mais a comparação com o número do roleid, para o meu exemplo, terei essas instruções. lembre-se de substituir o mov eax e o ponteiro eax 30h para combinar com o do seu gs, substitua também myroleid pelo ID do seu personagem desejado e também substitua na última linha o Loc que você encontra no final do método. Citar mov eax, [ebp+este] mover eax, [eax+4] mover eax, [eax+8] cmp dword ptr [eax+30h], MYROLEIDHERE jnz loc_812B8D1 Vá para o primeiro NOP em instruções e patch novamente, mas agora com cada linha acima, depois de feito você terá que transferir o código para seu gs novamente, então vá para a barra de menu do IDA, selecione Edit -> Patch Program -> Apply Patches , selecione seu arquivo gs original carregado no IDA anterior e, em seguida, substitua em seu servidor por este GS corrigido e teste, a depuração deve funcionar bem apenas para o roleid projetado. A instrução final ficará assim: 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.