CÁC VẤN ĐỀ VỀ MÃ NGUỒN

83 353 0
CÁC VẤN ĐỀ VỀ MÃ NGUỒN

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giảng viên: TS. Trần Đan Thư Nhóm 1: Nguyễn Thị Bảo Chi Phạm Minh Dũng CÁC VẤN ĐỀ VỀ MÃ NGUỒN 2 Nội dung  Các loại mã  Trong sáng hóa mã nguồn  Phong cách trình bày  Tự động tạo tài liệu  Bảo mật mã nguồn  Bảo mật hướng hành chính  Đen tối hóa mã nguồn  IOCC 3 Các loại mã  Source code (mã nguồn)  Intermediate code, bytecode  Machine code  Obfuscated code 4 Source code  Tập các phát biểu/chỉ dẫn mà con người có thể đọc hiểu được 5 Intermediate code  Tập các phát biểu duy nhất và độc lập với phần cứng int dotprod(int a[], int b[], int N){ int i, prod = 0; for (i = 1; i ≤ N; i++) { prod += a[i]∗b[i]; } return prod; } enter dotprod prod = 0 i = 1 t1 = 4*i t2 = a[t1] t3 = 4*i t4 = b[t3] t5 = t2*t4 t6 = prod+t5 prod = t6 t7 = i+i i = t7 if i ? N goto 4 retval prod leave dotprod return 6 Bytecode public Employee(String strName, int num) { name = strName; idNumber = num; storeData(strName, num); } Method Employee(java.lang.String,int) 0 aload_0 1 invokespecial #3 <Method java.lang.Object()> 4 aload_0 5 aload_1 6 putfield #5 <Field java.lang.String name> 9 aload_0 10 iload_2 11 putfield #4 <Field int idNumber> 14 aload_0 15 aload_1 16 iload_2 17 invokespecial #6 <Method void storeData(java.lang.String, int)> 20 return 7 Machine code  Tập các phát biểu ở mức thấp nhất phụ thuộc hoàn toàn phần cứng 8b 02 mov eax,[edx] 7b bf jnp 0040008a 8b e9 mov ebp,ecx 64 b4 8b mov ah,8b ea 64 b5 8b af 66 b4 jmp b466:af8bb564 8b 88 7b a7 8b ff mov ecx,[eax-00745885] 64 b4 8b mov ah,8b 02 7b be add bh,[ebx-42] 8b e6 mov esp,esi 64 b4 8b mov ah,8b ec in al,dx 47 inc edi bf 8b a0 64 b4 mov edi,b464a08b 8b 2d 62 b2 8b eb mov ebp,[eb8bb262] 64 b4 8b mov ah,8b 52 push edx 8 Obfuscated code  Là các loại trên nhưng được làm tối nghĩa (đen tối hóa mã nguồn)  Chủ yếu áp dụng cho source code _(__,___,____){___/__<=1?_(__,___+1,____): !(___%__)?_(__,___+1,0):___%__==___/ __&&!____?(printf("%d\t",___/__),_(__,___+1,0)): ___%__>1&&___%__<___/__?_(__,1+ ___,____+!(___/__%(___%__))): ___<__*__?_(__,___+1,____):0;}main(){_(100,0,0);} 9 Nội dung  Các loại mã  Trong sáng hóa mã nguồn  Phong cách trình bày  Tự động tạo tài liệu  Bảo mật mã nguồn  Bảo mật hướng hành chính  Đen tối hóa mã nguồn  IOCC 10 Trong sáng hóa mã nguồn  Rất quan trọng trong quá trình lập trình với nhiều lý do:  80% chu kỳ sống của phần mềm là bảo trì  Mã nguồn khó đọc chỉ có thể được bảo trì bởi chính người viết ra nó  Quy ước viết mã nguồn tăng khả năng dễ đọc cho phần mềm, cho phép những lập trình viên khác nhanh chóng tiếp cận mã nguồn khi nó được tích hợp trên nhiều module khác nhau  Phục vụ tốt công tác thanh tra mã nguồn [...]...Nội dung  Các loại mã  Trong sáng hóa mã nguồn  Phong cách trình bày  Tự động tạo tài liệu  Bảo mật mã nguồn  Bảo mật hướng hành chính  Đen tối hóa mã nguồn  IOCC 11 Phong cách trình bày      Trình bày tổng thể Khai báo biến và hàm Trình bày dòng lệnh Thụt đầu dòng Chú thích chương... bày dòng lệnh (2)  Nên sử dụng các dấu () khi muốn tránh các lỗi về độ ưu tiên toán tử //Không nên int i = a >= b && c < d && e = b) && (c < d) && (e next) { } 25 Thụt đầu dòng (1)  Cặp dấu {} bao các khối lệnh, giúp người . Dũng CÁC VẤN ĐỀ VỀ MÃ NGUỒN 2 Nội dung  Các loại mã  Trong sáng hóa mã nguồn  Phong cách trình bày  Tự động tạo tài liệu  Bảo mật mã nguồn  Bảo mật hướng hành chính  Đen tối hóa mã nguồn  IOCC 3 Các. dung  Các loại mã  Trong sáng hóa mã nguồn  Phong cách trình bày  Tự động tạo tài liệu  Bảo mật mã nguồn  Bảo mật hướng hành chính  Đen tối hóa mã nguồn  IOCC 10 Trong sáng hóa mã nguồn  Rất. thanh tra mã nguồn 11 Nội dung  Các loại mã  Trong sáng hóa mã nguồn  Phong cách trình bày  Tự động tạo tài liệu  Bảo mật mã nguồn  Bảo mật hướng hành chính  Đen tối hóa mã nguồn  IOCC 12 Phong

Ngày đăng: 29/06/2015, 14:17

Mục lục

  • CÁC VẤN ĐỀ VỀ MÃ NGUỒN

  • Nội dung

  • Các loại mã

  • Source code

  • Intermediate code

  • Bytecode

  • Machine code

  • Obfuscated code

  • Slide 9

  • Trong sáng hóa mã nguồn

  • Slide 11

  • Phong cách trình bày

  • Trình bày tổng thể (1)

  • Trình bày tổng thể (2)

  • Khai báo biến và hàm (1)

  • Khai báo biến và hàm (2)

  • Khai báo biến và hàm (3)

  • Khai báo biến và hàm (4)

  • Khai báo biến và hàm (5)

  • Khai báo biến và hàm (6)

Tài liệu cùng người dùng

Tài liệu liên quan