木馬隱藏技術(1) 登錄檔

2022-03-24 04:23:25 字數 4292 閱讀 6425

此為《木馬技術揭秘與防禦》系列讀書筆記

1. userinit

位置:hkey_local_machine\software\microsoft\windows nt\currentversion\winlogon

userinit 的鍵值:c:\windows\system32\userinit.exe,   

在逗號後新增要啟動的檔案即可

2.autorun.inf 自啟動

autorun 語法: 

可以設定光碟、磁碟的自啟動,還可以修改右鍵選單條目

3.組策略

gpedit.msc -> 使用者配置 - 管理模板 - 系統 - 登陸

在右邊選擇「在系統登陸時執行這些程式」 - 設定選項可 - 已啟用 - 顯示 - 新增 - 填入完整的程式路徑

該方法對應的登錄檔路徑為:

hkey_current_user\software\microsoft\windows\currentversion\policies\explorer\run

4.其他位置

a) 登錄檔的 load 鍵值:hkey_current_user\software\microsoft\windows nt\currentversion\windows\load

b) windows中載入的服務:hkey_local_machine\system\currentcontrolset\services

c) windows shell:hkey_current_user\software\microsoft\windows nt\currentversion\winlogon 下的shell字串型別鍵值,預設值為explorer.exe(在xp sp3 上沒找到)

d) bootexecute: hkey_local_machine\system\controlset001\control\session manager 預設值為 autocheck autochk *  (原書此處漏掉了control)

e) 最常用的位置:

hkey_local_machine\software\microsoft\windows\currentversion\run

hkey_current_user\software\microsoft\windows\currentversion\run

登錄檔操作的相關函式

1.建立

long winapi regcreatekeyex(

__in hkey hkey,

__in lpctstr lpsubkey,

__reserved dword reserved, //this parameter is reserved and must be zero.

__in_opt lptstr lpclass,

__in dword dwoptions, // 預設值:reg_option_non_volatile__in regsam samdesired,

__in_opt lpsecurity_attributes lpsecurityattributes,

__out phkey phkresult,

__out_opt lpdword lpdwdisposition //reg_created_new_key |reg_opened_existing_key

);

long winapi regopenkeyex(

__in hkey hkey,

__in_opt lpctstr lpsubkey,

__reserved dword uloptions, //this parameter is reserved and must be zero.

__in regsam samdesired, //key_all_access (0xf003f) 懶的話直接給全部許可權

__out phkey phkresult

);

這兩個函式的hkey 取值為:

2.修改

long winapi regqueryvalueex(

__in hkey hkey,

__in_opt lpctstr lpvaluename,

__reserved lpdword lpreserved,

__out_opt lpdword lptype,

__out_opt lpbyte lpdata, //a pointer to a buffer that receives the value's data. this parameter can benullif the data is not required.

__inout_opt lpdword lpcbdata //contains the size of the data copied to lpdata.

);

long winapi regsetkeyvalue(

__in hkey hkey,

__in_opt lpctstr lpsubkey,

__in_opt lpctstr lpvaluename,

__in dword dwtype, //字串:reg_sz

__in_opt lpcvoid lpdata,

__in dword cbdata

);

long winapi regsetvalueex(

__in hkey hkey,

__in_opt lpctstr lpvaluename,

__reserved dword reserved,

__in dword dwtype,

__in

const byte *lpdata,

__in dword cbdata

);

long winapi regdeletevalue(

__in hkey hkey,

__in_opt lpctstr lpvaluename //the registry value to be removed. if this parameter isnullor an empty string, the value set by theregsetvaluefunction is removed.

);

3.關閉

long winapi regclosekey(

__in hkey hkey

);

**片段讀取登錄檔中的cpu資訊:

#include #include 

#include

#include

using

namespace

std;

intmain()

else

}else

regclosekey(hkey);

return0;

}

向登錄檔啟動項寫入資料 -- 實現程式的自啟動:

這裡使用4.e)中的hkey_local_machine\software\microsoft\windows\currentversion\run實現

#include #include 

#include

using

namespace

std;

intmain()

char

szmodule[max_path];

getmodulefilename(null,szmodule,max_path);

lret = regsetvalueex(hkey,"

selfrundemo

",0,reg_sz,(byte *)szmodule,strlen(szmodule));

if(lret ==error_success)

else

regclosekey(hkey);

return0;

}

效果如圖:

登錄檔維修技術

通過登錄檔,作業系統可以獲得相應的資訊,從而執行和控制附屬裝置 應用程式及正確響應使用者的輸入。如果登錄檔中的值被更改將會影響電腦的正常執行。技術17 手動清理登錄檔 要想手動清理掉登錄檔中的無用的東西,可通過找到 hkey local machine 和 hkey current user 根鍵下...

如何用登錄檔隱藏碟符

啟動登錄檔編輯器,進入hkey current user software microsoft windows currentversion policies explorer,新建二進位制值 nodrives 預設值是00000000,表示不隱藏任何驅動器。鍵值由4個位元組組成,每個位元組的每一位...

C 登錄檔技術(二)

在 c 中操作登錄檔 在 c 中登錄檔的基本操作主要包括讀取登錄檔中的資訊 建立和修改登錄檔資訊以及刪除登錄檔中的資訊。讀取登錄檔中的資訊 讀取登錄檔中的資訊主要是通過 registrykey 類中的 opensubkey 方法 getsubkeynames 方法和 getvaluenames 方法...