Introdução a Ponteiros

Tempo de leitura: 3 minutos

Outro assunto muito importante que deve ser compreendido antes de podermos desenvolver nossos próprios cheats é ponteiros.

Ponteiros sao a Base dos Cheats e é por isso que estarei dando uma introdução a esse conteúdo aqui ;D

Mas para quem ta começando do zero na programação esse não é o assunto ideal para se estudar agora, pois é provável que você não entenda ou fique confuso com o assunto.

Ta, e o que são ponteiros?

Ponteiro é um tipo de dado(uma variável) que armazena um endereço de memória. Você deve esta se perguntando, como assim armazena um endereço de memória? Ok, vou tentar tornar mais simples. Fazendo uma analogia a um Navegador WEB(Browser) um ponteiro seria um link, pois os links eles guardam um endereço de um website(Como por exemplo, https://lipinf.com) e quando você digita o link no navegador ele lhe leva ao website respectivo. É exatamente assim que funcionam os ponteiros.

Na imagem a baixo temos um exemplo da representação de uma pequena parte da memória do seu computador endereçada(ordenada) em grupos de 4 bytes(tamanho de uma posição da memória). Note que a variável lp está guardando o endereço da variável vida, sendo assim lp é um ponteiro.

memoria_exemplo1

Agora deve ter ficado mais claro, certo? Mas você ainda pode estar se perguntando para que serve isso tudo?

Com o endereço armazenado, você pode ter acesso e até mesmo modificar aquela região de memória. Seguido o raciocínio da imagem acima, através da variável lp, podemos ler ou escrever na variável vida.

Segue um exemplo de código na linguagem C de como isso é feito:

#include <stdio.h>
#include <stdlib.h>

int main(){

   int vida = 80; //Aqui declaramos a variável vida com valor inicial 80
   int *lp; //Aqui declaramos nosso ponteiro, por isso temos que por o *   

   printf("Sua vida atual eh: %d",vida); //Mostramos na tela o valor da variável vida(que nesse momento é 80)

   lp = &vida; //Capturamos o endereço da variável vida através do & e armazenamos em lp
   *lp = 999; //Aqui modificamos o valor de vida para 999 através da variável lp  

   printf("Sua vida atual eh: %d",vida); //Mostramos na tela o valor da variável vida(que agora é 999)
}

*OBS: Meu objetivo aqui não é fazer você aprender a linguagem C e sim entender a lógica por trás dos ponteiros.

Abaixo temos a representação da alteração da memória através de ponteiros:

memoria_editada2

Note que meu objetivo é sempre voltar o conteúdo para área da segurança da informação(nesse caso, para cheats), pois ponteiros tem várias funcionalidades fora dessa área. =)

Vale ressaltar que da maneira que trabalhamos com ponteiros acima(maneira como é ensinada por aí) teremos acesso somente a memória do nosso programa(conseguimos obter endereços somente do que faz parte do nosso programa(variáveis, funções, etc)), isso porque o sistema operacional tem algumas restrições quanto a manipulação de memória, mas felizmente existem métodos que combinados com ponteiros nos permitem ter acesso a memória de outros programas ;D

Agora voce pode ter tido uma ideia de algumas funcionalidades de ponteiros,  deu pra sentir o poder? hahaha

Em artigos seguintes devo falar um pouco mais sobre memória e esses métodos citados no parágrafo anterior.

Quaisquer dúvidas comentem a baixo que lhe ajudarei.
Abraço,
Lipinf.

 

32 Comentários



  1. Filipe porque você não faz um canal no youtube e posta videos das aulas que você estar praticando aki no site?? por video da para explicar melhor para nós(iniciantes) pois muita gente como eu não entende quase nada.

    Responder

    1. Oi Thales, atualmente eu tenho o Treinamento Online de Cheats, curso que ofereço onde ensino a meus alunos como criar cheats e anti-chetas do zero, passo-a-passo e em video-aulas. Eu sempre anuncio a abertura de novas turmas para minha lista de e-mails, se você ainda não faz parte dela, segue o link: https://lipinf.com/squeeze/

      Responder

  2. – Entendi um pouco, já deu pra ter uma noção, sei com o tempo irei entender melhor 😀 , tutorial maravilhoso!

    Responder

  3. A explicação é bem superficial mas como foi dito o objetivo não ensinar C certo? haha. Gostei bastante da preocupação com exemplos, os quais na minha opinião fazem do aprendizado um processo muito mais fácil!

    Responder

    1. Oi Guilherme, sim, o artigo acima é um tanto quanto superficial, a itenção é a penas introduzir o conteúdo, a pessoa que estiver aprendendo deve proucurar mais conteúdos a respeito, bem como praticar =]. Muito obrigado pelo seu comentário, forte abraço!

      Responder

  4. parabéns to cada vez mas gostando das aulas estou ansioso para começar a colocar em praticas

    Responder

    1. Unhum, basicamente devemos alterar os valores originais do jogo, então no momento que temos acesso a memória da onde esses valores estão armazenados podemos alterar eles pro valor que a gente deseja através de ponteiros =)
      Abraço!

      Responder

  5. Cara muito bom, e eu achando q não seria possível alguém me ensinar essas paradas finalmente to aprendendo

    Responder

    1. a cara e me diz se eu acertei, acessando a memória através dos ponteiros vc pode usar um debbuger para clona-lo do jeito q eu quizer neh?

      Responder

  6. Mandei alguns emails com dúvida e você não respondeu, teria como dar uma olhada ?

    Responder

    1. Oi Carlos, eu costumo responder meus e-mails em 1 dia útil, visto que acesso o mesmo quase todos os dias úteis =D.
      Se ainda não respondi, me envia de novo ok? Meu e-mail é [email protected]
      Abraço!

      Responder

  7. Mano muito bom!! Esse tutorial você ensina direitinho cara ;D deu pra entender mesmo!! Continua cara continua que você vai se dar bem ;D

    Responder

  8. Não vou fazer uma pergunta, mas sim um pedido, não tire esse artigo do site!

    Responder

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *