Advertisement
Guest User

EXPLOITS__XA__02-2014

a guest
Jan 17th, 2014
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text:F874CE92 PxIODispatch
  2. .text:F874CE92
  3. .text:F874CE92 var_8           = dword ptr -8
  4. .text:F874CE92 var_4           = dword ptr -4
  5. .text:F874CE92 arg_0           = dword ptr  8
  6. .text:F874CE92 LockState       = _LOCK_STATE ptr  0Ch
  7. .text:F874CE92
  8. .text:F874CE92                 mov     edi, edi
  9. .text:F874CE94                 push    ebp
  10. .text:F874CE95                 mov     ebp, esp
  11. .text:F874CE97                 push    ecx
  12. .text:F874CE98                 push    ecx
  13. .text:F874CE99                 and     [ebp+var_4], 0
  14. .text:F874CE9D                 push    ebx
  15. .text:F874CE9E                 mov     ebx, dword ptr [ebp+LockState.LockState]
  16. .text:F874CEA1                 mov     eax, [ebx+60h]
  17. .text:F874CEA4                 cmp     byte ptr [eax], 0Eh
  18. .text:F874CEA7                 mov     ecx, [eax+8]
  19. .text:F874CEAA                 push    esi
  20. .text:F874CEAB                 mov     esi, [ebx+0Ch]                              // Отправляем данные из IOCTL
  21. .text:F874CEAE                 mov     dword ptr [ebp+LockState.LockState], ecx
  22. .text:F874CEB1                 mov     ecx, [eax+4]
  23.  
  24. ...
  25.  
  26. .text:F874CEEE                 cmp     eax, 8FFF23C8h                              // Проверяем IOCTL-код
  27. .text:F874CEF3                 jz      loc_F874D07C
  28. .text:F874CEF9                 cmp     eax, 8FFF23CCh                              // Две возможности
  29. .text:F874CEFE                 jz      loc_F874D07C
  30.  
  31. ...
  32.  
  33. .text:F874D07C loc_F874D07C:                          
  34. .text:F874D07C                 mov     edi, dword ptr [ebp+LockState.LockState]    // EDI = 0x54.
  35. .text:F874D07F                 push    24h
  36. .text:F874D081                 pop     edx
  37.  
  38. ...
  39.  
  40. .text:F874D092                 mov     eax, [esi+14h]                              // Отправляем данные из IOCTL 0x14
  41. .text:F874D095                 sub     eax, 7030101h                               // Вычисляем индекс, используя полученное значение
  42. .text:F874D09A                 cmp     eax, edx                                  
  43. .text:F874D09C                 mov     [ebp+var_4], edx
  44. .text:F874D09F                 jbe     short loc_F874D0AD                          // Оно должно быть между 0 и 0x24 включительно!
  45.  
  46. ...
  47.  
  48. .text:F874D0AD loc_F874D0AD:                        
  49. .text:F874D0AD                 mov     ecx, [esi+1Ch]                              // Отправляем данные из IOCTL 0x1c
  50. .text:F874D0B0                 lea     eax, [eax+eax*2]                            
  51. .text:F874D0B3                 shl     eax, 2                                      // Индекс * 12.
  52. .text:F874D0B6                 cmp     ecx, dword_F8752184[eax]
  53. .text:F874D0BC                 mov     dword ptr [ebp+LockState.LockState], eax    // Сохраняем индекс
  54. .text:F874D0BF                 jnb     short loc_F874D0CD ; 0x54 - 0x20
  55.  
  56. ...
  57.  
  58. .text:F874D0CD loc_F874D0CD:                        
  59. .text:F874D0CD                 add     edi, 0FFFFFFE0h                             // 0x54 - 0x20
  60. .text:F874D0D0                 cmp     ecx, edi                                    // Значение в 0x1c должно быть меньше 0x34
  61. .text:F874D0D2                 ja      short loc_F874D0C1
  62.  
  63. ...
  64.  
  65. .text:F874D11B loc_F874D11B:                          
  66. .text:F874D11B                 mov     eax, dword_F87528B4
  67. .text:F874D120                 mov     [esi+0Ch], eax
  68. .text:F874D123                 mov     [esi+8], ebx
  69. .text:F874D126                 mov     dl, byte_F87528C0
  70. .text:F874D12C                 mov     ecx, edi      
  71. .text:F874D12E                 call    ds:__imp_@KfReleaseSpinLock@8
  72. .text:F874D134                 mov     eax, [ebx+60h]
  73. .text:F874D137                 or      byte ptr [eax+3], 1
  74. .text:F874D13B                 mov     eax, dword ptr [ebp+LockState.LockState]    // Сохраняем индекс
  75. .text:F874D13E                 push    esi
  76. .text:F874D13F                 call    off_F8752188[eax]                           // Вызываем функцию из индекса
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement