首页
社区
课程
招聘
[原创]VMProtect3.5.1脱壳临床指南
发表于: 2025-5-9 17:24 23661

[原创]VMProtect3.5.1脱壳临床指南

2025-5-9 17:24
23661

传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

最后于 2025-5-10 17:54 被舒默哦编辑 ,原因: 更正
上传的附件:
收藏
点赞 ・40
打赏
分享
最新回复 (15)
雪    币: 216
活跃值: (3517)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2 楼
666
2025-5-10 12:11
0
雪    币: 5452
活跃值: (2566)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
3 楼
学习
2025-5-10 13:33
0
雪    币: 3266
活跃值: (3650)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4 楼
感谢分享,关注
2025-5-12 12:50
0
雪    币: 1936
活跃值: (8113)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5 楼
太强了
2025-5-13 12:00
0
雪    币: 325
活跃值: (1438)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6 楼
大佬太给力了,一流的功力
2025-5-13 15:38
0
雪    币: 1050
活跃值: (1655)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7 楼
study
2025-5-13 17:10
0
雪    币: 300
活跃值: (265)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8 楼
太强了
2025-5-14 03:25
0
雪    币: 9126
活跃值: (7266)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
9 楼
学习下
2025-5-14 07:31
0
雪    币: 583
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10 楼
学习
2025-5-15 00:31
0
雪    币: 6572
活跃值: (8649)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11 楼
脚本能将3.5的那个主程序VMProtect.exe还原不
2025-5-15 07:27
0
雪    币: 6981
活跃值: (6253)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
12 楼
木志本柯 脚本能将3.5的那个主程序VMProtect.exe还原不
不能,还有一些问题处理不了。
2025-5-16 20:09
0
雪    币: 244
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13 楼
学习
2025-5-19 13:15
0
雪    币: 275
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14 楼
感谢分享,值得学习!
2025-5-29 16:41
0
雪    币: 14
活跃值: (566)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15 楼

///========= 3. 检测ProcessDebugFlags ==========///

#ifdef _WIN64

DWORD32 dwIsDebug = 0;

status = NtQueryInformationProcess(

ProcHandle,                     // 进程句柄

ProcessDebugFlags,              // 调试标志

&dwIsDebug,             // 如果当前被调试,isDebuggerPresent的值为0

sizeof(dwIsDebug),              // 缓冲区大小

&returnLength                   // 实际返回进程信息的大小

);

cout << "NtQueryInformationProcess返回状态:" << hex << status << endl;

cout << "isDebuggerPresent:" << hex << dwIsDebug << endl;

if (status == STATE_SUCCUSS && dwIsDebug == 0) {

return true;

}

#else

DWORD32 dwIsDebug = 0;

status = NtQueryInformationProcess(

ProcHandle,                     // 进程句柄

ProcessDebugFlags,              // 调试标志

&dwIsDebug,             // 如果当前被调试,isDebuggerPresent的值为0

sizeof(dwIsDebug),              // 缓冲区大小

&returnLength                   // 实际返回进程信息的大小

);

cout << "NtQueryInformationProcess返回状态:" << hex << status << endl;

cout << "isDebuggerPresent:" << hex << dwIsDebug << endl;

if (status == STATE_SUCCUSS && dwIsDebug == 0) {

return true;

}

#endif // _WIN64

return false;

}


 64程序总是返回0xFFFFFFFFC0000004的状态码

STATUS_INFO_LENGTH_MISMATCH (0xC0000004):
这个错误表示传递的缓冲区大小不正确
ProcessDebugFlags 需要 4字节 的缓冲区,但您传递的是 sizeof(ULONG_PTR)
在64位系统上,sizeof(ULONG_PTR) 是8字节,导致了大小不匹配

最后于 2025-12-4 17:26 被CreateSun编辑 ,原因:
2025-12-4 17:20
1
雪    币: 6981
活跃值: (6253)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
16 楼
CreateSun ///========= 3. 检测ProcessDebugFlags ==========///#ifdef _WIN64 DWORD32 dwIsDebug = 0; status = NtQu ...
谢谢指正
2026-1-21 03:54
0
游客
登录 | 注册 方可回帖
返回