Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.14.130.24] |
|
Сообщ.
#1
,
|
|
|
Вирус в сетке стырил и подчистил очень нужную инфу, попробовал распотрошить вручную - инфу удалось вернуть при помощи WinApi ReadMemory. Использовал программу ArtMoney - единственная программа которая смогла открыть процесс вируса и прочесть память. Вирус блокирует почти весь набор WinApi, процесс вируса скрыт, деструктурезуется при попытке дизассемблирования. Не очень разбираюсь как он блокирует винапи то-ли хуки ставит, но скорее всего мьютексы. Нужно написать прогу для лечения, но незнаю как обойти мьютекс - немогу открыть процесс, найти хэндл окна, итд. Как обойти мьютекс?
|
Сообщ.
#2
,
|
|
|
Цитата Rzone @ инфу удалось вернуть при помощи WinApi ReadMemory Цитата Rzone @ ArtMoney - единственная программа которая смогла открыть процесс вируса и прочесть память Цитата Rzone @ Вирус блокирует почти весь набор WinApi, процесс вируса скрыт, деструктурезуется при попытке дизассемблирования. Цитата Rzone @ но скорее всего мьютексы Фантазия у тебя богатая. ReadMemory работает, а ты говоришь заблокировано. АртМани видит, т.к. закрыть все способы получения списка процессов нельзя - вот и "прокололась" защита. Никто наверняка не деструктуризируется просто защита, возможно вм - виртуальная машина. Про мьютексы вообще невообразимо - они не блокируют доступ, а отправляют процесс/поток в режим ожидания. Хуки - 99% ------------------------------------------------ Теперь про лечение. Вы не лечите, а пытаетесь выяснить механизм работы вируса. А лечат всегда одинаково : ищем механизм запуска и файл. Удаляем файл(обычно загрузившись с ЛивСиДи, т.к. нормальные вирусы блокируют свое удаление)и чистим "грязь" - правим реестр, заменяем зараженные компоненты системы и т.п. |
Сообщ.
#3
,
|
|
|
Я пытаюсь вернуть украденую информацию, как лечить я знаю. Цитата esperanto @ Про мьютексы вообще невообразимо - они не блокируют доступ, а отправляют процесс/поток в режим ожидания. Хуки - 99% Спасибо за разьяснение. Видимо действительно хуки. Я брал ID процесса из артмани и пробовал открыть процесс OpenProcess(PROCESS_ALL_ACCESS, false, ID), итог: вирус зависает, OpenProcess возвращает ноль. Помогите открыть процесс, благодарю всех ответивших. Добавлено: ID процесса удалось программно получить самому, вирус после OpenProcess не зависает, но OpenProcess всеравно возвращает ноль:( Добавлено: Удалось открыть процесс с параметром PROCESS_QUERY_INFORMATION, с параметром PROCESS_ALL_ACCESS процесс не открывается. Нужно открыть процесс с правами на Read/WriteMemory. |
Сообщ.
#4
,
|
|
|
Цитата Rzone @ Я пытаюсь вернуть украденую информацию, как лечить я знаю. Тогда разъясни про украденную инфу. Почему ты считаешь, что она в памяти вируса? Кстати Артмани позволяет записать дамп памяти. Разве этого не достаточно? |
Сообщ.
#5
,
|
|
|
Цитата ValterG @ Кстати Артмани позволяет записать дамп памяти. Разве этого не достаточно? Недостаточно. Нужно написать программу. 120 машин вручную очень долго будет. |
Сообщ.
#6
,
|
|
|
Rzone Есть такая штука autoit - позволяет автоматизировать процесс кликания. Но увы только на стандартных контролах. Но попытка не пытка Для нестандартных можно написать на Дельфи и Си - по вкусу. Исходники кликалок можно найти, т.ч. это не так уж сложно.
|
Сообщ.
#7
,
|
|
|
Нет. Это примитивное решение, кликалку могу и сам написать. Если я сейчас не разберусь, буду мучиться потом. Нужно открыть процесс с правами на чтение запись памяти.
procedure ChangePrivilege(szPrivilege: PChar; fEnable: Boolean); var NewState: TTokenPrivileges; luid: TLargeInteger; hToken: THandle; ReturnLength: DWord; begin OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, hToken); LookupPrivilegeValue(nil, szPrivilege, luid); NewState.PrivilegeCount := 1; NewState.Privileges[0].Luid := luid; if (fEnable) then NewState.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED else NewState.Privileges[0].Attributes := 0; AdjustTokenPrivileges(hToken, False, NewState, SizeOf(NewState), nil, ReturnLength); CloseHandle(hToken); end; procedure TForm1.Button1Click(Sender: TObject); var pid: Cardinal; Hdl: Cardinal; ipBase: Pointer; buf: PChar; Nb:dword; val:integer; begin //получаю привилегии SeDebugPrivilege //ID процесса уже есть //процесс с правом PROCESS_TERMINATE открывается //ReadProcessMemory возвращает ноль :( ChangePrivilege('SeDebugPrivilege', True); pid := GetProcessID('re386if.exe'); Form1.Edit1.Text:=inttostr(pid); Hdl := OpenProcess(PROCESS_TERMINATE, false, pid); Form1.Edit2.Text:=inttostr(Hdl); ipBase:=ptr($001884A8); ReadProcessMemory(Hdl, ipBase, @val, 4, Nb); Form1.Edit3.Text:=inttostr(val); end; |
Сообщ.
#8
,
|
|
|
Rzone Тогда смотри отладчиком как это делает Артмани. Только обсуждение этого уже выходит за разрешенное на форуме.
|
Сообщ.
#9
,
|
|
|
В ассемблере не шарю, и учить его некогда:( Давай обсудим как открыть процесс, ничего тут такого нет, это просто винапи. Мне больше негде получить помощь, меня начальник убьет.
|
Сообщ.
#10
,
|
|
|
Rzone, если честно, похоже на то, что ты сам пробуешь оттуда стырить инфу. Вирусы так не действуют. Разве что специально написанные именно такими. Они ж просто бесполезны - стырить, у себя запомнить, а везде поубивать. Бред.
А по теме - тебе нужен соответствующий ACL-список. Сначала нужно получить таковой от процесса, изучить и понять, каков список требуется тебе, сформировать его и запустить с ним твой процесс. Тогда он сможеть сделать ReadProcessMemory(). |
Сообщ.
#11
,
|
|
|
Почитал инфу по ACL, не мой уровень, не потяну И не уверен что они помогут, это же вроде относится к сетевой безопасности, а я свою программу запускаю не через сеть, и от имени администратора.
Цитата Rzone @ Разве что специально написанные именно такими. Сетка, 120 компов, умников хватает. |
Сообщ.
#12
,
|
|
|
Цитата Rzone @ Сетка, 120 компов, умников хватает. Выход в инет запретить, USB заклеить |
Сообщ.
#13
,
|
|
|
ACL это не только права на сетевые уровни доступа.
на локальном компа (и даже из-под админа) часто нужно правильное ACL. кроме того, есть еще system которые может некоторые вещи, которые админ не может |
Сообщ.
#14
,
|
|
|
пример с readprocessmemory и writeprocessmemory был в факе и если не на этом форуме - то где-то в сети.
я решал задачу с багфиксом проги на лету - запускал процесс и заменял в памяти значение переменной потому как через HEX редактор не смог найти где оно прописано в exe и если этот процесс не является системным либо антивирусом - то все будет работать |
Сообщ.
#15
,
|
|
|
Виталь ТС не шарит ни в ассемблере, ни в администрировании. Бесполезный совет. Да и время уже ушло.Если бы он не темнил, то можно было помочь, а так БИТВА ЭКСТРАСЕНСОВ. Тырит, подчистил...
|