此為《木馬技術揭秘與防禦》系列讀書筆記
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(這兩個函式的hkey 取值為:__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
);
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(3.關閉__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.
);
long winapi regclosekey(**片段讀取登錄檔中的cpu資訊:__in hkey hkey
);
#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 方法...