SPANISH Creando cheats Cleo 3 4

SPANISH Creando cheats Cleo 3 4


NOTA: entrar al post para ver bien la syntaxis.
comunmente vemos mucho Scripts que tienen un monton de n�meros que no entendemos, y magicamente al escribir un Cheat en el teclado, se activa.
bueno, no hay tanta "magia" en eso, solo es necesario entender que existen diferentes formas para crear un Cheat.

CLEO 3

Cleo 3 tiene la particularidad de utilizar m�s codigo para realizar algo, requiere un poco m�s de conocimientos en leguajes de programaci�n. Esto se debe a que no existe acceso directo a algunas car�cter�sticas.  Como a continuaci�n, les ense�ar�:

Informaci�n b�sica:

0A8D: 0@ = read_memory 0x00969110 size 4 virtual_protect 0

Par�metros:
1. variable que almacena la informaci�n
2. Direcci�n de la memoria
3. N�mero de bytes para leer/escribir (1, 2 o 4)
4. Protecci�n virtual: 1 = Solo-lectura, 0 = re-escribible


Strings:(Texto)

en Cleo, para asignar o guardar un Texto en una variable, existen variables espec�ficas. NO podemos guardar un texto en una variable convencional (0@, 1@, 2@, 3@... 30@, 31@).

pero, podemos modificarlas para que SI puedan hacerlo, lo unico que se debe hacer es agregar despes de la arroba, una S o una V, por ejemplo:

0@s, 2@s, 4@s, 6@s, 8@s, etc.
0@v, 4@v, 8@v, 12@v, etc.

mmm pero cual es la diferencia?

S  ->  string de  8 bytes, almacena palabras cortas Max. 7 letras*
V ->  string de 16 bytes, alamacena palabras largas Max. 14 letras*

              *valores maximos recomendados, Olvid� este dato.

ahora, como funcionan?...
0@s utiliza 8 bytes, lo que significa que utiliza Dos variables convencionales, en este caso 0@ y 1@
0@v utiliza 16 bytes, lo que significa que utiliza Cuatro variables convencionales, en este caso 0@, 1@, 2@ y 3@






Forma 1 - Creando cheat por medio de ASCII

solo se permite utilizar esta forma para cheats con palabras que tengan solo  4, 6, 8, 10, 12 letras (pares)

-Creando un cheat de 4 letras:
el cheat ser�: "JUMP"

vamos a almacenar el cheat en la variable 0@  y tenemos la direccion de memoria, que es: 0x00969110 sabemos tambi�n, que por ser 4 letras tendr� un tama�o de 4 bytes,  1 byte por letra. y esta direcci�n de memoria es re-escribible(0). por lo tanto, la parte de nuestro script para activarlo se veria de la siguiente forma:


:LABEL
wait 0
0A8D: 0@ = read_memory 0x00969110 size 4 virtual_protect 0
if
04A4: 0@ == 0X4A554D50 // Texto en Hex -> JUMP
jf @LABEL
0A8C: write_memory 0x00969110 size 4 value 0 virtual_protect 0 // borrar buffer para prevenir bucles del cheat

omg! :O pero que significa esto: 0x4A554D50
 Ese es nuestro Cheat en caracteres ASCII (hex)
en este caso:
              jump ->  4A 55 4D 50
y le agregamos 0x al inicio, a continuaci�n les dejo la lista de los caracteres

Caracteres ASCII (HEX)
41 = A
42 = B
43 = C
44 = D
45 = E
46 = F
47 = G
48 = H
49 = I
4A = J
4B = K
4C = L
4D = M
4E = N
4F = O
50 = P
51 = Q
52 = R
53 = S
54 = T
55 = U
56 = V
57 = W
58 = X
59 = Y
5A = Z

-Creando un cheat de 6 letras:
el cheat ser�: "KILLME"
:LABEL
wait 0
0A8D: 1@ = read_memory 0x00969110 size 4 virtual_protect 0 // 4 bytes
0A8D: 2@ = read_memory 0x00969114 size 2 virtual_protect 0 // 2 bytes
if and
0039: 1@ == 0x4C4C4D45 // LLME
0039: 2@ == 0x4B49 // KI
jf @LABEL
0A8C: write_memory 0x00969110 size 4 value 0 virtual_protect 0 // borrar buffer
0A8C: write_memory 0x00969114 size 2 value 0 virtual_protect 0 // borrar buffer

OJO:  vean que ahora el c�digo ha cambiado, pero esto por que?...  solo se admiten 4 bytes por variable y nuestro cheat, tiene 6, entonces, debemos utilizar otra variable para completar el cheat.

de igual forma que en el anterior;
   KILLME -> 4B 49 4C 4C 4D 45

pero no admite 6 bytes, entonces, debemos separar nuestro cheat en dos, y debemos colocarlo en orden reverso, como que si se estuviera leyendo de ABAJO para ARRIBA, de la siguiente manera:
LLME   -----  4C4C4D45
KI -----------  4B49
no olvidar que cada letra tiene 1 byte.  y ya le hemos dicho al juego con las primeras dos l�neas, del codigo de arriba que utilizaremmos las variables 1@ y 2@   donde 1@ tiene 4 bytes disponibles y 2@ tiene 2 bytes.
entonces quedar�a de la siguiente forma: (siempre anteponiendo 0x )
1@ ==  0x4C4C4D45
2@ == 0x4B49

con esas dos l�neas, estamos diciendo;  escribimos "KILLME" en el teclado?

-Creando un cheat de 8 letras:
el cheat ser�: "JUMPRAMP"
:LABEL
wait 0
0A8D: 1@ = read_memory 0x00969110 size 4 virtual_protect 0
0A8D: 2@ = read_memory 0x00969114 size 4 virtual_protect 0
if and
04A4: 1@ == 0x52414D50 // RAMP
04A4: 2@ == 0x4A554D50 // JUMP
jf @LABEL
0A8C: write_memory 0x00969110 size 4 value 0 virtual_protect 0 // borrar buffer
0A8C: write_memory 0x00969114 size 4 value 0 virtual_protect 0 // borrar buffer

Ejemplos;

// high End struct
{$CLEO}
0000:

While true /// escribir KILLME para activar
0A8D: 0@ = read_memory 0x969110 size 4 virtual_protect 0
0A8D: 1@ = read_memory 0x969114 size 2 virtual_protect 0
if and // KILLME
0039: 0@ == 0x4C4C4D45 // LLME
0039: 1@ == 0x4B49 // KI
then
0A8C: write_memory 0x969110 size 4 value 0x0 virtual_protect 0
03E5: show_text_box HELP101 // ignorar mensaje...
// TURNED ON
wait 500

while true
0A8D: 0@ = read_memory 0x969110 size 4 virtual_protect 0
0A8D: 1@ = read_memory 0x969114 size 2 virtual_protect 0
if and // KILLME
0039: 0@ == 0x4C4C4D45 // LLME
0039: 1@ == 0x4B49 // KI
then
0A8C: write_memory 0x969110 size 4 value 0x0 virtual_protect 0
03E5: show_text_box HELP101 // ignorar mensaje...
// TURNED OFF
break
end
wait 0
end
wait 3000

end
wait 0
end

// low End strucct
{$CLEO}
0000:

:LABEL_ON /// escribir JUMP para activar
wait 0
0A8D: 0@ = read_memory 0x00969110 size 4 virtual_protect 0
if
04A4: 0@ == 0X4A554D50 // Texto en Hex -> JUMP
jf @LABEL_ON
0A8C: write_memory 0x00969110 size 4 value 0 virtual_protect 0 // borrar buffer para prevenir bucles del cheat
03E5: show_text_box HELP101 // ignorar mensaje...
// TURNED ON
wait 500

:LABEL_OFF
wait 0
0A8D: 0@ = read_memory 0x00969110 size 4 virtual_protect 0
if
04A4: 0@ == 0X4A554D50 // Texto en Hex -> JUMP
jf @LABEL_OFF
0A8C: write_memory 0x00969110 size 4 value 0 virtual_protect 0 // borrar buffer para prevenir bucles del cheat
03E5: show_text_box HELP101 // ignorar mensaje...
// TURNED OFF
wait 3000
goto @LABEL_ON


Forma 2 - Usando Strings(texto)

esta es una variante del m�todo anterior, en este m�todo no convertiremos las letras en hex, sino que sencillamente escribiremos el texto, veamos;

-Creando un cheat de 4 letras:
el cheat ser�: "JUMP"
:LABEL
wait 0
0A8D: 0@ = read_memory 0x969110 size 4 virtual_protect 0
0006: 1@ = 0x0
if
05AE: 0@s == "PMUJ" // @s == short
jf @LABEL
0A8C: write_memory 0x969110 size 4 value 0x0 virtual_protect 0 // borrar bufer

entonces, asignamos nuestro cheat de 4 letras a una variable String, utilizando el opcode 05ae
OJO:  el texto en este caso se debe escribir en orden reverso, veamos
     J U M P    -> cheat
     P M U J    -> empezando con la ultima letra
y listo.

-Creando un cheat de 6 letras:
el cheat ser�: "KILLME"
:LABEL
wait 0
0A8D: 0@ = read_memory 0x969110 size 4 virtual_protect 0
0A8D: 1@ = read_memory 0x969114 size 2 virtual_protect 0
if
05AE: 0@s == "EMLLIK" // @s == short
jf @LABEL
0A8C: write_memory 0x969110 size 4 value 0x0 virtual_protect 0 // borrar bufer

El cheat:  K I L L M E
         ->  E M L L I K
y listo.

-Creando un cheat de 14 letras:
el cheat ser�:  "THEBANANAPHONE"
:LABEL
wait 0
0A8D: 0@ = read_memory 0x969110 size 4 virtual_protect 0
0A8D: 1@ = read_memory 0x969114 size 4 virtual_protect 0
0A8D: 2@ = read_memory 0x969118 size 4 virtual_protect 0
0A8D: 3@ = read_memory 0x96911C size 2 virtual_protect 0
if and
05AE: 2@s == "ENOHPA" // @s == short
05AE: 0@s == "NANABEHT" // @s == short
jf @LABEL
0A8C: write_memory 0x969110 size 4 value 0x0 virtual_protect 0

El cheat:  T H E B A N A N A P H O N E
         ->  E N O H P A N A N A B E H T
pero, como estamos utilizando Strings cortos, de 8 bytes, este cheat tiene 14 bytes, por lo tanto es necesario separar el cheat en dos, de la siguiente manera;
0@s -> contiene a 0@ y 1@ con un total de 8 bytes (8 letras)
2@s -> contiene a 2@ y 3@ con un total de 6 bytes (6 letras)

entonces;
0@s -> 8 letras  ->   N A N A B E H T
2@s -> 6 letras  ->   E N O H P A
y listo ;)

Forma 3 - Usando Arrays 
-pendiente

CLEO 4

CLEO 4  fu� dise�ado para facilitarnos la vida... en vez de utilizar los m�todos anteriores, �ste nos ofrece un opcode:

0ADC: test_cheat "BLOWUP"

asi de f�cil....


Conclusion:
utilizar el que mejor les convenga, si lo que desean es proteger sus scripts, entonces, entre m�s complejo sea, m�s dif�cil ser� que se los roben, ahora, si lo que desean es ense�ar, entonces el m�todo de CLEO4  es la mejor opcion.

espero les sirva...

;)

download file now

Comments

Popular posts from this blog

Spider Man Friend Or Foe ISO Free Download PPSSPP Setting

Sorry Mutter closed unexpectedly on Ubuntu 10 10

Solution Ubuntu 10 04 minimize maximize and close button to right