1. Trang chủ
  2. » Công Nghệ Thông Tin

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

15 847 5

Đ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

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 2,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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... Giới thiệu chung Lý do có PE: PE Portable Executable được chọn

Trang 1

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

Nhóm Thông Team thực hiện:

1 Trần Văn Dũng.

2 Nguyễn Mạnh Ninh.

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

Trang 2

Nội Dung

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

1

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

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

2

3

Demo.

4

Trang 3

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

Trang 4

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ớ

Trang 5

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

Trang 6

Cấu trúc PE file

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

Trang 7

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.

Cấu trúc PE file

Trang 8

Cấu trúc PE file

Signature

File Header

Optional Header

Trang 9

Cấu trúc PE file

PE header => Data Directory

Signature

File Header

 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:

Trang 10

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

Trang 11

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

Trang 12

Kỹ thuật dịch ngược phần mề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

Trang 13

Kỹ thuật dịch ngược 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).

Trang 14

Phần 4: Demo

Trang 15

Thank You !

Ngày đăng: 07/06/2016, 19:33

TỪ KHÓA LIÊN QUAN

w