-
Algún programador-hacker-dios por aquí?
¿Alguien es capaz de convertir este número 1088635626 (dword) en una fecha de mediados de enero de 2008?
Se trata de un número que se va incrementando al pasar los días, a razón de unos 32 puntos más o menos.
No sé si es solo fecha, fecha y hora o una cantidad de tiempo transcurrido desde una fecha x (o cualquier otra cosa).
Este número ha sido extraído de un programa en tiempo de ejecución, leyendo directamente una parte de su memoria.
Si alguien devela este enigma, prometo enviarle un regalo sorpresa (en serio).
-
Algún programador-hacker-dios por aquí?
Hombre, la información es poca (muy poca diría), ya que depende de si esta codificado, de cómo el lenguaje guarda la información, si realmente esa zona de memoria corresponde a una variable que cuenta el tiempo, etc.
Por probar, así sin pensar mucho he considerado que el valor ese que has puesto eran milisegundos (si cuela cuela tu), aunque si dices que cada día varía en 32, pues como que no cuela tanto.
Bueno, entonces tendríamos:
1088635626 milisegundos.
1088635,626 segundos.
18143,9271 minutos.
302,398785 horas.
12,599949375 días.
Día 12, que está a medianos de enero, pero dudo muchííííísimo que sea eso.
A ver si alguien lo sabe seguro. Saludos.
-
Algún programador-hacker-dios por aquí?
Cita:
Aunque si dices que cada día varía en 32, pues como que no cuela tanto.
Ese es el problema.
Cita:
Día 12, que está a medianos de enero, pero dudo muchííííísimo que sea eso.
Con ese sistema no se sabe el año y si se refiere a que todo el universo empieza este año y anteriormente no existía nada.
-
Algún programador-hacker-dios por aquí?
Otra posibilidad: En esta web (http://www.zator.com/cpp/e5_5_1a.htm#asctime) en el último ejemplo pone algo del tiempo contado des de lo que llama inicio de la época Unix, el 1 de enero de 1970 a las 0 horas.
Y el tiempo lo da en segundos.
El resultado del ejemplo es muy similar al que has puesto tu:
Tu: 1088635626.
Ejemplo: 1053550492.
Casualdidad? Puede.
El cálculo te lo dejo para ti, que debería ponerme a estudiar ya. Suerte.
-
Algún programador-hacker-dios por aquí?
Se me ha cortado la digestión al leer este hilo. Caronte, ¿estás bien?
-
Algún programador-hacker-dios por aquí?
Cita:
Se me ha cortado la digestión al leer este hilo. Caronte, ¿estás bien?
Vaya, que mamón. Resulta que, si no encuentro una solución, mi trabajo se va a duplicar automáticamente de ahora en adelante y eso no lo puedo permitir, así que, me he puesto a programar de nuevo para hacer un injerto a lo Frankenstein a un programa de mi curro.
Sigo investigando.
-
Algún programador-hacker-dios por aquí?
Vaya, que agradable es ser grafista, aunque eso implique a veces ser el último en la cadena alimenticia. Perdón por el offtopic neo.
Caronte, andas metido en cosas raras, que hacker ni que niño muerto.
-
Algún programador-hacker-dios por aquí?
Tienes que sacar más muestras, varios días. Y de todas formas, si dices (si se puede) que relación tiene ese número con tus problemas a lo mejor se puede ocurrir alguna solución.
-
Algún programador-hacker-dios por aquí?
Cita:
Tienes que sacar más muestras, varios días.
He sacado 4 muestras 2 de ellas con una diferencia de 32 y una de 30 y otra similar (no recuerdo cuanto).
Cita:
Y de todas formas, si dices (si se puede) que relación tiene ese número con tus problemas a lo mejor se puede ocurrir alguna solución.
Tengo que saber exactamente en que posición de memoria se va a escribir un dato, pero cada vez que se carga el programa, la posición es distinta y la única forma que he pensado, es encontrar ese número largo (el que he puesto arriba), ya que lo que busco esta siempre 4 bytes más abajo de este.
Lo sé, es algo críptico, pero no puedo dar muchos más detalles, porque se me puede caer el pelo.
-
Algún programador-hacker-dios por aquí?
Y no puedes buscar esta información a partir de la dirección base dónde empieza el programa? Mejor dicho, buscando la dirección dónde empieza el segmento de datos (registro ds) y a partir de allí aplicar un desplazamiento (si es que se trata de una variable). La variable que busques tendrá siempre el mismo desplazamiento respeto el inicio del segmento de datos, si no recuerdo mal.
Quizá puedas hacer algo con el turbo assembler y el turbo debugger:
https://www.foro3d.com/images/upload...2008/01/28.jpg
Es sencillo y visualmente poco atractivo, pero efectivo. Yo tengo por aquí las versiones que hacemos servir para las prácticas de la universidad. Si eso ya me dirás algo.
Posdata: vaya, ya no recuerdo la mitad de lo que aprendí de ensamblador.
<<<editado>>>.
Puedes cargar archivos.exe en principio, lo que no todos funcionan.
-
Algún programador-hacker-dios por aquí?
Cita:
Vaya, que agradable es ser grafista, aunque eso implique a veces ser el último en la cadena alimenticia.
Cuanta sabiduría en una línea.
-
Algún programador-hacker-dios por aquí?
Cita:
Y no puedes buscar esta información a partir de la dirección base dónde empieza el programa? Mejor dicho, buscando la dirección dónde empieza el segmento de datos (registro ds) y a partir de allí aplicar un desplazamiento (si es que se trata de una variable). La variable que busques tendrá siempre el mismo desplazamiento respeto el inicio del segmento de datos, si no recuerdo mal.
No, porque esa posición de memoria no está dentro del programa, si no que la reserva de la memoria libre y cada ver en un sitio distinto.
Cita:
Quizá puedas hacer algo con el turbo assembler y el turbo debugger.
Vaya, que buenos recuerdos me traen esos programas.
En cualquier caso, lo que tengo muy claro es que no puedo ponerme a desensamblar y analizar un programa que puede generar perfectamente decenas de megas de código.
Cita:
Vaya, ya no recuerdo la mitad de lo que aprendí de ensamblador.
Pues imagínate yo.
-
Algún programador-hacker-dios por aquí?
Te voy a dar una pista por explicarte la idea que tengo de ese número, no es una solución definitiva, pero es una probabilidad:
Si dices que va cambiando 32 números eso me dice que es un número elevado a n.
Mira a ver si cada byte o Word desde el más bajo al más alto en realidad no suman 32 sino que hacen un logic shift todo the left. Saludos.
-
Algún programador-hacker-dios por aquí?
Esa fecha parece una marca Unix que se calcula en segundos desde enero 1 1970 00:00:00 gmt. Según mis cuentas es del miércoles 30 de junio de 2004 a las 7:47:06 (en el meridiano).
Que me gané? Lo único malo es que no es de mediados del 2008.
Por ejemplo, ahora son las: 1201028738. Saludos.
Maldición, ya lo habían puesto arriba.
-
Algún programador-hacker-dios por aquí?
Cita:
Maldición, ya lo habían puesto arriba.
-
Algún programador-hacker-dios por aquí?
Caronte ahora le das al reverse enginering?
-
Algún programador-hacker-dios por aquí?
Yo no tengo ni idea de que es ese número ni que mide. Lo que te quería comentar es que hacerle injertos a un programa normalmente trae más problemas de los que soluciona. Quizá deberías plantearte hacer un traje nuevo aunque ha priori signifique más trabajo.
De todas formas, suerte con la búsqueda. Si reserva memoria en el heap debe guardar en algún sitio un puntero al inicio de la memoria reservada (digo yo). Un abrazo.
-
Algún programador-hacker-dios por aquí?
Cita:
He sacado 4 muestras 2 de ellas con una diferencia de 32 y una de 30 y otra similar (no recuerdo cuanto).
Y esas muestras las tomas todos los días a la misma hora?
Es decir, que si tomas esa muestra a la hora x, y otra 45 minutos más tarde (1440/32) se habrá incrementado en 1? O se incrementa +32 de una sola vez? (cada día).
En cualquier caso, una vez que sabes la frecuencia con la que se incrementa, no te importa el significado en sí del dato, ¿no? Digo, que con saber que hoy vale x, mañana se que valdrá x+(32*1), pasado x+(32*2). te vale.
-
Algún programador-hacker-dios por aquí?
Cita:
Yo no tengo ni idea de que es ese número ni que mide. Lo que te quería comentar es que hacerle injertos a un programa normalmente trae más problemas de los que soluciona. Quizá deberías plantearte hacer un traje nuevo aunque ha priori signifique más trabajo.
Lo sé Notxor, pero el programa es comercial (no es mio) y no podemos cambiarlo, si tuviese el source, estaba todo arreglado.
Cita:
Si reserva memoria en el heap debe guardar en algún sitio un puntero al inicio de la memoria reservada (digo yo).
Sí, pero para encontrarlo tendría que ponerme a desensamblar y es lo que no quiero.
-
Algún programador-hacker-dios por aquí?
Cita:
Y esas muestras las tomas todos los días a la misma hora?
No me he fijado, la hora debe ser muy similar (la hora a la que entro al curro) pero no exacta.
Mañana y pasado probaré a ver a una hora exacta, pero lo que está claro es que ese valor no se mueve rápidamente, así que, no pueden ser ni milisegundos, ni segundos y casi diría que ni minutos.
Cita:
Es decir, que si tomas esa muestra a la hora x, y otra 45 minutos más tarde (1440/32) se habrá incrementado en 1? O se incrementa +32 de una sola vez? (cada día).
Lo miraré a ver.
Cita:
En cualquier caso, una vez que sabes la frecuencia con la que se incrementa, no te importa el significado en sí del dato, ¿no? Digo, que con saber que hoy vale x, mañana se que valdrá x+(32*1), pasado x+(32*2). te vale.
Sí, con saber la frecuencia me sobra, lo que me hizo descartar esa idea en un principio, fue que pensé que sería imposible que todos los días hubiese hecho la prueba con tanta precisión como para que cambiase tan poco.
En fin, mañana miro cosas a ver.
-
Algún programador-hacker-dios por aquí?
Pon más de una muestra con intervalos exactos, por favor (dos o tres días exactamente a las 12, por ejemplo, empezando por hoy, si puedes).
-
Algún programador-hacker-dios por aquí?
software sphinx.
Quizá tenga algo que ver con la franja horaria del día que esta actualmente en curso. En ese documento veo que algunos sistemas de seguridad separan el día en 32 bloques.
-
Algún programador-hacker-dios por aquí?
Ya lo he solucionado esta mañana. A las 7:20h, el valor era: 1088636361
A las 7:44h, el valor era: 1088636362
A las 8:16h, el valor era: 1088636363
A las 9:00h, el valor era: 1088636364.
Los valores del cambio no son exactos, porque no puedo actualizar con mucha frecuencia.
Al principio no encontraba la relación porque el cambio era en zonas distintas de la esfera del reloj a cada vez, pero es que, no sé a qué cafre se le habrá ocurrido que cada incremento represente 45 minutos ya me contaras para que vale eso.
Bueno pues voy a usar un número mágico que representa las 00:00h, del 1 de enero del 2008 y a partir de ahí contaré los minutos hasta el momento actual y lo dividiré entre 45 para obtener el valor exacto.
Bueno, pese a que todos me habéis ayudado, creo que es justo que el regalito sea para Pedro por ser el que más se acercó a la solución.
Pasame tu dirección por privado y te lo envío.
-
Algún programador-hacker-dios por aquí?
Haciendo algún cálculo más, me sale la fecha.
14 de Julio de 2006, 00:35 am
. ¿Te dice algo? La fecha de instalación del programa, algo.
-
Algún programador-hacker-dios por aquí?
No, la instalación es de enero, pero da igual, no te comas más el coco, con lo que tengo me sobra para averiguar que número tengo que buscar y así poder hacer el offset de 4 bytes con seguridad. Gracias de nuevo.
-
Algún programador-hacker-dios por aquí?
Para que luego digan que la programación no es divertida. Saludos.
-
Algún programador-hacker-dios por aquí?
Como suele pasar, basta que uno esté más liado que la pata de un romano, para que se le meta algo entre ceja y ceja y no pare de perder el tiempo hasta que lo aclara.
Después de volver, y volver, a remirarlo, parece claro que la fecha origen es el 14 de Julio de 2006, pero a las cero horas (no 00:35).
Este número es demasiado redondo como para ser hola.
Todo coincide.
Código PHP:
.
#./usr/bin/env Python.
# -*- Coding: ISO-8859-15 -*-.
Import datetime.
Inicio = datetime, datetime (2006, 7, 14, 0, 0) # 14 de Julio de 2006, 00:00.
Bits_superiores = 1088618496 # 16 bits and 01000000111000110000000000000000.
Fecha = datetime, datetime, today().
Print hora: %s valor:%s % (fecha, ((fecha - Inicio), days * 32) + ((fecha - Inicio), seconds / 2700) + bits_superiores).
#.
#.
.
Código PHP:
.
#solo para comprobar.
Print - - - - - - - - - - -.
Lista = (07:20, 07:44, 08:16, 09:00).
For I in lista:
Fecha = datetime, datetime, strptime (2008 01 23 %s % i, %y %m %d %h:%m) Tprint hora: %s valor:%s % (fecha, ((fecha - Inicio), days * 32) + ((fecha - Inicio), seconds / 2700) + bits_superiores).
#solo para comprobar.
.
Los datos coinciden con los muestreos que tomaste. Tiene que ser esto. (espero.
Cita:
Hora: 2008-01-23 16:49:10.173658 valor:1088636374.
-- - - - - - - - - -.
Hora: 2008-01-23 07:20:00 valor:1088636361.
Hora: 2008-01-23 07:44:00 valor:1088636362.
Hora: 2008-01-23 08:16:00 valor:1088636363.
Hora: 2008-01-23 09:00:00 valor:1088636364.
-
Algún programador-hacker-dios por aquí?
Calla, es la cuenta atrás para que los franceses hagan otra revolución. ¿En que andas metido, Caronte?
-
Algún programador-hacker-dios por aquí?
Vaya, Pedro. Vaya análisis más cañero que has hecho. Muchas gracias por el código también
.Klópes, a grandes rasgos, estoy haciendo un programa puente para enlazar dos programas independientes, sin tener el código fuente de ninguno de ellos ya te contaré.
-
Algún programador-hacker-dios por aquí?
Metiendo la zarpa en la memoria, ¿eh? Ya contaras, ya.
-
Algún programador-hacker-dios por aquí?
Caronte, ¿leíste el enlace que dejé? Ahí se deja entrever que, en el mundillo de la seguridad, el día se suele dividir en 32 franjas (de 45 minutos, haciendo la simple división).
Me alegra que se haya resuelto el dilema y enhorabuena por el tremendo curro y el premio, Pedro.
-
Algún programador-hacker-dios por aquí?
Cita:
Caronte, ¿leíste el enlace que dejé? Ahí se deja entrever que, en el mundillo de la seguridad, el día se suele dividir en 32 franjas (de 45 minutos, haciendo la simple división).
Si, lo vi, pero partiendo el número simplemente en 32*día me salía 93200 y pico años creo que estaba demasiado obsesionado con encontrar una fecha en lugar de partir de una actual.
Cita:
Me alegra que se haya resuelto el dilema y enhorabuena por el tremendo curro y el premio, Pedro.
Pedropp me dijo que no hacía falta ningún regalo, porque lo había hecho con mucho gusto, así que, me lo guardaré para la siguiente consulta.
Edito:
Por cierto, ya tengo hecho el enlace con uno de los programas y funciona perfecto, ahora solo me queda abrir la base de datos del otro programa, consultarla y activar un periférico dependiendo del resultado.
-
Algún programador-hacker-dios por aquí?
No ese avatar es del legendario Caronte de Nico digital wa. Sin duda es el avatar que mejor va con vos Caronte. Saludos.
-
Algún programador-hacker-dios por aquí?
Hacía tiempo que no lo encontraba. Cuando tenga tiempo, me haré una versión renovada del mismo casco.
-
Algún programador-hacker-dios por aquí?
No home, que perderá la gracia. Si quieres retocarlo, corrige el nombre de la izquierda, que está mal, cartoon.
-
Algún programador-hacker-dios por aquí?
Si es Caronte y está igualito, no ha cambiado de avatar, ahora que están cerrando www.3dsymax.org recordé nicodigital, fue donde empecé con Blender y aprendí mucho, bueno y donde discutia con Caronte por tonterías, vi que en la web dice bajo construcción, algún día volverá nicodigital?
-
Algún programador-hacker-dios por aquí?
Cita:
Algún día volverá nicodigital?
Posiblemente no, pero, quién sabe.
-
Algún programador-hacker-dios por aquí?
Cita:
Posiblemente no, pero, quién sabe.
La página de nicodigital dice en construccion, yo nunca participe en ella, pero es legendaria en los foros de Blender hispanos, será que vuelve?