![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
No entendí esto último. ¿Funcionó o no?
// Saludos |
|
#2
|
||||
|
||||
|
Hola,
No Román; no me funcionó. ![]() |
|
#3
|
||||
|
||||
|
Pues es raro. Yo hice una tímida (e ingenua) prueba así: dado que el problema era que el dato se pasaba al stack al pasar el parámetro, supuse que bastaba llamar una segunda vez al procedimiento con un valor "borrador": Resultado('XXXXXXX'),
pero el condenado pepe seguía ahí. Además de que el pepe entra en un Edit, y ése también contribuye, aún borrando el edit, me parece que pepe sigue ahí. // Saludos |
|
#4
|
||||
|
||||
|
Hola,
Pues sí. La verdad es que estoy más perdido que un pavo en un garaje. Alguna forma ha de haber de lograr hacer desaparecer de la memoria el número de serie correcto una vez utilizado por el programa. Pero a mí personalmente no se me ocurre ahora mismo ninguna, y es que todo esto de la pila, el stack, la memoria RAM, etc., etc., es nuevo para mí, lo reconozco, siempre me he movido en otro nivel... para mi mal, probablemente. ![]() |
|
#5
|
||||
|
||||
|
¿Y por qué no 'escondes' a Pepe?, un xor a nivel de bits, por decir algo, para que no se sepa qué es, quedarán caracteres 'extraños'.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#6
|
||||
|
||||
|
Cita:
En lugar de borrarlo, que no aparezca. Tal vez me he perdido algo, pero creo que es posible... Se trata de hacer el cálculo sin asignar el SN en ningun sitio. Por ejemplo, este programa; He seguido los pasos (con el WinHex) para encontrar en Serial Correcto en memoria y yo no lo veo. El procedimiento de cálculo es el siguiente:
Como véis es muy "cutre", pero el número correcto no se asigna.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#7
|
||||
|
||||
|
Dista mucho de ser infalible (1) y (2), pero creo que la solución puede ir por aquí.
(1) Comprobación de la longitud. (pepito + palotes); Se pueden ver los registros con los valores 7 y 6 (de ambas longitudes), la resta y la comparación con 2. (2) Comprobación de caracteres 1 a 1. (1234 + casaca); Se puede ver cómo empieza a comparar "1" y "c" y el salto que nos lleva al mensaje de fallo. Creo que la idea es buena.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#8
|
||||
|
||||
|
Hola,
No lo cojo Neftalí. En tu anterior ejemplo (que te agradezco) según se ve en el código puede registrarse el programa con el usuario "pepe" y el número de serie "pepeSN". Claro que lo sé porque tengo acceso al código fuente, en esto estamos de acuerdo. Yo comprendo que ha de haber alguna forma de hacer lo que necesito, puesto que hay programas que me consta no caen en la "trampa" en la que cae el mío. Sin embargo por más que lo intento aún no consigo resultados. Ten en cuenta que no se trata de comparar el valor "clave de usuario" y "número de serie". Se trata de que a una clave de usuario dada le corresponde un número de serie. El programa se encarga, a partir de la clave de usuario y un número "base", se encarga, digo, de generar el número de serie. Yo tengo el programa y un generador de números de serie, que es otro programa. Ambos comparten la unidad "GenerarSerial" y en esta unidad hay una clase con dos métodos: "CompararSerials" y "GeneralSerial". Cuando ejecuto el generador lo que estoy haciendo es obtener un número de serie según la clave de un usuario. El usuario me escribe: "Oyes David, este programa está molón, acabo de ingresarte en tu cuenta 1.000.000 de dólares, espero que sea suficiente para que me envíes un número de serie a nombre de "Pepe Rico". Yo cojo el Generador e introduzco el número base del programa y la clave de usuario "Pepe Rico". El Generador me genera (toma ya) un número de serie para esa clave y ese número base y yo se lo mando a Pepe Rico: "Hola Pepe, recibido el millón ahí te va el número de serie". El programa (ya no el Generador de "Serials"), cuando Pepe Rico introduzca su clave de usuario y su número de serie podrá comprobar si este último se corresponde con el que tiene que ser puesto que podrá calcular (como el Generador) el correcto en base al número base y a la clave de usuario introducida. Hasta ahí bien. Todo es correcto. ¿Todo? No. Porque que el Generador deje en memoria el número de serie correcto no importa. De hecho tiene que ofrecerme ese número de serie correcto, tiene que dejarme "copiarlo" (de hecho se muestra en un "TEdit") para que yo pueda mandárselo a Pepe Rico que para eso pagó el millón de rupias. Ahora bien, el programa, el de Pepe Rico, no el Generador, no debe (y no lo hace) mostrar el número de serie correcto al usuario... ¡pero este se queda en la memoria! Y tal vez Pepe Rico no, pero algún otro usuario conseguirá el número de serie correcto a poco que eche un vistazo... Lo último que he probado ha sido el "CheckSum", el "hash" del número de serie, pero es que no salimos del problema: Yo puedo comparar el "CheckSum" del número de serie del usuario y del correcto, pero si puedo hacer esto último es porque he generado el número de serie correcto, y, según parece, a poco que esto se haga y se haga donde se haga ya aparecerá en memoria... irremediablemente. Tal vez es que el planteamiento es el equivocado. Ya digo que todo mi "sistema de generación y comprobación de números de serie" se basa en el código del componente "TJvSerialMaker" de la Jedi VCL. Pero entonces es que todo programa que haga uso de este componente está comprometido en lo dicho: mostrará el número de serie correcto en la memoria. Tal vez sea esto y no tenga remedio porque es un mal planteamiento o no está lo suficientemente pensado o simplemente es algo sencillo, de andar por casa, puesto que a Pepe Rico probablemente no mirará la memoria RAM ni sabrá siquiera que algo así existe y se puede mirar... ¡Arrggggggggggggggggggggg! ![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| eliminar datos con dbgrid | UREÑA | Conexión con bases de datos | 20 | 30-03-2007 23:41:32 |
| Eliminar Datos eficientemente | k_rito | Conexión con bases de datos | 5 | 27-11-2006 00:44:45 |
| Cómo obtener ciertos datos de los archivos ejecutables y librerías | StartKill | Varios | 1 | 14-08-2006 23:10:01 |
| Eliminar del memoria los querys | Aura | OOP | 4 | 01-04-2004 17:40:40 |
| Eliminar datos de una tabla DBF | vicvil | Tablas planas | 4 | 16-05-2003 21:17:46 |
|