婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Win32下病毒設計入門

Win32下病毒設計入門

熱門標簽:交行外呼系統有哪些 臨滄移動外呼系統哪家有 溫嶺代理外呼系統 怎么更改地圖標注電話 隨州銷售外呼系統平臺 激戰黃昏地圖標注說明 防城港市ai電銷機器人 不同的地圖標注 寧夏保險智能外呼系統哪家好
   Win32下病毒設計入門 

本文假定你對dos下的病毒和386PM有一定的了解。 

1、感染任何一個病毒都需要有寄主,把病毒代碼加入寄主程序中
(伴侶病毒除外)。 
以下說明如何將病毒代碼嵌入PE文件中,有關PE文件的結構請看以前的文章。 PE文件的典型結構: MZ Header DOS STUB CODE PE HEADER OPTIONAL HEADER SECTION TABLE SECTION 1 SECTION 2 ... IMPORT TABLE EXPORT TABLE 和DOS的可執行文件類似,PE的代碼映象分為幾個SECTION,在文件中會對齊 
頁邊界(4K)。一般來說,文件會加載在400000h開始的空間,而第一個SECTION在401000h處,同時入口地址也是401000h。由高級語言編寫的程序,每個SECTIO-N的長度不可能剛好是4K的倍數,因此在SECTION的末尾將會存在一段未用的空間 , 大小可由Section的PHYSICAL SIZE-VIRTUALSIZE得到,在文件中起始位置可由 PHYSICAL OFFSET得到,這段空間可以用來存放病毒代碼。此外一般來說, MZ Header+DOS STUD+PE 
HEADER+OPTIONAL HEADER+SECTION TABLE不過1K左右, 而SECTION 1由4K開始,空出來的地方足夠存放一個設計精良的病毒。CIH就是將 代碼存放在這些空閑空間里。 

2、分配駐留所需內存 
對于駐留形的病毒,分配駐留所需內存是必需的。在DOS下使用由于所有的 應用程序都映射在相同的線性地址空間里,使用一般的內存分配調用就足夠了。而在WIN32下,每個應用程序都有自己的線性地址空間,必須使用特殊的函數分配2GB以上的系統地址。典型的如:VXD服務_PageAllocate,和kernel32的 VxDCALL 
_PageReserve。_PageAllocate請參看win98ddk中的說明,VxDCall _PageReserve 請參看HPS源碼中的注釋。 

3、截留FILE I/O操作 駐留型的病毒通過截留FILE I/O來激活,可以通過使用VXD服務 
IFSMgr_Install-FileSystemAPIHook(如CIH)或截留VxDCall中的DOS Services callback(如HPS)。 
在Win32下編寫病毒不是一件困難的事。值得注意的有幾件事: 

一、Win32下的系統功能調用不是通過中斷實現,而是由DLL中導出。 
(直接使用VxD服務除外)。直接在病毒中得到API入口不是一件容易的事,可以通過以下這個變通的方法。 
在同一個版本的Windows下,同一個核心函數的入口總是固定的
(指由Kernel32,gdi32,user32導出的函數)。因此可以用以下的方法得到函數入口: 
.386p 
.model flat,stdcall 
extrn GetModuleHandleA:proc 
extrn GetProcAddress:proc 
extrn ExitProcess:proc 
.data 
szKernel db 'KERNEL32.DLL',0 
szFindFirst db 'FindFirstFileA',0 
szFindNext db 'FindNextFileA',0 
szFindClose db 'FindClose',0 
szGetCurrentDir db 'GetCurrentDirectoryA',0 
szGetWinDir db 'GetWindowsDirectoryA',0 
szGetSysDir db 'GetSystemDirectoryA',0 
szGetFileAttrib db 'GetFileAttributesA',0 
szSetFileAttrib db 'SetFileAttributesA',0 
szlopen db '_lopen',0 
szlread db '_lread',0 
szlwrite db '_lwrite',0 
szlclose db '_lclose',0 
szllseek db '_llseek',0 
hKernel dd 0 
.code 
;Initialize code 
start: 
push szKernel 
call GetModuleHandleA 
mov hKernel,eax 
push szFindFirst 
push hKernel 
call GetProcAddress 
mov FindFirstFile,eax 
.... 
jmp VirusStart 
InitExit: 
push 0 
call ExitProcess 
VirusStart: 
jmp Entry 
HostEntry dd InitExit 
FindFirstFile dd 0 
FindNextFile dd 0 
... 
Entry: 
... 
end start 
在Intialize Code得到要用的函數入口并將它填入病毒中,在病毒運行時可以直接使用了。

二:主要是要截留文件I/O操作。 
Windows下截留文件I/O操作有幾種方法,在病毒中使用的主要有兩種。 
1、使用VxDCallIFSMgr_InstallFileSystemHook 
2、截留Kernel32.dll中導出的第一個函數VxDCall對DOS 
INT 21的呼叫(EAX=2A0010)。 
VxDCall的代碼如下: 
mov eax,dword ptr [esp+04] 
pop dword ptr [esp] 
call fword ptr cs:[xxxxxxxx] 
^^^^^^^^只要將這個地址指向的地址改為自己的過程入口,就捕獲了所有的VxDCall。 
進入這個過程時: 
eax=service number,如果是DOS INT 21將是2A0010 
esp[2c]調用Int 21時eax的值 
~~~~ 算漏了個pushad,應該是10h 

esp[30] 調用int 21時ecx的值 
~~~~14h 

其他寄存器為調用時所需的值。(段寄存器無用) 
以后的就和在DOS下寫病毒沒什么差別了。 
在WINDOWS下寫病毒,如何得到API的入口是一件麻煩的事. 可以直接使用的API都在DLL中,而VXDCALL要在RING0時才能使 用,DOS的INT 21服務也不能直接調用. 得到DLL中的API入口有兩種方法: 

1.加載時得到,建立一個 IMPORT TABLE,在加載時WINDOWS會根據IMPORT TABLE定位API的 入口地址.這是一般應用程序的使用的方法,但不大適合病毒. 
2.運行時得到,使用GetModuleHandle和GetProcAddress得到API的入口,但前提時要知道GetModuleHandle和GetProcAddress的 入口地址.: 這是明顯也是不可能的.除了將GetModuleHandle和GetProcAddress的代碼復制到我們的病毒中,只有使用暴力在 2GB的空間內找出API的入口了. 

首先說明一下WINDOWS的內存映射,由00000000開始有一段是 無效地址(我忘了到底到多少了),用來捕獲應用程序錯誤的指針. 
跟著一直到0x7FFFFFFF為應用程序的空間.0X80000000以后為系統 的空間,DLL和VXD都映射在這里.我們要作的就是從這2GB的空間內找到Krnl32.dll. 一般來說,Windows下的程序都是對齊在64k的邊界.首先是MZ 文件頭,跟著是由MZ HEADER中的信息可以得到PE HEADER的入口. 由這個標記就可以找出所有的DLL.由PE HEADER可以得到DLL的 EXPORT TABLE的入口,其中而NAME PTR TABLE的第一項為DLL的名 稱,由此可以找出Krnl32.dll,并從ADDRESS TABLE中得到任何一個 API的入口. 

值得注意的是,在這2GB中并不是所有而地址都是有效的,在 一般的程序中可以通過IsXXXXXPtr來判斷地址是否有效,但在病毒 中不行.只能Hook Exception,忽略訪問無效的地址導致的Exception. Windows中的Exception Chain的結構如下: fs:[0] dword exception發生時esp的新值,該值指向一個如下 的結構 [esp] dword fs:[0]的新值 [esp+4] dword exception handler的入口 [esp+8] dword exception handler使用的數據首地址 [esp+12] dword -1詳細的匯編代碼可以用C寫一段__try...__except的代碼,然后 轉譯成匯編. 只要我們的exception handler直接跳轉到病毒中尋找Krnl32.dll 的代碼,就可以不引起GP Error而訪問任何的地址了. 范例可以參看HPS的源碼,PE HEADER,EXPORT TABLE請參看PE FORMAT. 

1、在Windows下載入的DLL在不同的process中映射到同一個地址。 
2、在DLL中導出的函數在export table中記錄相對DLL Image Base 的偏移,改變這個偏移使用GetProcAddress得到的地址就會改變。 (想象一下,把CreateProcess地址指向自己的DLL中的函數,或者截獲GetDlgItemText來記錄Password) 
3、在Kernel32.DLL中Section Table在0x300以前就結束了,而真正的代碼由0x1000處開始,其間有3K的未用空間,可以用來存放我們的代碼。 Kernel32.DLL的Image Base可以由GetModuleHandleA得到。 
4、在任何版本的Windows中,3個基本的DLL總是被加載(Kernel32.DLL,User32.DLL,GDI32.DLL),而且對于同一個版本的Windows,它們的Image Base,和導出函數的地址總是固定的。可以將得到的地址直接用于病毒使用。 ( 在NT也可以寫病毒了,又要換系統了8 )
您可能感興趣的文章:
  • Win32應用程序(SDK)設計原理詳解
  • win32下進程間通信(共享內存)實例分析
  • win32 api實現2048游戲示例
  • 一個win32窗口創建示例
  • win32 api實現簡單的消息窗口示例
  • win32使用openfilename瀏覽文件窗口示例
  • Win32 下病毒設計入門詳細說明
  • win32下的命令行集合
  • WIN32程序獲取父進程ID的方法

標簽:無錫 沈陽 青海 忻州 紅河 河源 阜陽 哈密

巨人網絡通訊聲明:本文標題《Win32下病毒設計入門》,本文關鍵詞  Win32,下,病毒,設計,入門,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Win32下病毒設計入門》相關的同類信息!
  • 本頁收集關于Win32下病毒設計入門的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品一区二区不卡| 9191久久久久久久久久久| 成人av在线一区二区| 大桥未久av一区二区三区中文| 国产精品久久久久影视| 欧美唯美清纯偷拍| 精品一区二区三区久久久| 2014亚洲片线观看视频免费| 欧美视频第二页| 中文字幕一区二区5566日韩| 在线亚洲欧美专区二区| 成人免费三级在线| eeuss鲁一区二区三区| 成人午夜免费av| 成人综合婷婷国产精品久久蜜臀 | 夜夜亚洲天天久久| 亚洲欧洲一区二区在线播放| 自拍偷拍欧美激情| 亚洲另类中文字| 一区二区三区四区在线| 亚洲福利一区二区三区| 日韩综合小视频| 精品中文av资源站在线观看| 极品美女销魂一区二区三区免费| 麻豆91在线观看| 激情图片小说一区| thepron国产精品| 欧美一级黄色录像| 亚洲美女淫视频| 美女在线观看视频一区二区| 国产成人一级电影| 717成人午夜免费福利电影| 欧美一级片在线| 国产日韩欧美制服另类| 欧美高清视频不卡网| 91九色最新地址| 日韩精品一区二区三区四区视频 | 亚洲综合一区二区精品导航| 亚洲欧美经典视频| 午夜视频在线观看一区二区| 亚洲综合激情小说| 久久综合综合久久综合| 久久精品av麻豆的观看方式| 成人午夜激情在线| 国产一区二区三区| 欧美激情一区二区三区| 日韩一级二级三级精品视频| 国产精品蜜臀在线观看| 亚洲国产一区二区三区| 亚洲色图欧洲色图| 日韩av电影免费观看高清完整版| 成人精品在线视频观看| 337p亚洲精品色噜噜噜| 亚洲一级在线观看| 成人高清免费在线播放| 在线欧美日韩精品| 中文字幕一区二区5566日韩| 婷婷综合五月天| 91丨porny丨蝌蚪视频| www精品美女久久久tv| 亚洲18色成人| 欧美蜜桃一区二区三区| 亚洲欧洲成人自拍| 国产一区二区福利| 欧美色精品在线视频| 亚洲欧美区自拍先锋| 成人h精品动漫一区二区三区| 一本色道综合亚洲| 精品少妇一区二区三区日产乱码| 亚洲国产视频a| 欧美在线你懂的| 亚洲综合在线第一页| 91九色最新地址| 视频一区视频二区中文字幕| 国产91精品一区二区麻豆亚洲| 97精品视频在线观看自产线路二| 欧美性色aⅴ视频一区日韩精品| 一区二区成人在线观看| 欧美日韩综合在线| 国产精品2024| 亚洲另类在线制服丝袜| 91美女片黄在线观看| 亚洲精品一区二区在线观看| 亚洲综合色区另类av| 日韩影院免费视频| av亚洲精华国产精华| 678五月天丁香亚洲综合网| 国产精品麻豆视频| 欧美日韩国产区一| 免播放器亚洲一区| www.激情成人| 精品盗摄一区二区三区| 亚洲免费av网站| 欧美老女人第四色| 丁香亚洲综合激情啪啪综合| 国产精品一区二区在线播放| 日韩美女天天操| 亚洲国产精品黑人久久久| 日本一区二区免费在线观看视频| 中文字幕一区二区三区四区| 中文字幕一区二区不卡| 天堂影院一区二区| 91精品国模一区二区三区| 在线观看一区日韩| 国产欧美一区二区精品性色| 高清av一区二区| 欧洲av在线精品| 午夜精品福利一区二区三区蜜桃| 色婷婷av一区二区三区gif| 欧美日本韩国一区二区三区视频 | 亚洲线精品一区二区三区八戒| 丁香一区二区三区| 久久久99久久精品欧美| 欧美一卡二卡三卡四卡| 亚洲一区二区中文在线| 99久久亚洲一区二区三区青草| 欧美一区二区三区爱爱| 午夜精品爽啪视频| 欧美性极品少妇| 久久色在线观看| 99久久99精品久久久久久| 久久国产精品色| 亚洲影院在线观看| 亚洲高清一区二区三区| 久久人人爽人人爽| 久久这里只有精品首页| 日韩一区二区三区av| 欧美三级韩国三级日本一级| 九九精品视频在线看| 99久久精品国产毛片| 欧美成人艳星乳罩| 91免费版在线| 日韩精品欧美成人高清一区二区| 2021中文字幕一区亚洲| 性做久久久久久久免费看| 丝袜国产日韩另类美女| 午夜视频一区二区三区| 国产精品福利一区| 亚洲欧美日韩一区二区三区在线观看| 91精品国产一区二区| 777午夜精品视频在线播放| 日本韩国精品一区二区在线观看| 成人免费高清在线| 欧美久久婷婷综合色| 亚洲国产电影在线观看| 午夜欧美2019年伦理| 国产91丝袜在线观看| 欧美大白屁股肥臀xxxxxx| 在线成人av网站| 国产精品国产三级国产aⅴ原创| 国产精品丝袜在线| 日本系列欧美系列| 在线视频一区二区三| 久久精品水蜜桃av综合天堂| 悠悠色在线精品| 国产一区二区三区四| 欧洲精品在线观看| 中文字幕一区二区5566日韩| 国产精品主播直播| 在线观看日韩电影| 久久女同性恋中文字幕| 欧美日韩www| 免费在线观看精品| 中文字幕欧美激情一区| 亚洲精品国产成人久久av盗摄| 亚洲视频精选在线| 亚洲18女电影在线观看| 日韩精品成人一区二区在线| 成人福利在线看| 亚洲图片激情小说| 91福利在线看| 视频在线在亚洲| 免费不卡在线视频| 国产三级精品视频| 国产综合成人久久大片91| 国产视频亚洲色图| yourporn久久国产精品| 香蕉乱码成人久久天堂爱免费| 91精品国产综合久久蜜臀| 综合激情成人伊人| 日韩视频免费直播| 成人视屏免费看| 午夜精品视频在线观看| 日韩欧美亚洲另类制服综合在线| 国产精品影视在线| 粉嫩欧美一区二区三区高清影视| 欧美日韩二区三区| 国产精品资源网| 天天操天天干天天综合网| 欧美精品精品一区| 成人18精品视频| 日本午夜精品一区二区三区电影 | 国产精品影音先锋| 亚洲综合精品久久| 欧美日韩在线电影| 精品影院一区二区久久久| 久久精品噜噜噜成人88aⅴ| 亚洲综合丝袜美腿| 中文字幕一区二区三区视频| 日韩一级高清毛片|