首页
社区
课程
招聘
[讨论]这个就是传说中的VM吗
发表于: 2011-9-8 15:20 6471

[讨论]这个就是传说中的VM吗

2011-9-8 15:20
6471
最近逆向分析一个小软件带驱动的  驱动代码好像VM过

  估计是VM过  怎么办  貌似确实不是很好看 感觉很多理解思路错误
后面我贴个完整代码  估计作者要看到  不过不怕怕,希望高手能解释哈怎么去分析

有问题代码片段
0xB4B2624F    |    F1    |    Invalid Command    |    Unknown command   
0xB4B26250    |    7F 3A    |    jg short B4B2628C    |        
0xB4B26252    |    110A    |    adc dword ptr [edx], ecx    |        
0xB4B26254    |    C5D0    |    lds edx, eax    |    Illegal use of register   


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0xB48FB810    |    8BFF    |    mov edi, edi    |        
0xB48FB812    |    55    |    push ebp    |        
0xB48FB813    |    8BEC    |    mov ebp, esp    |        
0xB48FB815    |    56    |    push esi    |                                               
0xB48FB816    |    FF75 14    |    push dword ptr [ebp+14]    |                           参数4  out retLen
0xB48FB819    |    8B75 0C    |    mov esi, dword ptr [ebp+C]    |                        
0xB48FB81C    |    FF75 10    |    push dword ptr [ebp+10]    |                           参数3  int len
0xB48FB81F    |    56    |    push esi    |                                               参数2  out PVOID  infomation
0xB48FB820    |    FF75 08    |    push dword ptr [ebp+8]    |                            参数1  in  systemInfomationclass
0xB48FB823    |    FF15 100590B4    |    call dword ptr [<&NtQuerySystemInformation>]     调用原 NtQuerySystemInformation   
0xB48FB829    |    837D 08 05    |    cmp dword ptr [ebp+8], 5    |                                    
0xB48FB82D    |    8945 14    |    mov dword ptr [ebp+14], eax    |               居然是 把 [EBP+14]=EAX
0xB48FB830    |    0F85 80000000    |    jne B48FB8B6    |        
0xB48FB836    |    85C0    |    test eax, eax    |        
0xB48FB838    |    75 7C    |    jne short B48FB8B6    |                         跳到  标记1
0xB48FB83A    |    85F6    |    test esi, esi    |        
0xB48FB83C    |    74 78    |    je short B48FB8B6    |                          跳到  标记1
0xB48FB83E    |    FF15 58F48FB4    |    call dword ptr [B48FF458]    |   标记2   [B48FF458]= 804F03C8 返回当前EPROCESS  这个是  psGetCurrentProcess
0xB48FB844    |    50    |    push eax    |                                这个  eax=EPROCESS  
0xB48FB845    |    E8 14FFFFFF    |    call B48FB75E    |                    //判断函数  判断是否是在查询  moon.exe
0xB48FB84A    |    85C0    |    test eax, eax    |                           非0=moon.exe
0xB48FB84C    |    74 68    |    je short B48FB8B6    |                          跳到  标记1
0xB48FB84E    |    E9 54380100    |    jmp B490F0A7    |                     // 转到一个 jmp函数   很诡异      
0xB48FB853    |    3275 C9    |    xor dh, byte ptr [ebp-37]    |        
0xB48FB856    |    DA3D 1B5FF3B5    |    fidivr dword ptr [B5F35F1B]    |        
0xB48FB85C    |    E9 0FFF5919    |    jmp CDE9B770    |                     // 这个地方好像跳往地方全是 0      
0xB48FB861    |    0A5D 08    |    or bl, byte ptr [ebp+8]    |                     
0xB48FB864    |    F6F6    |    div dh    |        
0xB48FB866    |    76 D7    |    jbe short B48FB83F    |                   跳到 标记2  是个循环哦     
0xB48FB868    |    F792 470B2756    |    not dword ptr [edx+56270B47]    |        
0xB48FB86E    |    B6 AA    |    mov dh, AA    |        
0xB48FB870    |    C781 41525AB9 8BB6D50A    |    mov dword ptr [ecx+B95A5241], AD5B68B    |        
0xB48FB87A    |    A1 A27B8F2E    |    mov eax, dword ptr [2E8F7BA2]    |        
0xB48FB87F    |    3D 0797A9A0    |    cmp eax, A0A99707    |        
0xB48FB884    |    53    |    push ebx    |        
0xB48FB885    |    6A 7A    |    push 7A    |        
0xB48FB887    |    35 981AD0EC    |    xor eax, ECD01A98    |        
0xB48FB88C    |    5F    |    pop edi    |        
0xB48FB88D    |    9A DCB34B08 A8DD    |    call far DDA8:084BB3DC    |        
0xB48FB894    |    AF    |    scas dword ptr es:[edi]    |        
0xB48FB895    |    24 19    |    and al, 19    |        
0xB48FB897    |    EF    |    out dx, eax    |        
0xB48FB898    |    3965 A8    |    cmp dword ptr [ebp-58], esp    |        
0xB48FB89B    |    70 17    |    jo short B48FB8B4    |        
0xB48FB89D    |    4B    |    dec ebx    |        
0xB48FB89E    |    3C 8C    |    cmp al, 8C    |        
0xB48FB8A0    |    4C    |    dec esp    |        
0xB48FB8A1    |    95    |    xchg eax, ebp    |        
0xB48FB8A2    |    3F    |    aas    |        
0xB48FB8A3    |    59    |    pop ecx    |        
0xB48FB8A4    |    EB 10    |    jmp short B48FB8B6    |                   跳到  标记1     
0xB48FB8A6    |    D9DD    |    fstp ebp    |    Illegal use of register   
0xB48FB8A8    |    96    |    xchg eax, esi    |        
0xB48FB8A9    |    EB 8F    |    jmp short B48FB83A    |        
0xB48FB8AB    |    1E    |    push ds    |        
0xB48FB8AC    |    F4    |    hlt    |        
0xB48FB8AD    |    6E    |    outs dx, byte ptr es:[edi]    |        
0xB48FB8AE    |    2C 2B    |    sub al, 2B    |        
0xB48FB8B0    |    06    |    push es    |        
0xB48FB8B1    |    91    |    xchg eax, ecx    |        
0xB48FB8B2    |    E8 54026E8B    |    call 3FFDBB0B                                 
0xB48FB8B7    |    45    |    inc ebp    |                                   标记1
0xB48FB8B8    |    14 5E    |    adc al, 5E    |        
0xB48FB8BA    |    5D    |    pop ebp    |        
0xB48FB8BB    |    C2 1000    |    retn 10    |
2011-9-8 15:23
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

HOOK的   NtQuerySystemInformation   

有很多不明白的汇编代码

| F4 | hlt |
0xB48FB8AD | 6E | outs dx, byte ptr es:[edi] |

C5D0    |    lds edx, eax    |    Illegal use of register   

这些很有问题啊  是不是被VM了啊  我还以为驱动就不会被VM哦
2011-9-8 15:26
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
4
是被sdk了,从84E到8B5
2011-9-8 17:46
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
额 我也想问这问题
2011-9-8 20:43
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
大哥  什么叫被SDK了  希望大牛指点一二啊
2011-9-8 23:51
0
雪    币: 2242
活跃值: (488)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
7
sdk就是把指定区域的代码给保护起来
现在基本上都是vm了,
你从0xB48FB84E进去
看下入口有没有保存context的操作就知道是不是vm了
2011-9-9 09:57
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢你  既然VM了就再慢慢研究了。一下子可能也搞不定
2011-9-9 18:30
0
游客
登录 | 注册 方可回帖
返回
//