автоматизация перевода программы на чисто ядерные вызовы

Тема в разделе "WASM.HEAP", создана пользователем wsd, 15 июн 2010.

  1. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    фиг знает. не смотрел. надо загнать в иду и глянуть.
     
  2. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    у меня тут не развернуто. а где развернуто щас на профилактике. може завтра к вечеру смогу оживить.
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    qqwe
    Код (Text):
    1. 7C81CB12 ExitProcess                    $  8BFF               mov edi,edi
    2. 7C81CB14                                .  55                 push ebp
    3. 7C81CB15                                .  8BEC               mov ebp,esp
    4. 7C81CB17                                .  6A FF              push -1
    5. 7C81CB19                                .  68 B0F3E877        push 77E8F3B0
    6. 7C81CB1E                                .  FF75 08            push dword ptr ss:[ebp+8]
    7. 7C81CB21                                .  E8 46FFFFFF        call kernel32.__ExitProcess@4
    8. 7C81CB26                                .  E9 9ACF0100        jmp kernel32.7C839AC5
    9.  
    10. 7C839AC5                                > \CC                 int3
    11.  
    12. 7C81CA6C __ExitProcess@4               /$  68 D0000000        push 0D0
    13. 7C81CA71                               |.  68 E8CA817C        push kernel32.7C81CAE8
    14. 7C81CA76                               |.  E8 5B5AFEFF        call kernel32.__SEH_prolog
    15. 7C81CA7B                               |.  A1 CC56887C        mov eax,dword ptr ds:[___security_cookie]
    16. 7C81CA80                               |.  8945 E4            mov dword ptr ss:[ebp-1C],eax
    17. 7C81CA83                               |.  33DB               xor ebx,ebx
    18. 7C81CA85                               |.  381D 0850887C      cmp byte ptr ds:[_BaseRunningInServerProcess],bl
    19. 7C81CA8B                               |.  75 4A              jnz short kernel32.7C81CAD7
    20. 7C81CA8D                               |.  FF15 BC10807C      call dword ptr ds:[<&ntdll.RtlAcquirePebLock>]        ;  ntdll.RtlAcquirePebLock
    21. 7C81CA93                               |.  895D FC            mov dword ptr ss:[ebp-4],ebx
    22. 7C81CA96                               |.  8B7D 08            mov edi,dword ptr ss:[ebp+8]
    23. 7C81CA99                               |.  57                 push edi
    24. 7C81CA9A                               |.  53                 push ebx
    25. 7C81CA9B                               |.  8B35 0C14807C      mov esi,dword ptr ds:[<&ntdll.NtTerminateProcess>]    ;  ntdll.ZwTerminateProcess
    26. 7C81CAA1                               |.  FFD6               call esi                                              ;  <&ntdll.NtTerminateProcess>
    27. 7C81CAA3                               |.  8985 20FFFFFF      mov dword ptr ss:[ebp-E0],eax
    28. 7C81CAA9                               |.  E8 82000000        call kernel32._LdrShutdownProcess@0                   ;  jmp to ntdll.LdrShutdownProcess
    29. 7C81CAAE                               |.  89BD 4CFFFFFF      mov dword ptr ss:[ebp-B4],edi
    30. 7C81CAB4                               |.  6A 04              push 4                                                ; /Arg4 = 00000004
    31. 7C81CAB6                               |.  68 03000100        push 10003                                            ; |Arg3 = 00010003
    32. 7C81CABB                               |.  53                 push ebx                                              ; |Arg2
    33. 7C81CABC                               |.  8D85 24FFFFFF      lea eax,dword ptr ss:[ebp-DC]                         ; |
    34. 7C81CAC2                               |.  50                 push eax                                              ; |Arg1
    35. 7C81CAC3                               |.  FF15 3410807C      call dword ptr ds:[<&ntdll.CsrClientCallServer>]      ; \CsrClientCallServer
    36. 7C81CAC9                               |.  57                 push edi
    37. 7C81CACA                               |.  6A FF              push -1
    38. 7C81CACC                               |.  FFD6               call esi
    39. 7C81CACE                               |.  834D FC FF         or dword ptr ss:[ebp-4],FFFFFFFF
    40. 7C81CAD2                               |.  E8 53510200        call kernel32.7C841C2A
    41. 7C81CAD7                               |>  8B4D E4            mov ecx,dword ptr ss:[ebp-1C]
    42. 7C81CADA                               |.  E8 CBCCFEFF        call kernel32.@__security_check_cookie@4
    43. 7C81CADF                               |.  E8 2D5AFEFF        call kernel32.__SEH_epilog
    44. 7C81CAE4                               \.  C2 0400            ret 4
    45.  
    46. 7C912DA9 CsrClientCallServer            $  8BFF               mov edi,edi
    47. 7C912DAB                                .  55                 push ebp
    48. 7C912DAC                                .  8BEC               mov ebp,esp
    49. 7C912DAE                                .  8B45 14            mov eax,dword ptr ss:[ebp+14]
    50. 7C912DB1                                .  53                 push ebx
    51. 7C912DB2                                .  33DB               xor ebx,ebx
    52. 7C912DB4                                .  3BC3               cmp eax,ebx
    53. 7C912DB6                                .  56                 push esi
    54. 7C912DB7                                .  8B75 08            mov esi,dword ptr ss:[ebp+8]
    55. 7C912DBA                                .  0F8C 3CB60200      jl ntdll.7C93E3FC
    56. 7C912DC0                                .  895E 04            mov dword ptr ds:[esi+4],ebx
    57. 7C912DC3                                >  8BC8               mov ecx,eax
    58. 7C912DC5                                .  C1E1 10            shl ecx,10
    59. 7C912DC8                                .  0BC8               or ecx,eax
    60. 7C912DCA                                .  8B45 10            mov eax,dword ptr ss:[ebp+10]
    61. 7C912DCD                                .  81C1 10002C00      add ecx,2C0010
    62. 7C912DD3                                .  890E               mov dword ptr ds:[esi],ecx
    63. 7C912DD5                                .  895E 18            mov dword ptr ds:[esi+18],ebx
    64. 7C912DD8                                .  8946 1C            mov dword ptr ds:[esi+1C],eax
    65. 7C912DDB                                .  381D D8E1977C      cmp byte ptr ds:[_CsrServerProcess],bl
    66. 7C912DE1                                .  0F85 2FDC0100      jnz ntdll.7C930A16
    67. 7C912DE7                                .  57                 push edi
    68. 7C912DE8                                .  8B7D 0C            mov edi,dword ptr ss:[ebp+C]
    69. 7C912DEB                                .  3BFB               cmp edi,ebx
    70. 7C912DED                                .  0F85 97B80000      jnz ntdll.7C91E68A
    71. 7C912DF3                                >  56                 push esi
    72. 7C912DF4                                .  56                 push esi
    73. 7C912DF5                                .  FF35 D4E1977C      push dword ptr ds:[_CsrPortHandle]
    74. 7C912DFB                                .  E8 DEACFFFF        call ntdll.ZwRequestWaitReplyPort
    75. 7C912E00                                .  3BFB               cmp edi,ebx
    76. 7C912E02                                .  0F85 A0B70000      jnz ntdll.7C91E5A8
    77. 7C912E08                                >  5F                 pop edi
    78. 7C912E09                                >  3BC3               cmp eax,ebx
    79. 7C912E0B                                .  0F8C F6B50200      jl ntdll.7C93E407
    80. 7C912E11                                >  8B46 20            mov eax,dword ptr ds:[esi+20]
    81. 7C912E14                                .  5E                 pop esi
    82. 7C912E15                                .  5B                 pop ebx
    83. 7C912E16                                .  5D                 pop ebp
    84. 7C912E17                                .  C2 1000            ret 10
    etc. Конечно можно так http://files.virustech.org/indy/Code/NtIcp/, но это хек, легально я описал выше.
     
  4. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    ZwTerminateProcess - этого не достаточно? но вообще, конечно, тут надо поэкспериментировать. только без инструментов не получится. о, у меня тут гдето ся валялась, что может функи напрямую из дллей вызывать. може найду
     
  5. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    вот тут простым ретом выходит
    (сразу говорю, файлик был инфицирован, а потом вылечен. пересобирать лениво, да и нет там виря больше. но, гпл говорит, что пускаете вы наш софт на свой страх и риск)
     
  6. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Clerk
    спасибо за концепт
    qqwe
    интересная фича у ваткома)