{"id":46,"date":"2026-04-14T15:16:23","date_gmt":"2026-04-14T07:16:23","guid":{"rendered":"https:\/\/www.seekinthevortex.cn\/?p=46"},"modified":"2026-04-14T15:16:23","modified_gmt":"2026-04-14T07:16:23","slug":"%e5%8f%8d%e6%b2%99%e7%ae%b1%e4%b8%8e%e8%99%9a%e6%8b%9f%e5%8c%96-2","status":"publish","type":"post","link":"https:\/\/www.seekinthevortex.cn\/index.php\/2026\/04\/14\/%e5%8f%8d%e6%b2%99%e7%ae%b1%e4%b8%8e%e8%99%9a%e6%8b%9f%e5%8c%96-2\/","title":{"rendered":"\u53cd\u6c99\u7bb1\u4e0e\u865a\u62df\u5316"},"content":{"rendered":"<h1>\u7b80\u5355\u4ecb\u7ecd<\/h1>\n<h1>\u901a\u7528\u7684\u4e00\u4e9b\u67e5\u8be2\u65b9\u5f0f<\/h1>\n<ol>\n<li>\u68c0\u67e5\u7528\u6237\u540d\u662f\u5426\u7279\u5b9a\n<ul>\n<li>GetUserNameA\/W<\/li>\n<\/ul>\n<\/li>\n<li>\u68c0\u67e5\u8ba1\u7b97\u673a\u540d\u79f0\u662f\u5426\u7279\u5b9a\n<ul>\n<li>GetComputerNameA\/W<\/li>\n<\/ul>\n<\/li>\n<li>\u68c0\u67e5\u4e3b\u673a\u540d\u662f\u5426\u7279\u5b9a\n<ul>\n<li>GetComputerNameExA\/W<\/li>\n<\/ul>\n<\/li>\n<li>\u68c0\u67e5\u603b RAM \u662f\u5426\u8f83\u4f4e\n<ul>\n<li>GetMemoryStatusEx<\/li>\n<li>\u76f4\u63a5 syscall \u8c03\u7528\u5185\u6838\u51fd\u6570\uff0c\u7b49\u7b49\u3002\u3002\u3002\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u68c0\u67e5\u5904\u7406\u5668\u6570\u91cf\u662f\u5426\u8f83\u4f4e\n<ul>\n<li>GetSystemInfo<\/li>\n<li>\u5229\u7528\u5185\u8054\u6c47\u7f16\u6216\u5185\u90e8\u51fd\u6570\u4ece PEB \u4e2d\u83b7\u53d6\u5904\u7406\u5668\u6570\u91cf<\/li>\n<li>\u901a\u8fc7 KUSER_SHARED_DATA \u4e2d\u83b7\u53d6<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<pre><code class=\"language-c\">__declspec(naked)\nDWORD get_number_of_processors() {\n\t__asm {\n\t\t; get pointer to Process Environment Block (PEB)\n\t\tmov eax, fs:0x30\n\n\t\t; read the field containing target number\n\t\tmov eax, [eax + 0x64]\n\n\t\t; return from function\n\t\tretn\n\t}\n}\n<\/code><\/pre>\n<pre><code class=\"language-c\">__declspec(naked)\n    DWORD get_number_of_active_processors() {\n    __asm {\n        mov eax, 0x7ffe0000  ; KUSER_SHARED_DATA structure fixed address\n        mov eax, byte ptr [eax+0x3c0] ; checking ActiveProcessorCount\n        retn  ; return from function\n    }\n}\n<\/code><\/pre>\n<ol>\n<li>\u68c0\u67e5\u786c\u76d8\u9a71\u52a8\u5668\u5927\u5c0f\u548c\u53ef\u7528\u7a7a\u95f4\u662f\u5426\u8f83\u5c0f<\/li>\n<li>\u68c0\u67e5\u7cfb\u7edf\u6b63\u5e38\u8fd0\u884c\u65f6\u95f4\u662f\u5426\u8f83\u77ed<\/li>\n<\/ol>\n<h1>\u901a\u8fc7\u6587\u4ef6\u7cfb\u7edf\u68c0\u6d4b<\/h1>\n<h2>\u68c0\u67e5\u7279\u5b9a\u6587\u4ef6\u662f\u5426\u5b58\u5728<\/h2>\n<p>\u53ef\u4ee5\u5148\u901a\u8fc7\u7f16\u5199\u4e00\u4e9b\u83b7\u53d6\u4fe1\u606f\u7684\u7a0b\u5e8f\u4e0a\u4f20\u5230\u4e91\u6c99\u7bb1\u6216\u8005\u865a\u62df\u8bbe\u5907\u83b7\u53d6\u7279\u5f81\uff0c\u6839\u636e\u8fd9\u4e9b\u7279\u5f81\u7f16\u5199\u5bf9\u5e94\u7684\u5e94\u5bf9\u811a\u672c<\/p>\n<pre><code class=\"language-cpp\">BOOL is_FileExists(TCHAR* szPath)\n{\n    DWORD dwAttrib = GetFileAttributes(szPath);\n    return (dwAttrib != INVALID_FILE_ATTRIBUTES) &amp;&amp; !(dwAttrib &amp; FILE_ATTRIBUTE_DIRECTORY);\n}\n\n\/*\nCheck against some of VMware blacklisted files\n*\/\nVOID vmware_files()\n{\n    \/* Array of strings of blacklisted paths *\/\n    TCHAR* szPaths[] = {\n        _T(&quot;system32\\\\drivers\\\\vmmouse.sys&quot;),\n        _T(&quot;system32\\\\drivers\\\\vmhgfs.sys&quot;),\n    };\n    \n    \/* Getting Windows Directory *\/\n    WORD dwlength = sizeof(szPaths) \/ sizeof(szPaths[0]);\n    TCHAR szWinDir[MAX_PATH] = _T(&quot;&quot;);\n    TCHAR szPath[MAX_PATH] = _T(&quot;&quot;);\n    GetWindowsDirectory(szWinDir, MAX_PATH);\n    \n    \/* Check one by one *\/\n    for (int i = 0; i &lt; dwlength; i++)\n    {\n        PathCombine(szPath, szWinDir, szPaths[i]);\n        TCHAR msg[256] = _T(&quot;&quot;);\n        _stprintf_s(msg, sizeof(msg) \/ sizeof(TCHAR), _T(&quot;Checking file %s: &quot;), szPath);\n        if (is_FileExists(szPath))\n            print_results(TRUE, msg);\n        else\n            print_results(FALSE, msg);\n    }\n}\n<\/code><\/pre>\n<h2>\u68c0\u67e5\u7279\u5b9a\u76ee\u5f55\u662f\u5426\u5b58\u5728<\/h2>\n<pre><code class=\"language-cpp\">BOOL is_DirectoryExists(TCHAR* szPath)\n{\n    DWORD dwAttrib = GetFileAttributes(szPath);\n    return (dwAttrib != INVALID_FILE_ATTRIBUTES) &amp;&amp; (dwAttrib &amp; FILE_ATTRIBUTE_DIRECTORY);\n}\n\n\/*\nCheck against VMware blacklisted directory\n*\/\nBOOL vmware_dir()\n{\n    TCHAR szProgramFile[MAX_PATH];\n    TCHAR szPath[MAX_PATH] = _T(&quot;&quot;);\n    TCHAR szTarget[MAX_PATH] = _T(&quot;VMware\\\\&quot;);\n    if (IsWoW64())\n        ExpandEnvironmentStrings(_T(&quot;%ProgramW6432%&quot;), szProgramFile, ARRAYSIZE(szProgramFile));\n    else\n        SHGetSpecialFolderPath(NULL, szProgramFile, CSIDL_PROGRAM_FILES, FALSE);\n    PathCombine(szPath, szProgramFile, szTarget);\n    return is_DirectoryExists(szPath);\n}\n<\/code><\/pre>\n<h2>\u5176\u4f59\u7684\u65b9\u6cd5<\/h2>\n<ul>\n<li>\u68c0\u67e5\u53ef\u6267\u884c\u6587\u4ef6\u7684\u5b8c\u6574\u8def\u5f84\u662f\u5426\u5305\u542b\u7279\u5b9a\u5b57\u7b26\u4e32\u4e4b\u4e00<\/li>\n<li>\u68c0\u67e5\u53ef\u6267\u884c\u6587\u4ef6\u662f\u5426\u4ece\u7279\u5b9a\u76ee\u5f55\u8fd0\u884c<\/li>\n<li>\u68c0\u67e5\u7269\u7406\u78c1\u76d8\u9a71\u52a8\u5668\u6839\u76ee\u5f55\u4e2d\u662f\u5426\u5b58\u5728\u5177\u6709\u7279\u5b9a\u540d\u79f0\u7684\u53ef\u6267\u884c\u6587\u4ef6<\/li>\n<\/ul>\n<h1>\u901a\u8fc7\u6ce8\u518c\u8868\u68c0\u6d4b<\/h1>\n<h2>\u68c0\u67e5\u7279\u5b9a\u6ce8\u518c\u8868\u8def\u5f84\u662f\u5426\u5b58\u5728<\/h2>\n<pre><code class=\"language-cpp\">\/* sample of usage: see detection of VirtualBox in the table below to check registry path *\/\nint vbox_reg_key7() {\n    return pafish_exists_regkey(HKEY_LOCAL_MACHINE, &quot;HARDWARE\\\\ACPI\\\\FADT\\\\VBOX__&quot;);\n}\n\n\/* code is taken from &quot;pafish&quot; project, see references on the parent page *\/\nint pafish_exists_regkey(HKEY hKey, char * regkey_s) {\n    HKEY regkey;\n    LONG ret;\n\n    \/* regkey_s == &quot;HARDWARE\\\\ACPI\\\\FADT\\\\VBOX__&quot;; *\/\n    if (pafish_iswow64()) {\n        ret = RegOpenKeyEx(hKey, regkey_s, 0, KEY_READ | KEY_WOW64_64KEY, &amp;regkey);\n    }\n    else {\n        ret = RegOpenKeyEx(hKey, regkey_s, 0, KEY_READ, &amp;regkey);\n    }\n\n    if (ret == ERROR_SUCCESS) {\n        RegCloseKey(regkey);\n        return TRUE;\n    }\n    else\n        return FALSE;\n}\n<\/code><\/pre>\n<p>\u4e00\u4e9b\u53ef\u4ee5\u68c0\u6d4b\u7684\u6ce8\u518c\u8868\u8def\u5f84\uff08\u4f46\u662f\u6ce8\u610f\u8bbf\u95ee\u8fd9\u4e9b\u7279\u6b8a\u7684\u6ce8\u518c\u8868\u8def\u5f84\u53ef\u80fd\u4f1a\u88ab edr \u76d1\u63a7\uff0c\u5728\u4e91\u6c99\u7bb1\u4e2d\u62a5\u6bd2\uff09<\/p>\n<table>\n<thead>\n<tr>\n<th>Detect<\/th>\n<th>Registry path<\/th>\n<th>Details (if any)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>[general]<\/td>\n<td><code>HKLM\\Software\\Classes\\Folder\\shell\\sandbox<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SOFTWARE\\Microsoft\\Hyper-V<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SOFTWARE\\Microsoft\\VirtualMachine<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SOFTWARE\\Microsoft\\Virtual Machine\\Guest\\Parameters<\/code><\/td>\n<td>Usually &quot;HostName&quot; and &quot;VirtualMachineName&quot; values are read under this path<\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmicheartbeat<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmicvss<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmicshutdown<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmicexchange<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Parallels<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\PCI\\VEN_1AB8*<\/code><\/td>\n<td>Subkey has the following structure: <code>VEN_XXXX&amp;DEV_YYYY&amp;SUBSYS_ZZZZ&amp;REV_WW<\/code><\/td>\n<\/tr>\n<tr>\n<td>Sandboxie<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Services\\SbieDrv<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Sandboxie<\/td>\n<td><code>HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Sandboxie<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\PCI\\VEN_80EE*<\/code><\/td>\n<td>Subkey has the following structure: <code>VEN_XXXX&amp;DEV_YYYY&amp;SUBSYS_ZZZZ&amp;REV_WW<\/code><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\HARDWARE\\ACPI\\DSDT\\VBOX__<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\HARDWARE\\ACPI\\FADT\\VBOX__<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\HARDWARE\\ACPI\\RSDT\\VBOX__<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SOFTWARE\\Oracle\\VirtualBox Guest Additions<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxGuest<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxMouse<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxService<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxSF<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VBoxVideo<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualPC<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\PCI\\VEN_5333*<\/code><\/td>\n<td>Subkey has the following structure: <code>VEN_XXXX&amp;DEV_YYYY&amp;SUBSYS_ZZZZ&amp;REV_WW<\/code><\/td>\n<\/tr>\n<tr>\n<td>VirtualPC<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vpcbus<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualPC<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vpc-s3<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualPC<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vpcuhub<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VirtualPC<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\msvmmouf<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\PCI\\VEN_15AD*<\/code><\/td>\n<td>Subkey has the following structure: <code>VEN_XXXX&amp;DEV_YYYY&amp;SUBSYS_ZZZZ&amp;REV_WW<\/code><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKCU\\SOFTWARE\\VMware, Inc.\\VMware Tools<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SOFTWARE\\VMware, Inc.\\VMware Tools<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmdebug<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmmouse<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VMTools<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\VMMEMCTL<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmware<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmci<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\vmx86<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\IDE\\CdRomNECVMWar_VMware_IDE_CD*<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\IDE\\CdRomNECVMWar_VMware_SATA_CD*<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\IDE\\DiskVMware_Virtual_IDE_Hard_Drive*<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td><code>HKLM\\SYSTEM\\CurrentControlSet\\Enum\\IDE\\DiskVMware_Virtual_SATA_Hard_Drive*<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Wine<\/td>\n<td><code>HKCU\\SOFTWARE\\Wine<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Wine<\/td>\n<td><code>HKLM\\SOFTWARE\\Wine<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\HARDWARE\\ACPI\\DSDT\\xen<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\HARDWARE\\ACPI\\FADT\\xen<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\HARDWARE\\ACPI\\RSDT\\xen<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\xenevtchn<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\xennet<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\xennet6<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\xensvc<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td><code>HKLM\\SYSTEM\\ControlSet001\\Services\\xenvdb<\/code><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>\u68c0\u67e5\u7279\u5b9a\u6ce8\u518c\u8868\u9879\u662f\u5426\u5305\u542b\u6307\u5b9a\u5b57\u7b26\u4e32<\/h2>\n<h1>\u901a\u8fc7 CPU \u7279\u5f81\u68c0\u6d4b<\/h1>\n<h2>CPUID \u68c0\u6d4b\u4f9b\u5e94\u5546 ID<\/h2>\n<pre><code class=\"language-c\">__declspec(naked) void get_cpuid_vendor(char *vendor_id) {\n  __asm {        \n    ; save non-volatile register\n    push ebx\n    \n    ; nullify output registers\n    xor ebx, ebx\n    xor ecx, ecx\n    xor edx, edx\n    \n    ; call cpuid with argument in EAX\n    mov eax, 0x40000000\n    cpuid\n    \n    ; store vendor_id ptr to destination\n    mov edi, vendor_id\n    \n    ; move string parts to destination\n    mov eax, ebx  ; part 1 of 3 from EBX\n    stosd\n    mov eax, ecx  ; part 2 of 3 from ECX\n    stosd\n    mov eax, edx  ; part 3 of 3 from EDX\n    stosd\n    \n    ; restore saved non-volatile register\n    pop ebx \n    \n    ; return from function\n    retn\n  }\n}\n<\/code><\/pre>\n<p>\u5bf9\u5e94\u7684\u4e00\u4e9b\u5382\u5546<\/p>\n<table>\n<thead>\n<tr>\n<th>Detect<\/th>\n<th style=\"text-align:right\">EAX as argument to CPUID<\/th>\n<th>String<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>FreeBSD HV<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>bhyve bhyve<\/code><\/td>\n<\/tr>\n<tr>\n<td>Hyper-V<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>Microsoft Hv<\/code><\/td>\n<\/tr>\n<tr>\n<td>KVM<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>KVMKVMKVM<\/code><\/td>\n<\/tr>\n<tr>\n<td>Parallels<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>prl hyperv<\/code><\/td>\n<\/tr>\n<tr>\n<td>VirtualBox<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>VBoxVBoxVBox<\/code><\/td>\n<\/tr>\n<tr>\n<td>VirtualPC<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>Microsoft Hv<\/code><\/td>\n<\/tr>\n<tr>\n<td>VMware<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>VMwareVMware<\/code><\/td>\n<\/tr>\n<tr>\n<td>Xen<\/td>\n<td style=\"text-align:right\"><code>0 x 40000000<\/code><\/td>\n<td><code>XenVMMXenVMM<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h1>\u901a\u8fc7\u4e00\u4e9b\u786c\u4ef6\u8bbe\u5907\u68c0\u6d4b<\/h1>\n<ul>\n<li>\u68c0\u67e5\u786c\u76d8\u662f\u5426\u6709\u7279\u6b8a\u540d\u5b57\n<ul>\n<li>\u4e00\u4e9b\u6c99\u7bb1\u7684\u786c\u76d8\u6709\u7279\u6b8a\u547d\u540d<\/li>\n<\/ul>\n<\/li>\n<li>\u68c0\u67e5\u662f\u5426\u5b58\u5728\u97f3\u9891\u8bbe\u5907<\/li>\n<li>\u68c0\u67e5 CPU \u6e29\u5ea6\u662f\u5426\u53ef\u7528\n<ul>\n<li>\u901a\u8fc7 wmi \u63a5\u53e3\u68c0\u67e5<br \/>\n<code>wmic \/namespace:\\\\root\\WMI path MSAcpi_ThermalZoneTemperature get CurrentTemperature<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>HOOKS<\/h1>\n<h2>\u68c0\u67e5\u4e00\u4e9b\u6bd4\u8f83\u654f\u611f\u7684\u51fd\u6570\u662f\u5426\u88ab Hook \u4e86\uff08\u7528\u6237\u6001\uff09<\/h2>\n<ul>\n<li>\n<p>ReadFile<\/p>\n<\/li>\n<li>\n<p>DeleteFile<\/p>\n<\/li>\n<li>\n<p>CreateProcessA\/W<\/p>\n<\/li>\n<li>\n<p>&#8230;&#8230;<\/p>\n<\/li>\n<li>\n<p>Comparing first N bytes with\u00a0\\xCC\u00a0&#8211; software breakpoint (int 3), not\u00a0connected\u00a0with\u00a0hooks\u00a0directly\u00a0but\u00a0still\u00a0a\u00a0suspicious\u00a0behavior.<\/p>\n<ul>\n<li>\u68c0\u67e5\u662f\u5426\u5b58\u5728\u8c03\u8bd5\/\u7be1\u6539\u72b6\u6001\uff0c\u901a\u5e38\u662f\u8c03\u8bd5\u7684\u65f6\u5019\u624d\u4f1a\u63d2\u5165 \\xCC<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Comparing first N bytes with\u00a0\\xE 9\u00a0(call) or with\u00a0\\xEB\u00a0(jmp\u00a0instruction) \u2014\u00a0typical\u00a0instructions\u00a0for\u00a0redirecting\u00a0execution.<\/p>\n<ul>\n<li>\u68c0\u67e5\u662f\u5426\u5b58\u5728 jump \u5230\u522b\u5904\u7684\u547d\u4ee4<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Checking for\u00a0push\/ret\u00a0combo\u00a0for\u00a0execution\u00a0redirection.<\/p>\n<ul>\n<li>push\/ret \u7ec4\u5408\u8df3\u8f6c<\/li>\n<li>\u6bd4\u5982 <code>push 0 x 12345678<\/code> \u540e\u518d <code>ret<\/code> \u76f8\u5f53\u4e8e jump \u5230\u8fd9\u4e2a\u5730\u5740<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>\u5176\u4ed6<\/h1>\n<ul>\n<li>\n<p>\u6d4f\u89c8\u5668\u8bb0\u5f55<\/p>\n<ul>\n<li>\u5b58\u5728\u5f00\u6e90\u9879\u76ee\u53ef\u4ee5\u89e3\u6790 chrome\/edge \u6d4f\u89c8\u5668\u7684 cookie\uff0c\u53ef\u4ee5\u6839\u636e cookie \u7684\u6570\u91cf\u5224\u65ad\u662f\u5426\u5b58\u5728\u4eba\u7c7b\u6d3b\u52a8\u75d5\u8ff9<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u6587\u4ef6\u5386\u53f2<\/p>\n<\/li>\n<li>\n<p>\u9f20\u6807\u6d3b\u52a8<\/p>\n<ul>\n<li>\u4e00\u7bc7\u5173\u4e8e\u9f20\u6807\u6d3b\u52a8\u5411\u91cf\u68c0\u6d4b\u7684\u8bba\u6587 <a href=\"https:\/\/outpost24.com\/blog\/lummac2-anti-sandbox-technique-trigonometry-human-detection\/\">LummaC2 Stealer<\/a><\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u793e\u4f1a\u5de5\u7a0b\u5b66<\/p>\n<ul>\n<li>\u5f39\u7a97\u8bf1\u5bfc\u7528\u6237\u70b9\u51fb<\/li>\n<li>\u94fe\u63a5\u8bf1\u5bfc<\/li>\n<li>&#8230;&#8230;<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1>\u4e00\u4e9b\u5173\u4e8e\u8fd0\u7528\u5728 CTF \u4e2d\u7684\u601d\u8def<\/h1>\n<p>\u76f8\u6bd4\u4e8e\u76f4\u63a5\u68c0\u6d4b\u7528\u6237\u7684\u7535\u8111\u73af\u5883\uff0c\u6211\u4eec\u53ef\u4ee5\u5728\u903b\u8f91\u4e2d\u52a0\u5165\u5bf9\u6307\u5b9a\u6ce8\u518c\u8868\u9879\/\u7ed3\u6784\u4f53\u73af\u5883\/\u6587\u4ef6\u7cfb\u7edf\/&#8230;&#8230;\u7684\u68c0\u6d4b\uff0c\u53ea\u6709\u7b26\u5408\u8fd9\u4e9b\u73af\u5883\u7684\u7528\u6237\u624d\u80fd\u6210\u529f\u8fd0\u884c\u7a0b\u5e8f\u8fdb\u884c\u4e0b\u4e00\u6b65\u5206\u6790<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7b80\u5355\u4ecb\u7ecd \u901a\u7528\u7684\u4e00\u4e9b\u67e5\u8be2\u65b9\u5f0f \u68c0\u67e5\u7528\u6237\u540d\u662f\u5426\u7279\u5b9a GetUserNameA\/W \u68c0\u67e5\u8ba1\u7b97\u673a\u540d\u79f0\u662f\u5426\u7279\u5b9a Get [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-46","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/posts\/46","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/comments?post=46"}],"version-history":[{"count":1,"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/posts\/46\/revisions"}],"predecessor-version":[{"id":47,"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/posts\/46\/revisions\/47"}],"wp:attachment":[{"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/media?parent=46"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/categories?post=46"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.seekinthevortex.cn\/index.php\/wp-json\/wp\/v2\/tags?post=46"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}