Tải bản đầy đủ (.pptx) (15 trang)

Slide Tìm hiểu cấu trúc PE file

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.28 MB, 15 trang )

Báo Cáo
Lập trình hệ thống và ghép nối thiết bị

Đề tài: Tìm hiểu PE file

Nhóm Thông Team thực hiện:
1. Trần Văn Dũng.
2. Nguyễn Mạnh Ninh.
3. Lê Quang Long.
4. Ngô Văn Thỉnh.
5. Bùi Đức Thuận.

LOGO
Nhóm: Thông_Team - AT8B

6/7/16

1

Slide /15


Nội Dung

1

2

Giới thiệu chung về PE file.

Cấu trúc của PE file.



3

4

Kỹ thuật dịch ngược phần mềm.

Demo.

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

2

Slide /15


Giới thiệu chung

 PE file là gì?
 PE là từ viết tắt của Portable Executable.
 PE là định dạng riêng của Win32.
 Định dạng này được thiết kế bởi Microsoft vào năm 1993 và được chuẩn hóa bởi Tool
Interface Standard Committee (bao gồm Microsoft, Intel, Borland, Watcom, IBM và các
tập đoàn khác).

 Tất cả các file có thể thực thi được trên Win32 (ngoại trừ các tập tin VxDs và Dlls 16bit)
đều sử dụng định dạng PE.


LOGO
Nhóm: Thông_Team - AT8B
6/7/16

3

Slide /15


Giới thiệu chung

 Lý do có PE:
 PE (Portable Executable) được chọn lựa là vì mục đích phải có một định dạng file phổ biến
(common file format) cho hầu hết các loại hệ điều hành Windows, hầu hết các loại CPUs hỗ
trợ Windows khi chạy.

 Khi hệ điều hành muốn thực thi 1 file PE, nó sẽ dùng 1 trình gọi là Windows Loader (hay còn
gọi là PE Loader) để tải file PE vào vùng nhớ (memory). Việc tải này không đơn giản như là
việc copy y nguyên file vào vùng nhớ, mà nó thực sự là sắp đặt (mapping) dữ liệu file vào
vùng nhớ. Tức là có thể có 1 số phần trong file PE trên đĩa (disk) sẽ không được mapping (sắp
đặt) vào vùng nhớ.

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

4

Slide /15



Cấu trúc PE file

 Dos header





Vùng DOS MZ header chiếm 64 bytes đầu tiên của file.
Được dùng khi bạn chạy file đó trên nền DOS.
DOS stub là một chương trình DOS EXE nhỏ dung để hiển thị thông báo lỗi.
DOS stub thường sử dụng hàm 9 của ngắt 21h để hiện thông báo

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

5

Slide /15


Cấu trúc PE file

 Dos MZ header
DOS Header là một cấu trúc được định nghĩa như sau:

LOGO
Nhóm: Thông_Team - AT8B

6/7/16

6

Slide /15


Cấu trúc PE file

 PE header
PE header là một thuật ngữ chung đại diện cho cấu trúc IMAGE_NT_HEADERS:




Signature chứa những giá trị 50h, 45h, 00h, 00h
FileHeader bao gồm 20 bytes tiếp theo, chứa thông tin sơ đồ bố trí vật lý và những đặc tính
của file.



OptionalHeader luôn luôn hiện diện với 224 bytes tiếp theo, chứa thông tin sơ đồ Logic bên
trong của file PE.

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

7


Slide /15


Cấu trúc PE file

 PE header
Signature

File Header

Optional Header

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

8

Slide /15


Cấu trúc PE file

 PE header => Data Directory
Signature




Data Directory chiếm 128 bytes cuối cùng của OptionalHeader.

Data Directory là 1 mảng có 16 phần tử
IMAGE_DATA_DIRECTORY:

File Header

Optional Header

Data Directory

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

9

Slide /15


Cấu trúc PE file

 Section table




Section Table là một mảng của những cấu trúc IMAGE_SECTION_HEADER
Mỗi phần tử chứa thông tin của 1 section trong PE file (thuộc tính, offset ảo).
Số lượng sections chính là được khai bào trong NumberOfSections trong phần FileHeader

LOGO

Nhóm: Thông_Team - AT8B
6/7/16

10

Slide

/15


Cấu trúc PE file

 PE File Sections


PE File Sections là những sections chứa nội dung chính của file, bao gồm code, data,
resources và những thông tin khác của file thực thi.



Mỗi sections có một Header và một Body, phần Header thì được chứa trong Section
Table nhưng phần body thì không có 1 cấu trúc file nào cứng rắn.



Một chương trình ứng dụng đặc thù trên HĐH Windows NT có 9 section được định
nghĩa trước có tên là: .text, .bss, .rdata, .rsrc, .edata, .idata, .pdata và debug.

LOGO
Nhóm: Thông_Team - AT8B

6/7/16

11

Slide

/15


Kỹ thuật dịch ngược phần mềm

 Khái niệm



Là quá trình tìm kiếm, chia sẻ thông tin (nguyên lý, code…) hay thiết kế từ các phần mềm ứng dụng.
Giúp ta phân tích tìm hiểu được cấu trúc của phần mềm như thế nào, để phát triển sản phẩm hoàn thiện
hơn trong tương lai.

 Dịch ngược phần mềm cần sự kết hợp của kĩ năng và cả hiểu biết về máy tính và phát triển phần mềm,
sự chuẩn bị cần thiết nhất là sự ham hiểu biết và kiên trì học hỏi .



Tuy nhiên dịch ngược cũng là phương pháp mà các hacker sử dụng để can thiệp vào phần mềm trái
phép, làm thay đổi ý nghĩa công dụng của sản phẩm.

LOGO
Nhóm: Thông_Team - AT8B
6/7/16


12

Slide

/15


Kỹ thuật dịch ngược phần mềm

 Một số phần mềm


OllyDBG: hay còn gọi tắt là Olly là công cụ debug rất phổ biến. Nhờ giao diện trực quan và dễ sử dụng nên Olly
phù hợp với người dùng ở mọi trình độ khác nhau.




Net Reflector: sử dụng cho các chương trình chạy trên nền tảng .NET Framework .
IDA: là công cụ disassembler và debuger đa nền tảng, có thể sử dụng trên nền tảng Windows, Linux or Mac OS
X.



Hex Editor: Trong quá trình thực hiện công việc Reverse, ta cần đến các công cụ Hex Editor để đọc và chỉnh sửa
các file dưới định dạng hex.




Một số công cụ khác: 010 Hex Editor (phần mềm trả phí), Winhex (phần mềm miễn phí), CFF Explorer VIII (1
chương trình nằm trong bộ công cụ Explorer Suite).

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

13

Slide

/15


Phần 4: Demo

LOGO
Nhóm: Thông_Team - AT8B
6/7/16

14

Slide

/15


Thank You !

LOGO

Nhóm: Thông_Team - AT8B
6/7/16

15

Slide

/15



×