PIC Vietnam

Go Back   PIC Vietnam > Các Đề Tài > Các đề tài khác

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 21-05-2009, 10:42 PM   #1
thvinh1010
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 3
:
Question Tính bảo mật của PIC

Xin chào mọi người,

Tôi mới tiếp xúc với PIC một thời gian chưa nhiều, có một câu hỏi xin mọi người chỉ giáo.
...
Sau thiết kế và viết chương trình rồi đổ chương trình xuống PIC, nếu mạch chạy được theo ý đồ của chúng ta đã là thành công rồi. Thế nhưng...
1. Liệu chương trình chúng ta viết ra có khả năng bị hack, bị copy file hex từ vùng nhớ program memory nội bộ trên PIC không?
2. Dựa trên file hex mà lấy được từ 1 ở trên, người ta có thể truy ngược lại code C và sửa nội dụng theo ý đồ mới không?
Nếu có bạn nào hiểu rõ tính bảo mật của PIC, xin giải thích giúp tôi nhé.
Xin cảm ơn,

THV
thvinh1010 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-05-2009, 10:51 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi thvinh1010 View Post
Xin chào mọi người,

Tôi mới tiếp xúc với PIC một thời gian chưa nhiều, có một câu hỏi xin mọi người chỉ giáo.
...
Sau thiết kế và viết chương trình rồi đổ chương trình xuống PIC, nếu mạch chạy được theo ý đồ của chúng ta đã là thành công rồi. Thế nhưng...
1. Liệu chương trình chúng ta viết ra có khả năng bị hack, bị copy file hex từ vùng nhớ program memory nội bộ trên PIC không?
2. Dựa trên file hex mà lấy được từ 1 ở trên, người ta có thể truy ngược lại code C và sửa nội dụng theo ý đồ mới không?
Nếu có bạn nào hiểu rõ tính bảo mật của PIC, xin giải thích giúp tôi nhé.
Xin cảm ơn,

THV
1. PIC cũng giống như các vi điều khiển khác, có thể khóa truy cập (từ bên ngoài vi điều khiển) bộ nhớ chương trình (program memory) khi người dùng có nhu cầu bảo mật mã thực thi trong bộ nhớ. Tất nhiên người ta vẫn có thể dùng các kỹ thuật phức tạp để bẻ khóa, nhưng tôi tin rằng người ta sẽ gặp khó khăn không kém hơn so với khi bẻ khóa các vi điều khiển khác.

2. Theo tôi được biết, cho đến thời điểm này vẫn chưa có công cụ nào cho phép chuyển từ mã máy (trong tập tin .hex chẳng hạn) thành code C. Nếu bạn tìm được công cụ này, tôi tin rằng sẽ có rất nhiều người sẵn sàng mua nó với giá rất cao.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 21-05-2009, 11:17 PM   #3
thvinh1010
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 3
:
Question

Xin cảm ơn anh Nam đã nhanh chóng trả lời giúp tôi.

Tuy nhiên, anh có thể nói rõ hơn câu 1 bên dưới được không ah?
Làm thế nào để thực hiện việc khoá truy cập đối với PIC được?
Xin cảm ơn.

THV

------------------------------------------------------------------------------------
1. PIC cũng giống như các vi điều khiển khác, có thể khóa truy cập (từ bên ngoài vi điều khiển) bộ nhớ chương trình (program memory) khi người dùng có nhu cầu bảo mật mã thực thi trong bộ nhớ. Tất nhiên người ta vẫn có thể dùng các kỹ thuật phức tạp để bẻ khóa, nhưng tôi tin rằng người ta sẽ gặp khó khăn không kém hơn so với khi bẻ khóa các vi điều khiển khác.
------------------------------------------------------------------------------------
thvinh1010 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-05-2009, 08:52 AM   #4
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi thvinh1010 View Post
Xin cảm ơn anh Nam đã nhanh chóng trả lời giúp tôi.

Tuy nhiên, anh có thể nói rõ hơn câu 1 bên dưới được không ah?
Làm thế nào để thực hiện việc khoá truy cập đối với PIC được?
Xin cảm ơn.

THV

------------------------------------------------------------------------------------
1. PIC cũng giống như các vi điều khiển khác, có thể khóa truy cập (từ bên ngoài vi điều khiển) bộ nhớ chương trình (program memory) khi người dùng có nhu cầu bảo mật mã thực thi trong bộ nhớ. Tất nhiên người ta vẫn có thể dùng các kỹ thuật phức tạp để bẻ khóa, nhưng tôi tin rằng người ta sẽ gặp khó khăn không kém hơn so với khi bẻ khóa các vi điều khiển khác.
------------------------------------------------------------------------------------
Để thực hiện khóa truy cập, bạn thiết lập một hay nhiều bit thích hợp trong cấu hình của PIC (việc này được thực hiện khi bạn nạp chương trình cho PIC bằng các mạch nạp thông thường). Với PIC16, thông thường chỉ có một bit CP để bật/tắt việc khóa truy cập. Với PIC18, có thể có một hay nhiều bit CPx để bật/tắt việc khóa truy cập cho block x, và cũng có thể có bit CPD để bật/tắt việc khóa truy cập data EEPROM, và bit CPB để bật/tắt việc khóa truy cập boot block (nếu PIC18 có boot block).

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-05-2009, 09:18 AM   #5
tranhuyky
Đệ tử 2 túi
 
Tham gia ngày: Nov 2006
Bài gửi: 39
:
Send a message via Yahoo to tranhuyky
Mình cũng đang quan tâm về vấn đề này.
Có ai biết tài liệu nói về việc bật tắt bit CPx gì đó không, cho mình xin nhe.
Hiện mình đang làm 1 ứng dụng có tính bảo mật hơi cao, yêu cầu phải đảm bảo
không bị hack vào vi điều khiển hoặc nếu bị hack thì phải phát hiện được.
Mong nhận được sự giúp đỡ của mọi người.
tranhuyky vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-05-2009, 11:58 PM   #6
kimhuynguyen
Đệ tử 3 túi
 
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: Vietnam
Bài gửi: 48
:
Smile

Trích:
Nguyên văn bởi tranhuyky View Post
Mình cũng đang quan tâm về vấn đề này.
Có ai biết tài liệu nói về việc bật tắt bit CPx gì đó không, cho mình xin nhe.
Hiện mình đang làm 1 ứng dụng có tính bảo mật hơi cao, yêu cầu phải đảm bảo
không bị hack vào vi điều khiển hoặc nếu bị hack thì phải phát hiện được.
Mong nhận được sự giúp đỡ của mọi người.
http://www.break-ic.com/

Xem ra bạn phải tìm những loại security microcontroller không có trong danh sách trên rồi.

Good luck!!!
__________________
More friends more foods
kimhuynguyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-06-2009, 02:52 PM   #7
PSL
Đệ tử 1 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 20
:
Trích:
Nguyên văn bởi tranhuyky View Post
Mình cũng đang quan tâm về vấn đề này.
Có ai biết tài liệu nói về việc bật tắt bit CPx gì đó không, cho mình xin nhe.
Hiện mình đang làm 1 ứng dụng có tính bảo mật hơi cao, yêu cầu phải đảm bảo
không bị hack vào vi điều khiển hoặc nếu bị hack thì phải phát hiện được.
Mong nhận được sự giúp đỡ của mọi người.
Bạn có thể thiết lập như sau:
list p=18f4431 ; list directive to define processor

#include <p18f4431.inc> ; processor specific variable definitions

#include <AVR_PFDec.inc>

#include <Macros.inc>

; Configuration Declairation

__CONFIG _CONFIG1H, _OSC_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ; Xtal 16MHz

__CONFIG _CONFIG2L, _PWRTEN_OFF_2L &_BOREN_ON_2L &_BORV_45_2L

__CONFIG _CONFIG2H, _WDTEN_OFF_2H &_WINEN_OFF_2H & _WDPS_1_2H ;********

__CONFIG _CONFIG3L,_T1OSCMX_OFF_3L

__CONFIG _CONFIG3H, _MCLRE_ON_3H

__CONFIG _CONFIG4L, _DEBUG_OFF_4L & _LVP_OFF_4L & _STVREN_ON_4L

__CONFIG _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L

__CONFIG _CONFIG5H, _CPB_ON_5H & _CPD_OFF_5H

__CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L

__CONFIG _CONFIG6H, _WRTB_OFF_6H & _WRTC_OFF_6H

__CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L

__CONFIG _CONFIG7H, _EBTRB_OFF_7H & _DEVID1 & _IDLOC0

;************************************************* *****************************

global Main

extern InitialSetup,UART

;***************************

;Reset vector

; This code will start executing when a reset occurs.



RESET_VECTOR CODE 0x0000

goto Main ;go to start of main code

;************************************************* *****************************

Trong đó:

__CONFIG _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
__CONFIG _CONFIG5H, _CPB_ON_5H & _CPD_OFF_5H

là thiết lập Code Protect. Không việc gì phải chỉnh mỗi khi nạp.
PSL vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-05-2009, 01:02 PM   #8
tranhuyky
Đệ tử 2 túi
 
Tham gia ngày: Nov 2006
Bài gửi: 39
:
Send a message via Yahoo to tranhuyky
Thông tin hack chip: www.mikahk.com
tranhuyky vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-05-2009, 06:08 PM   #9
thaithien
Đệ tử 7 túi
 
Tham gia ngày: Aug 2007
Bài gửi: 213
:
Trong chương trình nạp pickit 2 có phần Enable code protect và Enable data protect.Nếu bật hai cái này lên thì có đủ bảo mật không ?Khi đã có file hex thì có khả năng bị dịch ngược thành mã máy là có thể .Như vậy có cách nào để không đọc được file hex từ vi điều khiển luôn ?
thaithien vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-05-2009, 09:24 PM   #10
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi thaithien View Post
Trong chương trình nạp pickit 2 có phần Enable code protect và Enable data protect.Nếu bật hai cái này lên thì có đủ bảo mật không ?Khi đã có file hex thì có khả năng bị dịch ngược thành mã máy là có thể .Như vậy có cách nào để không đọc được file hex từ vi điều khiển luôn ?
Khi bạn bật Code protect là đã không thể đọc nội dung chương trình thực trong PIC (bạn chỉ đọc ra toàn giá trị 0x0000). Tương tự cho trường hợp bật Data protect.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-02-2010, 03:56 PM   #11
delatdecatsini
Đệ tử 1 túi
 
Tham gia ngày: Jun 2009
Bài gửi: 11
:
Em tham khảo 2 link trên nhưng đã die rồi. Cho em hỏi làm sao để biết 1 pic 18F bị khóa và khóa đến đâu ?. Vậy các anh đã thử 1 PIC bị khóa mà lấy ra được file hex lên PC, rồi dùng chính file này đổ vào con PIC tương tự thì có hoạt động không ?

Như AVR có lock bit hết rồi mà dùng STK500 vẫn read ra được, rồi đổ vào con khác vẫn chạy nhưng 5 con thì 2 con ko chạy cùng file hex đó, thực sự không hiểu thế nào nữa
delatdecatsini vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-02-2010, 04:58 PM   #12
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi delatdecatsini View Post
Em tham khảo 2 link trên nhưng đã die rồi. Cho em hỏi làm sao để biết 1 pic 18F bị khóa và khóa đến đâu ?. Vậy các anh đã thử 1 PIC bị khóa mà lấy ra được file hex lên PC, rồi dùng chính file này đổ vào con PIC tương tự thì có hoạt động không ?

Như AVR có lock bit hết rồi mà dùng STK500 vẫn read ra được, rồi đổ vào con khác vẫn chạy nhưng 5 con thì 2 con ko chạy cùng file hex đó, thực sự không hiểu thế nào nữa
Trả lời: .

Trích:
Nguyên văn bởi namqn View Post
Khi bạn bật Code protect là đã không thể đọc nội dung chương trình thực trong PIC (bạn chỉ đọc ra toàn giá trị 0x0000). Tương tự cho trường hợp bật Data protect.

Thân,
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-02-2010, 12:22 PM   #13
delatdecatsini
Đệ tử 1 túi
 
Tham gia ngày: Jun 2009
Bài gửi: 11
:
Trích:
Nguyên văn bởi bien_van_khat View Post
Trả lời: .
Anh ơi vẫn có giá trị chứ ko phải toàn 0x0000 đâu, chủ yếu là ko biết giá trị này nó sai lệch đến đâu so với gốc thôi
delatdecatsini vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-02-2010, 02:06 PM   #14
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi delatdecatsini View Post
Anh ơi vẫn có giá trị chứ ko phải toàn 0x0000 đâu, chủ yếu là ko biết giá trị này nó sai lệch đến đâu so với gốc thôi
Bạn đã thử bao giờ chưa mà sao chắc chắn vậy?
__________________
- Xin đọc trước khi post bài

Xin đặt code trong thẻ [ code ] [ /code ]
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-02-2010, 05:59 AM   #15
thundernhut
Đệ tử 2 túi
 
Tham gia ngày: Jul 2009
Bài gửi: 33
:
có chương trình dịch từ mã máy ra ngôn ngữ C đó
nhưng mà vấn đề là :
giống như bạn thảy đoạn văn tiếng Anh vào chương trình dịch ra tiếng Việt thì nó dịch ra 1 cách rất ngô nghê và sai là bình thường
Các chường trình dịch ngược mã máy ra C cũng vậy.
thundernhut vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 02:10 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam