На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила!
Пожалуйста, подумайте два! раза перед тем как нажать кнопку Отправить.
Убедительная просьба пользоваться поиском и ИНСТРУКЦИЕЙ, и только потом спрашивать!


  • Публикация вирусов/эксплоитов в бинарном виде запрещена!
  • Запрещается размещать прямые ссылки на зараженные сайты! (если хочется предупредить, то исправляйте HTTP://... на ХТТП://...)
  • Категорически запрещается поиск кряков/варезов/серийников, а также размещение ссылок на серийники/ключи/кряки и т.п.
  • Запрещается использование оскорбительных выражений в адрес участников коференции, в том числе и в личной переписке.


Модераторы: Rust
  
> Как обойти мьютексы?
    Вирус в сетке стырил и подчистил очень нужную инфу, попробовал распотрошить вручную - инфу удалось вернуть при помощи WinApi ReadMemory. Использовал программу ArtMoney - единственная программа которая смогла открыть процесс вируса и прочесть память. Вирус блокирует почти весь набор WinApi, процесс вируса скрыт, деструктурезуется при попытке дизассемблирования. Не очень разбираюсь как он блокирует винапи то-ли хуки ставит, но скорее всего мьютексы. Нужно написать прогу для лечения, но незнаю как обойти мьютекс - немогу открыть процесс, найти хэндл окна, итд. Как обойти мьютекс?
      Цитата Rzone @
      инфу удалось вернуть при помощи WinApi ReadMemory


      Цитата Rzone @
      ArtMoney - единственная программа которая смогла открыть процесс вируса и прочесть память


      Цитата Rzone @
      Вирус блокирует почти весь набор WinApi, процесс вируса скрыт, деструктурезуется при попытке дизассемблирования.


      Цитата Rzone @
      но скорее всего мьютексы

      Фантазия у тебя богатая. ReadMemory работает, а ты говоришь заблокировано. АртМани видит, т.к. закрыть все способы получения списка процессов нельзя - вот и "прокололась" защита. Никто наверняка не деструктуризируется просто защита, возможно вм - виртуальная машина.
      Про мьютексы вообще невообразимо - они не блокируют доступ, а отправляют процесс/поток в режим ожидания. Хуки - 99%
      ------------------------------------------------
      Теперь про лечение. Вы не лечите, а пытаетесь выяснить механизм работы вируса. А лечат всегда одинаково : ищем механизм запуска и файл. Удаляем файл(обычно загрузившись с ЛивСиДи, т.к. нормальные вирусы блокируют свое удаление)и чистим "грязь" - правим реестр, заменяем зараженные компоненты системы и т.п.
        Цитата esperanto @
        Теперь про лечение. Вы не лечите, а пытаетесь выяснить механизм работы вируса.


        Я пытаюсь вернуть украденую информацию, как лечить я знаю.

        Цитата esperanto @
        Про мьютексы вообще невообразимо - они не блокируют доступ, а отправляют процесс/поток в режим ожидания. Хуки - 99%


        Спасибо за разьяснение. Видимо действительно хуки. Я брал ID процесса из артмани и пробовал открыть процесс OpenProcess(PROCESS_ALL_ACCESS, false, ID), итог: вирус зависает,
        OpenProcess возвращает ноль. Помогите открыть процесс, благодарю всех ответивших.

        Добавлено:

        ID процесса удалось программно получить самому, вирус после OpenProcess не зависает, но OpenProcess всеравно возвращает ноль:(

        Добавлено:

        Удалось открыть процесс с параметром PROCESS_QUERY_INFORMATION, с параметром PROCESS_ALL_ACCESS процесс не открывается. Нужно открыть процесс с правами на Read/WriteMemory.
        Сообщение отредактировано: Rzone -
          Цитата Rzone @
          Я пытаюсь вернуть украденую информацию, как лечить я знаю.

          Тогда разъясни про украденную инфу. Почему ты считаешь, что она в памяти вируса? Кстати Артмани позволяет записать дамп памяти. Разве этого не достаточно?
            Цитата ValterG @
            Кстати Артмани позволяет записать дамп памяти. Разве этого не достаточно?

            Недостаточно. Нужно написать программу. 120 машин вручную очень долго будет.
              Rzone Есть такая штука autoit - позволяет автоматизировать процесс кликания. Но увы только на стандартных контролах. Но попытка не пытка ;) Для нестандартных можно написать на Дельфи и Си - по вкусу. Исходники кликалок можно найти, т.ч. это не так уж сложно.
                Нет. Это примитивное решение, кликалку могу и сам написать. Если я сейчас не разберусь, буду мучиться потом. Нужно открыть процесс с правами на чтение запись памяти.

                ExpandedWrap disabled
                  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;
                Сообщение отредактировано: Rzone -
                  Rzone Тогда смотри отладчиком как это делает Артмани. Только обсуждение этого уже выходит за разрешенное на форуме.
                    В ассемблере не шарю, и учить его некогда:( Давай обсудим как открыть процесс, ничего тут такого нет, это просто винапи. Мне больше негде получить помощь, меня начальник убьет.
                    Сообщение отредактировано: Rzone -
                      Rzone, если честно, похоже на то, что ты сам пробуешь оттуда стырить инфу. Вирусы так не действуют. Разве что специально написанные именно такими. Они ж просто бесполезны - стырить, у себя запомнить, а везде поубивать. Бред.
                      А по теме - тебе нужен соответствующий ACL-список. Сначала нужно получить таковой от процесса, изучить и понять, каков список требуется тебе, сформировать его и запустить с ним твой процесс. Тогда он сможеть сделать ReadProcessMemory().
                        Почитал инфу по ACL, не мой уровень, не потяну :D И не уверен что они помогут, это же вроде относится к сетевой безопасности, а я свою программу запускаю не через сеть, и от имени администратора.

                        Цитата Rzone @
                        Разве что специально написанные именно такими.

                        Сетка, 120 компов, умников хватает.
                        Сообщение отредактировано: Rzone -
                          Цитата Rzone @
                          Сетка, 120 компов, умников хватает.

                          Выход в инет запретить, USB заклеить :)
                            ACL это не только права на сетевые уровни доступа.
                            на локальном компа (и даже из-под админа) часто нужно правильное ACL.
                            кроме того, есть еще system которые может некоторые вещи, которые админ не может
                              пример с readprocessmemory и writeprocessmemory был в факе и если не на этом форуме - то где-то в сети.
                              я решал задачу с багфиксом проги на лету - запускал процесс и заменял в памяти значение переменной потому как через HEX редактор не смог найти где оно прописано в exe
                              и если этот процесс не является системным либо антивирусом - то все будет работать
                                Виталь ТС не шарит ни в ассемблере, ни в администрировании. Бесполезный совет. Да и время уже ушло.Если бы он не темнил, то можно было помочь, а так БИТВА ЭКСТРАСЕНСОВ. Тырит, подчистил... :lool:
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0363 ]   [ 15 queries used ]   [ Generated: 3.05.24, 08:48 GMT ]