# Proteccion de codigo fuente en un PIC



## MerLiNz (Abr 26, 2010)

Buenas, pues he estado buscando y he encontrado algunas cosas como FUSES PROTECT por ejemplo para proteger el codigo fuente de lectura. Pero tengo unas dudas:

¿Es posible a pesar de todo que alguien saque el codigo fuente que yo grabe en mi pic? Es mas que nada por si alguna vez saco algo por si lo puedo vender sin que nadie vea el codigo porque si no seria tan sencillo como sacar el codigo y hacerte tu propio prototipo. Existe algun tipo de proteccion a parte del FUSE PROTECT??
Si por ejemplo yo necesito hacer una actualizacion del codigo del pic por algun fallo o actualizacion es posible mandar ese codigo encriptado para que nadie pueda verlo??
A ver si alguien sabe algo del tema y lo comenta, que puede ser interesante.


----------



## fernandob (Abr 26, 2010)

yo una vez pense como hacer que el mismo programa se ocupe de detectar y autoprotegerse.
ademas de el codigo de el pic.

es solo una idea que deje de lado ya que no me dedique, no se si les interesa discutirla ???


----------



## MerLiNz (Abr 26, 2010)

Cualquier cosa es bien recibida, asi aprendemos todos


----------



## fernandob (Abr 26, 2010)

hola, para empezar y lo mas importante te dire que NO SEAS PARANOICO, te preocupas al cuete.

hoy dia si alguien SABE DE VERDAD micros no necesita copiar tu programa, lo hace el, te robara si la idea y eso no podes evitarlo.
triste pero asi es.

si sos tecnico con tapar con resina al chip ya estas haciendole dificil la cosa al ladron, ya que no puede ver el codigo de el chip ni la disposicion de pines (por eso dije taparlo con resina y no solo borrar el codigo) .

si sos ingeniero y fabricas en forma importante , entonces actuas al revez de los hoobustas:
no buscas el amigo de todos:
pic.
buscas un chip que te sea mas potente y que no consigan todos.
texas
philips
y otros

no te olvides que uno tiene que aprender a programar, y a usar (ademas de conseguir ) el kit de desarrollo.
no te meteas con empresas que lo hagan facil.

ya con eso tenes para tu tranquilidad, ahora bien, lo mas importante :
crees que microchip hara un codigo de proteccion facil de violar ?????
quien lo compraria ??
una buena parte de la confianza que los usuarios tienen en un micro es la proteccion, que no les robensu esfuerzo.
muchos leeras que dicen:
yo tengo , yo hago

pero busca en la web alguno que diga :
como violar el codigo de seguridad y que de verdad lo puedas hacer.
veras que ninguno.



luego, si veo que a algunos les interesa discutimos la idea de proteccion por soft, un poquito novedosa (y como ya puse al pedo), pero diganme quienes se prenden.


----------



## MerLiNz (Abr 26, 2010)

Bueno, mas que nada es para un futuro, por si algun dia hago algo y claro, a nadie le gusta que le roben horas y horas de trabajo, ya sabemos el tipo de personas que hay en este mundo


----------



## fernandob (Abr 26, 2010)

yo tambien lo pensaba asi, y el futuro me deparo sorpresas, me fui para otro lado,
no te apures que la vida nos da sorpresas..sorpresas nos da la vida.


----------



## MerLiNz (Abr 26, 2010)

jjeje, gracias por los consejos, por ahora a aprender


----------



## eidtech (Abr 26, 2010)

El código maquina (el código fuente queda en tu pc, no en el micro) de un microcontrolador si se puede extraer aun cuando tenga el bit de protección activado, obvio es un proceso dificil y costoso, pero es posible hacerlo.

Como se hace? pues deshabilitando el bit de protección mediante alguna tecnica, alterando el voltaje, a través de algun pin y con alguna combinación, inyectando señales e información en pines de oscilador, etc..

También es posible "desempaquetar" el microcontrolador, y con luz UV borrar el bit de protección. 

Para más información visitar:

http://www.flylogic.net/blog/
http://www.mcuservice.com/en/index.html


----------



## fernandob (Abr 26, 2010)

eidtech dijo:


> .
> 
> Como se hace? pues deshabilitando el bit de protección mediante alguna tecnica, alterando el voltaje, a través de algun pin y con alguna combinación, inyectando señales e información en pines de oscilador, etc..


 
esto que pones es ridiculo por lo ambiguo, se mas serio y habla de lo que REALMENTE sepas o sea posible o alguien pueda verificar una tecnica, no tires cosas al aire.

luego lo de las paginas esas.............
yo sigo pensando que es una tonteria, solo si estamso hablando de un chip que tenga un soft maravilloso de IA merece la pena algo asi.
es mas barato contratar a un ingeniero y pagarle bien para que desarrolle algo que andar queriendo tocar las cosa smicroscopicas d eel chip.....es RIDICULO.
ademas........y mira la pequeñez que te dire:

alguno de uds. hizo algo con micros ??
diganme , que posibilidad de maniobrar (comercialmente ytecnicamente) tienen copiando y pegando ??
un programa que no hicieron y no comprenden .

si uds. lo hacen es otra cosa, encima hoy hay lenguajes de alto nivel, los costos no son altos, y el poseer CLARAMENTE el programa, comprender sus etapas, que hay quie tocar para modificar algo o actualizarlo ......es INVALUABLE.


----------



## Chico3001 (Abr 26, 2010)

fernandob dijo:


> esto que pones es ridiculo por lo ambiguo, se mas serio y habla de lo que REALMENTE sepas o sea posible o alguien pueda verificar una tecnica, no tires cosas al aire.
> 
> luego lo de las paginas esas.............


 
De entrada el que tiene que ser serio eres tu esa no se me hace una contestacion de alguien que se supone que conce el tema. 

Esas compañias existen y hacen estudios PROFESIONALES para proteccion de los codigos colocados en un chip y claro esta tambien hacen procesos de extraccion de codigos si les pagas lo suficiente



fernandob dijo:


> luego lo de las paginas esas.............
> yo sigo pensando que es una tonteria, solo si estamso hablando de un chip que tenga un soft maravilloso de IA merece la pena algo asi.
> es mas barato contratar a un ingeniero y pagarle bien para que desarrolle algo que andar queriendo tocar las cosa smicroscopicas d eel chip.....es RIDICULO.
> ademas........y mira la pequeñez que te dire:
> ...



Desafortunadamente pasa y mas seguido de lo que crees... y precisamente por lo que expones...  como no entienden el programa se ven forzados a copiar y pegar... o de lo contrario la competencia se los come al sacar nuevos productos... la pirateria es una realidad porque desafortunadamente los costos de investigacion y desarrollo son muy elevados.... 

Volviendo al tema... el 99% de los chips en el mercado tienen buenos sistemas de proteccion de codigo, requiriendose de tecnicas MUY AVANZADAS para poder burlar esos codigos, incluso algunos chips (como los MSP430 de Texas) tienen un sistema extra que cuenta el numero de accesos al chip.. .si fallas en colocar el passoword 3 veces seguidas el chip se borra automaticamente....


----------



## fernandob (Abr 26, 2010)

chico:
decir que con darle mas tension a un pin o cosas asi uno borra el bit de seguridad no me parece que sea algo posible, si fuese posible las empresas lo habrian arreglado.
creo que a mi eso me sono a "tirar ideas a lo tonto" no lo digo con animo de ofender, pero la cosa me parece que no es "tirar cualquier cosa" .
en la web lee uno cualquier pavada, pero la idea es poner cosas medianamente fiables.
o no ??

yo aprendi a programar pics hace rato pero lo aplique poco , no le encontre mucha aplicacion en lo mio , pero , no se , has visto tu o algun otro una forma que hayan probado de violar la proteccion de cualquier micro ??


----------



## Chico3001 (Abr 26, 2010)

Lo arreglaron... fue un problema conocido que sucedia en algunos microcontroladores viejos...


----------



## eidtech (Abr 26, 2010)

fernandob,

Antes de opinar y dar cosas por ciertas debes tener la certeza de que estas en lo correcto, si no tu no opinión NO sirve. Es decir no tires ideas a lo tonto.

Lo poco que expuse fue con conocimiento previo, y si las páginas que proporcione no te son suficientes, te voy a dejar el enlace a otro documento:

http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-630.pdf

Esto solo es un poco, si sabes buscar encontraras mucha información relacionada.

Eso si, antes de que comiences a contarme cuentos acerca de aplicaciones de IA, de que conviene mas, lee ese documento y por lo menos trata de entender un poco.

El hecho de que desconozcas algo no quiere decir que no sea posible hacerlo.

Las investigaciones en seguridad no tienen la finalidad de robarte tu super aplicación de IA, si no la finalidad es de hacer sistemas más seguros, no solo respecto a la protección de código, si no tambien a la criptografía, y otras áreas relacionadas.


----------



## fernandob (Abr 27, 2010)

hola, en internet encuentro de todo, cosas rales y cosa sno reales, cosas al alcance de todos, al alcance de pocos y al alcance de poquisimos .

yo, lo siento pero tengo mis limitaciones, de ingles voy muerto, es una pena para mi por que me pierdo cosas, pero luuego veo las fotos que tiene ese archivo y veo que no es algo para nosotros.

por que no me dice alguno de los miles de usuarios de este foro que ha violado un PIC 16F xxx ??

siempre hablando de un metodo no invasivo, por que creo que para cualquiera de nosotros pretender desencapsular y manipular el chip es fantasear.

de nuevo, quisiera que un par de conocidos de el foro me digan que han podido o han leido algun metodo viable para nosotros, lo han probado y funciono.

varios trabajan en services y les caen micros con problemas , es tipico por ejemplo los lavarropas drean concept .
pues bien, sacar el programa seria rentable ya sollo para services.

alguno lo ha hecho ??????

nuscar paginas de harvard o de algun laboratorio chino es irse a un extremo, por lo que yo entendi DE ESTE TEMA preguntaban de violar el programa de el micro si estaba protegido, a un nivel ..........nuestro.
un hoobysta, un ingeniero particular e incluso una PYME .

no se, alguno en su trabajo escucho de que su empresa haya pagado a una de estas empesas por esto de ingenieria inversa ?? 
cuanto sale mandar a harvard un chip para que le saquen la proteccion ????

a mi me interesa, y por lo que yo entendi (lo repito) es a niveles practicos, viables, realistas, conoces en mexico gente o empresas que lo hayan hecho ??
si es asi seria interesante pedir cotizacion......no creo que este a un nivel ni bajo ni medio.

pero si la idea es discutir si es posible, ahi es otra cosa, ni hablo, hablo de lo que se, y de eso no se , si veo cosas en la web, me asombran por que sigo pensando que es mejor un depto de desarrollo que uno de ingenieria inversa.
pero bueno, cada quien pone su vision.

yo en general (se me puede ir alguna) pongo de lo que estoy seguro , de lo que se, no de lo que encuentro en la web.

.


----------



## Chico3001 (Abr 27, 2010)

fernandob dijo:


> de nuevo, quisiera que un par de conocidos de el foro me digan que han podido o han leido algun metodo viable para nosotros, lo han probado y funciono.



Los metodos existen... solo que es un juego del gato y del raton... cuando alguien encuentra ese metodo y lo publica y el fabricante se da cuenta, entonces procede a corregir la vulnerabilidad para poder ofrecer un chip mas seguro, aunque por fuera los chips parezcan y tengan la misma funcionalidad, por dentro tambien van evolucionando, solo que nosotros no nos damos cuenta hasta que nos ponemos a comparar un PIC16F84 fabricado en 1990 contra el mismo fabricado en el 2005

Recuerdo que alguien habia colocado en este foro la direccion  de un blog que se dedicaba exclusivamente a la seguridad de los circuitos integrados, obvio es informacion muy tecnica y que solo esta disponible en ingles...


----------



## gotomain (Ago 24, 2010)

fernandob dijo:


> hola, en internet encuentro de todo, cosas rales y cosa sno reales, cosas al alcance de todos, al alcance de pocos y al alcance de poquisimos .
> 
> yo, lo siento pero tengo mis limitaciones, de ingles voy muerto, es una pena para mi por que me pierdo cosas, pero luuego veo las fotos que tiene ese archivo y veo que no es algo para nosotros.
> 
> ...



Yo lo he echo, es más puedo leer una familia de Pics con código protegido. Estoy abierto a propuestas de negocio sobre el tema. 

Ya tengo listo un lector Usb de código protegido para algunos Pics, a que precio creen que debería venderse ?.

Un saludo y escucho sus opiniones, gotomain.-

PD:
Me reservo publicar, como se imaginarán, que Pics son.


----------



## ByAxel (Ago 24, 2010)

Bonito pero yo considero a los PIC para educación, claro esta que tienen una buena fama, pero díganme en que aparatos encontramos a estos bichitos de 8 bits que seria tan prometedor sacarle el código?... Si ya sabemos que una persona curiosa que anda por estos medios puede fácilmente clonar el hardware y fabricar un código propio...
Como yo lo veo es solo para prevenir perder unas cuantas neuronas en el proceso.

A la fecha e vendido varias cositas hechas con microcontroladores de 8 bits (PIC/AVR/etc) y me ha sido suficiente proteger el código de la forma usual o borrar el nombre del chip o poner un stickers o hacerlo con sus versiones SMD, eso en mi caso... 

Por eso acudo a los entendidos del tema que conozcan más. ¿En que aparatos (serios) encontramos a los PIC?

PD: Yo vi un AVR en un control remoto para controlar tractores oruga perforadoras (de las que trabajan en las minas).

Saludos.


----------



## MerLiNz (Ago 24, 2010)

Yo ultimamente estoy viendo muchos productos con pics, el otro dia abri un reloj de automovil (de presion del aceite) y me encuentro un 18f o 24f dentro, me sorprendio, pero tambien es son baratos, facil de hacer el codigo y para utilidades como estas sobran


----------



## Basalto (Ago 24, 2010)

La pagina http://www.flylogic.net/blog/, se dedica tambien a leer el codigo de los microcontroladores de las targetas inteligentes de televisión por pago. Esta empresa fue la que abrio el sistema Nagra2 y es muy famosa por ello. Para este tipo de targetas inteligentes utilizan Atmel todas las compañias de seguridad, por algo sera. Tienen un video en youtube que lo demuestran con una targeta de telefono pero ahora no lo encuentro(Prometo ponerlo). Por de dicho de el pin de reloj, la play3 se le metio mano, gracias a que fueron capaces de leer una FPGA, y se hizo introduciendo una señal por el pin de reloj, asi que yo me informaria antes de opinar.

Volviendo al tema principal del hilo. Para rebelar el sistema de seguridad de una targeta de televisión vale la pena gastar mucho dinero en esto, por que este coste lo vas a rentabilizar. Pero algo que pueda crear cualquiera de nosotros(Sin menospreciar a los maestros del foro), no vale la pena. Y como dicen arriba alguien que te quiera copiar puede imitar tu programación, con otro micro.


----------



## Scooter (Ago 24, 2010)

¿Los PIC no tiene protección de lectura? Si no es así estás vendido.
Si lo tienen siempre se puede actualizar porque eso protege de la lectura, no del borrado y nueva escritura.


----------



## MerLiNz (Ago 24, 2010)

si tienen proteccion, pero como, todo seran hackeables


----------



## ByAxel (Ago 24, 2010)

No estoy seguro pero:
PIC16F por lo general la mayoría tienen el el bit que protege la memoria contra lecturas.
PIC18F memoria protegida por bloques, EEPROM protegida, bloque Boot protegido, protección contra escritura por bloques, protección escritura en la EEPROM y otros tipos.
PIC30, PIC33, PIC24 ya ni hablar que estos son más complicados...

En fin, yo diría que la técnica descrita solo funciona para la gama baja y/o media que son los PIC10 y PIC16.
Sera??


----------



## lordk (Ago 26, 2010)

Hola, yo el otro dia pensaba como se hacia para sacar el .hex de un pic SIN proteccion y llevarlo a ASM- Como se hace? Con export hex del pickit2?


----------



## ByAxel (Ago 26, 2010)

Si, con el Pickit eso sirve para sacar el HEX. siempre y cuando el PIC no esté protegido contra lecturas, de lo contrario todo lo que lea serán solo 0x000 'ceros'. Ahora con tener el HEX se puede usar programas creo que se llaman decompiladores o algo así cuyo resultado de decompilar el HEX son códigos en ASM...


----------



## MerLiNz (Ago 26, 2010)

exacto, solo que el codigo ASM que tendras no es igual al que hizo el programador, por ejemplo un programador pone etiquetas para diferenciar parte del codigo, incluso comenta su codigo... Pero no tendras nada de eso, tendras un codigo algo dificil de entender/interpretar si no tienes mucha idea de ASM.


----------



## Meta (Ago 26, 2010)

Aunque tenga grande sideas en ASM, tardarás mucho en interpretar 8KB de instrucciones.


----------



## Basalto (Ago 26, 2010)

Realmente si es un programa complejo, estara escrito en C o cualquier otro lenguaje de alto nivel. Interpretar eso es bastante complejo. Pero lo que te puede servir el codigo es para programas otro micros, lo cual no tienes que interpretar nada.


----------



## MerLiNz (Ago 26, 2010)

si no me gusta el asm es por eso, necesitas 5 lineas de codigo para hacer una suma jeje


----------



## Meta (Ago 26, 2010)

Lo se, para eso mejor usar el C y PIC18F.


----------

