Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Cómo evitar que una DLL se ejecute antes que cualquier otra cosa de mi programa? (https://www.clubdelphi.com/foros/showthread.php?t=91087)

escafandra 10-11-2016 20:51:23

Aunque consigas evitar la carga de la dll maliciosa en el arranque de tu app, siempre se puede inyectar con un pequeño ejecutable. Esto quiere decir que no puedes quedarte en la defensa de la carga, has de ir más allá y cambiar el código de protección. Además deberás comprobar, en ese código, que no está cargada una dll no deseada. Puedes usar la API GetModuleFileName para ello pues te da la ruta completa de la dll. También puedes explorar las funciones que exporta. Un hook a la indocumentada ldrLoadDll también te puede ayudar a evitar cargas e inyecciones. Eso puede dificultar al crack en la investigación de un nuevo crack. Pero todo esto no quita para que no fortalezas y ofusques el sistema inicial de protección, es fundamental.

Saludos.

dec 10-11-2016 21:58:23

Hola a todos,

Cita:

Empezado por escafandra (Mensaje 510624)
Aunque consigas evitar la carga de la dll maliciosa en el arranque de tu app, siempre se puede inyectar con un pequeño ejecutable. Esto quiere decir que no puedes quedarte en la defensa de la carga, has de ir más allá y cambiar el código de protección. Además deberás comprobar, en ese código, que no está cargada una dll no deseada. Puedes usar la API GetModuleFileName para ello pues te da la ruta completa de la dll. También puedes explorar las funciones que exporta. Un hook a la indocumentada ldrLoadDll también te puede ayudar a evitar cargas e inyecciones. Eso puede dificultar al crack en la investigación de un nuevo crack. Pero todo esto no quita para que no fortalezas y ofusques el sistema inicial de protección, es fundamental.

Saludos.

Gracias escafandra. La verdad sea dicha, no estoy muy seguro de cómo fortalezer el sistema en cuestión, aunque, al comprobarse las licencias "online", ciertamente los "keygen" que habían creado en el pasado han dejado de funcionar... o sea que igual por ahí esto ya "podría servir". El problema está en que alguien "inyecte" cierto código que se salte dicha comprobación... yo creo que en ese caso lo daría por perdido, porque, ciertamente, este tipo de "usuarios" probablemente nunca serán clientes, así que, igual no merece la pena el tiempo ni el trabajo.

escafandra 10-11-2016 22:31:50

Cita:

Empezado por dec (Mensaje 510625)
Hola a todos,



Gracias escafandra. La verdad sea dicha, no estoy muy seguro de cómo fortalezer el sistema en cuestión, aunque, al comprobarse las licencias "online", ciertamente los "keygen" que habían creado en el pasado han dejado de funcionar... o sea que igual por ahí esto ya "podría servir". El problema está en que alguien "inyecte" cierto código que se salte dicha comprobación... yo creo que en ese caso lo daría por perdido, porque, ciertamente, este tipo de "usuarios" probablemente nunca serán clientes, así que, igual no merece la pena el tiempo ni el trabajo.

El problema es que ese tipo de usuarios son los que publicarán o difundirán el crack. Puedes crear un sistema anti-inyección realizando un control exhaustivo de la carga de dll que impida la carga de la no deseada, al fin y al cabo toda inyección realiza un ldrLoadDll que puedes interceptar, si quieres información sobre el tema te la facilito.

Saludos.

mamcx 10-11-2016 23:35:33

Cita:

Empezado por escafandra (Mensaje 510626)
El problema es que ese tipo de usuarios son los que publicarán o difundirán el crack.

No creo que sea tan practico intentar "ganar" el pulso.

Me hace recordar a:

http://www.codeproject.com/Articles/...ntional-Wisdom

---
Una forma de verlo es que cada descarga es una perdida. Es cierto que es muy dificil que se conviertan de pago asi como asi.

----
Otra forma de verlo es que es publicidad.

Seria interesante que tantas descargas genera el sitio. Ves forma de estimarlo?

---
Ahora, digamos que en vez de pelear contra un hacker en un area en la que no eres experto, te pones a pelear por "convertir" los clientes de no pago a pago. En este negocio, lograr un <10% en conversiones se considera "normal".

Asi que en vez de invertir en anti-hacking, invierte en un actualizador automatico.

Que NO INTENTE DESACTIVAR EL HACK.

Entonces, empiezas a recolectar algunos datos utiles. (Por ejemplo, sabes cuantos clientes/instalaciones tienes?). Para no hacerlo intrusivo, puedes simplemente hacer el logeo de la informacion en el servidor que tiene la descarga (sino te parece estar haciendo "ping" desde el cliente) en cada vez que haya una actualizacion.

Asi obtienes la primera metrica util: Cuantos clientes hay por ahi vs. Cuanto se supone que has perdido.

Eso te dejara ver si la pelea tiene o no tiene sentido.

Si no tiene sentido, mejor que te sigan distribuyendo la app lo mas posible!

Luego, si tiene sentido, empiezas a utilizar tecnicas de conversion de clientes. Hay que estudiar el tema, en especial si como intuyo no quieres ponerte de spammer sino hacerlo bien.

---

Por lo demas, darle mas publicidad a la app, y quizas mirar la forma de ganar un cliente corporativo (quizas un distribuidor?) terminaria siendo mas rentable a largo plazo.

dec 11-11-2016 07:56:28

Hola,

Cita:

Empezado por escafandra (Mensaje 510626)
El problema es que ese tipo de usuarios son los que publicarán o difundirán el crack. Puedes crear un sistema anti-inyección realizando un control exhaustivo de la carga de dll que impida la carga de la no deseada, al fin y al cabo toda inyección realiza un ldrLoadDll que puedes interceptar, si quieres información sobre el tema te la facilito.

Saludos.

¡Gracias por comentar escafandra! Yo trataba de indicar el hecho de que, en este caso, el "vector de ataque" (siempre quise decir esto...) se basa en una DLL, pero, mañana puede ser usando otra DLL... o un "parche" desde otro ejecutable, o... en fin, es un camino sin retorno en el que uno debe acompañar al "cracker" hasta el final, y, ciertamente, ¿para conseguir qué?

Sea como sea, si no me equivoco, este "cracker" en concreto, no parece haber sacado aún el crack "cinco", o sea,... igual para él ya no es posible seguir usando el mismo "vector de ataque"... o bien es que sencillamente no encontrado el "crack" todavía pero este ya existe y está publicado por ahí. ¡Ya veremos! :)

dec 11-11-2016 08:04:01

Hola a todos,

Gracias por comentar Mario. En general estoy de acuerdo contigo. Ahora estoy leyendo el artículo que enlazas. Seguramente después comente más respecto de lo que dices tú y/o el artículo. :)

dec 11-11-2016 09:14:16

Hola a todos,

Leído (yo creo que releído) el artículo que enlaza Mario, este resume muy bien lo que pienso sobre el asunto de la "piratería", ciertamente. Algunas cosas son matizables, por ejemplo, él dice que tal vez, cuando uno habla de "pan" quiere decir "dinero", mientras que, muchos "piratas", cuando hablan de "pan" quieren decir "pan"... Bien. Yo discrepo en esto. Ciertamente, vivo (¡sobrevivo!) en un país del llamado "primer mundo", pero, me gusta utilizar las palabras con propiedad también, y, puedo asegurar que cuando yo hablo de "pan"... estoy hablando del mismo "pan" del que hable cualquiera. No sé si me explico. Pero en fin, seguramente esto mismo es matizable también...

Pero el artículo deja algunas cosas claras que, en realidad, ya tenía yo claras: seguramente leí el artículo hace tiempo también enlazado por Mario. Yo creo que mis esfuerzos contra la piratería esta semana no pueden ni deben ir mucho más allá por las razones mencionadas por otro lado en el mismo artículo. A nivel personal, no me gusta incluir demasiado código específico "antipiratería", porque, ¿y si este código funciona (por error) en algún cliente legítimo? ¿Y si este código causa algún problema, por ejemplo, requiere de alguna DLL, que antes el programa no tenía? Esto también podría afectar a clientes legítimos. ¿Y si el código ralentiza el programa? Y así podríamos seguir.

Yo creo que he tomado una buena dirección validando las licencias "online". De este modo y como ya he dicho, los "keygen" que había para mis programas ya no funcionan, directamente. Además, el hecho de tener una base de datos "online" con las licencias y clientes, también me ha permitido añadir una sección en mi sitio web "sólo para clientes", que, tampoco puede "crackearse", o, al menos no tiene nada que ver con el "crack" de los programas. Actualmente en dicha "sección de clientes" básicamente estos pueden descargar sus licencias (que no moco de pavo, puesto que están ahí disponibles "online" para cuando las necesiten) y en el futuro intentaré añadir más "valor añadido" (siempre quise decir esto...).

¿Más cosas positivas del artículo en cuestión? Pues, también lo había pensado, pero, el artículo vuelve a recordármelo: ¿qué tal si intento poner los precios de mis productos acordes a cada país? Es decir, actualmente, ha de pagar lo mismo un suizo acaso millonario (que oyes, bienvenido sea) que un ugandés acaso no tan rico (pero bienvenido). Creo que esto sería complicado de hacer, y, tampoco tengo muy claro cómo tendría yo que lidiar con este tipo de ventas a nivel fiscal, pero, desde luego, suena muy interesante poner precios a los productos acordes a la generalidad de las gentes en un determinado país. Por lo demás sigo las instrucciones del artículo ya mencionado en bastantes puntos y coincido en prácticamente todo con el autor. :)

dec 13-11-2016 14:25:18

Hola a todos,

Pues nada, informaros de que, según me cuentan (un infiltrado que tengo en el foro "warez" donde el "cracker" en cuestión publica) este hombre ya no puede ir más allá, o sea, de momento, no habrá "crack" número cuatro por parte de este hombre, al menos. Tal vez mi información no es fiable del todo. Seguramente otra persona o esta misma podrá seguir adelante en un momento dado. La solución que estoy empleando ahora mismo es la que ha propuesto Neftalí, o sea, cerrar el programa si se encuentra cargada cualquier DLL desde el directorio de los programas. :)

Neftali [Germán.Estévez] 13-11-2016 18:17:35

^\||/^\||/^\||/
Me alegro.
Aunque sólo sea temporal, al menos a ver si dura.

Otra cosa he de decir David, a raiz de todo esto.
Siempre he dicho que hay programas que se protegen solos, porque son tan malos que no vale la pena crackerlos.

Creo que en tu caso es todo lo contrario, y el hecho de que alguien esté poniendo tanto empeño en ello, habla directamente de la valía del producto.

dec 13-11-2016 19:26:16

¡Hola a todos!

Cita:

Empezado por Neftali (Mensaje 510698)
^\||/^\||/^\||/
Me alegro.
Aunque sólo sea temporal, al menos a ver si dura.

Otra cosa he de decir David, a raiz de todo esto.
Siempre he dicho que hay programas que se protegen solos, porque son tan malos que no vale la pena crackerlos.

Creo que en tu caso es todo lo contrario, y el hecho de que alguien esté poniendo tanto empeño en ello, habla directamente de la valía del producto.

Muchas gracias Germán, majo. Cómo se nota que miras mi trabajo con buenos ojos. :)

Y muchas gracias también por la solución, pues, ciertamente, es la que ahora mismo aplico. :)

Casimiro Noteví 13-11-2016 23:45:35

+1 ^\||/^\||/^\||/

escafandra 14-11-2016 02:22:18

El siguiente artículo es de recomendable lectura para el tema en cuestión: Carga segura de las bibliotecas para evitar ataques de precarga de DLL

Saludos.

dec 14-11-2016 07:58:52

Cita:

Empezado por escafandra (Mensaje 510710)
El siguiente artículo es de recomendable lectura para el tema en cuestión: Carga segura de las bibliotecas para evitar ataques de precarga de DLL

Saludos.

Gracias escafandra. :) Leído el artículo se hace hincapié en el uso de "SetDLLDirectory" para eliminar el directorio "actual" de la búsqueda de DLL. Sin embargo, en el mismo artículo se indica que esto no sirve si el "atacante" tiene acceso al directorio de la aplicación, que, es precisamente donde se situaban los "cracks" en mi caso. Claro, no estamos hablando de ningún "atacante", sino de un "crack" con unas instrucciones precisas que indican dónde copiar la DLL "maliciosa": como será el propio usuario (y no un "atacante") el que lo haga, poco podemos hacer para evitarlo.

También he probado (además de con "SetDLLDirectory") probé con "SetDefaultDllDirectories(LOAD_LIBRARY_SEARCH_SYSTEM32)", pero, aunque se ejecuta correctamente, no parece surtir el efecto que buscamos, pues la DLL "maliciosa" consigue ser cargada, aunque, ignoro porqué, en este escenario podemos comprobar su existencia y cerrar el programa. La solución de Neftalí se me antoja la más acertada mientras la DLL en cuestión no pueda evitar su correcto funcionamiento: en este caso nos da igual que la DLL se cargue... porque cerraremos el programa en tal caso.

En fin, según parece, el "cracker" hasta ahora encargado no puede seguir adelante, tal vez porque quiera ser elegante y encontrar un método que no "toque" los ejecutables de los programas. Ya veremos. :)

roman 14-11-2016 16:05:08

De verdad, hay veces que parece que no me leen :rolleyes: :p:

Cita:

Empezado por roman (Mensaje 510607)
Creo que hay que tener cuidado aquí. Hasta donde entiendo, el primer directorio donde se busca una dll es el current working directory (CWD) o directorio de trabajo actual, que no necesariamente coincide con el directorio donde se ubica el ejecutable. Por ejemplo aquí, donde se habla del DLL preloading, menciona una prueba abriendo la aplicación haciendo doble clic sobre un archivo asociado a la aplicación (en caso de que la aplicación maneje archivos) en cuyo caso, el CWD será el directorio donde se ubica el archivo.

LineComment Saludos

LineComment Saludos

dec 14-11-2016 16:53:47

Hola a todos,

Cita:

Empezado por roman (Mensaje 510728)
De verdad, hay veces que parece que no me leen :rolleyes: :p:

LineComment Saludos

Sí hombre, sí que se te lee... ejem,... ¿te refieres a que acaso sería bueno comprobar si, además de en el directorio de la aplicación, alguna DLL se ha cargado desde el "directorio actual"? ¿No podría causar esto algún problema que acaso se solucionase cambiando nosotros mismos dicho directorio al principio?

:)

Neftali [Germán.Estévez] 14-11-2016 16:56:32

Cita:

Empezado por roman (Mensaje 510728)
De verdad, hay veces que parece que no me leen :rolleyes: :p:

Ya sabes que no.
El problema es que en este hilo se nos ha notado mucho... :o:o:o

roman 14-11-2016 17:00:41

Cita:

Empezado por dec (Mensaje 510732)
Hola a todos,



Sí hombre, sí que se te lee... ejem,... ¿te refieres a que acaso sería bueno comprobar si, además de en el directorio de la aplicación, alguna DLL se ha cargado desde el "directorio actual"? ¿No podría causar esto algún problema que acaso se solucionase cambiando nosotros mismos dicho directorio al principio?

:)

Me refiero a que el enlace que pone escafandra está desde mi mensaje referido ;) Ahí donde dice Por ejemplo :D

LineComment Saludos

dec 14-11-2016 17:25:05

Cita:

Empezado por roman (Mensaje 510734)
Me refiero a que el enlace que pone escafandra está desde mi mensaje referido ;) Ahí donde dice Por ejemplo :D

LineComment Saludos

Bueno, al menos no necesitas que nadie te dé la razón... :D :D :D

dec 14-11-2016 18:03:30

Hola a todos,

En todo caso, Román, ¿tal vez sería buena idea incluir el "directorio actual" entre los excluídos (actualmente sólo el de la aplicación) como fuente de DLLs? No me queda muy claro el asunto... aunque, bueno, de momento el "cracker" no lo ha visto así, quiero decir, igual conviene esperarse sin más al próximo "ataque", si es que existe, y, si va en dicha dirección...

Edición: Pensándolo dos veces, para excluir el directorio actual podría usarse la función "SetDllDirectory" según la documentación...

dec 15-11-2016 11:47:27

Hola a todos,

Estoy alucinando... me he registrado en el foro del "cracker", y, lo primero que sorprende es la actividad de dicho foro: cientos de usuarios conectados y cientos de miles de mensajes publicados. Curiosamente, he podido leer el hilo en donde se trata de "crackear" mis productos: es increíble la falta de respeto con la que tratan mi trabajo, pero, también mi persona. Baste con citar el último mensaje del propio "cracker":

Cita:

Anyway, i think we'll find a way to make this guy stop bothering a little bit.
O sea... que cuando trato de proteger mi trabajo, al que llevo dedicado años (no porque yo quiera, sino porque los años pasan) es una molestia para este hombre, les estoy molestando, así que pronto verán cómo pueden hacer para que deje de molestarlos. No cito más mensajes, pero, todos siguen más o menos el mismo camino: el "cracker" es ponderado por el resto de usuarios, "muchas gracias", "eres el mejor", "gran trabajo"...

Je je je... me tengo que tomar esto a cachondeo y así lo hago de modo que ahora mismo me estoy partiendo de la risa. :D :D :D

He dudado entre si contestar en el hilo o no hacerlo... pero como que paso: que se diviertan crackeando programas y sigan considerando a sus autores "molestias" que quitar de en medio... ¡qué cosas! :)

Casimiro Noteví 15-11-2016 12:05:22

Son niños con poca autoestima que necesitan los mensajes de aprobación de sus conocidos para sentirses valorados :rolleyes:, mejor ni hacerles caso., ya madurarán.

dec 15-11-2016 12:23:25

3 Archivos Adjunto(s)
Hola,

Cita:

Empezado por Casimiro Notevi (Mensaje 510775)
Son niños con poca autoestima que necesitan los mensajes de aprobación de sus conocidos para sentirses valorados :rolleyes:, mejor ni hacerles caso., ya madurarán.

Pues hay una industria detrás... pero sí, a mí me ha dado esa misma impresión Casimiro. ¡Bien por ellos! :)

Casimiro Noteví 15-11-2016 12:39:03

Es cierto que disgusta estas cosas, pero seguramente hay que verlo desde otro punto de vista, ya sabes:
- ¿Cuántos de esos pensaban pagar una licencia de tus productos?
- ¿Cuántas personas usarán tus productos porque pueden aplicar el parche en lugar de pagar la licencia?
Puede que esto sea más una publicidad que un contratiempo.

Neftali [Germán.Estévez] 15-11-2016 12:50:11

:D:D:D
Dice que no va a perder tiempo... Que tiene mucho trabajo que hacer.

dec 15-11-2016 12:53:22

Hola,

Cita:

Empezado por Casimiro Notevi (Mensaje 510777)
Es cierto que disgusta estas cosas, pero seguramente hay que verlo desde otro punto de vista, ya sabes:
- ¿Cuántos de esos pensaban pagar una licencia de tus productos?
- ¿Cuántas personas usarán tus productos porque pueden aplicar el parche en lugar de pagar la licencia?
Puede que esto sea más una publicidad que un contratiempo.

Eso está claro Casimiro: hay que centrarse en los programas y clientes y dejarse de más historias.

dec 15-11-2016 13:09:57

Cita:

Empezado por Neftali (Mensaje 510779)
:D:D:D
Dice que no va a perder tiempo... Que tiene mucho trabajo que hacer.

:D :D :D :D :D

Casimiro Noteví 15-11-2016 13:47:19

Es que la mayoría de "juankers" de hoy en día son realmente "copiacódigos".

roman 15-11-2016 15:20:33

¡Vaya! O sea, ¿hasta hay un foro dedicado a ti? :D ¡Qué bien! Eso, realmente habla bien de ti, así que no te molestes demasiado.

A mi lo que me llama mucho la atención es: ¿¡Cómo haces para tomar un screen shot de una pantalla tan larga!? :eek:

LineComment Saludos

roman 15-11-2016 15:25:01

¡Ah! Y además ya te descubrieron :eek:

LineComment Saludos

dec 15-11-2016 18:21:25

Hola a todos,

Cita:

Empezado por roman (Mensaje 510785)
¡Vaya! O sea, ¿hasta hay un foro dedicado a ti? :D ¡Qué bien! Eso, realmente habla bien de ti, así que no te molestes demasiado.

A mi lo que me llama mucho la atención es: ¿¡Cómo haces para tomar un screen shot de una pantalla tan larga!? :eek:

LineComment Saludos

Pues hacer la captura tan larga tiene su miga... he usado la extensión de Firefox que proporciona el servicio pageshot.net, pero, no el botón que tiene para capturar "toda la página", porque no la captura entera. Sin embargo, la herramienta de captura conque cuenta la extensión, o sea, un "cuadrado" que podemos redimensionar, sí que permite "alargarnos" haciendo "scroll" por toda la pantalla, de modo que así es como las he obtenido. :)

Cita:

Empezado por roman (Mensaje 510786)
¡Ah! Y además ya te descubrieron :eek:

LineComment Saludos

¿Cómo es eso? Me descubren y no me entero. :D :D

roman 15-11-2016 19:03:26

Cita:

Empezado por dec (Mensaje 510792)
¿Cómo es eso? Me descubren y no me entero. :D :D

Ja, ja. Pues sí, en una de las imágenes que pusiste dice algo como esto:

Cita:

- He's moving fast
- Yes, I think he is among us
;)

LineComment Saludos

dec 15-11-2016 19:32:09

Cita:

Empezado por roman (Mensaje 510793)
Ja, ja. Pues sí, en una de las imágenes que pusiste dice algo como esto:

Cita:

- He's moving fast
- Yes, I think he is among us
;)

LineComment Saludos

Je je je... :)

Reasen 18-11-2016 04:44:06

Hola, yo una de las cosas que hago para proteger mis aplicaciones es mantener strings importantes que hacen que funcione correctamente (sin esas strings haría crash) online y solo descargarlas si el usuario se loguea en el sistema de licencias correctamente (reponerlas en un array) y desencriptarlas dependiendo del HWID de la máquina.
(previamente el sistema de licencias las encripta online)

Que consigo con eso? Pues, primeramente el cracker aunque consiga "bypassear" todo, el programa estará incompleto porque no se ha logueado correctamente en su licencia.

Para crackearte lo que tendría que hacer es primeramente tener una licencia 100% válida y luego ir reponiendo esos trozos de código uno por uno(strings), no podrá hacer un emulador emulando el sistema de login porque las strings se envían encriptadas de diferente manera en cada PC, luego conque hagas algo mas personalizado extra deberia bastar, saludos.

dec 18-11-2016 11:56:34

¡Hola a todos!

Cita:

Empezado por Reasen (Mensaje 510909)
Hola, yo una de las cosas que hago para proteger mis aplicaciones es mantener strings importantes que hacen que funcione correctamente (sin esas strings haría crash) online y solo descargarlas si el usuario se loguea en el sistema de licencias correctamente (reponerlas en un array) y desencriptarlas dependiendo del HWID de la máquina.
(previamente el sistema de licencias las encripta online)

Que consigo con eso? Pues, primeramente el cracker aunque consiga "bypassear" todo, el programa estará incompleto porque no se ha logueado correctamente en su licencia.

Para crackearte lo que tendría que hacer es primeramente tener una licencia 100% válida y luego ir reponiendo esos trozos de código uno por uno(strings), no podrá hacer un emulador emulando el sistema de login porque las strings se envían encriptadas de diferente manera en cada PC, luego conque hagas algo mas personalizado extra deberia bastar, saludos.

Suena interesante, ciertamente. Complejo (claro, faltan los detalles) pero curioso... :)

roman 18-11-2016 16:21:46

Bueno, y a todo esto, ¿tienes alguna idea de cómo se aprovecharon de la DLL para registrarse?

LineComment Saludos

Reasen 18-11-2016 16:30:38

Cita:

Empezado por roman (Mensaje 510927)
Bueno, y a todo esto, ¿tienes alguna idea de cómo se aprovecharon de la DLL para registrarse?

LineComment Saludos

En mi opinión yo creo que el cracker podría haberlo hecho de otras maneras, no tiene caso tratar de parchear 1 de 10000 maneras posibles, quizás se consiga evitar la carga de la DLL pero eso no impide que edite el código ensamblador del software en tiempo real... Por eso recomiendo hacerlo de la manera que he comentado anteriormente, encierra bastante sus posibilidades.

Casimiro Noteví 18-11-2016 17:19:06

Es que ese "cracker" es de los malos, es el típico "copiacódigo", y como no le ha funcionado eso... se quedó sin alternativas.

roman 18-11-2016 17:22:51

Es que no sé porqué dices eso :confused: ¿Cómo sabes que es de los malos? ¿Cómo logró el registro? ¡Para mi es chino! Y si lees los mensajes que colocó dec aquí (de los crackers) verás la razón por la que han parado (momentáneamente).

LineComment Saludos

Casimiro Noteví 18-11-2016 18:00:02

Cita:

Empezado por roman (Mensaje 510944)
Es que no sé porqué dices eso :confused: ¿Cómo sabes que es de los malos? ¿Cómo logró el registro? ¡Para mi es chino! Y si lees los mensajes que colocó dec aquí (de los crackers) verás la razón por la que han parado (momentáneamente).
LineComment Saludos

Me han faltado los emoticonos, era broma, modo irónico :rolleyes::)

dec 18-11-2016 18:40:36

Hola a todos,

Realmente, yo no sé qué hacía este hombre en la DLL para "cracker" el programa. Me propuse descomprimirla (está comprimida con UPX si no me equivoco) y echar un vistazo, pero, la verdad, creo que no sabría manejarme. Lo que yo supongo es que, de alguna forma, el "cracker" puede cambiar cierta variable del programa que, en efecto, determina si está registrado o no lo está. Esta variable no debería valer "True" excepto si el usuario registra el programa con los datos de una licencia válida. Esta operación se realiza "online". Bueno, en realidad "online" se comprueba que la licencia introducida es válida, pero, nada más.

Ahora bien, mis programas no requiren del usuario que lo registren cada vez que lo utilizan, como es lógico y normal. Cuando se lleva a cabo la comprobación antes mencionada, si resulta correcta, se guarda en el PC del usuario un archivo de licencia cifrado por el programa. Quiere esto decir, que, al ejecutarse el programa, si existe dicho archivo y su contenido es el correcto, la variable en cuestión se torna "True" y el programa aparecerá registrado. Ahora bien, si conseguimos cambiar la mencionada variable al principio del programa, por ejemplo, si conseguimos ponerla a "True", el programa aparecerá registrado sin más.

Tal vez no ande lo dicho muy lejos de lo que el "cracker" hacía. Pero lo que dice el compañero Reasen va más allá. En efecto, si el programa descarga algo (ciertas cadenas de texto) de internet que al cabo le hace funcionarr bien, hasta que no se descarguen dichas cadenas no funcionará bien. ¿Podrá el "cracker" atacar el asunto de otro modo? A bote pronto se me ocurre que depende del uso de las "cadenas" descargadas... si dichas cadenas se usan, como en el caso de mis programas, para establecer cierta variable, entonces el "cracker" acaso podría igualmente establecer dicha variable.

Lo que me parece interesante es que dichas cadenas formen parte de alguna manera del código del programa... porque entonces no veo yo cómo se puede atacar eso... ahora bien, ¿no hay forma de ataque posible entonces? No digo eso, sino que a mí no se me ocurre ahora, pero, si el método en cuestión fuese infalible... ¿cómo es que no está extendido entre los programadores como tal método infalible? Aunque claro está que tampoco hace falta que fuese infalible: bastaría con dejar a determinados "crackers" fuera de juego ante el necesario ataque. En fin,... tal vez el compañero Reasen quiera dar algunos detalles más. :)


La franja horaria es GMT +2. Ahora son las 18:10:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi