吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30971|回复: 67
收起左侧

[原创] VMP v3.0.9过VMware检测

  [复制链接]
hixiaosheng 发表于 2017-8-15 11:41
本帖最后由 hixiaosheng 于 2017-8-16 19:00 编辑

前记: 有朋友问到如何过vmp新版检测,随手单步了一下新版确实变化不少。
主要有2个检测点
下面介绍如何手动找关键的Handler来过检测

1. 找VM_CallApi
   MessageBoxExW , 弹出不能运行在虚拟机那个框之后单步返回
0123D97D    FFD0              call eax         ----> 这里下硬件执行断点
0123D97F    8B6C25 FC         mov ebp,dword ptr ss:[ebp-4] ----> 返回到这里
0123D983    F9                stc
0123D984    894425 00         mov dword ptr ss:[ebp],eax


2. VirtualProtect 之后会走到 cpuid hander
CPUID eax为1时,单步之后ecx 31位代表hypervisor
Running on a hypervisor (always 0 on a real CPU, but also with some hypervisors)
也就是真机31位为0,虚拟机最高位是1也就是0x8*******
详细说明
https://en.wikipedia.org/wiki/CP ... fo_and_Feature_Bits
0122858B   .  8B4425 00             mov eax,dword ptr ss:[ebp]
0122858F   .  53                    push ebx
01228590   .  0FC1D3                xadd ebx,edx
01228593   .  0FA2                  cpuid                   -----> 可以把eax清零
01228595   .  F8                    clc
01228596   .  66:F7C6 A429          test si,29A4
0122859B   .  81ED 0C000000         sub ebp,0C
012285A1   .  F9                    stc
012285A2   .  894425 0C             mov dword ptr ss:[ebp+C],eax    *******
012285A6   .  66:8BC2               mov ax,dx
012285A9   .  0FB7C3                movzx eax,bx
012285AC   .  80FF 99               cmp bh,99
012285AF   .  895C25 08             mov dword ptr ss:[ebp+8],ebx    *******
012285B3   .  894C25 04             mov dword ptr ss:[ebp+4],ecx    *******
012285B7   .  80DB 5F               sbb bl,5F
012285BA   .  895425 00             mov dword ptr ss:[ebp],edx      *******
012285BE   .  5B                    pop ebx
012285BF   .  66:0FBEC2             movsx ax,dl
012285C3   .  8DB6 FCFFFFFF         lea esi,dword ptr ds:[esi-4]
012285C9   .  8B06                  mov eax,dword ptr ds:[esi]
012285CB   .  F5                    cmc
012285CC   .  33C3                  xor eax,ebx
012285CE   .  E9 FD111E00           jmp NOTEPAD_.014097D0

3.
xp:
ntdll.ZwOpenSection
NTSTATUS ZwOpenSection(
  _Out_ PHANDLE            SectionHandle,
  _In_  ACCESS_MASK        DesiredAccess,
  _In_  POBJECT_ATTRIBUTES ObjectAttributes
);

typedef struct _OBJECT_ATTRIBUTES {
  ULONG           Length;
  HANDLE          RootDirectory;
  PUNICODE_STRING ObjectName;   ----> 这里是 UNICODE "\device\physicalmemory"
  ULONG           Attributes;
  PVOID           SecurityDescriptor;
  PVOID           SecurityQualityOfService;
}  OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;

把第一个参数SectionHandle改成0,让其打开失败
NTSTATUS ZwMapViewOfSection(
  _In_        HANDLE          SectionHandle,   ---> 这个是上面打开的句柄
  _In_        HANDLE          ProcessHandle,
  _Inout_     PVOID           *BaseAddress,   ---> 这里有打开硬件信息 "VMware virtual machine VMware, Inc"
  _In_        ULONG_PTR       ZeroBits,
  _In_        SIZE_T          CommitSize,
  _Inout_opt_ PLARGE_INTEGER  SectionOffset,
  _Inout_     PSIZE_T         ViewSize,
  _In_        SECTION_INHERIT InheritDisposition,
  _In_        ULONG           AllocationType,
  _In_        ULONG           Win32Protect
);

win7:
kernel32.LocalAlloc
kernel32.EnumSystemFirmwareTables
kernel32.GetSystemFirmwareTable

UINT WINAPI GetSystemFirmwareTable(  
    _In_  DWORD FirmwareTableProviderSignature,  
    _In_  DWORD FirmwareTableID,
     _Out_ PVOID pFirmwareTableBuffer,   ---> 这里是保存硬件信息的指针,对返回的数据下硬件访问断点  
    _In_  DWORD BufferSize
);

以上获取硬件特征的地方下硬件访问断点可以遇到下面的字符串检测。
检测特征码
cmp byte ptr ds:[eax+ecx+0x1],0x69
cmp byte ptr ds:[eax+ecx+0x2],0x72
cmp byte ptr ds:[eax+ecx+3],74
cmp byte ptr ds:[eax+ecx+4],75
cmp byte ptr ds:[eax+ecx+5],61
cmp byte ptr ds:[eax+ecx+6],6C
cmp byte ptr ds:[eax+ecx+7],42
cmp byte ptr ds:[eax+ecx+8],6F
cmp byte ptr ds:[eax+ecx+9],78
56 69 72 74 75 61 6c 42 6f 78   ===> VirtualBox

cmp byte ptr ds:[edx],56
cmp byte ptr ds:[eax+ecx+1],4D
cmp byte ptr ds:[eax+ecx+2],77
cmp byte ptr ds:[eax+ecx+3],61
cmp byte ptr ds:[eax+ecx+4],72
cmp byte ptr ds:[eax+ecx+5],65
56 4d 77 61 72 65              ===> VMware

cmp byte ptr ds:[edx],50
cmp byte ptr ds:[eax+ecx+1],61
cmp byte ptr ds:[eax+ecx+2],72
cmp byte ptr ds:[eax+ecx+3],61
cmp byte ptr ds:[eax+ecx+4],6C
cmp byte ptr ds:[eax+ecx+5],6C
cmp byte ptr ds:[eax+ecx+6],65
cmp byte ptr ds:[eax+ecx+7],6C
cmp byte ptr ds:[eax+ecx+8],73
50 61 72 61 6c 6c 65 6c 73     ===> Parallels

录了一个gif动画,附件有原始加的NOTEPAD样本。





01.rar

4 MB, 下载次数: 848, 下载积分: 吾爱币 -1 CB

02.rar

3.54 MB, 下载次数: 675, 下载积分: 吾爱币 -1 CB

点评

麻麻再也不用担心我找台蒸鸡装影子系统破解了……  发表于 2017-8-15 13:11

免费评分

参与人数 41威望 +1 吾爱币 +53 热心值 +39 收起 理由
软硬兼嗜 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
dibh10 + 1 + 1 用心讨论,共获提升!
whdfog + 1 + 1 用心讨论,共获提升!
ppyyll7788 + 1 + 1 用心讨论,共获提升!
科技创造价值 + 1 + 1 用心讨论,共获提升!
灰灰。 + 1 + 1 谢谢@Thanks!
oo0000oo + 1 + 1 谢谢@Thanks!
gunxsword + 1 + 1 谢谢@Thanks!
1434930788 + 1 谢谢@Thanks!
Alog + 1 + 1 热心回复!
liphily + 1 + 1 我认为基本上虚拟机环境自动退出的程序,都是带病毒的。
割了动脉喝脉动 + 1 + 1 热心回复!
talent1190 + 1 + 1 谢谢@Thanks!
泽雨天下 + 1 + 1 66666666666666666666
aallffiiee + 1 + 1 谢谢@Thanks!
a5606495 + 1 + 1 谢谢@Thanks!
Sound + 1 + 8 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
q1j1f1 + 1 + 1 我很赞同!
清香白莲 + 1 + 1 我很赞同!
寒枫雨雪 + 1 + 1 谢谢@Thanks!
黑的思想 + 1 + 1 用心讨论,共获提升!
re20y + 1 + 1 谢谢@Thanks!
771764704 + 3 先订个小目标加他一千分
xiao_ya + 1 + 1 热心回复!
wuyueqi168 + 1 期待通用工具能在 Parallels 下过检测
dangducluan + 1 + 1 谢谢@Thanks!
zouxm2008 + 1 + 1 谢谢@Thanks!
zhaohj + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Hades-52pojie + 1 + 1 我很赞同!
w470236189 + 1 + 1 我很赞同!
revcer + 1 + 1 我很赞同!
ghvmy12 + 1 + 1 先定一个小目标
qqice + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
ALL_IN + 1 + 1 我很赞同!
pxhb + 2 + 1 真正过3.x虚拟机的教程,感谢!
MXWXZ + 2 + 1 我很赞同!
枫叶下的蟋蟀 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
zby03772015 + 2 + 1 热心回复!
11689421 + 1 + 1 谢谢xiaosheng老师
hejialong + 2 + 1 谢谢@Thanks!
amscracker + 1 + 1 坐等大屌放神器

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

软硬兼嗜 发表于 2018-7-26 11:44
感谢老师精彩分享!收藏学习!
11689421 发表于 2017-8-15 17:38
hixiaosheng 发表于 2017-8-15 14:25
有VMP3.1.2的加壳程序么

我是在vmp官网下载的 VMP 3.1.2 demo版本.
因为用demo版本加壳后的程序不能移植,所以将 VMP 3.1.2 demo版本安装到VMWARE虚拟机里,然后用VMP 3.1.2 demo版本加壳随便一个exe程序即可!
VMP 3.1.2 demo版本 链接:http://pan.baidu.com/s/1o7HDbke 密码:bpix
nihuge 发表于 2017-8-15 11:48
huangxu 发表于 2017-8-15 12:23
学习下,谢谢分享
zby03772015 发表于 2017-8-15 12:43
学习一下 晚上回去试试  
11689421 发表于 2017-8-15 13:50
本帖最后由 11689421 于 2017-8-15 13:59 编辑

xiaosheng老师,  VMP 3.0.9是2016年7月21日更新的,    新版是VMP 3.1.2 , 更新于2017年3月29日
 楼主| hixiaosheng 发表于 2017-8-15 14:25
11689421 发表于 2017-8-15 13:50
xiaosheng老师,  VMP 3.0.9是2016年7月21日更新的,    新版是VMP 3.1.2 , 更新于2017年3月29日

有VMP3.1.2的加壳程序么
w470236189 发表于 2017-8-15 14:49
发出来看看
arekre47 发表于 2017-8-15 15:57
新手,准备学习下。有问题就来逛逛
mayl8822 发表于 2017-8-15 15:59
感谢分享
dagelaokao99 发表于 2017-8-15 16:26
以学习,感谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 05:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表