Sugerencias para hacer dificil el crackeo Help

Iniciado por Maurice_Lupin, 19 Enero 2012, 18:04 PM

0 Miembros y 2 Visitantes están viendo este tema.

Maurice_Lupin

Si alguien puede comentar su experiencia, toda sugerencia es bienvenida. No me refiero netamente a codigo, algún link que puedan compartir por ejm.

Saludos  ;D
Un error se comete al equivocarse.

MCKSys Argentina

Lo primero que se me ocurre:

- Compilar en PCODE
- cifrar todos los strings
- Usar algun packer (o crear uno custom) que tenga CRC del codigo (para evitar parcheos)
- De por si el EXE deberia estar cambiado en alguna forma para evitar el uso de VBDecompiler.
- Si tiene rutina de registracion:
    - Evitar el uso de la famosa variable "IsRegistered"
    - La rutina debe ser larga y compleja. Incluyendo basura y calculos innecesarios para hacer mas dificil el reverseo.
    - Chequear varias veces usando la rutina (evitar guardar resultados en variables)
    - Hacer chequeos internos buscando "irregularidades" en la registracion (por ej. si se usa el registro, verificar que el proggie no este registrado y que el reg no tenga nada (deteccion de parcheo))
    - Si se detecta parche, no mostrar mensajes que alerten que se detecto una copia "pirata". Mejor, modificar el funcionamiento para que haga cosas "sin sentido" (por ej. si el proggie hace calculos, hacer que haga mal los calculos si se detecta el parcheo)

Por ahora, eso me viene a la mente...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Karcrack

Aunque parezca que PCODE complica el crackeo no es cierto... ya que hay herramientas que leen facilmente el PCODE... dejándote prácticamente el código fuente.

Maurice_Lupin

Buenas sugerencias MCKSys Argentina .

Investigando, tengo una idea, corrijanme si me equivoco:

Con la función CreateProcess podria crear una copia de mi programa, y sacarle el hash con md5 y asi verificar que no ha sido modificado ?

Gracias por sus comentarios.
Un error se comete al equivocarse.

MCKSys Argentina

Cita de: Karcrack en 20 Enero 2012, 06:53 AM
Aunque parezca que PCODE complica el crackeo no es cierto... ya que hay herramientas que leen facilmente el PCODE... dejándote prácticamente el código fuente.

Claro, por eso puse de "tocar" el EXE tambien... :)

Cita de: Maurice_Lupin en 20 Enero 2012, 18:28 PM
Con la función CreateProcess podria crear una copia de mi programa, y sacarle el hash con md5 y asi verificar que no ha sido modificado ?

Eso lo podrias hacer desde VB sin usar API's (con Open). La idea no es mala, es más, incluso WinLicense usa esa tecnica... ;)

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Elemental Code

#5
consegui el crc32 y agregaselo al final con un separador

despues abrite como binary, hace un split asi obtenes el crc32 y el codigo y despues le sacas el crc al codigo original. y los comparas

EDIT:
http://foro.elhacker.net/programacion_visual_basic/src_self_crc32_check_01_poc-t351610.0.html

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

Maurice_Lupin

#6
Elemental Code , buen código, en base a  tu idea, agregue al final del archivo con el notepad++ el hash calculado con md5 del programa, todo bien.

MCKSys Argentina, gracias por las sugerencias con respecto a:

- Chequear varias veces usando la rutina (evitar guardar resultados en variables)

si hago esto : HashCorrecto() seria una función, que genera md5 del mismo exe y lo compara con el resultado esperado

If Not HashCorrecto() Then
     ' altero las variables, para el programa
Else
    ' cargo todos las variables normalmente
End If



Me pregunto si es una buena alternativa? o si me pueden sugerir algo mejor.

Como soy medio paranoico, estoy pensando en agregar un archivo al programa en formato ADS, dentro el hash. Y cifrar todos las cadenas y cambiar las acciones si no hay integridad en el exe

Gracias por los comentarios.
Un error se comete al equivocarse.

MCKSys Argentina

La idea seria algo asi:


If HashCorrecto() Then
      ' todo bien. inicializa variables normalmente
Else
     ' todo bien. inicializa varias variables normalmente y ademas hace otras cositas que
     ' haran que el programa haga travesuras (nada malo espero) tiempo DESPUES de que ha
     ' empezado a funcionar
End If


Esto seria, si haces calculos, modificar los mismos para que el proggie genere cosas incorrectas...
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Maurice_Lupin

Entonces es más dificil parchar o crackear (no se el termino exacto) cuando hago una comprobación de esa manera?

Si pongo que se cierre al hacer la comprobación lo detectarían más rapido (según lei) o me equivoco? y si pongo un sleep corto antes de cerrar el programa, es mejor? complica en algo?

Saludos  ;D

Un error se comete al equivocarse.

Karcrack

Tal vez no se pueda parchear el EXE pero si puedes hacerlo en memoria... solo tengo que cambiar ese JE por un JNE (o viceversa) justo despues de que se haya calculado el checksum >:D