Puede un programa bajo DOS detectar que esta siendo copiado?

Iniciado por scramble, 16 Noviembre 2007, 03:43 AM

0 Miembros y 1 Visitante están viendo este tema.

scramble

Buenas noches.

Quise acudir a las grandes mentes de este foro para ver si podian aclararme cierta dudita.

Tengo un programa que corre enteramente bajo DOS de hecho el equipo donde esta ni siquiera tiene otros sistemas operativos instalados solamente DOS...y resulta que tiene una proteccion algo fuerte de quebrantar, tiene algo que ver con el hardware ya que si conectas el disco duro en otro equipo el programa simplemente se bloquea y no se ejecuta nunca mas a menos que alguien con acceso lo desbloquee de alguna manera que no conozco.

Es posible que un software bajo DOS detecte que esta siendo copiado? Mi idea fue de conectar otro disco a esa PC, correr algun cd como el Hirens que traen aplicaciones bajo DOS para asi tratar de clonar o copiar el contenido entero del disco fuente y hacer pruebas mas tranquilamente con ese software sin miedo a dañar nada.

Algunos compañeros que supuestamente intentaron hacerlo me dijeron que despues de haber copiado el programa al tratar de ejecutarlo en el equipo original simplemente quedaba bloqueado, como si hubiera detectado el intento de copiado, y por su puesto la copia en el disco nuevo tambien era inservible...

Alguno tiene idea si eso será cierto? se puede ese tipo de tecnologia en programas bajo DOS?

El software en cuestion fue tomado por alguien de mi ciudad lo modifico a su manera y ahora lo vende a precios extremadamente altos y por ser el unico en su tipo en esta zona la gente debe pagar lo que el cara dura pida.

Alguno podria sacarme de esa dudita?

Se que existen llaves que se activan segun el hardware detectado al correr el programa por primera vez y si se lleva a otro equipo se bloquea...eso lo he visto...Pero tambien es posible que el programa detecte en cierto sentido que se esta tratando de copiar a otro disco?

Saludos y gracias de antemano...

botella

1- tal vez deberìas probar la pregunta en el subforo de ingenieria inversa.

2-Està bièn que el tipo lo venda a lo que quiera, se ve que tuvo la capacidad de joderselòs a todos.

scramble

Cita de: botella en 17 Noviembre 2007, 19:17 PM
1- tal vez deberìas probar la pregunta en el subforo de ingenieria inversa.

2-Està bièn que el tipo lo venda a lo que quiera, se ve que tuvo la capacidad de joderselòs a todos.

No comparto tu opinion, a de ser que estoy mas de acuerdo con la mentalidad del Software Libre.

Si asi fuera ni cracks habrian..despues de todo la mayoria de los programas han llevado esfuerzo por parte de sus programadores.

Y en la parte de que se los jodio a todos es mas por que el software en cuestion nada mas es usado en cierta zona para una utilidad si se quiere sencilla por lo tanto no ha tenido fama para que alguien con la capacidad adecuada se interese por dicho software.

Si solo a un pequeño grupo le es util el programa y ninguno de este pequeño grupo es programador ni cracker o algo por el estilo, logicamente no sabran romper esa proteccion. Pero en manos adecuadas estoy seguro que la tarea seria simple.

Tambien se desvio un poco el tema de mi verdadera pregunta y fue llevada a la ingenieria inversa, yo solo consultaba la posibilidad de que un programa de DOS tuviera tal capacidad.

De igual forma gracias por responder.

Hendrix

Puede haber mil maneras de que mire eso...principalmente creo que sera por el hardware...mirando la placa base, la version y modelo o algo parecido con cualquier elemento del hardware...se podria crackear parcheando esto.... ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

scramble

Cita de: Hendriҳ en 18 Noviembre 2007, 23:08 PM
Puede haber mil maneras de que mire eso...principalmente creo que sera por el hardware...mirando la placa base, la version y modelo o algo parecido con cualquier elemento del hardware...se podria crackear parcheando esto.... ;)

Buenas noches Hendrix.

Ya hoy tuve el chance de hacer algunas pruebas yo mismo y corroborar que tan cierto eran tantos rumores...

Te cuento...dado que los equipos donde el programa corre son extremadamente viejos estaba muy limitado, no hay usb, el bios no soporta discos grandes, y a duras penas logre hacer funcionar la unidad de CD. Con un File Manager bajo dos logre copiar todos los datos que contiene el disco de la maquina en cuestion.

Hice copia espejo de todos los datos a otro disco y lo conecte a la misma maquina y efectivamente no ejecuta el programa, inmediatamente detecta como copia ilegal...Por lo que me llevó a pensar que o es un archivo oculto que el navegador de archivos bajo DOS no vio o es algun tipo de proteccion que detecta el serial o algo relacionado con el disco duro. Dado que el disco fue el unico cambio que hubo.

Luego de tener los archivos ya en mi equipo (del cual escribo actualmente) tengo otra limitante y es que el programa ejecuta solo bajo DOS y no se si las aplicaciones que ayudan en el proceso de crackeo de programas tendran efecto con estos archivos EXE hechos para DOS.

De igual forma si hay algun interesado puedo subir los archivos del programa para que echen una ojeada.

Saludos y nuevamente gracias por sus respuestas.

scramble

#5
Hendrix de casualidad tendras experiencias crackeando programas bajo DOS? Algun tip o sugerencia?

Aqui por si acaso dejare el programa en cuestion:

Un Archivo rar que contiene exactamente los mismos archivos del equipo en el cual el programa si funciona normalmente.

Para ejecutar el programa (o al menos intentarlo) estoy usando una aplicacion llamada DOSBox que emula el antiguo sistema DOS a la perfeccion.

En el autoexec.bat (archivo de arranque para pcs viejos) estaba el archivo C:\DOS\P2004\lotto.exe puesto a ejecutarse automaticamente....

Mirando con un editor Hexagecimal ese archivo creo que hace referencia a otros varios mas...incluido el p2004.exe que precisamente viendo tambien con el editor hex es el que contiene el texto de "Copia Ilegal"....

Hasta este punto he llegado, la verdad no se que otro paso dar...intente abrir con el OLLYDBG pero creo que por ser un programa bajo DOS no lo abre bien...

Aca el paquete RAR con los archivos...

http://rapidshare.com/files/70696494/DOS.rar.html

Mirror1:
http://www.badongo.com/es/file/5196314

Mirror2:
http://www.zshare.net/download/5001751cb0a88b/




P.D. : Hendrix he estado leyendo tus tutoriales y debo darte las gracias pq he aprendido bastante, muy bueno que te hayas tomado el tiempo en empaquetarlos tan ordenadamente en PDF's...

De antemano 1 millon de gracias por solo leer este post.

Hendrix

Un debugger para dos muy bueno es el viejo SoftIce....no lo e usado nunca (prefiero el olly), haber si alguien que tenga experiencia en eso puede ayudar  ;)

O sino buscate manuales del SoftIce...funciona tambien en DOS  ;)
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián

Karman

Acabo de analizar tu programa con el IDA Pro y encontré lo siguiente:

1º No es un programa de DOS (aunque lo parezca), es un programa de Win16 (win 3.1 posiblemente), osea NE, y en el código:


cseg01:4BDC:
mov     di, offset aInfsys00_sys ; "INFSYS00.SYS"
...
mov     di, offset aCP2004System ; "C:\\P2004\\SYSTEM"
...
call  @FSearch$q7PathStr6String ; FSearch(PathStr,String)
...
jnz     short loc_4BF6  <- si lo encuentra salta
jmp     loc_4D42 <- sinó [b]error "01"[/b]


Luego: Open file, read file, close file... busca un archivo de log... lo lee... (desconozco que busca en el) y lo elimina, pero si no lo encuentra resetea una variable que se utiliza más adelante... por lo que creo el funcionamiento es el siguiente:

al ejecutarse lee el archivo LOTLOG.LOG, y lo elimina, si sobrepasa todos los checkeos(con la información en el), lo crea de nuevo, mientras que si no, no lo crea y la próxima vez ni siquiera realiza los checkeos... va directamente al mensaje de error... luego tenés:


cseg01:4CB8:
mov     ax, word_9DC6A <- lo leido en "INFSYS00.SYS"
mov     dx, word_9DC6C <- lo leido en "LOTLOG.LOG"
cmp     dx, word_9CC5A <- variable reseteada (lo mencionado arriba)
jnz     short loc_4D38 <- [b]error "02"[/b]
cmp     ax, word_9CC58 <- variable reseteada (lo mencionado arriba)
jnz     short loc_4D38 <- [b]error "02"[/b]
push   3
call    @DiskSize$q4Byte ; DiskSize(Byte) <- Tamaño de disco?
cmp     dx, word_9DC70 <- leido de "INFSYS00.SYS"
jnz     short loc_4D38 <- [b]error "02"[/b]
cmp     ax, word_9DC6E <- leido de "INFSYS00.SYS"
jnz     short loc_4D38 <- [b]error "02"[/b]
...
mov     di, offset aWin386_swp ; "WIN386.SWP"
...
mov     di, offset aCDos ; "C:\\DOS"
...
call    @FSearch$q7PathStr6String ; FSearch(PathStr,String)
...
cmp     byte ptr es:[di], 0
jz      short loc_4D38 <- no lo encuentra? [b]error "02"[/b]


Luego comienza el programa... con lo que modificando todos los:

jnz     short loc_4D38         ->       jz    short loc_4D38

y teniendo los archivos que te pide ya podes acceder al programa, pero de todas formas, al entrar en el programa te solicita un nombre de usuario y contraseña, los cuales al parecer son de seguridad de los datos... lo cual desconozco si los tienes...

S2

PD: las direcciones de los saltos a modificar son:

cseg01:4CC3 75 73
cseg01:4CC9 75 6D
cseg01:4CD6 75 60
cseg01:4CDC 75 5A

scramble

Buenas tardes Karman, primeramente muchas gracias por tan solo darte la molestia de hacer esos analisis (cosa que muchos no harian).

Yo hoy por la mañana estuve probando con varios desensambladores como el Soft-ICE 2.8 para dos y el IDA version viejita para DOS tambien, con ninguno tuve mucho exito quizas por la razon que expones que es un programa de Win16 y no de DOS ciertamente.

Con respecto a los archivos que el programa busca quizas el mismo los crea y los borra ya que en el equipo donde el programa si funciona no logre encontrarlos....

Si efectivamente el programa luego de estar funcionando pide tambien un usuario y clave, esos datos los tengo al menos para modo usuario normal.

Te pregunto ahora lo siguiente.

Lograste hacer correr el programa? O son inevitablemente necesarios esos archivos a los que haces mencion para poner en funcionamiento el software?

Las modificaciones de los saltos pueden ser hechas desde el mismo IDA pro?

Saludos y nuevamente muchas gracias por sus respuestas.

P.D.: Segun nos enteramos ayer, la persona que vendia este programa se ha mudado de la ciudad y no brinda ya ningun tipo de soporte...ahora mas que nunca debo ingeniarmelas para ver como lo hago funcionar en otros equipos, ya que si me falla el unico que tengo en funcionamiento estare algo jodido.

Y para aquellos interesados en saber de que va el programa, es un simple gestor de agencias de loterias, para llevar el control de las ventas, entradas y salidas, y crease o no en este ambito en mi ciudad (bastante pequeña), fue el unico programa que se pudo encontrar que hiciera bien el trabajo.

Karman

Cita de: scramble en 19 Noviembre 2007, 18:12 PM
Con respecto a los archivos que el programa busca quizas el mismo los crea y los borra ya que en el equipo donde el programa si funciona no logre encontrarlos....

Si, el programa o el instalador del mismo... aunque por ahí leí algo de registro, me parece que el programa se puede instalar dándole algún argumento... si quieres puedes revisar el código...

Cita de: scramble en 19 Noviembre 2007, 18:12 PM
Lograste hacer correr el programa? O son inevitablemente necesarios esos archivos a los que haces mencion para poner en funcionamiento el software?

Si, logré hacer correr el programa, y no necesitas ningún archivo... osea... ya están en la carpeta que posteaste... el tema es la ubicación, el programa tiene que estar en C:\, por ejemplo:

C:\P2004\P2004.exe
C:\P2004\SYSTEM\INFSYS00.SYS <-está dentro del archivo que posteaste
C:\DOS\WIN386.SWP

o sea... tenes que descomprimirlo en C:\, no puede estar en otro lado... modificando los 4 saltos e instalándolo en C: el programa funciona...

Cita de: scramble en 19 Noviembre 2007, 18:12 PM
Las modificaciones de los saltos pueden ser hechas desde el mismo IDA pro?

Desconozco... yo utilicé un editor hexadecimal (UltraEdit)... pero no sé si el IDA permite modificar ejecutables...

S2