Thông báo

Collapse
No announcement yet.

Bảo vệ mã nguồn

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Bảo vệ mã nguồn

    Hi

    Có cao thủ nào biết cách bảo vệ mã nguồn khi lập trình cho Psoc không? (tức là khoá phần mềm không cho người khác có thể đọc được ý)
    |

  • #2
    Chế độ bảo vệ firmware nằm trong phần flashserurity.text, là file cuối cùng trong cửa sổ Application Editor, có 4 chế độ bảo vệ cho từng Block (64bytes) một. Chỉ cần Edit nó (bằng cách thay đổi các chữ số W, R, U...) là OK
    BestRegards,
    WIJ
    Work is glory

    Comment


    • #3
      Thanks Winter

      Bác có thể nói rõ hơn về chức năng của các tham số W,R,U... được không?. Theo tôi hiểu thì W (cấm ghi), R (cấm đọc) vậy còn U và một số tham số khác thì như thế nào?. Khi thay đổi các tham số này thì cơ chế bảo mật của Psoc sẽ hoạt động như thế nào?. Cụ thể nếu có một người nào đó muốn đọc hay ghi hoặc làm 1 cách nào đó để lấy mã nguồn và có khả năng phá hỏng mạch hoặc thay đổi sai thông số thì việc thay đổi các tham số trên sẽ có tác dụng ngăn chặn như thế nào?
      |

      Comment


      • #4
        Flash có 4 chế độ bảo vệ theo từng Block (64 bytes) là:


        00b -- SR ER EW SW -- Un protected (U)
        01b -- !SR !ER EW SW -- Read protect (R)
        10b -- !SR !ER !EW SW -- Disable external write (W)
        11b -- !SR !ER !EW !SW -- Disable internal write (F)


        SR => Supervisory Read
        ER => External Read (programmer)
        EW => External Write
        SW => Supervisory Write
        Supervisory Read = Internal Read
        Supervisory Write = Internal Write

        (đây là các hàm của SROM tác động lện Flash- đọc thêm về SROM- Supervisory ROM)
        Các chế độ bảo vệ được tăng theo từng mức, ví dụ với mức 0 (Unprotect), nó cho phép cả 4 hoạt động Read (internal/external), Write (internal/external). Mức bảo vệ 1 (R) sẽ cấm External/Internal Read. Mức bảo vệ 2(W) chỉ cho phép internal Write và mức bảo vệ cuối cùng là cao nhất, cấm tất cả.
        Tuy nhiên, tất cả các chế độ bảo vệ này sẽ bị xóa khi sử dụng hàm EraseAll của SROM. Hàm EraseAll thực hiện các bước để phá hủy dữ liệu trong flash và reset tất cả các chế độ bảo vệ. Hàm này có thể thực hiện thông qua một bộ lập trình bên ngoài vì nếu thực hiện hàm này từ bên trong, CPU sẽ bị dừng mà ko làm ảnh hưởng đến chế độ bảo vệ của Flash.
        Để đảm bảo an toàn cho code, cần phải đặt chế độ bảo vệ cho Block 0 (mức 2 hoặc 3). Nếu không thực hiện điều này, có thể dùng bộ lập trình để xóa Block 0, lập trình nó và sử dụng lệnh ROMX để truy cập đến mã. Block 0 có đặc điểm là sau khi reset, chương trìnhb bắt đầu thực hiện từ block này --> so it is the reason why it must be protected.

        Giải thích lệnh ROMX: Absolute Read Table
        - Chuyển bất kì byte nào trong ROM (Flash) vào thanh chứa A. Địa chỉ của byte là 16 bit được chứa trong A và X ( A chứa MSB, X chứa LSB)
        ví dụ:
        MOV A,00h
        MOV X, 10h
        ROMX
        sẽ chuyển giá trị ở địa chỉ 0010h vào A
        Do đó lệnh này có thể lấy dữ liệu bên trong Flash...
        Regards,
        WIJ
        Last edited by WinterInJuly; 30-08-2005, 09:18.
        Work is glory

        Comment


        • #5
          chào bạn WinterInJuly
          mình cũng tìm hiểu PSOC được một thời gian rồi. bi giờ mới chú ý đến phần bảo vệ mã nguồn. bạn có thể hướng dẫn cụ thể cho mình được không? mình đang dùng Psoc Designer 4.3. thanks!

          Comment

          Về tác giả

          Collapse

          OSPF Tìm hiểu thêm về OSPF

          Bài viết mới nhất

          Collapse

          Đang tải...
          X