Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-01-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por escafandra Ver Mensaje
Para evitar tan sencillo crack, la verificación debe estar en varios puntos distintos de código, nunca en una misma subrutina y aislarla de código cercano de mensajes de error.
Saludos.
Esto no entendí, ¿Es posible un ejemplo?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #2  
Antiguo 09-01-2016
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por Delphius Ver Mensaje
Esto no entendí, ¿Es posible un ejemplo?

Saludos,
hacer copias de la funcion que verifica si esta todo bien y llamarla desde diferentes puntos de codigo es a lo que se refiere
pero es una tecnica poco eficiente pues es tan simple como hacer un script con ollydbg que fixee esos Opcodes.
Responder Con Cita
  #3  
Antiguo 10-01-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Reasen Ver Mensaje
hacer copias de la funcion que verifica si esta todo bien y llamarla desde diferentes puntos de codigo es a lo que se refiere
pero es una tecnica poco eficiente pues es tan simple como hacer un script con ollydbg que fixee esos Opcodes.
En realidad no se trata de copiar la función sino de verificar en distintos puntos nuevamente. Para evitar los debugger hay formas de detectarlos y hacer que el código se comporte de forma diferente.

Saludos.
Responder Con Cita
  #4  
Antiguo 10-01-2016
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Cita:
Empezado por escafandra Ver Mensaje
En realidad no se trata de copiar la función sino de verificar en distintos puntos nuevamente. Para evitar los debugger hay formas de detectarlos y hacer que el código se comporte de forma diferente.

Saludos.
Cita:
Empezado por escafandra Ver Mensaje
Para evitar tan sencillo crack, la verificación debe estar en varios puntos distintos de código, nunca en una misma subrutina y aislarla de código cercano de mensajes de error.

Saludos.
A ver si logro entender entonces...

O sea, por ejemplo, En lugar de una función Verify() que regresa un boolean.... ¿Tendría que tener N funciones Verify()? ¿Tampoco debería evitarse hacer algo como esto?

Código Delphi [-]
if Verify(...)
   then ...
   else ShowMessage('Falla de verificación. Además texto en limpio como éste se lo puede leer facilmente en un debugger');

Y quizá algo más seguro sea:

Código Delphi [-]
if Verify(...)
  then ...
  else CryptAdvise(VarText);

procedure CryptAdvise(Text: string);
begin
  Crypt(Text, ThePrivateKey);
end;

Me interesa un poco el tema, pero yo estoy en cero en tema de seguridad anti-copias, anti-cracks, etc. Y por ello me quedé con la duda de a como va la cosa.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 10-01-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
A lo que se refiere es que no hagas esto:

Inicia programa --> validar licencia

Ya que es "facil" de encontrar en donde esta la funcion que verifica

Mas bien, hay que meter la validacion regada por todos lados

Hizo click en guardar como? -> Validar licencia
Apreto combinacion de teclas control+3 para usar x funcion? --> Validar licencia
Pidio imprimir? --> Validar

Y asi
Responder Con Cita
  #6  
Antiguo 11-01-2016
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
En realidad no se trata de copiar la función sino de verificar en distintos puntos nuevamente. Para evitar los debugger hay formas de detectarlos y hacer que el código se comporte de forma diferente.

Saludos.
Actualmente existe un plugin de ollydbg que oculta cualquier tecnica de anti-debugging en Ring0-3 que te puedas imaginar, lo unico que te queda es hacer la tecnica ParentProcess, te lo digo por experiencia.
Responder Con Cita
  #7  
Antiguo 11-01-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por Reasen Ver Mensaje
Actualmente existe un plugin de ollydbg que oculta cualquier tecnica de anti-debugging en Ring0-3 que te puedas imaginar, lo unico que te queda es hacer la tecnica ParentProcess, te lo digo por experiencia.
Te refieres a la técnica de Self-Debugging, o simplemente a averiguar el proceso padre. En este segundo caso te diré que desde Vista ers posible que una aplicación lanzadera engañe sobre el padre del proceso, aquí se discutió el tema.

Saludos.
Responder Con Cita
  #8  
Antiguo 11-01-2016
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Te refieres a la técnica de Self-Debugging, o simplemente a averiguar el proceso padre. En este segundo caso te diré que desde Vista ers posible que una aplicación lanzadera engañe sobre el padre del proceso, aquí se discutió el tema.

Saludos.
Ya me lo imaginaba, igualmente otra manera para evitar cracking es leer la memoria de una función para ver si es cambiada comprobándola por MD5, también se puede usar para la desencriptación de strings por lo que dañaría el programa si alguien parcheara algo.
Responder Con Cita
  #9  
Antiguo 13-01-2016
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Poder: 9
Reasen Va por buen camino
Cita:
Empezado por Reasen Ver Mensaje
Ya me lo imaginaba, igualmente otra manera para evitar cracking es leer la memoria de una función para ver si es cambiada comprobándola por MD5, también se puede usar para la desencriptación de strings por lo que dañaría el programa si alguien parcheara algo.
Por si alguien le interesa de que va deje un ejemplo en otro foro: https://forum.tuts4you.com/topic/378...itself-checks/
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como hacer un ejecutable unico para cada ordenador? negrokau Varios 1 14-10-2011 14:21:39
Ocultar información en .exe ó .dll JAV Varios 2 29-11-2007 23:25:06
Como obtener de la información de versión del ejecutable Alcolea Varios 1 23-11-2006 23:50:32
¿cómo crear un archivo ejecutable para aplicaciones en java? rls JAVA 11 12-07-2006 17:42:39
Como ocultar los discos duros mediante codigo ( Para Ciber) IcebergDelphi OOP 0 17-12-2004 19:00:43


La franja horaria es GMT +2. Ahora son las 14:41:06.


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