Real Patch Code

Тема в разделе "WASM.BEGINNERS", создана пользователем kodermax, 8 фев 2007.

  1. kodermax

    kodermax New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2007
    Сообщения:
    26
    Hmmон сразу вырубает процесс, он аж не успевает завершить свои необходмые действия перед выходом..
     
  2. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    Если тебе надо:
    1) чтоб процес был незаметный
    2) чтоб не портил игру (файловый вопрос)
    3) не давал играть
    есть простое решение - пишешь прогу (идея HoBleen (с) ) которая
    а) в цикле смотрит за процессами -> при обнаружении игры каждых 10 сек делает <WinExec("net.exe","send localhost Error")>
    б) называешь прогу svchost.exe
    в) кладешь ее в %system_root%
    г) прописываешь в автозагрузку

    P.S. Так как все у нас сейчас продвинутые стали, лучше писать не EXE а DLL и автозагрузку выполнить через
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify. Очевидный плюс - нигде не будет торчать левый процес

    P.P.S. западло делать нехорошо, но мы сейчас не про это :)
     
  3. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Угу . Еще можно изменить производителя dll на Microsoft Corporation.
    Мелкий трюк. Тогда при просмотре списка загруженных длл она не будет выделяться .:)
    А где можно глянуть хоть одну такую подгружающуюся заразу ?
    А то я в теории , в общем , все понимаю . А на практике еще не наблюдал . Она будет сильно отличаться от обычной длл'ы по ст-ре ?
     
  4. trash_master

    trash_master New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2006
    Сообщения:
    319
    Адрес:
    Україна
    хммм, а ты значит все библиотеки что експлорер себе подгружает знаешь ? у меня к примеру их 82 (модуля, точнее)
    А насчет разницы в структуре, так она даже проще в исполнении. Сам смысл который лежит здесь - к експлореру (если не ошибаюсь) будет при входе в систему (точнее сказать, не при входе, а при событиях указанных в ключе реестра, вход - один из частных случаев) подгружена библиотека и выполнена функция (та которая указана). Но на практике проще вообще не експортировать ничего, а выполнить свой код в DLL_ENTRY_POINT.
     
  5. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Ну я , допустим , не знаю . Но если я включу , к примеру , Sysinternals Autoruns , тогда увижу их все . И кроме того увижу поля Publisher и Description. Если там publisher у какой то dll'ы пустой , тогда я буду подозревать про нее нехорошее .

    "выполнить свой код в DLL_ENTRY_POINT."
    Это всмысле в Main ф-ции dll ? Я вот не соображу никак.Если мне надо , чтобы dll выполнялась долго и счастливо. Я могу просто добавить в main бесконечный цикл проверки того же CreateToolhelp32Snapshot ?
    Или не могу ? Загрузчик , по идее , выполняет все последовательно , т е пока не завершится main dll ки ,он не будет ничего дальше делать и все повиснет ?
     
  6. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Два дня пытаюсь заставить заработать . Чтобы просто выводил список процессов .
    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4. include windows.inc
    5. include kernel32.inc
    6. includelib kernel32.lib
    7.  
    8. .const
    9. sConsoleTitle db 'Process Application',0
    10.  
    11. .data
    12. ProcError db "CreateToolhelp32Snapshot function error",0
    13. FirstError db "Process32First function error",0
    14. HelloString db "Process List",0Dh,0Ah,0
    15.  
    16. .data?
    17. LastError dd ?
    18.  
    19. .code
    20. Main PROC
    21.   LOCAL hStdout :HANDLE
    22.   LOCAL processes:PROCESSENTRY32
    23.   LOCAL hProcess:HANDLE
    24.   invoke SetConsoleTitle, offset sConsoleTitle
    25.   invoke GetStdHandle ,STD_OUTPUT_HANDLE
    26.   mov hStdout,EAX
    27.   ;invoke SetConsoleMode,hStdout,ENABLE_WRAP_AT_EOL_OUTPUT 
    28.   invoke WriteConsole,hStdout,offset HelloString,sizeof HelloString,NULL,NULL
    29.   invoke CreateToolhelp32Snapshot,TH32CS_SNAPALL,0
    30.   .IF eax==INVALID_HANDLE_VALUE
    31.     invoke WriteConsole,hStdout,offset ProcError,sizeof ProcError,NULL,NULL
    32.     invoke ExitProcess,NULL
    33.   .ENDIF
    34.   mov hProcess,eax
    35.   invoke Process32First,hProcess,addr processes
    36.   .IF eax==FALSE
    37.     invoke WriteConsole,hStdout,addr FirstError,sizeof FirstError,NULL,NULL
    38.     invoke ExitProcess,0
    39.   .ENDIF
    40.   invoke lstrlen,processes.szExeFile
    41.   invoke WriteConsole,hStdout,processes.szExeFile,eax,NULL,NULL
    42.   .WHILE LastError != FALSE
    43.     invoke Process32Next,hProcess,addr processes
    44.     mov LastError,eax
    45.     .IF LastError != FALSE
    46.       invoke lstrlen,processes.szExeFile
    47.       invoke WriteConsole,hStdout,processes.szExeFile,eax,NULL,NULL
    48.     .ENDIF
    49.   .ENDW
    50.   invoke CloseHandle,hProcess
    51.   invoke CloseHandle,hStdout
    52.   invoke ExitProcess,NULL
    53. Main ENDP
    54.  
    55. end Main
    Нифига не выводит :dntknw:(
    P.S.: Да , люди , как приаттачить фаил , не могу найти .
     
  7. LB_K

    LB_K New Member

    Публикаций:
    0
    Регистрация:
    4 авг 2006
    Сообщения:
    8
    Код (Text):
    1. .386
    2. .model flat, stdcall
    3. option casemap :none    
    4.  
    5. include windows.inc
    6. include kernel32.inc
    7. includelib user32.lib
    8. includelib kernel32.lib
    9.  
    10. .const
    11. sConsoleTitle db 'Process Application',0
    12.  
    13. .data
    14. ProcError   db "CreateToolhelp32Snapshot function error",0
    15. FirstError  db "Process32First function error",0
    16. HelloString db "Process List",10,13,0
    17. newLine     db  10,13
    18.  
    19. .data?
    20. LastError dd ?
    21.  
    22. .code
    23. Main PROC
    24.   LOCAL hStdout :HANDLE
    25.   LOCAL processes:PROCESSENTRY32
    26.   LOCAL hProcess:HANDLE
    27.   LOCAL   written         : DWORD
    28.  
    29.   invoke  AllocConsole
    30.   invoke SetConsoleTitle, ADDR sConsoleTitle
    31.   invoke GetStdHandle ,STD_OUTPUT_HANDLE
    32.   mov hStdout,EAX  
    33.   invoke WriteConsole,hStdout,ADDR HelloString,sizeof HelloString-1,NULL,NULL
    34.   invoke CreateToolhelp32Snapshot,TH32CS_SNAPALL,0
    35.   .IF eax==INVALID_HANDLE_VALUE
    36.     invoke WriteConsole,hStdout,ADDR ProcError,sizeof ProcError,NULL,NULL
    37.     invoke ExitProcess,NULL
    38.   .ENDIF
    39.   mov hProcess,eax
    40.   invoke Process32First,hProcess,ADDR processes
    41.   .IF eax==FALSE
    42.     invoke WriteConsole,hStdout,ADDR FirstError,sizeof FirstError,NULL,NULL
    43.     invoke WriteConsole,hStdout,ADDR newLine,2,NULL,NULL
    44.     invoke ExitProcess,0
    45.   .ENDIF
    46.   invoke lstrlen,ADDR processes.szExeFile
    47.   invoke WriteConsole,hStdout,ADDR processes.szExeFile,eax,NULL,NULL
    48.  
    49.   xor eax,eax
    50.   inc eax
    51.   mov LastError,eax
    52.   .WHILE LastError != FALSE
    53.     invoke Process32Next,hProcess,ADDR processes
    54.     mov LastError,eax
    55.     .IF LastError != FALSE
    56.       invoke lstrlen,ADDR processes.szExeFile
    57.       invoke WriteConsole,hStdout,ADDR processes.szExeFile,eax,NULL,NULL
    58.       invoke WriteConsole,hStdout,ADDR newLine,2,NULL,NULL
    59.     .ENDIF
    60.   .ENDW
    61.   invoke CloseHandle,hProcess
    62.   invoke CloseHandle,hStdout
    63.   @circle:
    64.     jmp @circle
    65.   invoke ExitProcess,NULL
    66. Main ENDP
    67.  
    68. end Main
    Это работает.
     
  8. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Пффф. Разгоняю пар из ушей .
    Во первых , респект тебе большой LB_K .
    По сути вышеизложенного .
    Коренное отличие углядел только в :

    invoke lstrlen,ADDR processes.szExeFile
    invoke WriteConsole,hStdout,ADDR processes.szExeFile,eax,NULL,NULL

    Т е process.szExeFile - string ??
    Действительно работает (хотя и с нижеслед. оговорками ) . Но почему , я смекалку сломал , но не понял .
    Читаем msdn :
    szExeFile = Pointer to a null-terminated string that specifies the name of the executable file for the process.

    Это что , в msdn ошибка , или я неправильно слово pointer перевожу ?

    Главная грабля не в этом . И редактированный исходник и исходный , подправленный , работает только 1 раз в консоли . Потом начинают вылетать Process32First function error . :=\ Если подождать 2 мин снова работает. 1 раз ... И так постоянно. Плавающий баг , какой то .Или это в винде дело ?
    P.S: Пока еще с вами , пока еще в здравом уме ...
     
  9. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Имею заметить.
    Если кто будет заюзать , перед каждым вызовом
    Process32Next, Process32First обязательно записывать размер PROCESSENTRY32 в ее же.
    Т е вставить
    mov processes.dwSize,sizeof PROCESSENTRY32
    Без этого оно работает через раз , почемуто .
    Отсылаю интересующихся к статье почтенного Cr4sh'a
    "Новые веяния в бэкдорах".
    http://www.sdteam.com/?tid=1723
    Там почти такой же код.
     
  10. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    >> Отсылаю интересующихся к статье почтенного Cr4sh'a
    я не пишу статьи =)
     
  11. HoBleen

    HoBleen New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    77
    Ну тогда уж так:
    Код (Text):
    1.   .DO    
    2.     ;работаем как хотим с процессом
    3.     invoke lstrlen,ADDR processes.szExeFile
    4.     invoke WriteConsole,hStdout,ADDR processes.szExeFile,eax,NULL,NULL
    5.     invoke WriteConsole,hStdout,ADDR newLine,2,NULL,NULL
    6.  
    7.     ;и переключаемся на след. процесс
    8.     mov processes.dwSize,sizeof PROCESSENTRY32
    9.     invoke Process32Next,hProcess,ADDR processes
    10.   .WHILE eax
    И красивее будет, и первый процесс тоже будет просмотрен в этом цикле.
     
  12. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    эээ . slon'a .
    К утру голова == гиперкубу .