病毒常用方法之登錄檔操作
登錄檔的增刪查改操作基本上是惡意程式碼的常規操作,但是對登錄檔的操作通常會留下痕跡,導致被發現,最後被清理掉 .對於驅動模組更是如此,驅動程式的入口函式的第二個引數就是登錄檔路徑,當驅動載入後該值會被寫到相應的位置,這是為了隱藏自己,要將與之相關的表項都刪掉.下面是一段反彙編程式碼:
int __stdcall DeleteKey(POBJECT_ATTRIBUTES ObjectAttributes)
DeleteKey proc near
var_24 = OBJECT_ATTRIBUTES ptr -24h;
var_C = word ptr -0Ch
var_A = word ptr -0Ah
var_8 = dword ptr -8
ObjectAttributes= dword ptr 8;傳入的引數,包含要操作物件的一些資訊,這裡就是登錄檔名字資訊
push ebp
mov ebp, esp
sub esp, 28h
push ebx
push esi
mov esi, 100h
push edi
mov eax, esi
call __alloca_probe_16
and [ebp+var_24.RootDirectory], 0 ;初始化RootDirectory
xor eax, eax
mov [ebp+var_C], ax
mov ebx, esp
push [ebp+ObjectAttributes] ; ObjectAttributes
mov eax, esi
mov [ebp+var_A], ax
lea eax, [ebx+10h]
mov [ebp+var_8], eax
lea eax, [ebp+var_C]
mov [ebp+var_24.ObjectName], eax
xor eax, eax
mov [ebp+var_24.Length], 18h
mov [ebp+var_24.Attributes], 40h
lea edi, [ebp+var_24.SecurityDescriptor]
stosd
stosd
push 0F003Fh ; DesiredAccess
lea eax, [ebp+var_24.RootDirectory];RootDirectory被當成Handle用
push eax ; KeyHandle
xor edi, edi
call ds:ZwOpenKey;開啟要操作的登錄檔
test eax, eax
jl short loc_10004C60
mov edi, ds:ZwEnumerateKey
jmp short loc_10004C32
loc_10004C1D:
mov ax, [ebx+0Ch]
mov [ebp+var_C], ax
lea eax, [ebp+var_24]
push eax ; ObjectAttributes
call DeleteKey
test eax, eax
jz short loc_10004C45
loc_10004C32:
lea eax, [ebp+ObjectAttributes]
push eax ; ResultLength
push esi ; Length
push ebx ; KeyInformation
push 0 ; KeyInformationClass
push 0 ; Index
push [ebp+var_24.RootDirectory] ; KeyHandle
call edi ; ZwEnumerateKey 遍歷子項
test eax, eax
jge short loc_10004C1D;還有表項,往回走,去loc_10004c1d 接著呼叫自己DeleteKey()
loc_10004C45:
push [ebp+var_24.RootDirectory] ; KeyHandle
call ds:ZwDeleteKey
push [ebp+var_24.RootDirectory] ; Handle
xor ecx, ecx
test eax, eax
setnl cl ;操作成功,設cl=1
mov edi, ecx
call ds:ZwClose
loc_10004C60:
mov eax, edi
lea esp, [ebp-34h]
pop edi
pop esi
pop ebx
leave
retn 4
DeleteKey endp
相關文章
- 常用登錄檔的位置
- 使用Java操作Windows系統登錄檔JavaWindows
- win10如何清除登錄檔_win10清理登錄檔垃圾的方法Win10
- win10如何修復登錄檔 windows10登錄檔修復方法Win10Windows
- win10備份登錄檔的方法_win10登錄檔如何備份Win10
- 登錄檔
- 登錄檔刪除之後又出現
- linux常用操作記錄Linux
- 軟體登錄檔殘留怎樣清理_win10刪除登錄檔殘留檔案的方法Win10
- cfree登錄檔怎麼刪win10_win10電腦cfree登錄檔刪除的操作步驟Win10
- win10怎樣清理自帶登錄檔_win10自帶登錄檔清理的方法Win10
- win10登錄檔怎麼開啟 開啟登錄檔編輯器的方法一覽Win10
- win10怎麼清理無效登錄檔 刪除無效登錄檔的解決方法Win10
- C#操作登錄檔簡單教程(附帶操作某資料庫客戶端登錄檔以實現重置試用期的效果)C#資料庫客戶端
- php檔案操作之提取檔案/目錄的名稱PHP
- JQuery登錄檔單jQuery
- win10安全模式恢復登錄檔怎麼操作 win10如何在安全模式下修復登錄檔Win10模式
- win10用快捷鍵登錄檔怎麼開啟_win10開啟登錄檔快捷鍵方法Win10
- Linux常用檔案操作命令Linux
- win登錄檔相關
- 獲取登錄檔字型
- 讓電腦永不休眠的方法(修改登錄檔法)
- win10登錄檔恢復初始狀態的方法Win10
- 360鎖定了win10登錄檔怎麼辦_360鎖定了win10登錄檔的解除方法Win10
- win10 修改登錄檔開機啟動方法 win10怎麼修改登錄檔設定啟動項Win10
- win10誤刪登錄檔無法開機怎麼辦 恢復誤刪登錄檔的解決方法Win10
- 隱藏任意程式,目錄檔案,登錄檔,埠
- win10修改cpu型號操作方法 WIN10修改登錄檔改cpu型號如何更改Win10
- C#不提升自己程式的許可權實現操作登錄檔C#
- Win10系統清理登錄檔垃圾的方法【圖文】Win10
- Win10系統利用登錄檔隱藏onedrive的方法Win10
- Python 檔案、目錄操作Python
- PowerShell 命令來操作 Windows 登錄檔 Get-ItemProperty 命令可以獲取指定登錄檔路徑下的鍵值資訊 ;Set-ItemProperty 命令可以設定指定登錄檔路徑下的鍵值資訊;New-Item 命令可以建立新的登錄檔項Windows
- win10系統如何通過登錄檔關閉135埠_win10利用登錄檔關閉135埠的方法Win10
- win10系統如何透過登錄檔關閉135埠_win10利用登錄檔關閉135埠的方法Win10
- windows登錄檔自啟項Windows
- 怎麼清除mysql登錄檔MySql
- win10怎麼透過登錄檔新增啟動事件_win10使用登錄檔新增開機啟動項的方法Win10事件