1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ Án Tìm Hiểu Cấu Trúc File Thực Thi Trong Windows Và Vấn Đề Sửa Đổi Các Tài Nguyên Trên File

37 468 0

Đ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 37
Dung lượng 631 KB

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

Nội dung

 Phần 2: Tổng quan về định dạng file thực thi PE PE File Format..  Phần 3: Vấn đề truy xuất và sửa đổi các Resource trong file... cho phép người dùng có thể sửa chữa lại giao diện ch

Trang 1

ĐỔI CÁC TÀI NGUYÊN

TRÊN FILE.

Sv thực hiện : Phạm Trọng Tôn - Triệu Ngọc Toàn

Trang 2

NỘI DUNG :

Phần 1: Giới thiệu đề tài và chương trình

VIETNAM Ease Controls.

Phần 2: Tổng quan về định dạng file thực thi

PE (PE File Format).

Phần 3: Vấn đề truy xuất và sửa đổi các

Resource trong file.

Trang 3

Phần 1 : Giới thiệu đề tài và

chương trình VE Controls.

trên nền của hệ điều hành Windows của hãng Microsoft

Số các ứng dụng này chiếm khoảng hơn 90% số các phần mềm trên thế giới hiện nay.

Anh làm giao diện chính cho chương trình của mình Rất

ít chương trình có khả năng hỗ trợ đa ngôn ngữ và đặc biệt là Tiếng Việt.

không chuyên tin học khi sử dụng máy tính Đặc biệt trên máy tính còn tồn tại một số thuật ngữ cũng như những thông báo khá khó hiểu mà đối với một số người có trình

độ tiếng Anh nhất định cũng sẽ gặp phải.

Trang 4

ty phần mềm đã và đang cố gắng xây dựng các phần mềm giao diện tiếng Việt, nhằm phổ cập hoá CNTT và phát

triển ngành CNTT nước nhà Tuy nhiên cách này khá tốn kém và thường không hiệu quả do chất lượng các phần

mềm trong nước còn chưa cao.

VD : HĐH Vietkey Linux được Việt Hóa từ HĐH Linux có mã nguồn mở.

cho phép người dùng có thể sửa chữa lại giao diện chương trình từ các file thực thi như Resource Hacker, Restorator,

PE Explorer… Với các chương trình này bạn phải sửa

chữa từng từ một trong file do đó mất rất nhiều thời gian

và nhàm chán do phải lặp đi lặp lại trên cùng một thao tác.

Trang 5

VEControls

Trang 6

Bảng tra từ

Trang 7

Thông tin về file

Trang 8

Với VEControls:

Việc Việt hóa các controls chuẩn sẽ được thực hiện

một cách tự động dựa trên bộ từ điển xây dựng sẵn.

Tiết kiệm được rất nhiều thời gian so với cách làm thủ công, chính xác và hiệu quả.

Thực hiện những sửa đổi ngay trên file thực thi

(không cần source code) và cho ra kết quả là một file thực thi có thể chạy được ngay.

Có khả năng mở rộng được cho nhiều ngôn ngữ khác nhau Điều này sẽ làm tiết kiệm rất nhiều tiền bạc và công sức cho việc bản địa hóa phần mềm.

Trang 9

Một số kết quả đạt được

Trang 10

Sau khi Việt hóa bằng VEControls

Trang 11

Sau khi chuyển sang tiếng Pháp

Trang 12

Với phần mềm Flashget

Trang 13

Phần 2:Tổng quan về định dạng

file thực thi PE (PE File Format).

Kể từ HĐH Windows NT 3.1, Microsoft đưa ra một định dạng tập tin mới cho các file thưc thi của họ Đó là định dạng tập tin thực thi

Portable Executable (PE)

Về bản chất thì định dạng của tập tin PE được rút ra chủ yếu từ định dạng COFF (Common Object File Format) rất phổ biến trên hệ điều hành UNIX®

Trang 14

Cấu trúc tổng quát của vùng PE Header

Trang 16

MS-DOS Header

typedef struct _IMAGE_DOS_HEADER { // DOS EXE header

WORD e_magic; // Magic number

WORD e_cblp; // Bytes on last page of file

WORD e_cp; // Pages in file

WORD e_crlc; // Relocations

WORD e_cparhdr; // Size of header in paragraphs

WORD e_minalloc; // Minimum extra paragraphs needed

WORD e_maxalloc; // Maximum extra paragraphs needed

WORD e_ss; // Initial (relative) SS value

WORD e_sp; // Initial SP value

WORD e_csum; // Checksum

WORD e_ip; // Initial IP value

WORD e_cs; // Initial (relative) CS value

WORD e_lfarlc; // File address of relocation table

WORD e_ovno; // Overlay number

WORD e_res[4]; // Reserved words

WORD e_oemid; // OEM identifier (for e_oeminfo)

WORD e_oeminfo; // OEM information;e_oemid specific

WORD e_res2[10]; // Reserved words

LONG e_lfanew; // File address of new exe header

} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;

Trang 17

Real-Mode Stub Program

Là một chương trình con thật sự, có khả năng thực thi và đưa ra các thông báo lỗi.

Được Microsoft thêm vào để đảm bảo tính

tương thích với các HĐH trước như MS-DOS

và Windows 3.1.

Phần này nằm ngay sau MS-DOS Header và trước vùng PE header thật sự

Trang 18

PE/NT HDR SIZE : Kích thước của vùng NT header

theo sau vùng này.

Flags: Một số cờ đặc biệt cho biết các đặc tính của file.

Trang 19

NT Optional Header

Trang 20

Trường quan trọng

AddressOfEntryPoint: Trường này xác định vị trí điểm vào cho ứng dụng, và

có lẽ quan trọng hơn đối với các hacker hệ thống nó chính là vị trí kết thúc của Import Address Table (IAT)

Image Base: tham chiếu địa chỉ cơ sở trong không gian địa chỉ của tiến trình

để ánh xạ image file thực thi vào Giá trị mặc định cho trường này là địa chị 0x00400000.

Section Alignment : mỗi section sẽ được nạp vào một vùng không gian địa chỉ của tiến trình một cách tuần tự bắt đầu từ địa chỉ Image Base Section

Alignment chỉ định kích thước nhỏ nhất của bộ nhớ mà vùng này có thể chiếm dụng khi được nạp.

OS Major/Minor: Phiên bản HĐH tối thiểu cần để chạy chương trình.

ImageSize: Chỉ ra khoảng không gian địa chỉ dành để nạp ảnh thực thi Con

số này bị ảnh hưởng rất lớn bởi SectionAlignment.

HeaderSize: Trường này chỉ ra kích thước của tất cả các Header trong file bao gồm: MS-DOS Header, PE Header, Optional Header, PE Sections Header.

CheckSum: Kiểm tra lỗi khi nạp chương trình lên bộ nhớ.

NumberOfRvaAndSizes: trường này chỉ ra chiều dài của mảng Data

Directory theo sau.

Trang 22

Phần 3: Vấn đề truy xuất và sửa

đổi các Resource trong file.

Trang 24

IMAGE_RESOURCE_DIRECTORY_ENTRY

Name: Định danh của resource, có thể là một

chuỗi chứa tên resource hoặc một con số

OffsetToData: Con trỏ tới node kế tiếp hay node lá

typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {

ULONG Name;

ULONG OffsetToData;

} IMAGE_RESOURCE_DIRECTORY_ENTRY,

*PIMAGE_RESOURCE_DIRECTORY_ENTRY;

Trang 25

IMAGE_RESOUCE_DATA_ENTRY

OffsetToData: Chứa địa chỉ offset của vùng dữ liệu thật sự của resource.

Size: Kích thước của vùng dữ liệu này.

typedef struct _IMAGE_RESOURCE_DATA_ENTRY{

Trang 26

Cấu trúc dữ liệu của cây Resource

typedef struct _RESOURCE{

IMAGE_RESOURCE_DIRECTORY id;

PIMAGE_RESOURCE_DIRECTORY_ENTRY *ie; PIMAGE_RESOURCE_DATA_ENTRY *de;

Trang 27

Ví dụ minh họa

Trang 29

CAPTION "About VECONTROL"

LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

FONT 8, "MS Sans Serif"

Trang 30

[Name or Ordinal] MenuName;

[Name or Ordinal] ClassName;

WCHAR szCaption[];

WORD wPointSize; // Only here if FONT set for dialog

WCHAR szFontName[]; // This too

};

Trang 31

Control Data

[Name or Ordinal] ClassId;

[Name or Ordinal] Text;

WORD nExtraStuff;

};

Trang 33

Menu Item

Popup Menu Item : kiểm tra giá trị cờ là POPUP

(fItemFlags & POPUP)

Nomal Menu Item

Trang 34

Một số cờ được sử dụng trong menu

resource

#define GRAYED 0x0001 // 'GRAYED'

#define INACTIVE 0x0002 // 'INACTIVE'

#define BITMAP 0x0004 // 'BITMAP'

#define OWNERDRAW 0x0100 // 'OWNERDRAW'

#define CHECKED 0x0008 // 'CHECKED'

Trang 35

Lưu trữ resource mới lên file

Là quá trình ngược lại với quá trình truy xuất resource.

Tái tạo lại cây resource từ các data mới, tính toán lại các thay đổi của địa chỉ cũng như của kích thước của từng directory.

Ghi cây này vào file mới, cập nhật lại các thay đổi về địa chỉ và kích thước của các vùng

header bên trên.

Trang 36

Tài liệu tham khảo

MSDN :

Matt Pietrek - March 1994

Microsoft Developer Network Technology Group

Microsoft Corp Revision 6.0 – February 1999

Trang 37

Liên hệ :

tâm đến đề tài của chúng tôi, xin liên hệ:

trongton@hotmail.com

toantn1982@yahoo.fr

Ngày đăng: 19/05/2017, 09:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w