歡迎您光臨本站 註冊首頁

簡單的介紹Unix操作系統病毒機制

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

本文介紹了Unix系統病毒機制、具體實現以及ELF文件格式。簡述了Unix系統病毒檢測和反檢測技術,提供了Linux/i386架構下的一些例子。需要一些初步的Unix系統編程經驗,能夠理解Linux/i386下彙編語言,如果理解ELF本身更好。

本文沒有任何實際意義上的病毒編程技術,僅僅是把病毒原理應用到Unix系統環境下。這裡也不打算從頭介紹ELF規範,感興趣的讀者請自行閱讀ELF規範。

Unix系統感染 ELF 格式文件

進程映象包含"文本段"和"數據段",文本段的內存保護屬性是r-x,因此一般自修改代碼不能用於文本段。數據段的內存保護屬性是rw-。

段並不要求是頁尺寸的整數倍,這裡用到了填充。

關鍵字:

[...] 一個完整的頁

M 已經使用了的內存

P 填充

頁號

#1 [PPPPMMMMMMMMMMMM] \

#2 [MMMMMMMMMMMMMMMM] |-- 一個段

#3 [MMMMMMMMMMMMPPPP] /

段並沒有限制一定使用多個頁,因此單頁的段是允許的。

頁號

#1 [PPPPMMMMMMMMPPPP] <-- 一個段

Unix系統典型的,數據段不需要從頁邊界開始,而文本段要求起始頁邊界對齊,一個進程映象的內存布局可能如下:

關鍵字:

[...] 一個完整的頁

T 文本段內容

D 數據段內容

P 填充

頁號

#1 [TTTTTTTTTTTTTTTT] <-- 文本段內容

#2 [TTTTTTTTTTTTTTTT] <-- 文本段內容

#3 [TTTTTTTTTTTTPPPP] <-- 文本段內容(部分)

#4 [PPPPDDDDDDDDDDDD] <-- 數據段內容(部分)

#5 [DDDDDDDDDDDDDDDD] <-- 數據段內容

#6 [DDDDDDDDDDDDPPPP] <-- 數據段內容(部分)

頁1、2、3組成了文本段

頁4、5、6組成了數據段

從現在開始,為簡便起見,段描述圖表用單頁,如下:

頁號

#1 [TTTTTTTTTTTTPPPP] <-- 文本段

#2 [PPPPDDDDDDDDPPPP] <-- 數據段

在i386下,堆棧段總是在數據段被給予足夠空間之後才定位的,一般堆棧位於內存高端,它是向低端增長的。

在ELF文件中,可裝載段都是物理映象:

ELF Header . . Segment 1 <-- 文本段 Segment 2 <-- 數據段 . .

Unix系統每個段都有一個定位自身起始位置的虛擬地址。可以在代碼中使用這個地址。



[火星人 ] 簡單的介紹Unix操作系統病毒機制已經有357次圍觀

http://coctec.com/docs/unix/show-post-73888.html