elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Ingeniería Inversa / Re: [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 7 Marzo 2016, 00:47 am
...sin embargo al cabo de unos segundos volvió al valor normal. ...se llama empire four kingdom. Gracias
Es porque es un juego online, los valores se guardarán en el servidor no en el cliente. :)
2  Programación / Ingeniería Inversa / Re: [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 19 Noviembre 2015, 02:03 am
No había leído esa biblia jajaja. Dame un tiempo que pueda leerlo todo bien y despacio y te respondo a todas tus preguntas, vale? Saludos
¡Muchas gracias Mad, admiro tu paciencia y tu dedicación! Ya encontré el tutorial de los Pointers (es decir, el tutorial completo) y aclare bastantes de las dudas que tenía, esperaba acabar el otro tutorial+el del CE y editar mi respuesta borrando las dudas que ya tenía resueltas pero me he quedado atascado y también se me complicaron un poco las cosas intentando hacer el trainer del FlatOut así que decidí dejarlo a ver si las respuestas podían ayudarme, de nuevo gracias, ojalá todos los profesores tuvieran tu dedicación ¡¡No me habría salido del instituto!!  :xD
También he estado leyendo y estudiando algo sobre todo esto desde que escribí esa reply para tener unos cimientos más sólidos, poco a poco jajaja.
3  Programación / Ingeniería Inversa / Re: [TUTORIAL] Cheat Engine nivel avanzado. Tutorial completo en: 14 Noviembre 2015, 11:03 am
Esta vez voy a intentar poner mi granito de arena después de la jartada de preguntas del otro post (tengo que editarlo porque haciendo este tutorial estoy comprendiendo muchas cosas) para resolver alguna posible duda, en la parte que se explica lo del AoBScan me di cuenta de un pequeño detalle y es que el Hex Dump (lo de abajo en la ventana del Memory viewer) no se veía igual que en el mio, se veían más bytes además de unas lineas amarillas y al copiarlos copiaba menos y no sabía muy bien por que era pero lo he encontrado, es solo el "tamaño que le das" al Hex Dumper en la ventana:



Por lo tanto en realidad cuando dices que coges 3 líneas estás cogiendo 6, (no se si esta afirmación es del todo correcta pero la cuestión es que coges más bytes de los que cogería yo si cogiera 3 líneas como me las mostraba por defecto) no se si esto hace que cambie mucho o que pero bueno aquí lo dejo por si acaso.



Pff estoy teniendo problemas con lo del AoB, la primera vez hice el patrón con 6 AoB y al hacer el Script y añadir la addr (_player) no me dejaba activarlo y no sabía por que era, se quedaba como parado el CE un segundo y no me dejaba activarlo, sigo cogiendo AoB hasta que tengo unos 10, hago otra pattern y la subtituyo en el script, esta vez si que me deja activarlo pero la addr no es la que tendía que ser de ebx-50 (es decir la que señala el pointer de arriba -50). Vuelvo a leer el tutorial detenidamente, borro todo (lo del AoBScan, el pointer y el script de godmode los dejo) y lo vuelvo a hacer de nuevo hago una pattern a partir de 10 AoB y hago el script, añado la addr de (_player) y antes de activar el script ya me sale una addr que no tiene nada que ver con EBX, no se si me estoy equivocando en algo o es que fallo algún paso sin querer pero me voy a volver loco, a ver si sabéis que puede ser porque creo que lo estoy haciendo bien...  :-( La versión del juego es la v1.0 FB6 no es la v8 porque no me aclaro con los torrents y no la encontraba en descarga directa que es como yo me solía bajar los juegos, de hecho estuve a punto de comprarmelo porque no había manera y el torrent no sabía cuanto iba a tardar en bajarse (de hecho a lo mejor me lo pillo si lo ponen en algún bundle o en oferta de steam cuando tenga pasta), bueno que al final me bajé la v1.0 FB6 para ir haciendo marcha y hasta ahora no había tenido ningún problema y sinceramente no creo que este sea el problema, tengo la versión del CE 6.4 también en vez de la 6.3 no se si es que hay que configurar algo o lo tengo mal configurado o me estoy dejando algo pero no lo veo, en fin que me va a explotar la cabeza jajajaja

No se si tendrá algo que ver pero cuando hice el primer script y luego decidí obtener más AoB para ver si lo solucionaba al hacer la pattern la hice manual para ahorrar tiempo pero me equivoque y puse un ? de más, cuando hice el script seguía sin funcionar (no hacia nada igual que antes), revisé la pattern con el pattern_generator y puse el dígito que tenía que ir donde el ? que había puesto por error, ahí es cuando volví modificar el script y me paso lo que comento arriba que me dejo activarlo pero me dio una addr errónea. No se... voy a probar repitiendo muchas veces más lo de abrir el Memory view por la instrucción que modifica la vida, poner el breakpoint, recibir daño, mostrar en hexview el EBX y copiar tres lineas (1 AoB si no he entendido mal), darle a run (F9) cerrar el juego, abrirlo, cargar el proceso y repetir... no se si haciendo la pattern con muchos AoB podré solucionar esto porque no comprendo muy bien como funcionan, ni se que es lo que me pasa (cuando añado _player me da una addr "random").
4  Programación / Ingeniería Inversa / Re: [Tutorial] Usar Cheat Engine para modificar juegos + inyección de código en: 12 Noviembre 2015, 20:53 pm
He hecho todo como dice aquí en muchos otros tutoriales, y no he podido tener un millón de Euros en "Euro Truck Simulator 2"... tendré que seguir llevando cargas para poder ganar dinero y tener mi propia empresa de camiones...

Uff... que pesadas están las carreteras!!!... jejejejeeeeee...
El Euro Truck Simulator 2 usa conexión a internet constantemente, no recuerdo si necesitas internet para jugar pero era algo así, es posible que guarde alguna variable en el server. ¿Has probado a hacerlo sin conexión a internet?



Antes que nada quiero felicitarte por el tutorial, por el tiempo invertido en responder a los que han expuesto sus dudas y tal. También quiero avisar de que me voy a extender un poco (tranquilos tampoco voy a escribir la biblia jaja) y de que, como he leído en las últimas páginas, estoy intentado empezar la casa por el tejado ya que carezco de conocimientos básicos de ASM y de muchas otras cosas que comentáis por akí (i.e. dumpear, opcodes, offset... cosas que no entiendo o no se lo que son) pero como me he dado cuenta tarde de que iba a necesitar más conocimientos de los que kreía y he empezado, voy a exponer lo que quiero hacer y hasta donde he llegado y volveré a hacer un inciso en esto:

EDIT: A los que leáis esto con intención de resolverme dudas y ayudarme: Antes que nada gracias, ;D me he extendido más de lo que quería en un principio con este post para evitar dobles posteos y tal (sigue sin ser la biblia tranquilos xd), así que para ahorraros algo de tiempo os aconsejo que primero lo leais todo (ya que algunas dudas que tengo al principio las acabo resolviendo yo solo). Espero que esto os sirva de algo y también espero que todas las dudas y preguntas que posteo ayuden a mejorar el tutorial o al contestarlas resuelvan también las dudas que puedan tener otros.

Bien, lo que quiero es hacer un trainer para el FlatOut, el primero, para este a diferencia de los siguientes juegos de la saga no hay ningún trainer hecho, por lo menos que yo haya encontrado, tampoco he buscado mucho porque no me interesa un trainer hecho (la cosa es que al no haber trainers no hay información sobre como modificar/encontrar algunos valores complicados), el juego ya me lo pasé al 100% de forma legal y ahora lo que quería era explorar más el juego, coches con mucha potencia por ejemplo etc...
El CE ya lo había utilizado alguna vez para encontrar y cambiar valores, en eso no tengo problema, pero no sabía es que hay que meterse al lio para que cada vez que abras el juego puedas cambiar valores, es decir, yo lo abría, buscaba el valor lo cambiaba y cada vez que lo quería volver a alterar lo volvía a buscar, me iba bien en la ignorancia hasta que me he topado con valores más complicados de encontrar (más que lo típico que suele ser la vida, maná, dinero...) y me decidí a buscar un tutorial más general sobre el uso del CE en vez de buscar uno especifico de como usarlo en mi juego.

Algunos de los valores que estuve tocando o quería cambiar son:
El dinero: este lo encuentro fácil no tengo problemas mas que los que expondré luego que son básicamente con lo de que cambian las address cada vez que ejecuto el juego.
La potencia: este no sabía como dar con el pero después de leer el tutorial ya se como buscarlo.
La velocidad: este estuve intentando hallar el value antes de ver este tuto y probe en kph, en mph, en ms... jajaja al final gracias al tuto logré dar con una variable que afectaba a la velocidad, el problema es que en este juego (en otros creo que no es igual) la velocidad no es value real si no que solo se muestra en pantalla, no me refiero a que solo modifico el valor que esta en la pantalla si no a que no hay un solo valor que sea la velocidad sino que depende de varios factores que forman la velocidad y hay un vlaue que la muestra, he llegado a esta conclusión porque la vez que más me acerqué a un valor que afectara a la velocidad fue cuando dí con un valor de 10 cifras que si lo aumentaba hacía que una de las ruedas empezara a girar, quemaba rueda básicamente (solo una porque creo que influye lo mejorado que tengas el coche, neumáticos, transmisión... y las pruebas las hice con un coche básico sin modificar) y conseguía alcanzar una velocidad máx mucho mayor y mucho más rápido (es decir no era poner un value de speed y instantaneamente me ponía a esa velocidad), esté ultimo valor es el que más estuve trabajando pero como no se utilizar bien los pointers ni los AAsripts perdía el valor cada vez que iniciaba el juego o lo crasheaba haciendo pruebas, se como usarlos, porque está en el tutorial, pero como no lo entiendo no estaba cómodo y no podía controlar bien lo que hacía me decidí por empezar por algo más básico y que no me llevara más de 5 minutos encontrar el value para poder hacer pruebas y ir entendiendolo poco a poco, el dinero.
Como anécdota curiosa, no lo he comprobado, pero creo que hay dos values de dinero, uno que controla todas las cifras menos las dos últimas y otro que controla estas dos últimas, lo digo porque de repente no encontraba el dienro con exact value y me estaba volviendo loco porque antes no me pasaba, siempre aparecía, así que lo busque con unknown/increse/decrese value y dí con lo que digo, un value que era el dinero pero las dos últimas cifras eran 00 (en el juego en ese momento tenía xxxxxxxx44), no le dí más importancia en ese momento para centrarme en lo que me trae más de culo (volvedme a perdonar que me extienda tanto pero es que no se muy bien como explicarlo de forma clara).

Paso a explicar lo que hice, encontré el valor y cree un AAscript, esto mismo también lo hice con lo que comentaba de la velocidad pero no sabía que poner en el script ya que realmente no quería que hiciera nada, solo que "recordara" (más bien buscara) el address para poder seguir experimentando con ese value sin tener que buscarlo cada vez que iniciara el juego. Como no entendía el funcionamiento al final lo borré y he seguido con el dinero.

Ok, sigamos, resumo: hallo el valor, lo bajo, buco que escribe en esa address (addr. a partir de ahora), voy al juego muevo el dinero y obtengo una instrucción y a partir de esta instrucción creo un script con inyección de código que ahora pondré, compruebo que funciona y reinicio el juego.
Ahora la address que tenía abajo con el valor del dinero ya no muestra nada (ha cambiado), el script sigue funcionando así que lo he hecho bien, como a partir del script no sé encontrar la addr. para poder ver y modificar ese valor en tiempo real la vuelvo a buscar (akí el proceso y algunas de mis dudas resumidas en una foto):

Hay muchas preguntas y muchas cosas que no entiendo, pero no espero que me lo expliquéis todo, al final comentaré esto un poco.

(Por cierto a ver si me podéis ayudar brevemente ¿como hago para que la imagen quede cuadrada? ¿y donde la puedo subir para que se vea bien y no se borre al tiempo o se cambie por otra? es que he visto que muchas fotos dejan de estar disponibles, se caen o aparecen otras sin sentido, está la he subido a Imgur, no quiero desviar el tema comentadme por mp o lo que sea y cuando lo tenga claro borraré este parentesis).

*Si esta linea fuera por ej.: 06590004 querría decir que el juego usa memoria relativa y solo funcionaría el trainer en mi PC ¿no? Para que funcionara en todos habría que hacer un AOBScan para hayar la dirección correcta. Esto es lo que he entendido pero me surgen dudas que me gustaría aclarar para ir más suelto:
¿Que es exactamente esta línea? en este caso "flatout.exe" es el proceso ¿y +4DB55? ¿Es un pointer de esos?
Me lio mucho con lo de las direcciones y los pointers y tal. ¿Sería xxxxxxxxx (direción en la que ejecuta el proceso ¿En este caso sería 00000B 3C?) + 4DB55 = yyyyyyyy (¿Que sería esta dirección?)

**Aunque mi intención era que al pulsar un botón se añadieran 50000, ha sido un fallo de novato por no entender Assemble ni mucho hex, creo que lo que intentaba hacer sería substituyendo el código "mov [esi+74],C350" o "mov [esi+74],ecx" por "add [esi+74],C350" lo cual haría que al ejecutar el script con una hotkey diera la instrucción de ¿comprar? (no se si haría esto o directamente inyectaría el código, o es que "la instrucción" es la acción de inyectarlo, esto no lo entiendo mucho pero sigo) pero en vez del código normal usaría "add [esi+74],C350" y me añadiría 50000 ¿correcto? Seguro que hay formas más simples de hacerlo pero de momento no se como encontrar la address del dinero cada vez que inicio el juego (creo que es eso de los pointers pero no lo entiendo), creo que podría obtener la addr. cada vez que inicia el juego con un pointer y poder añadir en el trainer una hotkey para incrementar 50000 a ese valor, pero no se si funciona así... xd

***Se que esto es básico pero no lo acabo de comprender por más que leo y releo el tuto (aunque conforme voy leyendo páginas y releyendo voy entendiendo más) ¿Como puedo obtener la address del dinero directamente cada vez que inicio el juego? Es decir, se que se almacena en esi+74 ¿pero como obtengo el address para buscarla ver el value y hacer lo que quiera sin tener que complicarme tanto con Sripts y tal? Es decir, nada más ejecutar el juego es posible obtener la addr. que busco con la información que tengo, para poder probar cosas y tal. O si ya la tengo ¿como la puedo comprobar y modificar sin tener que inyectar códigos y eso? Espero que me entendáis porque esto es lo que más me está costando y me cuesta explicarme jajaja creo que si logro comprender esto doy un paso muy grande porque es de lo que más me frena...

Acabando, vuelvo a lo que he comentado brevemente un par de veces:
No se si debería meterme en el fregao de aprender ASM, auto-assembler y todo eso, cuando lo único que quiero es encontrar un valor (esto sé), cambiarlo y que cuando vuelva a iniciar el juego pueda seguir alterando ese valor. A partir de aquí tengo más o menos claro como continuar, codes, trainers... Eso creo que lo he entendido y cosas algo más complejas, me quiero explicar, no es que lo tenga todo claro pero en estos caso más complejos como por ejemplo el de que una instrucción se aplica a varias addr. (no se si esta bien dicho así, me refiero a lo de nopear tu daño y que el nopeo afecte a tus enemigos también), al ser contratiempos eventuales no me interesa (por lo menos de momento) comprender como funcionan para solucionarlos, me bastaría con saber hacerlo, recordar los pasos y saber "un poco" lo que he hecho. Un ejemplo de lo que quiero decir es que ya se como hackear el dinero, se como obtener los valores y hacer un script básico o nopear una instrucción, lo que hay en el tutorial más o menos se como hacerlo pero no acabo de comprender lo que estoy haciendo, me gustaría ir más suelto y poder hacer un trainer más a mi gusto, por ej en un tutorial nos enseñaba a nopear, podría nopear la instrucción de gastar dinero y sería como tener dinero infinito, pero no es exactamente eso lo que quiero, en otra nos enseña a inyectar un código para que en vez que gastar dinero nos lo sume, pero yo lo que quiero es tener más soltura para poder hacer lo que quiera, por ejemplo: [hotkey] sumar 50000 [hotkey] congelar el dinero [hotkey] set 100000 (poner el dinero en 100.000 sin alterar nada más, sin hacer freeze ni cambiar cosas básicas del juego como que al comprar se gaste dinero en ver de darte más, solo como si fuera un truco, luego ya si quiero congelar o hacer alguna movida "más compleja" pues con otra hotkey o otro script), además de modificar valores algo más complejos como la velocidad, la potencia y algún valor más... Espero que podáis entender lo que quiero decir y me ayudéis a encontrar lo que necesito saber, que me lo expliquéis o me digáis que tengo que aprender o sobre que tengo que leer algo, tampoco me gustaría ahora verme forzado a invertir horas en aprender lenguajes o cosas que apenas necesito. Para remarcar, lo que quería era simplemente alterar valores para divertirme, hacerlo en un día o dos invirtiendo unas 10h o algo así, habiendo comprendido es un poco más complejo de lo que esperaba me propongo invertir horas para obtener unos conocimientos básicos que me permitan modificar cosillas de este u otros juegos libremente, sabiendo un poco lo que estoy tocando y crear algún trainer pero lo justo para esto, que no se cuanto es. xd

Por último, haciendo el tutorial del cheat engine me quede atrapado en lo de los pointers , es complicado, porque no me quede atrapado porque no me lo podía pasar si no porque no comprendía el funcionamiento, pasarmelo me lo pasé, es fácil solo seguir los pasos pero... a ver si hay algo que no he entendido, voy a volverlo a hacer y os postearé las dudas que me vayan saliendo.

Gracias de antemano Mad Antrax eres un jefe! Salu2

PD: Siento no ponerlo todo tan estructurado como hacéis algunos con negrita y colores y tal pero no se como se hace y no me apetece ponerme a aprender BBCode también que batante liado ando con esto y otras cosillas jajaja Llevo todo el día preparando esto para intentar que se entienda y no dejarme nada, y ahora se viene toda la noche seguramente para preparar lo del tuto del CE  :-( . jajaja espero con ansias vuestras respuestas!



Uff al final este post si que va a ser largo por eso de evitar el doble post pero mejor así jajaja
A lo largo de la noche he completado el tutorial del CE que propuso Mad Antrax, hasta el "Step 7: Code Injection" de momento...
A modo de repaso y ejercicios he hecho algunas capturas y he ido escribiendo sobre ellas dudas que me han ido surgiendo, cosas que no entendía, preguntas y también lo que creo que he entendido, como me ha llevado largo comprenderlo y prepararlo hay cosas que he escrito como dudas o preguntas y que luego yo mismo me he contestado al ir comprendiendo cosas sobre la marcha. Lo que pido es que respondáis a las preguntas o dudas y corrijáis mis afirmaciones si no son correctas, también para el "post anterior" (arriba de la linea separatoria) pero como ya puse no pido que me expliquéis cosas muy básicas de otros temas (tampoco pido que no me los expliquéis eh jaja si tenéis tiempo y ganas...) ni que me respondais a todas las dudas o preguntas porque para vosotros la mayoría seguro que son tonterías o cosas básicas que debería saber, no quiero desviar el post ni nada pero si que me aclaréis dentro de lo posible las dudas que tengo, aunque sea solo diciendome lo que tengo que aprende o que tengo que buscar para leer sobre algo que me resuelva la duda (esto me da un poco de palo porque no quiero invertir "demasiadas" horas en esto pero bueno, si no me dedicaría yo a indagar y leer para resolver duda por duda, aprendería ASM y tal, pero como no me apetece xd recurro al foro y a vuestra sabiduría, espero que me podáis ayudar). Paso a postearlas:







Esta es en la que más me extiendo y es con la que más me lio así que voy a intentar aclarar un par de cosillas :P : Cuando hablo de "Value" hago referencia a la linea que tiene como descripción Value. Cuando hablo de Value hago referencia al value (es decir, valor o cantidad, generico). Y cuando hablo de "value" me refiero a el valor final que es el que nos muestra el "juego". Por ejemplo: Añadiendo 500 de Value a "Value" sumamos 500 de "value", traducido a algo normal sería: Añadiendo 500 de value a "Vida" sumamos 500HP.


Hacer esto me ha ayudado a desenvolverme mejor con CE, tengo ganas de acabar el tutorial y ver que puedo hacer en el FlatOut. Anoche, de perdidos al río empecé el Step 7: Code Injection, porque ya se hacerlo y pensaba que no me costaría, pero lo dejé para hoy porque ya me salieron un par de dudas.  ;D

El procedimiento para inyectar código lo explica de manera diferente en el tutorial de Mad Antrax y en el de CE, a ver si alguien nos aclara las diferencias entre usar un método u otro y cual es el "mejor" proceso; voy a enumerar a grandes rasgos las dos diferencias principales:
 
1. El tutorial del CE cuando creamos AA dice que le demos a "Code injection" directamente en vez de darle primero a "Cheat Table framework code", en el tutorial Mad Antrax recalca que sigamos un orden: primero a "Cheat Table framework code" y luego a "Code injection". Según he comprobado esto es porque si los haces en orden contrario la parte de [DISABLE] queda vacía (y por lo tanto no se podría desactivar el script ¿cierto?). (Ya que estamos, mi nivel de inglés es el justo, en el tutorial explica un poco las lineas del AA y dice que "alloc" asigna un bloque de memoria para nuestro "code cave" ¿Que quiere decir esto? Pone que antes de w2000 había que encontrar "code caves" en regiones de memoria que no usara el juego, "and will these days cause errors when trying to be used" debido a SP2de XP y los NX bit de los nuevos CPU's. No entiendo bien esa frase ¿Pueden causar errores intentando ser usados? ¿El que? En fin, este paréntesis os lo podéis ahorrar de contestar si no tenéis ganas xd)

2. En el tutorial del CE dice que pongamos el código que queremos inyectar debajo de "newmem:", donde está el texto, en vez de debajo de "originalcode:" ¿Esto hace que cambie algo? También recomiendan borrar la linea que hace que disminuya tu vida, o hacer que aumente en 3 puntos tu vida (el code original te quita uno y el objetivo del tuto es que suba 2 puntos tu vida) eso último es similar a lo que hace Mad Antrax en su tuto, esto hace que me surja una duda: el original code es "dec [ebx+00000478]" ¿no sería lo más fácil substituir esa linea por "add [ebx+00000478],2" (es lo que he hecho yo para pasar el tuto)? Concluyendo, de la forma que explica el tutorial del CE ¿se podría activar y desactivar el cheat? Sin usar "Cheat Table framework code", ¿o solo en caso de que usaramos "add [ebx+00000478],3" debajo de "newmem:" y dejaramos "originalcode:" sin tocar?

Otra cosa, como he dicho para completar el tutorial he subtituido "dec [ebx+00000478]" por "add [ebx+00000478],2" y ahora cuando veo que es lo que escribe la addr del value me aparece esta instrucción "add dword ptr [ebx+00000478],02" ¿Por que aparecen "dword" y "ptr"? Esto aparecía también en algunas instucciones del FlatOut y busque muy por encima que significaban (para saber como editarlo), pero poco entendí de lo que encontré así os agradecería que me explicarais brevemente que son y sobre todo por que aparecen de repente. (A unas malas que me paséis algo para leer, aunque como digo ya leí algo pero como tampoco lo entendía mucho y no es importante lo dejé estar)


Acabando, me haríais un gran favor si me explicarais este punto:
Citar
Notice 2:
In some games the original code can exist out of multiple instructions, and sometimes, not always, it might happen that a code at another place jumps into your jump instruction end will then cause unknown behavior. If that happens, you should usually look near that instruction and see the jumps and fix it, or perhaps even choose to use a different address to do the code injection from. As long as you're able to figure out the address to change from inside your injected code.
Porque por ejemplo el código del dinero del FlatOut estaba compuesto de 2 instrucciones (no se si se refieren a eso), y lo de los saltos no lo entiendo muy bien pero bueno porke no entiendo el idioma (ASM), se refiere a que una instrucción puede saltar a tu código y modificarlo ¿no? y que para evitar esto habría que buscarlo en el Memory Viewer y "nopear" el salto, o inyectar el código antes del salto ¿Correcto?

Bueno voy a seguir con los dos últimos steps del tutorial "Multilevel pointers" y "Shared code" a ver si me aclaro y cuanto me lleva jajaja con lo que sea ya postearé algo más. De nuevo gracias por vuestro tiempo.
EDITO: Mejor voy a esperar un tiempo a que me respondáis y mientras a ver si encuentro este tutorial si lo llegaste a publicar:
Para descubrir ese puntero he tenido que usar una herramienta llamada Multi-Level Scan Pointer. Ahora no tengo tiempo para explicarlo, pero mañana os posteo un tutorial para utilizar punteros :)
¡Si no me esperaré a que lo hagas! jaja Mientras a ver que puedo ir aprendiendo sobre todo esto.
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines