Você está na página 1de 1

Tradutor

Do:

Para o:

Ingls

Ver:

Portugus

Traduo

Original

cheat Engine
O Site Oficial do motor da fraude
Perguntas frequentes
Perfil

Pesquisa

Lista de membros

Entrar e ver Mensagens Particulares

Grupos

Register

Entrar

A Very In Depth Tutorial sobre Auto Assembler


Ir pgina 1, 2 , 3 , 4 , 5 , 6 Prximo

ndice do Frum motor da fraude -> Cheat Engine Tutoriais -> Tutoriais Auto Assembler
Ver mensagem anterior :: Ver mensagem seguinte
Autor

mensagem

samuri25404

Enviada: Qua 13 de junho de 2007 11:55

Grandmaster Cheater

Assunto: A Very In Depth Tutorial sobre Auto Assembler

-----------------------------ndice
-----------------------------I. Introduo
II. registos

Reputao : 7

II.a 32 registros Bit


II.b registradores de 16 bits

Registrado em: 04 de maio de


2007
Mensagens: 960
Localizao: Por que voc se
importa?

III. comandos
III.a JMP
III.b MOV
III.c Empurre / Pop + O Stack
III.D alloc / label / registersymbol
III.e chamadas e Ret
III.F Outros
IV. Array de Bytes
V. concluso
VI. Crditos / Agradecimentos
BNUS: Escrevendo um script
-----------------------------I. Introduo
-----------------------------'Ello l, eu assumo uma de duas coisas, porque voc est lendo isso.
1) Voc est tentando aprender Auto Assembler (no vou te chamar de noob, porque todo mundo tem que comear em algum lugar, certo? =))
ou
2) Voc quer testar o seu conhecimento Auto Assembler (at certo ponto).
Agora, se o primeiro dos dois correto, em seguida, tomar cada parte lentamente e certifique-se de compreender uma seo antes de ir em frente.
Byte escuro escreveu:
A maioria das pessoas acha que AA difcil, mas, na verdade, realmente muito fcil.

Palavras do criador do motor da fraude si mesmo.


Se o segundo dos dois verdadeiro, ento eu realmente no tenho nenhum conselho para voc, no entanto eu tenho um favor a pedir. Se voc encontrar algo incorreto ou vaga, ou algo que voc acha que eu posso refazer melhor, POR FAVOR ME DIGA. Estou sitll no processo de me aprender! Mas espere, no at mesmo pedir, eu posso ler sua mente ...
Voc escreveu:
Por que eu deveria ouvir (ou, neste caso, leia) de / para algum que ainda est aprendendo?

Bem, eu vou te dizer, meu bom amigo. Embora eu ainda estou aprendendo, eu sei sobre Auto Assembler, e eu pensei que seria bom para compartilhar o conhecimento que eu tenho com voc. =)
Edit: Isto foi escrito h muito tempo, mas eu aprendi muito, e eu reverificados-lo.
Agora, l vamos ns ... no fantstico mundo do computador .....
-----------------------------II. registos
-----------------------------Agora voc provavelmente j viu antes em scripts, como eles so muito usados. Existem dois tipos de registros usados, e eu vou explicar tanto neste guia.
--------------II.a 32 Bit
--------------Em primeiro lugar, vou explicar como cada registro tem o seu nome, a fim de, eventualmente, ajudar a lembrar qual qual. Primeiro de tudo, o E na frente (se voc notar abaixo, todos os 32 registros bits tm um E na frente) informa que o registo de 32 Bit Register. O A, B, C, e D, deve tornar-se bvio aps a leitura da descrio. Como deve SI, DI, BP, SP e IP. O X aps EAX, EBX, ECX e EDX, est l simplesmente para mostrar que no h mais cartas para
colocar, um bocado como um comando NOP (que voc vai ler sobre mais tarde). Se voc observar, h trs letras em cada um dos 32 registradores Bit.
EAX: O registo Acculmulator. Ele tambm pode ser utilizado como armazenamento.
EBX: Era uma vez, foi o registo de base, mas agora apenas de armazenamento gratuito.
ECX: O registo de contagem. Mais uma vez, tambm pode ser utilizado como armazenamento.
EDX: O registo de dados. Tal como acontece com os trs ltimos, ele pode ser utilizado como armazenamento.
ESI: O registo ndice Fonte. Ele usado como uma varivel de ponteiro em cordas, mas voc no deve se preocupar com essa parte agora. Pode ser usado para o armazenamento.
EDI: O registo ndice de Destino. Mais uma vez, pode ser usado como armazenamento, e uma varivel de ponteiro em cordas, mas no se preocupe com isso.
EBP: O registo Pointer Base. armazenar temporariamente ESP, mas tambm pode ser utilizado como armazenamento em geral.
ESP: O registo ponteiro de origem. Ele aponta para os registos e os endereos na pilha (mais sobre isso mais tarde).
EIP: O registo Instruo Pointer. Usando este incorretamente pode levar a um acidente em qualquer programa que voc est tentando mexer.
--------------II.b 16 Bit
--------------Os registradores de 16 bits so muito semelhantes s 32 registros Bit, salvar algumas coisas. Uma das coisas que, em vez de trs letras, como os 32 registros bits tm, eles tm duas cartas. H tambm mais um par de registradores de 16 bits do que 32 registos pouco, mas no se preocupe com eles. Registradores de 16 bits provavelmente no ser usado em nossos propsitos gerais de qualquer maneira.
AX: Ver EAX
BX: Ver EBX
CX: Ver ECX
DX: Ver EDX
SI: Veja ESI
DI: Ver EDI
BP: Veja EBP
SP: Veja ESP
IP: Ver EIP
--------------E isso muito bonito isso nos registos. Se voc quiser saber mais sobre registros, em seguida, basta ir Google -lo. Para a maioria dos alunos, no entanto, isso deve ser suficiente.
-----------------------------III. comandos
-----------------------------Agora, o que uma lngua sem suas funes ou comandos? Comparando este para Ingls, um comando como uma palavra, e um cdigo de operao como uma sentena. Para aqueles que no sabem, um cdigo de operao algo simples, tais como:
Cdigo:
jmp 00123EAA

Existem algumas coisas que voc deve saber sobre Opcodes.


Em primeiro lugar, h sempre um endereo e / ou um registo de um cdigo de operao envolvida, bem como o comando bvia. Um endereo est em Hex, que curto para hexadecimal. Hexadecimal um sistema de numerao com base 16. como o sistema de numerao decimal, que tem uma base de dez.
Pense nisso desta maneira. Nosso sistema de numerao decimal normal que, como eu disse acima, base 10. Isto significa que no podemos ter um "10" em uma coluna, em vez disso, ele colocado em dois. Em hexadecimal, voc pode ter um 10 em uma coluna - voc pode ter todo o caminho at 15 em uma coluna. Mas voc pode estar se perguntando sobre o fato de que 1 e 0 no se encaixam em uma coluna ainda.
Acalme-se, apesar de tudo. Em hexadecimal, decimal 10 substitudo por um, o decimal 11 substitudo por B, e assim por diante at F, que est para 16. Depois disso, torna-se 10, depois 11, at 1F, em seguida, ele comea de novo a 20, e assim por diante. Uma maneira de traduzir entre os dois, clicar em "Iniciar" no canto inferior esquerdo da tela, clique no boto "Run", e digite "calc". Em seguida, clique no ponto de vista, e clique em "Cientfica", de modo
que a sua calculadora quase duplica em tamanho, com muitas novas funes (a no ser, claro, j no modo "cientfico" era). Em seguida, clique no sistema de numerao que o seu nmero original est em. Por exemplo Clique em "Hex" se voc quiser colocar 6AF0 em Decimal. Em seguida, digite seu nmero e, em seguida, clique no sistema que deseja traduzir para. Voila, voc tem o seu nmero traduzido!
Alm disso, todos os endereos tem um cdigo de operao e uma srie de bytes. O nmero de bytes que corresponde ao que o cdigo de operao, como cada comando leva-se um certo nmero de bytes. Eu sei quantos bytes algumas das funes muito comum assumir, mas se voc quiser saber o nmero de bytes que cada comando ocupa, voc vai ter que confiar em algum ... de preferncia Google ! =)
Por ltimo, algo muito til "comentar" alguma coisa. Para comentar, tudo que voc faz colocar "//" aps um comando, ou um espao, em seguida, escreva o que voc gostaria. Se voc no digitar o "//" aps um comando ou espao, em seguida, o computador vai pensar que voc est digitando um comando.
Agora, sobre o que cada comando faz ...
--------------III.a JMP
--------------O comando JMP um dos comandos mais usados (em torno de to comum como o comando MOV, que vamos comear a prxima). No entanto, voc no v "JMP" quase tanto como voc v "MOV" em opcodes e scripts, porque h muitas variaes para o comando JMP. H uma maneira demasiados a lista, mas alguns esto listados abaixo.
JMP: Sempre saltar para
JE / JZ: Ir para se igual
JNE / JNZ: Ir para se no igual
JA: Ir para se Acima
JG: Ir para se Maior
ANJ: Ir para, se no Acima
JNG: Ir para se no maior
JB: Ir para se Abaixo
JL: Ir para se Lower
JNB: Ir para se no abaixo
JNL: Ir para, se no inferiores
JAE: Ir para se superior ou igual
JGE: Ir para se Maior ou Igual
JNAE: Ir para se no for superior ou igual (ou seja, JB)
JNGE: Ir para se no for maior ou igual (ou seja, JL)
E voc comea a foto. Agora, isso deve parecer confuso. "Ir para se maior", ou JG um dos saltos condicionais. Um salto condicional como o prprio nome indica, ele salta quando uma determinada condio satisfeita. Normalmente, h uma "CMP" ou comparar funo acima dela - mais sobre isso mais tarde. Isso muito bonito isso para JMP. Para...
--------------III.b MOV
--------------Agora, como voc leu acima, o comando MOV um dos comandos mais utilizados, porque um dos mais versteis. Um exemplo de MOV abaixo.
Cdigo:
mov eax, EBX

O que isto significa "mover o endereo que est armazenado a EBX em eax". Note-se que h uma vrgula que separa os dois registos, mas no h espao. Pode parecer um pouco confuso no incio, mas realmente simples. Aqui est uma explicao melhor.
"Mov" significa "movimento". Um registo por si s significa "o endereo armazenado dentro desse registo". Ento, basicamente, "Mover, o endereo armazenado em EBX, para o endereo do eax", que ir substituir o que estava em EAX antes, e apagar completamente sua existncia. = D O que voc poderia relacionar isso a est a copiar o que est em EBX, e col-lo no eax.
Outra forma de mov est abaixo.
Cdigo:
mov eax, [EBX]

Isso significa "mover o valor da EBX para o endereo que est armazenado dentro eax". Simplificando, tendo os [colchetes] em torno de um registo ou endereo significa o valor do que no registo ou endereo.
No entanto, algo que no vai trabalhar est abaixo.
Cdigo:
mov [eax], [EBX]

NO FUNCIONA. Repetir: O cdigo acima no vai funcionar. Voc no pode, repita NO PODE mover o valor de uma coisa para o valor de outra coisa. Mas no tome isso da maneira errada - voc pode mover o valor de uma coisa indiretamente em outra coisa. ;) Consulte o cdigo abaixo.
Cdigo:
empurrar eax // Empurre EAX na pilha - ns cobrir esta tarde
mov eax, [0100200A] // Move o valor de 0100200A em eax
MOV [EBX], eax // Move EAX (que o valor de 0100200A) no valor de EBX
pop eax // Pop eax da pilha - mais uma vez, vamos cobrir isso mais tarde

Acredito que o cobre para a funo MOV. Para...


--------------III.c PUSH e POP + O Stack
--------------Voc viu acima como eu usei os comandos PUSH e POP. Mas espere, eu sou vidente ... Eu posso ler sua mente!