Tema destacado: Sigue las noticias más importantes de elhacker.net en twitter!
Autor
|
Tema: Ubicación de variable en un proceso[Help] (Leído 1,475 veces)
|
_Enko
Desconectado
Mensajes: 301
|
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 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: 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? [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: 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
|
|
|
|
ignorantev1.1
Desconectado
Mensajes: 424
/\ Así acabo cuando quiero programar...
|
@Enko_ 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
Mensajes: 301
|
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
|
|
|
|
.:UND3R:.
Desconectado
Mensajes: 1.960
Ingeniería inversa
|
@Enko_ 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: 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
Mensajes: 424
/\ Así acabo cuando quiero programar...
|
No todas las cabeceras PE son iguales Claro, pero la cabecera del programa en cuestión es la misma para todas las maquinas. 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.exeSaludos y gracias!
|
|
|
|
|
En línea
|
|
|
|
tena
Desconectado
Mensajes: 668
|
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
Mensajes: 424
/\ Así acabo cuando quiero programar...
|
@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
Mensajes: 668
|
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
Mensajes: 668
|
No aguanto al juego ese  No se como hacer en el juego para que varie el mana.
|
|
|
|
|
En línea
|
|
|
|
ignorantev1.1
Desconectado
Mensajes: 424
/\ Así acabo cuando quiero programar...
|
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
Mensajes: 1.960
Ingeniería inversa
|
Estoy ocupado en este momento pero probaré con tibia y el mana jeje
Saludos
|
|
|
|
|
En línea
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como imprimir el valor de una variable definida en una variable...
Scripting
|
nhaalclkiemr
|
5
|
1,529
|
3 Mayo 2007, 17:58
por sirdarckcat
|
|
|
La variable de tipo Object o la variable de bloque With no está establecida
Programación Visual Basic
|
rubeng
|
5
|
5,974
|
17 Septiembre 2007, 00:04
por rubeng
|
|
|
Error 91: Variable de tipo object o la variable de bloque with no esta estableci
Programación Visual Basic
|
brus_k10
|
2
|
2,849
|
16 Junio 2009, 16:20
por cassiani
|
|
|
Como puedo Comunicar un proceso padre con un proceso hijo
Programación C/C++
|
_alexis_
|
2
|
2,060
|
24 Septiembre 2009, 03:23
por aguml
|
|
|
my.resources.source.replace(variable, variable) Ayuda codedom
.NET
|
70N1
|
4
|
901
|
19 Octubre 2011, 12:57
por 70N1
|
|