T�pico: tudo sobre o cheat engine!!!
Esse pequeno tutorial eu fiz para pessoas que acabaram de conhecer o mundo dos cheats e n�o tem a m�nima no��o de chceat engine, nessa edi��o contem apenas as ferramentas b�sicas...
Voc�s Podem ficar cansados de ler + lendo voc� entendera tudo e poder� at� fazer chets novos...
Apresenta��o do Cheat Engine (C.E)
�O que � Cheat Engine?
�Cheat Engine � um editor de mem�ria, sua funssao eh alterar os valor do adress do cliente e freeza-lo para que seu valor n�o mude, mas voc� deve estar confuso, ```valores`` ``cliente`` ``adress`` `frozen``?
�O valor pode ser o valor do numero de vidas que voc� tem, pode ser seu dinheiro, quanto de for�a, de defesa e etc.Resumidamente s�o n�meros que representam a quantidade de algo
�O adress � representado por alguns n�meros, ele representa algo no jogo, como suas vidas ( n�o o numero de vidas que voc� tem) a sua defesa ( mas n o quanto de defesa voc� tem ) nele a valores.
�O frozen eh um bot�o usado para freezar (quando uma pessoa fala ``freeze`` � para marcar o quadradinho ) o valor. Assim � organizado no CheatEngine �Nesse screeen pode-se perceber a organiza��o dos itens acima
Apesenta��o e Fun��o dos �cones B�sicos do CE
[i]Conhecido como``computadorzinho`` Fun��o: Selecionar o processo
Rea��o ao clique: Abre uma janela com a lista de processo abertos, onde voc� deve selecionar o processo do jogo que queres editar
Fun��o: Procurar pelo valor que voc� colocou na caixa de value Rea��o ao clique: Acha todos os adress que possuem o valor que voc� colocou na caixa de valor.
Fun��o: Selecionar dos adress achados anteriormente com o ``first scan``os adress que possuem o valor que voc� colocou agora na caixa de valores.
Fun��o: Desfazer o ultimo scan.
Fun��o: Ir para abas de configura��o do Cheat Engine
Bot�o frozen
Fun��o: Freezar, congelar o valor para que ele n�o mude.
Rea��o ao clique: Introdu��o aos cheats PARTE 2
Obs. Inicial: S� prossiga para essa segunda parte se j� souber a primeira parte, se n�o entendeu algo releia, se for o caso de n�o entender mesmo relendo, pergunte pelo f�rum, mas nunca floode.
1.1Apresenta��o dos Value Types
- H� v�rios value types, eu so vou mostrar agora os b�sicos (usado na grande maioria dos cheats)
Byte- Usado para achar adress`s que representam algo no jogo que � ligavel e desligavel, o valor 1 eh ligado(vivo, ativado, com) e o 0 desligado(morto,desativado, sem) ex.: no jogo a um bot�o que ativa ou desativa algo 4 bites- Usados para achar valores que s�o numero de algo, ex.: numero de vidas, seu dinheiro no jogo, sua exp, o dinheiro que voc� ganha no jogo, e etc:
Float- Usados para achar valores que variam para d�cima, mas n�o para procurar valores 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 Apresenta��o 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: Pouqu�ssimo usado, serve para achar um valor maior do que o que voc� colocou na caixa de valor, especificado, voc� n sabe qual e o valor, voc� s� sabe que � maior 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 n�o fasso no��o da sua fun��o.
Unknow Intial Value: O Segundo mais usado, serve para achar valores que voc� n�o saiba a m�nima no��o de qual seja.
- As coisas acima faceis, creio que facilmente voc� pegou. Agora se voc� j� domina os assuntos acima vai ser muito f�cil, eu vou somente da uma dica, quando voc� da o primeiro 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 exact porque � um valor exato) perca uma vida, e procure por 2 , se ainda assim n sobrar 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 ir�o para a caixa 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 n�o � dif�cil,vou dar um exemplo 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 para 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 value (valores que n�o mudaram) vai e da uns 5 scans (sem bater no bixo), agora bate novamente e procure por decreased value, repita esse processo ate que sobre poucos 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 como seria tal cheat que ainda n�o foi criado), como 4 bites, text, e byte.
Avan�ado 1
1.1Cria��o de pointers e injections
a) O que s�o pointers:
Para simplificar ao m�ximo, pointers s�o uma esp�cie de fun��o matem�tica, voc� poderia chamar de equa��o, mas em uma equa��o o "x" tem valores fixos, numa fun��o o "x" varia e assim voc� pode construir um gr�fico, em outras palavras uma fun��o � ago do tipo F(x)= 25x+54 mas uma equa��o � algo assim 25x+54=23. No jogo, voc� encontrar� em in�meras ocasi�es um comando como esse: mov [edi+00000052],esi este � um exemplo de pointer.
voc� deve estar se perguntando oq � isso ai? to vendo umas letras e n�meros juntos... mas... n�o sei oq fazer com isso.
Pois bem, vamos melhorar isso, primeiro vou te falar oq esse comando faz: ele copia o valor que est� no "esi" para o endere�o que � obtido pela fun��o (pointer) "[edi+00000052]". Lembrando que voc� pode encontrar diversos pointers diferentes, esse foi apenas um exemplo simples.
voc� deve ter entendido a base disso, se n�o entendeu, releia at� entender.
Neste momento voc� deve estar falando algo assim "Entendi oq �.... mas... oq eu fa�o com isso em????"
Eu j� te respondo, com um pointer voc� n�o pode fazer muita coisa, mas se voc� encontrar um bem simples na mem�ria do jogo, � possivem criar um pointer no cheat engine e assim fazer com que seus manhas funcionem sempre.
Mas, existe a principal fun��o de um pointer que � ser usado em conjunto com "code injections" onde voc� faz com que uma seq�encia gigantesca de pointers vire apenas um pointer alterando o c�digo do jogo, fique calmo, eu vou explicar como fazer o pointer no "cheat engine" e como fazer e oq � "code injection"
a) O que � code injection?
Acho que n�o tenho muito oq falar, basicamente � voc� colocar o seu c�digo pr�prio junto do c�digo do jogo, ou pode ser o fato de voc� alterar parcialmente o c�digo do jogo de modo a te ajudar.
Para fazer o code injection voc� deve ter duas coisas: saber o c�digo que voc� quer burlar e um lugar livre na mem�ria para voc� poder escrever o seu c�digo (conhecido como "code cave")
Quase tudo que voc� pud�r imaginar, por exemplo: com um injection bem b�sico voc� pode criar um hack de bolas infinitas no piball, basta voc� achar o c�digo que subtrai uma bola do total de bolas e fazer com que ele adicione uma, e como fazer isso... bom voc� ter� um c�digo que come�a com "sub" e voc� deve mudar para "add" e ent�o pronto voc� j� terminou.
Vamos usar como exemplo o pinball 3d, mas voc� pode fazer o mesmo em qualquer jogo.
Encontre o endere�o que controla o n�mero de bolas que voc� tem.
caso voc� n�o saiba: inicie um novo jogo e procure por 3; perca uma bola e procure por 2; perca outra bola e procure por 1, voc� deve ter encontrado um ou dois endere�os.
c) Mude o valor do endere�o para 3 (n�o de freeze) e verifique se est� correto, em caso positivo prossiga, em caso negativo procure novamente o endere�o.
d) Clique com o bot�o direito no endere�o e depois clique em "find what writes to that 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 endere�o escrito. Esse endere�o � o que muda o n�mero de bolas.
Pronto, voc� j� sabe procurar pelos endere�os que alteram os valores.
Estou contando que voc� aprendeu o passo anterior, portando falarei diretamente do injection.
a) Encontre o endere�o 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 endere�o que aparece � o que voc� viu na janela pequena, ele deve ter esse c�digo: "mov [esi+00000146],eax" e ele indica que est� copiando o valor do "eax" para o endere�o do pointer [esi+00000146].
Agora eu te pergunto, oq voc� pode fazer para fazer as bolas crescerem e n�o diminuirem? (pense um pouco sobre isso antes de ler mais)
Eu respondo, com este c�digo voc� n�o pode fazer isso, voc� pode alterar o valor da bolas ou criar um pointer para pode travar o valor, mas n�o vai fazer o valor crescer...
Mas, dando uma olhada no c�digo percebemos que estamos copiando o valor do "eax" para o endere�o que temos no "ce", aquele que voc� tem no code list, e que voc� pode mudar pro valor que bem entender, encontrado procurando pelo n�mero de bolas que voc� ainda pode usar, logo o valor do "eax" � igual ao que vemos no endere�o.... pensando um pouco, percebemos que para o valor das bolas diminuir, o valor do "eax" deve diminuir, ent�o... vamos procurar o c�digo que muda o valor do "eax" voc� vai encontar 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).
Ent�o o c�digo fica assim: "mov eax,000000ff" aperte enter e clique em "yes" quando perguntar.
agora voc� pode testar o hack.. ele deve estar funcionando.
Bom, vamos umas este c�digo aqui "mov [esi+00000146],eax" que voc� encontrou logo que usou o debugger no endere�o do code-list.
Neste injection, vamos fazer algo mais complicado, mas mais interessante, vamos fazer o n�mero de bolas crescer constantemente.
O que vamos fazer: vamos copiar o valor do "eax" para um outro endere�o, ent�o vamos adicionar 2 ao valor contido neste endere�o (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 fazer esse novo valor ser copiado para o "eax" e ent�o seguir com o c�digo do jogo.
O c�digo ficar� assim:
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�)
M�os a abora, voc� deve estar naquela janela onde voc� pode ver os c�digos escritos na mem�ria do jogo, ent�o clique em tools e depois clique em "scan for code caves" ou aperte "ctrl + alt + c". Uma janela vai abrir, mude o valor do tamanho para 100 (deve estar como 12) e manda procurar. Logo depois, uma lista bem grande vai aparecer, eu escolhi este endere�o: 00451ea9, mas voc� pode escolher o que mais gostar.
Voltando para o "memory viewer", clique com o bot�o direito do mouse na janela e em seguida v� na primeira o��o "go to adress", digite o endere�o que voc� escolheu e aperte enter.
Agora vamos fazer nosso c�digo pr�prio, uma dica que dou, � voc� copiar o endere�o do code cave para um arquivo do bloco de notas e fazer o seu c�digo l�, antes de passar para o ce, assim fica mais facil de voc� perceber erros no que voc� est� fazendo.
Neste caso eu j� dei o c�digo para voc�, mas acho interessante voc� tentar criar o seu c�digo pr�prio, pois � assim que voc� vai aprender, de qq maneira eu tenho que esclarecer algumas coisas no c�digo: "Pq essa linha 'mov [00451f0d],eax' copiar o valor do eax para o endere�o '00451f0d' e n�o para outro endere�o? oq ele tem de diferente?" Eu respondo, esse endere�o n�o tem nada de diferente dos outros 99 que temos vagos neste code cave, em outras palavras escolhi um endere�o qualquer para fazer isso... (s� escolhi um que ficasse longe do c�digo, para n�o correr o risclo de colocar comandos nele e assim estragar o injection e fazer o jogo travar)
"esse c�digo aqui 'add dword ptr [00451f0d],02' ta muito grande, n�o tem algo mais facil pra digitar n�o?" Eu respondo, no ce voc� pode digitar algo muito menor "add [00451f0d],02' que o programa muda para o c�digo acima, mas � sempre bom lembrar que esse � o c�digo simplificado pelo programa e n�o o c�digo real
Imagino que voc� tenha conseguido colocar os c�digos sem problemas no code cave, (para evitar problemas, clique sempre em yes, quando o programa perguntar, mas caso apare�a um "nop" logo abaixo do seu c�digo e voc� deve digitar mais c�digos, simplesmente escreva o pr�ximo c�digo sobre o "nop")
Mas, ainda falta o �ltimo, o "jmp" n�o �? Agora nos vamos achar o endere�o que falta para terminar o c�digo. Volte para o c�digo do jogo, no endere�o onde iniciamos tudo (aquele que voc� encontrou no debugger, se voc� n�o lembra do endere�o, clique na janela do debugger e depois cliqe em "show disassembler" novamente)
Agora voc� deve substituir o c�digo "mov [esi+00000146],eax" por "jmp dode-cave", no meu caso ficou "jmp 00451ea9". Quando voc� der enter e depois clicar em "yes", v�o aparecer alguns nop's, veja a linha seguinte ao �ltimo nop (uma que tem um c�digo normal) copie o endere�o da linha, deve ser "010175c5" ent�o 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 n�o, quando voc� perde uma bola.
Primeiro quero falar que se voc� aprendeu tudo at� aqui, n�o ter� nenhum problema nesta parte do tutorial, mas se voc� n�o entendeu.... leita tudo at� entender... pq s� seguir os passos e fazer funcionar "N�O �" entender.
Aqui n�s vamos usar o gunbound (sim... um exemplo mais interesante)
Primeiro encontre o endere�o do gift hack, se voc� n�o sabe, procure por um tutorial no forum pois existem v�rios tutoriais sobre isso, ent�o n�o vou falar como se faz.
Agora voc� deve procurar pelo c�digo que altera o valor do endere�o (aquele processo do debugger "fing what writes to that adress"), com o c�digo em m�os vamos come�ar pra valer, lembrando que eu estou imaginando que voc� leu tudo at� aqui, ent�o n�o vou retomar processos feitos anteriormente, vou apenas falar oq voc� tem que fazer... e voc� deve lembrar.
Clique em "show disassembler" e voc� ver� o endere�o na tela do disassembler, procure por um code cave grande (eu recomendo de 100 ou mais de tamanho).
V� para o endere�o do code cave e vamos criar nosso c�digo.
A l�gica do nosso c�digo � 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 endere�o que voc� tem no code list do ce.
Entretanto, voc� n�o sabe o valor do "eax", mas... n�s vamos fazer uma "gambiarra". Como?, bem simples, suponha que voc� copie o valor do "eax" para um outro endere�o e depois some 24 ao valor encontrado no endere�o, n�o � a mesma coisa que comar 24 ao "eax"?.... � isso que n�s vamos fazer...
O c�digo vai ficar assim:
mov [eax+24],ecx // C�digo do jogo
mov [end],eax // Mover o valor do "eax" para o endere�o que voc� escolher
Depois voc� deve fazer a rotina do jogo pular para o code cave, e por fim colocar o endere�o do jmp do code cave, n�o vou falar como fazer, pq voc� j� sabe... praticar � bom...
Agora falta s� uma coisa, o pointer.
V� na janela inicial do "CE" e clique em "add adress manualy", clique no box escrito "pointer".
Dois campos aparecer�o para voc� preencher, no primeiro voc� deve colocar o endere�o para onde manfou copiar o "eax", no segundo voc� deve colocar 24 (pois � o valor que � somado ao "eax" no c�digo do jogo).
Quando voc� terminar isso, voc� vai poder travar esse valor em 2, e sempre que voc� sair e voltar pro avatar shop, basta o seu c�digo ser lido que o gift vai estar funcionando.
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 nunca muda de valor.
7) Injection mais complexo, para fazer o gift hack ficar autom�tico.
Neste ponto eu imagino que voc� j� consiga fazer injections sem que eu fale oq voc� deve escrever ent�o eu vou apenas dar a teoria e o c�digo, que voc� deve conseguir imaginar uma maneira de adaptar isso para outra coisa.
O endere�o do gift por ter v�rios valores, mas o que nos interessa � que ele fique sempre com o valor 2, coreto?
Ent�o, se conseguirmos criar um c�digo onde ele compare o valor com 2, caso seja igual, 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?
mov [eax+24],ecx // C�digo original do jogo.
cmp [eax+24],2 // Compara o valor encontrado no endere�o [eax+24] com 2
jne code-cave-2 // Pula para o endere�o do code cave 2 caso seja diferente de 2
code cave2 (basta ser um pouco long dos c�digos acima)
mov [eax+24],2 // Mudar o valor do endere�o [eax+24] para 2
Pronto, voc� fez um gift hack autom�tico, basta o seu c�digo ser lido que ta funcionando.
Isso pode ser usado para v�rias coisas, um bom exemplo seria para o gold hack, imagine um c�digo que ative o hack quando seu gold for menor que 5000 e desative quando 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 assunto.
8) Caso voc� tenha d�vidas, poste-as aqui que eu ou outro usu�rio tentar� ajudar.
Eu s� criei este tutorial para fazer com que os manhas melhorem, e assim fica mais facil de criar coisas novas.
9) Sugest�es para voc� treinar:
Tente criar manhas com injection e pointes para jogos offline.
FIM[i]
Esse eh o fim deste Tutorial.
OBS: nao sejam ingratos agrade�am e comentem!!!
�ltima edi��o por wolkmen; 08-09-2008 �s 11:24 AM.
Os seguintes 11 Usu�rios disseram Obrigado wolkmen por essa �til mensagem:
arthurborcato12,cadal00,ferrujo,Gabrielx2010.,kennedyacdc,moiika310s,�ҜΔ�ĐΔ-(ɱ૮),sasukehakkou,streda22,THETACKER,Zarcarius
Vou ti perceguir ate a morte !!!!!!!!! xD
Cara... primeiro kde os cr�ditos pq tpo c acabou de postar uma coisa ali e ja postou tudo isso em mto poko tempo, quer dizer que 90% de chance de isso ser Control C e V e vc nao postou os cr�ditos man u.u" le um pouco as regras plix
o cara !!! eu tenho uma comu no orkut!! e dai eu copio e colo!!!
os creditos sou eu mesmo!!!
eu pesquisei e fiz esse topico!!!
Mas mesmo que vc tenha pesquisado vc tem que coloca da onde vc pesquisou, mesmo que seja da sua comu mas tiraram de algum outro lugar ;D
Quero ser MoD, entao LUTO
Localiza��o procura pelo google earth... se vir um cara bonito e famoso so eo xD
cara, realmente aprendi a faze hacks q n existem agora! mto vlew!!
Li s� um,a parte, o resto deu preguissa xD
Mto bom, agora aprendi a faze hack.
OBS: Se alguem soube como faz CE me avisa.
jah que gostaram nao custa nada agrade�er neh!!
Leecher ��
Vi esse seu t�pico exatamente do mesmo geito em outro f�rum!!
Mas, duas pequenas diferen�as...
1a = A data eh de 2007
2a = No final estava escrito isso:
"Creditoss
Creditos a MeLLo que desenvolveu o tutorial de pointers e injection, eu so fiz disponibilizalos para algumas pessoas que tavez nao fizessem a minima ideia do que fosse.
Creditos a FlaV1n que desenvolvi as partes,Apresenta��o do Cheat Engine, Apresenta��o e Fun��o dos �cones B�sico do CE e a parte de Introdu��o aos cheats"