Jump to content

Turbine o seu Perfil

Confira a atualização e participe do clube!
Clique e saiba mais

Junte-se ao Clube de Membros VIP

Tenha destaque e diversos benefícios!
Confira Aqui

Acesse nosso Discord

Conheça nossos canais interativos
Confira Aqui
Notícia
  • Adquira já o seu VIP!
qqshutup

coding/source "DIP Engine" - Wallhack/Chams perfeito

Recommended Posts

Muitos usam "DIP Engine - Mid function hook " como maneira de renderizar o chams sem usar strides.
Mas vai renderizar algumas minas, turrets, hornets etc, junto.

Outros fazem hook na DIP do DX e verificam o return address para não usar strides.

Mas vai renderizar algumas minas, turrets, hornets etc, junto.

 

Uma alternativa perfeita é você dar backtrace na função, algo que nunca foi feito. Usavam mid function hook em tudo, e isso polui e deixa difícil de ler.

 

Basicamente o local onde vocês fazem o DIP Engine - Mid function hook é na função:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Só se olhar os argumentos não tem nada para distinguir um objeto então ela ainda não é responsável por renderizar especificamente o personagem, ela já recebe as informações do objeto a ser renderizado, então aqui vai entrar turrets etc..

 

Dando backtrace mais um pouco a função que chama ela é a seguinte:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Agora sim temos um argumento interessante: ModelInstance *instance

Para quem não sabe, ModelInstance é a classe que guarda informações de um objeto.

Informações como:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Então aqui entra um ponto chave, algumas classes tem um membro do tipo ModelInstance* que guarda esse tipo de informação e uma delas é o character_fx, vamos usar dela para criar o wallhack / chams perfeito, tal como engine chams.

 

Vamos criar dois helpers para ficar melhor.

A função find procura em um vetor ( utilizando std::find ) um valor e retorna true caso tenha encontrado.

A função insert chama a find para verificar se o valor já está dentro do vetor, caso não, então insere.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

 

Faça a hook na função, use MinHook é extremamente bom.

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

E assim temos o wallhack/chams perfeito.

 

Antes que eu esqueça, para encontrar essa função é simples:

IDA -> Strings -> "BoneCount" -> xrefs ( É usado somente nessa função )

 

Ou caso preferir:

Hidden Content

    Give reaction or reply to this topic to see the hidden content.

Outra maneira:

Encontre a vtable da CD3DSkelMesh

A quarta função é a que procura.

 

Créditos

qqshutup#9762

Edited by qqshutup
  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...