Sei sulla pagina 1di 7

mov [00451f0d],eax // Mover o valor do eax para o endere o entre []

add dword ptr [00451f0d],02 // Adicionar 2 ao valor contido no endere o entre []


mov eax,[00451f0d] // Copiar o valor do endere o entre [] para o eax
mov [esi+00000146],eax // C digo do jogo
jmp jogo // Voltar para o pr ximo endere o do jogo, (ainda vamos ver qual ser )
Esse pequeno tutorial eu fiz para pessoas que acabaram de conhecer o mundo dos c
heats e no tem a mnima noo de chceat engine, nessa edio contem apenas as ferramentas
icas...
Vocs Podem ficar cansados de ler + lendo voc entendera tudo e poder at fazer chets n
ovos...
Apresentao do Cheat Engine (C.E)
PARTE 1
O que Cheat Engine?
Cheat Engine um editor de memria, sua funssao eh alterar os valor do adress do cli
ente e freeza-lo para que seu valor no mude, mas voc deve estar confuso, ```valore
s`` ``cliente`` ``adress`` `frozen``?
O valor pode ser o valor do numero de vidas que voc tem, pode ser seu dinheiro, qu
anto de fora, de defesa e etc.Resumidamente so nmeros que representam a quantidade
de algo
O adress representado por alguns nmeros, ele representa algo no jogo, como suas vi
das ( no o numero de vidas que voc tem) a sua defesa ( mas n o quanto de defesa vo
c tem ) nele a valores.
O frozen eh um boto usado para freezar (quando uma pessoa fala ``freeze`` para mar
car o quadradinho ) o valor. Assim organizado no CheatEngine
Nesse screeen pode-se perceber a organizao dos itens acima
Apesentao e Funo dos cones Bsicos do CE
</FONT>(CheatEngine)
Conhecido como``computadorzinho``
Funo: Selecionar o processo
Reao ao clique: Abre uma janela com a lista de processo abertos, onde voc deve sele
cionar o processo do jogo que queres editar
``First Scan`` ( primeiro scan)
Funo: Procurar pelo valor que voc colocou na caixa de value
Reao ao clique: Acha todos os adress que possuem o valor que voc colocou na caixa d
e valor.
Next Scan (Prox.scan)
Funo: Selecionar dos adress achados anteriormente com o ``first scan``os adress qu
e possuem o valor que voc colocou agora na caixa de valores.
Undo Scan ( desfazer scan)
Funo: Desfazer o ultimo scan.
Settings
Funo: Ir para abas de configurao do Cheat Engine
Boto frozen
Funo: Freezar, congelar o valor para que ele no mude.
Reao ao clique:

Introduo aos cheats


PARTE 2
Obs. Inicial: S prossiga para essa segunda parte se j souber a primeira parte, se
no entendeu algo releia, se for o caso de no entender mesmo relendo, pergunte pelo
frum, mas nunca floode.
1.1Apresentao dos Value Types
- H vrios value types, eu so vou mostrar agora os bsicos (usado na grande maioria d
os cheats)
Byte- Usado para achar adress`s que representam algo no jogo que ligavel e desli
gavel, o valor 1 eh ligado(vivo, ativado, com) e o 0 desligado(morto,desativado,
sem) ex.: no jogo a um boto que ativa ou desativa algo
4 bites- Usados para achar valores que so numero de algo, ex.: numero de vidas, s
eu dinheiro no jogo, sua exp, o dinheiro que voc ganha no jogo, e etc:
Float- Usados para achar valores que variam para dcima, mas no para procurar valor
es decimais, ex: seu life, sua mana.
Text O nome j diz, texto, serve para achar textos no jogo, ex: O seu nick, o nome
da sua sala, o nome do server, etc.
1.2 Apresentao dos San Types
- H alguns scan types, irei apresent-los para voc.
Exact Value: O mais conhecido, Serve para achar valores exatos, como 1,2,3,4,5,6
,7....
Bigger Than: Pouqussimo usado, serve para achar um valor maior do que o que voc co
locou na caixa de valor, especificado, voc n sabe qual e o valor, voc s sabe que ma
ior do que o que voc colocou no value box
Smaller Than: Tampouco usado quanto o acima, serve para achar valores menores do
que o da caixa de valor.
Value beetwen: Nunca vi ser usado por qualquer pessoa, e infelizmente no fasso noo
da sua funo.
Unknow Intial Value: O Segundo mais usado, serve para achar valores que voc no sai
ba a mnima noo de qual seja.
2.1- Como achar valores conhecidos ( exact values ).
- As coisas acima faceis, creio que facilmente voc pegou. Agora se voc j domina os
assuntos acima vai ser muito fcil, eu vou somente da uma dica, quando voc da o pri
meiro scan, voc acha muitos valores, talvez milhares, ai voc se pergunta, como eu
acho o valor certo? Simples, fassa esse valor mudar para que voc de o next scan,
diferente, ex.: ( to facilitando d+) voc tem 3 vidas, de first scan em 3 ( em exa
ct porque um valor exato) perca uma vida, e procure por 2 , se ainda assim n sob
rar poucos valores, perca + 1 ficara com 1 procure por 1, ai voc achara o adress
ou os adress`s pode ser + de 1, de 2 cliques em todos eles e eles iro para a caix
a de baixo freeze todos no valor 3, e pronto,
-Agora tente fazer com outras coisas.
2.2- Como achar valores desconhecidos ( Unknow Values )
-Esse mais complexo porque acha milhares de valores, mas no difcil,vou dar um exem
plo em float e em a defeat hack (para o bixo j nascer morto). Enfrentando o bixo
Proucure por unknow intial value(scan type) e float (porque eh um life e varia p
ara dacimais), agora hite (bata) o bixo, v em scan type e coloque decreased value
(valores que baixaram)e de next scan, agora mude o scan type pra unchanged valu
e (valores que no mudaram) vai e da uns 5 scans (sem bater no bixo), agora bate n
ovamente e procure por decreased value, repita esse processo ate que sobre pouco
s valores (no max. 5) de dois cliques nos adress e freeze em 0, ele estar morto.
Experimente fazer com outros tipos de valores e cheats (sem tutorias, deduza com
o seria tal cheat que ainda no foi criado), como 4 bites, text, e byte.

Avanado 1
PARTE 3

1.1Criao de pointers e injections


1) Pointers:

a) O que so pointers:
Para simplificar ao mximo, pointers so uma espcie de funo matemtica, voc poderia cha
de equao, mas em uma equao o "x" tem valores fixos, numa funo o "x" varia e assim vo
pode construir um grfico, em outras palavras uma funo ago do tipo F(x)= 25x+54 mas
uma equao algo assim 25x+54=23. No jogo, voc encontrar em inmeras ocasies um comand
omo esse: mov [edi+00000052],esi este um exemplo de pointer.
Entendendo o pointer:
Usando o comando que citei acima: mov [edi+00000052],esi
voc deve estar se perguntando oq isso ai? to vendo umas letras e nmeros juntos...
mas... no sei oq fazer com isso.
Pois bem, vamos melhorar isso, primeiro vou te falar oq esse comando faz: ele co
pia o valor que est no "esi" para o endereo que obtido pela funo (pointer) "[edi+000
00052]".
Lembrando que voc pode encontrar diversos pointers diferentes, esse foi apenas um
exemplo simples.
voc deve ter entendido a base disso, se no entendeu, releia at entender.
c)O que fazer com um pointer:
Neste momento voc deve estar falando algo assim "Entendi oq .... mas... oq eu fao c
om isso em????"
Eu j te respondo, com um pointer voc no pode fazer muita coisa, mas se voc encontrar
um bem simples na memria do jogo, possivem criar um pointer no cheat engine e as
sim fazer com que seus manhas funcionem sempre.
Mas, existe a principal funo de um pointer que ser usado em conjunto com "code inj
ections" onde voc faz com que uma seqencia gigantesca de pointers vire apenas um p
ointer alterando o cdigo do jogo, fique calmo, eu vou explicar como fazer o point
er no "cheat engine" e como fazer e oq "code injection"
2) Code injection
a) O que code injection?
Acho que no tenho muito oq falar, basicamente voc colocar o seu cdigo prprio junto d
o cdigo do jogo, ou pode ser o fato de voc alterar parcialmente o cdigo do jogo de
modo a te ajudar.
Entendendo o "code injection":
Para fazer o code injection voc deve ter duas coisas: saber o cdigo que voc quer bu
rlar e um lugar livre na memria para voc poder escrever o seu cdigo (conhecido como
"code cave")

c) Oque poso fazer com "code injection"?


Quase tudo que voc pudr imaginar, por exemplo: com um injection bem bsico voc pode c
riar um hack de bolas infinitas no piball, basta voc achar o cdigo que subtrai uma
bola do total de bolas e fazer com que ele adicione uma, e como fazer isso... b
om voc ter um cdigo que comea com "sub" e voc deve mudar para "add" e ento pronto voc
terminou.

Parte prtica:
Oque vamos usar:
Cheat engine
Pinball 3d
Gunbound
Sua cabea
3)Aprendendo a usar o "ce" para fazer o uso de pointers e de code injection
Vamos usar como exemplo o pinball 3d, mas voc pode fazer o mesmo em qualquer jogo
.
a) Abra o "ce", abra o pinball 3d, selecione o processo do pinball (no "ce")
Encontre o endereo que controla o nmero de bolas que voc tem.
caso voc no saiba: inicie um novo jogo e procure por 3; perca uma bola e procure p
or 2; perca outra bola e procure por 1, voc deve ter encontrado um ou dois endereo
s.
c) Mude o valor do endereo para 3 (no de freeze) e verifique se est correto, em cas
o positivo prossiga, em caso negativo procure novamente o endereo.
d) Clique com o boto direito no endereo e depois clique em "find what writes to th
at adress", clique em "yes" na pergunta que aparecer. Agora voc deve estar vendo
uma janelinha pequena e muito provavelmente em branco.
e) Perca uma bola no pinball, volte para o "ce", agora deve ter algum endereo esc
rito. Esse endereo o que muda o nmero de bolas.
Pronto, voc j sabe procurar pelos endereos que alteram os valores.
4) Fazendo um injection simples para bolas infinitas no pinball.
Estou contando que voc aprendeu o passo anterior, portando falarei diretamente do
injection.
a) Encontre o endereo que altera o valor das bolas (como descrito acima), clique
nele e depois clique em "Show disassembler", uma janela grande deve aparecer.
na nova janela, voc vai usar a metade superior, perceba que o primeiro endereo que
aparece o que voc viu na janela pequena, ele deve ter esse cdigo: "mov [esi+00000
146],eax" e ele indica que est copiando o valor do "eax" para o endereo do pointer
[esi+00000146].
Agora eu te pergunto, oq voc pode fazer para fazer as bolas crescerem e no diminui
rem? (pense um pouco sobre isso antes de ler mais)
Eu respondo, com este cdigo voc no pode fazer isso, voc pode alterar o valor da bola
s ou criar um pointer para pode travar o valor, mas no vai fazer o valor crescer.
..
Mas, dando uma olhada no cdigo percebemos que estamos copiando o valor do "eax" p
ara o endereo que temos no "ce", aquele que voc tem no code list, e que voc pode mu
dar pro valor que bem entender, encontrado procurando pelo nmero de bolas que voc
ainda pode usar, logo o valor do "eax" igual ao que vemos no endereo.... pensando
um pouco, percebemos que para o valor das bolas diminuir, o valor do "eax" deve
diminuir, ento... vamos procurar o cdigo que muda o valor do "eax" voc vai enconta
r isso: "mov eax,[ebp+08]"

c) Com esse comando voc vai fazer um hack bem simples, vamos supor que voc queria
ganhar 255 bolas, bom... voc deve trocar esse [ebp+08] por 000000ff (255 em hex).
Ento o cdigo fica assim: "mov eax,000000ff" aperte enter e clique em "yes" quando
perguntar.
agora voc pode testar o hack.. ele deve estar funcionando.

5) Outro injection para pinball, mas agora um pouco mais complicado:


Bom, vamos umas este cdigo aqui "mov [esi+00000146],eax" que voc encontrou logo qu
e usou o debugger no endereo do code-list.
Neste injection, vamos fazer algo mais complicado, mas mais interessante, vamos
fazer o nmero de bolas crescer constantemente.
O que vamos fazer: vamos copiar o valor do "eax" para um outro endereo, ento vamos
adicionar 2 ao valor contido neste endereo (2 pq o "eax" sempre vai diminuir em
uma unidade e para compensar isso, somamos 2, ou seja: x-1+2=x+1) depois vamos f
azer esse novo valor ser copiado para o "eax" e ento seguir com o cdigo do jogo.
O cdigo ficar assim:
mov [00451f0d],eax // Mover o valor do eax para o endereo entre []
add dword ptr [00451f0d],02 // Adicionar 2 ao valor contido no endereo entre []
mov eax,[00451f0d] // Copiar o valor do endereo entre [] para o eax
mov [esi+00000146],eax // Cdigo do jogo
jmp jogo // Voltar para o prximo endereo do jogo, (ainda vamos ver qual ser)
Mos a abora, voc deve estar naquela janela onde voc pode ver os cdigos escritos na m
emria do jogo, ento clique em tools e depois clique em "scan for code caves" ou ap
erte "ctrl + alt + c". Uma janela vai abrir, mude o valor do tamanho para 100 (d
eve estar como 12) e manda procurar. Logo depois, uma lista bem grande vai apare
cer, eu escolhi este endereo: 00451ea9, mas voc pode escolher o que mais gostar.
Voltando para o "memory viewer", clique com o boto direito do mouse na janela e e
m seguida v na primeira oo "go to adress", digite o endereo que voc escolheu e aperte
enter.
Agora vamos fazer nosso cdigo prprio, uma dica que dou, voc copiar o endereo do code
cave para um arquivo do bloco de notas e fazer o seu cdigo l, antes de passar par
a o ce, assim fica mais facil de voc perceber erros no que voc est fazendo.
Neste caso eu j dei o cdigo para voc, mas acho interessante voc tentar criar o seu cd
igo prprio, pois assim que voc vai aprender, de qq maneira eu tenho que esclarecer
algumas coisas no cdigo: "Pq essa linha 'mov [00451f0d],eax' copiar o valor do e
ax para o endereo '00451f0d' e no para outro endereo? oq ele tem de diferente?"
Eu respondo, esse endereo no tem nada de diferente dos outros 99 que temos vagos n
este code cave, em outras palavras escolhi um endereo qualquer para fazer isso...
(s escolhi um que ficasse longe do cdigo, para no correr o risclo de colocar coman
dos nele e assim estragar o injection e fazer o jogo travar)
"esse cdigo aqui 'add dword ptr [00451f0d],02' ta muito grande, no tem algo mais f
acil pra digitar no?"
Eu respondo, no ce voc pode digitar algo muito menor "add [00451f0d],02' que o pr
ograma muda para o cdigo acima, mas sempre bom lembrar que esse o cdigo simplifica
do pelo programa e no o cdigo real
Imagino que voc tenha conseguido colocar os cdigos sem problemas no code cave, (pa
ra evitar problemas, clique sempre em yes, quando o programa perguntar, mas caso
aparea um "nop" logo abaixo do seu cdigo e voc deve digitar mais cdigos, simplesmen
te escreva o prximo cdigo sobre o "nop")
Mas, ainda falta o ltimo, o "jmp" no ? Agora nos vamos achar o endereo que falta par
a terminar o cdigo. Volte para o cdigo do jogo, no endereo onde iniciamos tudo (aqu

ele que voc encontrou no debugger, se voc no lembra do endereo, clique na janela do
debugger e depois cliqe em "show disassembler" novamente)
Agora voc deve substituir o cdigo "mov [esi+00000146],eax" por "jmp dode-cave", no
meu caso ficou "jmp 00451ea9". Quando voc der enter e depois clicar em "yes", vo
aparecer alguns nop's, veja a linha seguinte ao ltimo nop (uma que tem um cdigo no
rmal) copie o endereo da linha, deve ser "010175c5" ento volte para o code cave e
finalmente coloque o "jmp", fazendo com que fique assim "jmp 010175c5"
Pronto, agora s verificar se o jogo trava ou no, quando voc perde uma bola.

6) Pointers usados em conjunto com code injection.


Primeiro quero falar que se voc aprendeu tudo at aqui, no ter nenhum problema nesta
parte do tutorial, mas se voc no entendeu.... leita tudo at entender... pq s seguir
os passos e fazer funcionar "NO " entender.
Aqui ns vamos usar o gunbound (sim... um exemplo mais interesante)
Primeiro encontre o endereo do gift hack, se voc no sabe, procure por um tutorial n
o forum pois existem vrios tutoriais sobre isso, ento no vou falar como se faz.
Agora voc deve procurar pelo cdigo que altera o valor do endereo (aquele processo d
o debugger "fing what writes to that adress"), com o cdigo em mos vamos comear pra
valer, lembrando que eu estou imaginando que voc leu tudo at aqui, ento no vou retom
ar processos feitos anteriormente, vou apenas falar oq voc tem que fazer... e voc
deve lembrar.
Clique em "show disassembler" e voc ver o endereo na tela do disassembler, procure
por um code cave grande (eu recomendo de 100 ou mais de tamanho).
V para o endereo do code cave e vamos criar nosso cdigo.
A lgica do nosso cdigo bem simples, se voc tem essa linha "mov [eax+24],ecx" onde o
ecx o valor que copiado, e [eax+24] o pointer que indica o endereo que voc tem no
code list do ce.
Entretanto, voc no sabe o valor do "eax", mas... ns vamos fazer uma "gambiarra". Co
mo?, bem simples, suponha que voc copie o valor do "eax" para um outro endereo e d
epois some 24 ao valor encontrado no endereo, no a mesma coisa que comar 24 ao "ea
x"?.... isso que ns vamos fazer...
O cdigo vai ficar assim:
mov [eax+24],ecx // Cdigo do jogo
mov [end],eax // Mover o valor do "eax" para o endereo que voc escolher
mov [eax+24],ecx // Cdigo do jogo
jmp jogo // Voltar para o jogo
Depois voc deve fazer a rotina do jogo pular para o code cave, e por fim colocar
o endereo do jmp do code cave, no vou falar como fazer, pq voc j sabe... praticar bo
m...
Agora falta s uma coisa, o pointer.
V na janela inicial do "CE" e clique em "add adress manualy", clique no box escri
to "pointer".
Dois campos aparecero para voc preencher, no primeiro voc deve colocar o endereo par
a onde manfou copiar o "eax", no segundo voc deve colocar 24 (pois o valor que so
mado ao "eax" no cdigo do jogo).
Quando voc terminar isso, voc vai poder travar esse valor em 2, e sempre que voc sa
ir e voltar pro avatar shop, basta o seu cdigo ser lido que o gift vai estar func
ionando.
Este processo funciona para qualquer coisa, ou seja, se o delay hack possuir um
pointer do tipo [eax+35] voc pode fazer a mesma coisa e ter um delay hack que nun
ca muda de valor.

7) Injection mais complexo, para fazer o gift hack ficar automtico.


Neste ponto eu imagino que voc j consiga fazer injections sem que eu fale oq voc de
ve escrever ento eu vou apenas dar a teoria e o cdigo, que voc deve conseguir imagi
nar uma maneira de adaptar isso para outra coisa.
O endereo do gift por ter vrios valores, mas o que nos interessa que ele fique sem
pre com o valor 2, coreto?
Ento, se conseguirmos criar um cdigo onde ele compare o valor com 2, caso seja igu
al, ele volta para a rotina do jogo, se for diferente, ele muda o valor para 2 e
volta para a rotina do jogo.
Isso voc entendeu, mas como fazer?
Assim:
code cave1
mov [eax+24],ecx // Cdigo original do jogo.
cmp [eax+24],2 // Compara o valor encontrado no endereo [eax+24] com 2
jne code-cave-2 // Pula para o endereo do code cave 2 caso seja diferente de 2
mov [eax+24],ecx // Cdigo do jogo
jmp jogo // Pular para a rotina do jogo.
code cave2 (basta ser um pouco long dos cdigos acima)
mov [eax+24],2 // Mudar o valor do endereo [eax+24] para 2
jmp jogo // Voltar para a totina do jogo.
Pronto, voc fez um gift hack automtico, basta o seu cdigo ser lido que ta funcionan
do.
Isso pode ser usado para vrias coisas, um bom exemplo seria para o gold hack, ima
gine um cdigo que ative o hack quando seu gold for menor que 5000 e desative quan
do o valor for maior que 5000, pois isso possivel de fazer, mas.... acho que uma
coisa que voc deve tentar fazer por voc mesmo... assim voc aprender mais sobre o as
sunto.

8) Caso voc tenha dvidas, poste-as aqui que eu ou outro usurio tentar ajudar.
Eu s criei este tutorial para fazer com que os manhas melhorem, e assim fica mais
facil de criar coisas novas.
9) Sugestes para voc treinar:
Tente criar manhas com injection e pointes para jogos offline.
FIM
Esse eh o fim deste Tutorial.
OBS: nao sejam ingratos agradeam e comentem!!!

Potrebbero piacerti anche