Danh mục

Nghệ Thuật Tận Dụng Lỗi Phần Mềm

Số trang:      Loại file: pdf      Dung lượng: 331.37 KB      Lượt xem: 20      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 2,000 VND Tải xuống file đầy đủ ( trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Mục đich cuối cùng của việc tận dụng lỗi phần mềm là thực thi các tác vụ mong muốn. Để làm được điều đó, trước hết chúng ta phải biết rõ cấu trúc của máy tính
Nội dung trích xuất từ tài liệu:
Nghệ Thuật Tận Dụng Lỗi Phần Mềm Chương 2 Máy tính và biên d ch M c đích cu i cùng c a vi c t n d ng l i ph n m m là th c thi các tác v mong mu n. Đ làm đư c đi u đó, trư c h t chúng ta ph i bi t rõ c u trúc c a máy tính, cách th c ho t đ ng c a b vi x lý, nh ng l nh mà b vi x lý có th th c hi n, làm sao truy n l nh t i b vi x lý. Vi c này cũng tương t như h c ch y xe máy v y. Chúng ta ph i bi t nh n vào nút nào đ kh i đ ng máy, nút nào đ b t đèn xin đư ng, làm sao đ r trái, làm sao đ d ng xe. Trong chương này, chúng ta s xem xét c u trúc máy tính mà đ c bi t là b vi x lý (Central Processing Unit, CPU), các thanh ghi (register), và b l nh (instruction) c a nó, cách đánh đ a ch b nh tuy n tính (linear addressing). K ti p chúng ta s bàn t i mã máy (machine code), r i h p ng (assembly language) đ có th chuy n qua trao đ i v cách chương trình biên d ch (compiler) chuy n m t hàm t ngôn ng C sang h p ng . K t thúc chương chúng ta s đưa ra m t mô hình v trí ngăn x p (stack layout, stack diagram) c a m t hàm m u v i các đ i s và bi n n i b . Trong su t tài li u này, chúng ta s ch nói đ n c u trúc c a b vi x lý Intel 32 bit. 2.1 H cơ s Trư c khi đi vào c u trúc máy tính, chúng ta c n n m rõ m t ki n th c n n t ng là h cơ s . Có ba h có s thông d ng mà chúng ta s s d ng trong tài li u này: 5 CHƯƠNG 2. MÁY TÍNH VÀ BIÊN D CH H nh phân (binary) là h cơ s hai, đư c máy tính s d ng. M i m t ch s có th có giá tr là 0, ho c 1. M i ch s này đư c g i là m t bit. Tám (8) bit l p thành m t byte (có ký hi u là B). M t kilobyte (KB) là 1024 (210 ) byte. M t megabyte (MB) là 1024 KB. H th p phân (decimal) là h cơ s mư i mà chúng ta, con ngư i, s d ng hàng ngày. M i m t ch s có th có giá tr là 0, 1, 2, 3, 4, 5, 6, 7, 8, ho c 9. H th p l c phân (hexadecimal) là h cơ s mư i sáu, đư c s d ng đ tính toán thay cho h nh phân vì nó ng n g n và d chuy n đ i hơn. M i m t ch s có th có giá tr 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, và F trong đó A có giá tr là 10 (th p phân), B có giá tr là 11 và tương t v i C, D, E, F. 2.1.1 Chuy n đ i t h cơ s b t kỳ sang h cơ s mư i G i cơ s đó là R, s ch s là n, ch s v trí mang ít ý nghĩa nh t (least significant digit) là x0 (thư ng là s t n cùng bên ph i), ch s t i v trí mang nhi u ý nghĩa nh t (most significant digit) là xn−1 (thư ng là s t n cùng bên trái), và các ch s còn l i t x1 cho t i xn−2 . Giá tr th p phân c a con s này s đư c tính theo công th c sau: Gia tr. th p phan = x0 × R0 + x1 × R1 + ... + xn−2 × Rn−2 + xn−1 × Rn−1 ´i ˆ Ví d giá tr th p phân c a s nh phân 00111001 (R = 2, n = 8) là 1 × 20 +0 × 21 +0 × 22 +1 × 23 +1 × 24 +1 × 25 +0 × 26 +0 × 27 = 57, giá tr th p phân c a s th p l c phân 7F (R = 16, n = 2) là 15 × 160 + 7 × 161 = 127. 2.1.2 Chuy n đ i qua l i gi a h nh phân và h th p l c phân M i m t ch s trong h th p l c phân tương ng v i b n ch s h nh phân vì 16 = 24 . Do đó, đ chuy n đ i qua l i gi a hai h này, chúng ta ch c n chuy n đ i t ng b n bit theo B ng 2.1. Ví d giá tr nh phân c a s th p l c phân AF là 10101111 vì A tương ng v i 1010 và F tương ng v i 1111, giá tr th p l c phân c a s nh phân 01010000 là 50. 6 2.1. H CƠ S B ng 2.1: Chuy n đ i gi a h th p l c phân và nh phân Th p phân Th p l c phân Nh phân 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 7 CHƯƠNG 2. MÁY TÍNH VÀ BIÊN D CH B ng 2.2: M t vài giá tr ph thông trong b ng mã ASCII 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 0 1 2 3 4 5 6 7 8 9 3 A B C D E F G H I J K L M N O 4 P Q R S T U V W X Y Z 5 a b c d e f g h i j k l m n o 6 p q r s t u v w x y z 7 2.1.3 B ng mã ASCII Vì máy tính ch hi u các bit 0 và 1 nên chúng ta c n có m t quy đ nh chung v cách bi u di n nh ng ký t ch như A, B, C, X, Y, Z. B ng mã ASCII là m t trong nh ng quy đ nh đó. B ng mã này ánh x các giá tr th p phân nh hơn 128 (t 00 t i 7F trong h th p l c phân) thành nh ng ký t ch thông thư ng. B ng mã này đư c s d ng ph bi n nên các h đi u hành hi n đ i đ u tuân theo chu n ASCII. Ngày nay chúng ta thư ng nghe nói v b ng mã Unicode vì nó th hi n đư c h u h t các ngôn ng trên th gi i và đ c bi t là ti ng Vi t đư c giành riêng m t vùng trong b ng mã. B n thân Unicode cũng s d ng cách ánh x ASCII cho các ký t nh hơn 128. B ng 2.2 li t kê m t s giá tr ph thông trong b ng mã ASCII. Theo đó, ký t ch A hoa có mã 41 h th p l c phân, và mã th p l c 61 tương ng v i ký t ch a thư ng, mã th p l c 35 tương ng v i ch s 5. Ngoài ra, m t vài ký t đ c bi t như ký t k t thúc chu i NUL có mã th p l c 00, ký t xu ng dòng, t o dòng m i (line feed, new line) có mã th p l c 0A, ký t d i con tr v đ u dòng (carriage return) có mã th p l c 0D, ký t kho ng tr ng có mã th p l c 20. Chúng ta đã xem xét qua ki n th c căn b n v các h cơ s và b ng mã ASCII. ph n k ti p chúng ta s bàn v b vi x lý c a máy tính. 8 ...

Tài liệu được xem nhiều: