Autor Tema: Proteger PIC de intrusos  (Leído 7412 veces)

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

Desconectado softjad

  • PIC10
  • *
  • Mensajes: 41
Proteger PIC de intrusos
« en: 08 de Junio de 2006, 10:26:36 »
¿Hasta punto podemos proteger un PIC de las lecturas no deseadas?

¿Será posible alguien obtener una lectura de un PIC Protejido?
« Última modificación: 08 de Junio de 2006, 10:28:43 por softjad »

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Proteger PIC de intrusos
« Respuesta #1 en: 08 de Junio de 2006, 10:35:14 »
Hola. Bueno...todos los PICs traen proteccion contra lectura, algunos con la posibilidad de impedir el acceso a ciertas partes o tipos de memoria, y otros solamente una proteccion general.
¿Hasta que punto?
Bueno, todo es relativo, el contenido del PIC debe ser realmente valioso para que alguien se digne a mutilar uno y leerlo. Como ser posible lo es, y ya se ha hablado en el foro y publicado paginas con personas que han logrado leer pics protegidos contra lectura.
La tarea no es nada facil, por lo tanto, poco probable que lean un PIC que protegiste.
Saludos
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado patolinec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 206
Re: Proteger PIC de intrusos
« Respuesta #2 en: 08 de Junio de 2006, 15:44:00 »
La verdad es que solo necesitarias en el momento de la grabacion del pic en la parte de la palabra de configuracion activar el CODE PROTECT y se genera una capa que protege el codigo grabado, ademas si pudiera alguien  leerleo si es en ensamblador se lo podra decompilar pero si esta echo en c o pero en basic la tarea es muy complicada y mucho mas extensa que hacer el codigo nuevo, por lo que no te preocupes que al activar esta opcion tu propiedad intelectual esta garantizada
Casi me maté pero ahora estoy de nuevo vivo

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Proteger PIC de intrusos
« Respuesta #3 en: 08 de Junio de 2006, 20:23:52 »
Hola patolinec, creo que tienes una confución ya que si un PIC tiene un programa ya sea haya sido creado en .asm o en C en el propio PIC solo hay instrucciones de codigo, por lo tanto para decopilarlo es facil si sabes de .asm, no importando el lenguaje que hayas usado para crearlo, es solo una aclaracion.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado patolinec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 206
Re: Proteger PIC de intrusos
« Respuesta #4 en: 09 de Junio de 2006, 02:55:34 »
Totalmente de acuerdo contigo Chaly, creo que no me exprese del todo bien lo que intentaba decir es que si por ejmplo un programa de manejo de USB en C es entendible, pero en ensablador (vaya a saber Dios cuando lo entiendes :z)), pero con todo es bastante seguro colocar el codigo de proteccion
Casi me maté pero ahora estoy de nuevo vivo

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Proteger PIC de intrusos
« Respuesta #5 en: 09 de Junio de 2006, 03:19:11 »
Hola patolinec, definitivamente tu fuerte es el C, pero para mi es el .asm, por lo que si me pones una rutina para el manejo del USB en C te aseguro que no entendere ni lo más mínimo, pero nada de nada  :D  :D  :D, ahora ya me gustaria tener una rutina de manejo de USB en asembler, te aseguro que me haría vastante feliz  :lol:  :lol:

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado pibe

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 635
Re: Proteger PIC de intrusos
« Respuesta #6 en: 09 de Junio de 2006, 05:07:30 »
Yo estoy igual que Chaly.
Una vez tuve que pasar a mano un programa hecho en C a asembler. Vaya tela, y eso que venía con comentarios por cada instrucción.
Aunque estoy de acuerdo con la otra persona: Si escribiste un programa en C y pretendes releerlo desde el HEX de la memoria del micro , pasarlo a asm con un desensamblador te será casi imposible de transformarlo a C si no tienes MUCHA experiencia en asm primero.
Mi jefe mirando el prototipo que estoy creando: "Y eso va a funcionar?"

Desconectado patolinec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 206
Re: Proteger PIC de intrusos
« Respuesta #7 en: 09 de Junio de 2006, 14:24:37 »
Pues Chaly lo que tengo es una rutina de USB pero para el 16C7X5 es bastante bueno y para tu gusto esta en ensanblador, el programa host esta hecho en VB6 y es bastante bueno para que puedas realizar algunos cambios, necesitas el HID que es el isntalador del driver del PIC para el VB6 cualquier cosa me avisas
Casi me maté pero ahora estoy de nuevo vivo

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Proteger PIC de intrusos
« Respuesta #8 en: 09 de Junio de 2006, 15:04:13 »
Estamos de acuerdo en que uno cuando desensambla quedará en ensamblador.

Los compiladores de C hacen cosas más allá de lo 'evidente' para alguien que viene del ensamblador.  Montones de cosas tienen que ver con cargar datos en un stack, descargar y manejos internos que no son públicos para la mayoría de los mortales.

Eso hace que un código que fue escrito en C sea más dificil de interpretar que un código escrito en ensamblador.

Cuanto más complejo y más funciones lógicas tenga un código en C, más dificil será de interpretar.

Así y todo, un código en ensamblador incluso escrito por nosotros mismos puede ser complicado de interpretar cuando uno no tiene nombres de variables, etc.  En mis códigos suelo usar muchos macros que me facilitan tareas repetitivas.  Si veo el código asm puro de lo que se generó luego de 2000 líneas de código tal vez estaré algo más que perdido.  Sobre todo en el manejo de variables cuando son de varios bytes de longitud.  Lo obvio en un código no lo es tanto cuando uno levanta el código desensamblado. 

Ej: movlw  VARIABLE+3

Esa simple línea se va a ensamblar con la dirección absoluta que tomó VARIABLE+3 al momento de la compilación.  Nada hace pensar que la vayamos a asociar a VARIABLE, salvo un minucioso estudio del código.

Yendo más allá con el ejemplo para ser más claro.

Código: ASM
  1. VARIABLE equ 0x20
  2.  
  3.         movlw   0x04
  4.         movwf   VARIABLE
  5.  
  6.         bcf     PIR1,TMR1IF
  7.  
  8.         movlw   0x08
  9.         movwf   VARIABLE+3

Al ensamblarse VARIABLE será reemplazado por 0x20 y VARIABLE+3 por 0x23.   Entonces si uno ve el 0x20 y el 0x23 cómo sabe que es de la misma variable?

Más complicado aún cuando uno quiere interpretar una función que fue hecha en C y con envío de parámetros, cuando un parámetro puede ser o bien el valor o bien un puntero hacia el valor!


En mi opinión el que COPIA generalmente lo hace para grabar un micro con el firmware idéntico no y se detiene en la interpretación del código ya que le puede llevar semanas o meses entender un código que fue escrito por otro.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Proteger PIC de intrusos
« Respuesta #9 en: 09 de Junio de 2006, 22:56:51 »
Hola Maunix, es que precisamente si haces MOVLW VARIABLE+3 estas utilizando la direccion a la que apunta variable como apoyo, y no como parte dependiente y que haga variar el codigo.
Para mi no resulta en mayor complejidad, ya que en realidad, tu quisiste decir: movlw 0x23,y NO esta asociado a la variable. Y ese mismo movlw 0x23 es lo que voy a leer en el programa que obtuve del pic y desensamble.
Saludos.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.


 

anything