![]() |
![]() |
| 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
|
||||
|
||||
|
Hola,
Cita:
Pero no es igual que te digan, copia esta DLL en el directorio del programa, a que te digan, sustituye la DLL del sistema X por esta otra... que yo te doy... algunos usuarios se lo pensarían, al menos. Tal vez no mucho. ![]() |
|
#2
|
||||
|
||||
|
Supongo que el resultado es similar al que finalmente has utilizado, pero otra cosa que podrías hacer aprovechando que tu programa (por ahora) no utiliza DLL's diseñadas por ti, es lo siguiente:
__________________
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. |
|
#3
|
||||
|
||||
|
Hola,
Muchas gracias Neftalí, tengo que probar ese código. ![]() |
|
#4
|
||||
|
||||
|
Cita:
LineComment Saludos |
|
#5
|
||||
|
||||
|
¡Hola a todos!
Gracias al código de Neftalí acabo de descubrir que la función "SetDefaultDllDirectories" no funciona, o, mejor dicho, no lo hace como se espera. Esto se demuestra situando la DLL del "crack" en el directorio del programa: incluso después de ejecutar la función susomentada (recordemos que sin errores, o sea, se ejecuta correctamente) la DLL del "crack" (situada en el directorio del programa) aparece listada por el código de Neftalí. * O sea, aunque usando la función que no funciona... puedo comprobar si existe la DLL en el directorio del programa, ya he dicho que esto no me convence y que creo que el siguiente "crack" podría con ello. El código que propone Neftalí me parece mejor que usar la función "SetDefaultDllDirectories" (ojo, al menos en mi caso particular) puesto que el "cracker" no consiguiese saltárselo de otra forma que no fuese tocando el propio ejecutable. *También se lista la DLL "shfolder.dll" del directorio del sistema, pero, más abajo en el listado... |
|
#6
|
||||
|
||||
|
Hola,
Probado el código de Neftalí este funciona como se espera y me convence más que el uso de la función "SetDefaultDllDirectories" y la posterior comprobación de la existencia de la DLL maliciosa. El código podría quedar poco más o menos que como se ve abajo, siendo la unidad en cuestión situada la primera en el "uses" del archivo de proyecto del programa:
Dicho código supone que en el directorio del ejecutable del programa no debe existir DLL alguna. Me queda la duda de si debo cerrar el "handle" antes del "Halt"... |
|
#7
|
||||
|
||||
|
¡Hola!
Acabo de actualizar todos los programas (pero sin cambiar la versión) para usar el código anterior, en primer lugar, porque creo que puede salvar el "ataque" mediante DLL situadas en el directorio del programa (al menos funciona con el último "crack" conocido), y, en segundo lugar, por jorobar un poco al "cracker", hombre, a ver si ya estaba trabajando sobre el código anterior y su trabajo no sirve para este nuevo código. El que no se consuela es porque no quiere, ¿eh? Je je je. ![]() |
|
#8
|
||||
|
||||
|
Una cosa.
Prueba a abrir el programa, ejecutando directamente un fichero .AB (Application Builder File) que tengas en cualquier directorio y colocando junto a ese fichero la DLL "parcheada". ![]() ![]() ![]() Tal vez habrá que añadirle el "Directorio actual" además del de la aplicación.
__________________
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. |
|
#9
|
||||
|
||||
|
De verdad, hay veces que parece que no me leen
:Cita:
|
|
#10
|
||||
|
||||
|
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? ![]() |
|
#11
|
||||
|
||||
|
Cita:
Ahí donde dice Por ejemplo ![]() LineComment Saludos |
|
#12
|
||||
|
||||
|
Cita:
![]() |
|
#13
|
||||
|
||||
|
Ya sabes que no.
El problema es que en este hilo se nos ha notado mucho... ![]() ![]() ![]()
__________________
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. |
|
#14
|
||||
|
||||
|
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. |
|
#15
|
||||
|
||||
|
Hola a todos,
Cita:
|
|
#16
|
||||
|
||||
|
Cita:
Saludos. |
|
#17
|
||||
|
||||
|
Cita:
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.
__________________
El malabarista. |
|
#18
|
||||
|
||||
|
Hola,
Cita:
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! ![]() |
|
#19
|
||||
|
||||
|
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. ![]() |
|
#20
|
||||
|
||||
|
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. ![]() Última edición por dec fecha: 11-11-2016 a las 11:06:00. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Como evitar q se ejecute el Explorer.exe | ing_arismendy | API de Windows | 3 | 02-02-2009 07:13:08 |
| Como evitar que una apicacion se ejecute dos veces. | manitoba | C++ Builder | 4 | 28-05-2007 17:50:04 |
| Como evitar que se ejecute el msn | JODELSA | Varios | 7 | 26-12-2005 15:17:22 |
| Cualquier cosa me puede servir | cmgenny | Conexión con bases de datos | 1 | 02-07-2003 23:27:24 |
|