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

Adding new section to a PE file

7 525 2

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 1,01 MB

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

Nội dung

Thêm section mới vào PE file: trong một số trường hợp, thêm một section mới là một trong những phương pháp phục vụ cho việc thêm code (Code injection) vào trong file thực thi. Có rất nhiều PE editors có thể giúp bạn làm việc này. Nhưng tài liệu này để tìm hiểu kỹ hơn về PE File Format đặc biệt là phần section, sẽ trình bày cách thêm một section mới vào PE file một cách thủ công.

Trang 1

[Adding new section to PE File]

Trang 2

1 Gi i thi u

vi c thêm code (code injection) vào trong file th c thi Tôi bi t r ng có r t nhi u PE editors có

th giúp b n làm vi c này Nh ng trong bài vi t này, đ tìm hi u k h n v PE File Format đ c

bi t là ph n Section, tôi quy t đ nh s trình bày cách thêm m t section m i vào PE File m t cách th công

Nh ng công c c n thi t:

thao tác c a b n có đúng hay không (PEditor, Procdump, …)

2 Thêm vùng bytes 00

u tiên, chúng ta nên “ngó” s qua target Load target vào trong Peditor, b n th y target có 3 sections:

th y có r t nhi u bytes 00 Vì th , hãy ch n vùng byte tr ng gi a Offset 840940, sau đó,

ch n Edit->Copy Block -> Normally (hay nh n CTRL+C)

Trang 3

Sau đó, đ t con tr t i v trí cu i c a file, ch n Edit->Paste Zero Bytes WinHex s hi n ra MessageBox xác nh n có mu n thêm vùng bytes 00 này vào cu i file hay không? Nh n Yes

vào là 256d (vì b n mu n thêm 100h bytes = 256d bytes)

Nh v y, là b n đã có m t section m i Nó b t đ u t i offset th A00 và k t thúc t i offset AFF Its length is 110h bytes

Trang 4

3 Ch nh s a thông tin trong PE Header

Công vi c k ti p b n ph i làm là hi u ch nh l i m t s thông tin trong PE Header, b n ph i làm

3 vi c sau:

cách edit l i con s n m t i offset B6 trong PE Header!)

 T ng Image Size

B n có th th y, tr ng PE signature n m t i offset B0

T i offset B6 b n s th y 2 bytes là 03 00 (đây là m t giá tr ki u DWORD) o ng c giá tr 2 byte này (00 03) chính là s section ban đ u c a file Hãy thay nó b ng 00 04

Mu n v y, trong WinHex b n nh n phím Insert đ b t ch đ ghi đè, và s a 03 thành 04:

00001000Size Of Image có giá tr là 00004000 B i vì Section Alignment là 1000, và

Trang 5

Thay đ i 00 00 40 00 thành 00 00 50 00 nh sau:

Bây gi , b n ph i add section m i vào section table Section table b t đ u t i offset th F8

Trang 6

Tuy nhiên, khi s d ng thì PE Loader không s d ng các tr ng trên Ch s d ng 28h bytes

Quan sát th y sau section data là 1 section g m có 40 bytes nh ng tr ng thái ch a đ y đ và

Ph n ti p theo là quy t đ nh xem các thành ph n Virtual Offset/Virtual Size.Raw Offset và Raw Size nào c n có B n th y section data có các thông tin:

Section Virtual Size Virtual Offset Raw Size Raw Offset Characteristics

RVA và Raw Offset c a section m i c a chúng ta ph i phù h p v i các thông s c a section .data

Vritual Address c a section m i (.NEW) = Virtual Address c a data + Vritual Size c a data

giá tr này lên g n gi ng nh 1000 t c là 4000

-> lets call our section NEW -> Virtual Size is 100h ->

00010000

-> 4000 b i vì Virtual Address c a section tr c section data = 3000 -> 00 40 00 00

-> là 100h -> 00010000

Trang 7

Chúng ta s add section m i này vào sau section cu i cùng (.data) c a section table t c t i đ a

Save file đ l u l i v i tên là sample_new.exe các ch nh s a và load file m i vào PEditor đ check xem b n modify cho section m i có đúng v i các thông s hay không!

Nh n Section, đ ki m tra xu t hi n section m i tên là NEW trong Section Table hay ch a!

OK không quá khó ph i không các b n! H n g p l i bài vi t k ti p, chúng ta s thêm code

Ngày đăng: 25/01/2016, 13:59

TỪ KHÓA LIÊN QUAN

w