elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:20  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: Shaddy, karmany)
| | |-+  Ubicación de variable en un proceso[Help]
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Ubicación de variable en un proceso[Help]  (Leído 1,475 veces)
_Enko


Desconectado Desconectado

Mensajes: 301



Ver Perfil
Re: Ubicación de variable en un proceso[Help]
« Respuesta #15 en: 29 Octubre 2011, 21:50 »

No vi el programa en cuestion, pero estoy seguro que en este momento el problema que estas teniendo es porque no entiendes el concepto de un puntero, y para el caso, hasta puede ser puntero a puntero a putnero etc...

suponte este codigo
Código:
int var_a = 5

Que significa eso?
"var_a"  es un entero igual a 5.

pero ese en un lenguaje de programacion. para el cpu no existe tal cosa como "var_a"

Para el cpu existe una direccion de momeria, digamos 40100. El contenido de esa direccion de memoria es 5.

Para que veas la diferencia en pseudo codigo de maquina:
Código:
var_a seria equivalente a 40100
[var_a] contenido var_a seria equivalente a 5
[40100] conenido de 40100 es equivalente a 5

Ahora que pasa si el contenido es una direccion de memoria?
Código:
[var_a] = 40200
contenido de var_a es equivalente a 40200 que es otra direccion de memoria

por ejemplo, se podria dar el caso de
var_b = 6
donde var_b seria equivalente a la direccion de memoria 40200

de esta manera, var_a apuntaria a donde se encuentra var_b

Entonces, para llegar a "6" a partir de var_a tendrias que:
Citar
tomar el contenido de var_a
ese contenido seria 40200
luego, tomar el contenido de 40200
y ahi llegarias a  [40200]  == 6
recuerda que puede ser puntero a puntero a puntero a puntero a "tu variable"


En línea


Servicio tecnico Blackberry http://www.serviciotecnicocelular.com
ignorantev1.1


Desconectado Desconectado

Mensajes: 424


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Ubicación de variable en un proceso[Help]
« Respuesta #16 en: 29 Octubre 2011, 22:25 »

@Enko_

:xD Claro que sé lo que es un puntero, ese no es el problema, en serio.

Mira:



Supongamos que en otra maquina, abro el proceso y leo el offset 4146D2, me dá "0". Por que, supongo, el rango de valores no es el mismo, ¿por qué?, no sé, memoria disponible, OS, 86 o 64, ¿qué sé yo?, pero no es el mismo...

Saludos y gracias!




En línea


_Enko


Desconectado Desconectado

Mensajes: 301



Ver Perfil
Re: Ubicación de variable en un proceso[Help]
« Respuesta #17 en: 30 Octubre 2011, 00:26 »

si la variable realmente es "LOCAL" entonces esta metida en la pila, y no en el segmento .DATA

4146D2 es .CODE segment, es decir, no es la variable, es la direccion de ejecucion del programa, no tiene nada que ver con una variable.. la variable serial LOCAL.78 y no tenemos ni idea de lo que es... como ya te dije, si realmente es local, es una direccion de la pila.

Estas traceando algo mal... y con la screenshot no se ayuda mucho



« Última modificación: 30 Octubre 2011, 00:29 por _Enko » En línea


Servicio tecnico Blackberry http://www.serviciotecnicocelular.com
.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


Ver Perfil WWW
Re: Ubicación de variable en un proceso[Help]
« Respuesta #18 en: 30 Octubre 2011, 16:32 »

@Enko_

:xD Claro que sé lo que es un puntero, ese no es el problema, en serio.

Mira:



Supongamos que en otra maquina, abro el proceso y leo el offset 4146D2, me dá "0". Por que, supongo, el rango de valores no es el mismo, ¿por qué?, no sé, memoria disponible, OS, 86 o 64, ¿qué sé yo?, pero no es el mismo...

Saludos y gracias!






Cito la info de mi script:
Citar
Fórmula:
     RVA: Valor relativo en memoria (Relative Value Address)                                 
     VA: Valor absoluto en memoria (Value Absolute)                                                               
     RAW: Dirección en el disco
 
     -OllyDBG Nos muestra por defecto direciones de tipo VA
     VA(Value Absolute)=ImageBase+RVA     
 
     Ejemplo: 40101D=400000(ImageBase)+101D(RVA)
 
     -Si queremos saber el raw de un address ubicado en la cabezera PE (PE header)
     se debe restar address-ImageBase=RVA=RAW     
 
     Ejemplo: 400056(VA)-400000(ImageBase)=56h(RAW)   
 
     -Si queremos saber el raw de un address ubicado en una sección     
     se debe hacer lo siguiente:
 
     Obtener el RVA del addres:
     Address-ImageBase=RVA
 
     luego a RVA restarle los siguientes valores:     
     RVA-(VirtualAddress-PointerToRawData)=RAW     
 
     *VirtualAddress y PointerToRawData varían en cada sección


No todas las cabeceras PE son iguales,el address que comentas es un VA que es lo muestra OllyDBG con el script colocas esa address y te dará el RAW teniendo el RAW que es la dirección del ejecutable en el disco duro abres un editor hexadecimal verás lo mismo, puedes corroborar nopeando el OP-Code del address (click derecho fill with nop's) eso hará que en el address se escriban 90 hexadecimal si con un editor hex pones el RAW deberías ver 90 obviamente si guardaste los cambios

Podrías enviarnos el ejecutable para que te saquemos de las dudas

Saludos
En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 424


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Ubicación de variable en un proceso[Help]
« Respuesta #19 en: 31 Octubre 2011, 18:57 »

Citar
No todas las cabeceras PE son iguales

Claro, pero la cabecera del programa en cuestión es la misma para todas las maquinas.

Citar
     RVA: Valor relativo en memoria (Relative Value Address)                                 
     VA: Valor absoluto en memoria (Value Absolute)                                                               
     RAW: Dirección en el disco
 

¿Estos datos son de la info del PE?

No quería llegar a esto, pero si gustan el programa en custión aquí está, solo que deben registrarse para poderlo usar:

http://download.tibia.com/tibia931.exe

Saludos y gracias!
En línea


tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: Ubicación de variable en un proceso[Help]
« Respuesta #20 en: 1 Noviembre 2011, 02:39 »

Pues que se supone que hace esa variable?


004146D2  |.   MOV EAX,DWORD PTR SS:[LOCAL.73]

Solo pasa una vez por ahi  cuado estas iniciando sesion, y su valor es cero.

slds
En línea
ignorantev1.1


Desconectado Desconectado

Mensajes: 424


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Ubicación de variable en un proceso[Help]
« Respuesta #21 en: 1 Noviembre 2011, 03:25 »

@tena

Es el maná del personaje, no es muy importante, pero en base a la solución(qué espero encontrar) lograré apoyarme en otros datos.

¿iniciaste sesión o solo ejecutaste el programa?

Saludos!
En línea


tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: Ubicación de variable en un proceso[Help]
« Respuesta #22 en: 1 Noviembre 2011, 03:28 »

Cae ahi cuando se Inicia la sesion del juego.

Ahora me fijo aver si se modifica cuando cambia el maná



En línea
tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: Ubicación de variable en un proceso[Help]
« Respuesta #23 en: 1 Noviembre 2011, 04:12 »

No aguanto al juego ese  >:D
No se como hacer en el juego para que varie el mana.

En línea
ignorantev1.1


Desconectado Desconectado

Mensajes: 424


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Ubicación de variable en un proceso[Help]
« Respuesta #24 en: 1 Noviembre 2011, 04:17 »

No podrás, tendrá qué pasar un tiempo(días) para poder hacerlo  ;-)

De la manera en que llego allí es por medio del cheat engine, busco el valor del maná y me ubico en el ollydbg...

Saludos!
En línea


.:UND3R:.


Desconectado Desconectado

Mensajes: 1.960


Ingeniería inversa


Ver Perfil WWW
Re: Ubicación de variable en un proceso[Help]
« Respuesta #25 en: 1 Noviembre 2011, 17:20 »

Estoy ocupado en este momento pero probaré con tibia y el mana jeje


Saludos
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines