Adding Imports to an Executabl e:

Một phần của tài liệu tìm hiểu, phân tích virus (Trang 46 - 47)

Ph ng pháp này th ng c s d ng nhi u nh t trong tr ng h p Patching m t App khi mà chúng ta không có các hàm API mà chúng ta c n. thêm section m i, thì thông tin t i thi u nh t c yêu c u b i trình loader t o ra m t IAT h p l là :

1. M i Dll ph i c khai báo v i m t IMAGE_IMPORT_DESCRIPTOR (IID), nh k t thúc Import

Directory b ng m t null-filled.

2. M i IID c n ít nh t 2 tr ng là Name1 và FirstThunk, ph n còn l i có th c set là 0(setting OriginalFirstThunk = FirstThunk i.e. duplicating the RVAs also works). OriginalFirstThunk = FirstThunk i.e. duplicating the RVAs also works).

3. M i entry c a FirstThunk ph i là m t RVA t i m t Image_Thunk_Data (the IAT) mà l n l t ch a m t further RVA t i API name.Tên ph i là m t chu i null terminated ASCII c a dài có th thay i và

4. N u các IIDs ã c thêm thì tr ng isize c a Import Table trong Data Directory có th c n ph i thay

i. Các IAT entries trong Data Directory không c n ph i c ch nh s a.

Vi c vi t import data m i trong m t ch ng trình HexEditor và sau ó dán vào trong target c a b n có th s t n r t nhi u th i gian.Có các công c có s n có th th c hi n c m t cách t ng quá trình này (Ví d : SnippetCreator, IIDKing, Cavewriter) nh ng vi c tìm hi u cách th c hi n công vi c này b ng tay nh th nào v n là t t h n c . Nhi m v chính là n i thêm m t IID m i lên ph n cu i c a b ng Import Table b n s c n có 20 bytes cho m i DLL c s d ng, ng quên 20 bytes dành cho null-terminator. Trong h u h t t t c các tr ng h p s không có không gian nào t i phía cu i c a Import Table hi n hành vì v y chúng ta s t o m t b n sao và xây d ng l i nó m t n i nào ó.

Một phần của tài liệu tìm hiểu, phân tích virus (Trang 46 - 47)