Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Mad Antrax

#41
Cita de: infraud en 10 Septiembre 2015, 17:16 PM
Pos me voy a poner a ello,
a ver si logro captar algo

ASM y reversing cierto?

PD: por cierto cuando le doy a primer scan, con unknown initial value y en valye type: all
no me sale nada, ahi si como hago para encontrar la del tiempo si la que muestra en pantalla no sirven

Partiendo de la base en que puedes encontrar la dirección visual del tiempo, utiliza la opción F5, los opcodes que accedan a ella estarán muy cerca de la dirección del tiempo real.

Puedes tambien intentar adivinar el método utilizado para almacenar el timepo en memoria, la mayoría de juegos lo hace en segundos, es decir:

Si tienes un juego que marca la hora 09:34:15 am su equivalente en segundos es 34440

EDIT, intenta completar el siguiente tutorial, que es más completo: http://foro.elhacker.net/ingenieria_inversa/tutorial_cheat_engine_nivel_avanzado_tutorial_completo-t413372.0.html
#42
Cita de: infraud en 10 Septiembre 2015, 16:55 PM
Gracias tio Mad por responder

El ejemplo si lo entendi pero lo de breakpoint on access, no   ;D
Probare de todos modos en las direcciones que resulten a ver cual es
solo espero entender lo que tenga escrito,
ademas que siempre aparecen bastantes

Seguire usando el increased value
y agradezco cualquier otra ayuda :D

Entiendo entonces que te faltan algunos conceptos previos para poder completar lo que te propones... Cuando encuentres la variable del tiempo, le das doble-click para añadirla a la ventana inferior, selecciona el address y pulsa F5, activarás el debugger de CE, vuelve al juego y tras unos segundos el debugger te enseñará los opcodes que han accedido a tu address. Ahí podrás saltar al memory view, inspeccionar las instrucciones ASM y reversar el código hasta encontrar la rutina que calcula el valor real del tiempo.

Por la forma en la qu ete has expresado y las preguntas que has hecho doy por sentado que careces de esos conceptos básicos de ASM y reversing. Así que te tocará leer en lugar de empezar la casa por el tejado :)

Lo siento.
#43
Cita de: infraud en 10 Septiembre 2015, 16:14 PM
Muchas gracias por la guia!

Habia cosas que no podia localizar pero sobretodo con la opcion de revisar el decrecimiento me a  facilitado mucho

Pero en el juego, sheltered, no he logrado "capturar" el tiempo,
el tiempo ahi se muestran por minutos, horas y dias,
intente con los minutos y despues con las horas, una cosa a la vez, uso la tecla ESC para poner en pausa el juego
y modifico las direcciones que resultan, tres en cada caso,
pero al quitar la pausa el tiempo sigue corriendo igual y si lo pauso de nuevo, el valor que habia puesto se muestra en el reloj, pero solo mientras esta pausado puesto que al correr el juego todo sigue normal

Mi objetivo es capturar el tiempo para despues hacer que corra mas lento, solo el tiempo, no que vaya mas lento el juego, ya use el speedhack y la funcion de este no es lo que busco,
me ha gustado mucho el juego pero la cuestion del tiempo es que va demasiado rapido a mi gusto

que puedo hacer en ese caso? hay que hacer alguna operacion mas compleja ya que el tiempo no es el usual contador hacia atras?

Hola

Vayamos por partes... Dices que has encontrado la variable del tiempo, logras editarla pero cuando quitas el pause en el juego vuelve a su valor original, verdad? Eso ocurre porque has encontrado la variable que "pinta" o "dibuja" el tiempo en pantalla, pongamos un ejemplo:

Tengo una variable que almacena la vida del jugado, el jugador tiene 100 puntos de vida pero en lugar de almacenar 100 lo que hago es almacenarlo de forma ofuscada, por ejemplo en hexadecimal (64). Luego programo una rutina que me transforme el valor de mi variable de vida (64) a decimal (100) y lo muestro en pantalla, aquí te dejo el código de ejemplo:

Variable varVidaReal
Variable varVidaContador

varVidaReal = 0x64;
varVidaContador = Hex2Dec(varVidaReal)

Call dibujaVidaPantalla(varVidaContador)


Si utilizo el CE y busco el valor de la vida por su número absoluto (decimal = 100) terminaré encontrando la dirección de memoria que apunta a varVidaContador, editaré ese valor e inmediatamente la función dibujaVidaPantalla() pintará en la pantalla del juego la vida modificada. En la siguiente interacción, varVidaContador calculará su valor a partir de varVidaReal, eliminando tu "hack" y volviendo a pintar el valor real de la vida (100).

Espero que hayas podido entender éste ejemplo, lo que te ocurre en tu juego es exactamente lo mismo, pero con otras variables y funciones. ¿Cómo solucionarlo? No es complicado, pero tampoco es fácil...

Una vez encuentres el valor del tiempo "contador" deberás ver que instrucción escribe en esa dirección, para ello pulsa F5 sobre el address para meter un breakpoint on access, CE te dumpeará todos los opcodes que accedan a la variable contador. Uno de esos opcodes será el que almacene el valor real del tiempo (posiblemente expresado en segundos o milisegundos).

Si tengo tiempo me bajo ese juego e intento hacerlo yo mismo...
#44
Cita de: zenares en 10 Septiembre 2015, 05:45 AM
hola...!

saben hay un juego de nombre Tales Of Pirates 2; el asunto es que WPE Pro, no lo reconoce al momento de buscar los Programas no me sale el juego por mas que ya este abierto.

alguna sugerencia o ayuda para esto, o en su defecto algun otro programa mejor..

gracias.

Puedes probar Packet Editor http://www.packeteditor.com/

Funciona muy similar a WPE
#45
Cita de: dracrac en  9 Septiembre 2015, 10:35 AM
Gracias de nuevo Elektro era eso lo que pasaba!  :D

Porque razón/es es mejor utilizar otro lenguaje diferente del batch? Cual me aconsejas que utilize para hacer estas cosas y porque?  

y  Para que cosas utilizas el batch?

Realmente puedes utilizar el lenguaje que desees y te sientas más cómodo. Utilizar lenguajes de bajo nivel te obligará a escribir más código, mientras que los lenguajes de alto nivel te permitirán simplificar un grupo de instrucciones en líneas de código más simple. VBS, además tiene mejoras como el uso de objetos y eventos. Según tu necesidad habrá cosas que con batch no podrás hacer.

Así pues, siempre y cuando te sea como batch, úsalo. Pero es bueno conocer y tener otras alternativas.

:)
#46
No me gusta usar batch para hacer éste tipo de cosas, creo que lenguajes como VBS y similares dejan un código más limpio. El siguiente ejemplo es un script que iniciará cualquier servicio que esté marcado como "automático" que que no se esté ejecutando actualmente:

Código (vb) [Seleccionar]
On Error Resume Next
Set oWSH = CreateObject("WScript.Shell")
Set oWMI = GetObject("winmgmts:\\.\root\CIMV2")

Function ForceConsole()
If InStr(LCase(WScript.FullName), "cscript.exe") = 0 Then
oWSH.Run "cscript " & Chr(34) & WScript.ScriptFullName & Chr(34)
WScript.Quit
End If
End Function

Function printf(txt)
WScript.StdOut.WriteLine txt
End Function

Function scanf()
scanf = LCase(WScript.StdIn.ReadLine)
End Function

Function StartServices()
Set cQuery = oWMI.ExecQuery("SELECT * FROM Win32_Service WHERE StartMode = 'Auto' AND State <> 'Running'")
For Each oItem In cQuery
printf " [>] " & oItem.Name
printf " [>] " & oItem.Caption
printf " "
Call oItem.StartService()
Next
End Function

Call ForceConsole()
printf "Buscando servicios automaticos que se hayan detenido..." & vbcrlf
Call StartServices()
printf ""
printf "Proceso terminado, pulsa <enter para salir>"
scanf


Modificarlo para hacer justo lo contrario no te costará nada :)
#47
Ingeniería Inversa / Re: CE se cierra en juegos.
3 Septiembre 2015, 09:24 AM
Vayamos por partes... SMITE es un juego online. No podrás modificar ningún valor del juego SMITE con Cheat Engine.

Segunda parte... SMITE (y muchos otros juegos) tienen comprobaciones anti-hack. Funcionan exactamente igual que las protecciones anti-debug. Utilizando APIS de Windows intentan localizar procesos o tools "malignas", si encuentras alguna muestran un mensaje y se cierra el juego. Las APIS más utilizadas con GetWindowsText, OpenProcess, CreateToolhelp32Snapshot, etc etc etc...

Para hacer bypass a estas detecciones puedes hacer varias cosas:

- Detectar la API, hookear y devolver 0
- Modificar CE desde su codigo fuente, editar las strings y compilar una versión modificada de CE
- Debuggear el juego en busca del mensaje de detección y parchear el JE/JNE/JMP para saltarse la verificación...

De todas formas, refiriendome al punto numero 1... el juego seguirá siendo server-sided y no podrás modificarlo con CE

Saludos
#48
Seguridad / Re: Problema con DNS Unlocker
1 Septiembre 2015, 09:19 AM
1) Descarga y ejecuta JRT, postea el log aquí https://www.infospyware.com/antispyware/jrt/
2) Descargar y ejecuta AdwCleaner, reinicia el PC, postea el log aquí https://www.infospyware.com/antispyware/adwcleaner/
3) Descarga Malwarebytes, instala, actualiza y ejecuta un analisis completo
4) Reinicia el PC

Más info: http://www.forospyware.com/t511959.html

Saludos

Con esos pasos conseguirás sacarlo. Garantizado.
#49
Cita de: scillablade en 29 Agosto 2015, 07:15 AM
Me gustaria preguntar algo, pasa algo curioso, estoy tratando de encontrar valores en el Cheat Engine 6.4 de un juego llamado Redident Evil Remake para Game Cube, jugado en el emulador Dolphin, y no puedo hayar los valores de memoria adecuados, pero sin embargo usando el mismo administrador de trucos del Emulador encuentro una posicion de memoria, que el mismo administrador de trucos codifica como un valor de 8 bits, es decir 1 byte e incluso cuando trato de ingresar manualmente la direccion de memoria arrojada por el administrador de trucos al Cheat Engine, no me deja trabajar con eso.

La direccion del Administrador de Trucos es 0x022a2aa 0x0b 11/11 entiendo que el valor siguiente a la direccion de memoria es el valor que contiene en hexadecimal y el siguiente en decimal, pero si lo ingreso en Cheat Engine y no refleja dicho valor..... quizas esta en el tipo de datos, 8bits son 1byte, pero asi no es como los busca el administrador de trucos, trabajaria en el administrador de trucos, pero lamentablemente en las versiones que he probado del emulador (de la 4.0.2 en adelante, betas y todo) no funciona el administrador de trucos del emulador y no he hayado foro alguno donde se hable de eso exepto para indicar como agregar los codigos de AR.

Cualquier ayuda la agradezco, gracias

El tema de emuladores es un mundo a parte. Lo voy a explicar de una manera que se pueda entender... Cuando ejecutamos un juego o una room en un emulador sucede "algo parecido" al ejecutar una máquina virtual de vmware o virtualbox. Se crea y se reserva una zona de tu memoria ram física para ser usada en tu juego. Te pongo un ejemplo:

Imaginemos que tu PC físico tiene las siguientes posiciones ram:

Inicio 0x000
Fin 0xFFF

Cuando ejecutas un emulador, lo que sucede es que se reserva una zona de ram, suponiendo que se reserva la zona 0x100 hasta 0x500. Dentro de esa zona, para el juego emulado es como si tuviera la siguiente ram:

Inicio 0x000 (emulada) = 0x100 (real)
Fin 0x0400 (emulada) = 0x500 (real)

Por eso, cuando encuentras una dirección de memoria en el emulador jamás se corresponderá con la dirección ram "real" que podrás detectar con Cheat Engine. Espero que se haya entendido, no es fácil explicarlo de forma escrita jaja.

Para solucionarlo tienes 2 opciones; Utilizar el administrador de cheats integrado en el propio emulador o actuvar la función MEM_MAPPED:



De ésta forma, CE podrá escanear la memoria mappeada (por ejemplo en ficheros físicos utilizados por vmware o en secciones de memoria utilizados por los emuladores).

Pruebalo y nos cuentas, pero ya te aviso que una dirección encontrada en el emulador jamás se corresponderá en la ram física por lo que te he explicado
#50
Cita de: gAb1 en 13 Agosto 2015, 13:26 PM
Una duda sobre las reglas del archivos hosts, esta línea:

¿Debe ser la mascara de subred del router o esa que has puesto? Supongo que tendré que cambiarla por la que use el mio, ¿no?

Es simplemente una "feature" que apenas ninguna app utiliza. La idea del fichero hosts es crear un "alias" dns para forzar la resolución de un nombre DNS a la IP deseada. En éste caso, se "crea" un nombre DNS que se traduce a 255.255.255.255, puedes editarla si lo deseas, pero creo que ninguna app utiliza ese nombre hosts/dns para hacer nada.