Как читать сегмент памяти программы...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Как читать сегмент памяти программы...

Сообщение Memfivosfey » 09.01.2007 (Вт) 12:01

Всем привет :)

У меня есть такая вот задачка. У меня есть массив, со списком процессов в памяти, мне необходимо узнать начало и конец сегмента определённого процесса и читая этот сегмент на прямую, сравнивать с определённым значением. В случае совпадения, убивать процесс.

подскажите плиз :) заранее благодарен.
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 09.01.2007 (Вт) 12:10

Что считается сегментом?

ВАП процесса занимает все 2Гб.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 09.01.2007 (Вт) 12:18

ArtMoney ему надо повторить...
Пусть введёт это слово в поиск, и будет ему счастье...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 09.01.2007 (Вт) 12:19

Хорошо, может тогда лучше я объясню свою задачу.

Просто есть программа, которая может менять своё название, на любое другое. Мне не обходимо её отлавливать в памяти и убивать. Я думал, читать память каждого процесса и находить схожие данные, с данными в памяти этой программы, и таким образом её находить.

Может посоветуете другие варианты?
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 09.01.2007 (Вт) 23:12

Можно вопрос? это вирус или антивирус? Может все же искать программу по другим идентификаторам, чем память сканировать? Где программа лежит (может лежать) ехе-шники смотреть? Ведь как она имя то меняет? файл то остается ? она что сама себя переименовывает? Может через filemon ловить ее? Имя новое у нее рандомное? или по списку меняется - скажем 10-20 названий? А вообще интересная задачка...
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 09.01.2007 (Вт) 23:47

Это БОТ в линейке, меня человек попросил написать на клиент программку АНТИБОТ, но предусмотреть вариант изменения имени, папки и т.п.
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 10.01.2007 (Ср) 16:12

Неужели в VB6 низя такого сотворить?

Может кто-то тогда подскажет, как можно выяснить, сколько подключений усановленно на крмпьютере по данному адресу на данный порт и если возможно, то сколькими приложениями, как можно опредилить эти приложения их ПАПКИ "проживания".
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.01.2007 (Ср) 16:22

Memfivosfey
Почти наверняка класс окна не изменяется. Так что EnumWindows, потом GetWindowProcessThreadId и прибивать процесс. Класс окна можно глянуть через Spy из состава студии.
Изображение

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 10.01.2007 (Ср) 16:36

keks-n писал(а):Memfivosfey
Почти наверняка класс окна не изменяется. Так что EnumWindows, потом GetWindowProcessThreadId .


Если не затруднит, по подробнее, что значит класс, не могут ли быть другие окна, других программ с таким же классом???
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.01.2007 (Ср) 16:43

Обычно у окна есть некий класс, определённый, до его создания. Класс несёт некоторые атрибуты окна. Несколько окон могут иметь один и тот же класс. Придумано это было довольно давно, для экономии памяти. У многих программ класс окна совпадает с названием программы, например у блокнота это Notepad. Однако, если программа написана на VB, то класс окна будет в любом случае ThunderRT6FormDC. Короче, стартани SpyXX(или скачай WndViewer из проектов) и глянь класс окна этого бота.
Изображение

Memfivosfey
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 212
Зарегистрирован: 17.02.2005 (Чт) 14:55

Сообщение Memfivosfey » 10.01.2007 (Ср) 17:15

keks-n писал(а):Обычно у окна есть некий класс, определённый, до его создания. Класс несёт некоторые атрибуты окна. Несколько окон могут иметь один и тот же класс. Придумано это было довольно давно, для экономии памяти. У многих программ класс окна совпадает с названием программы, например у блокнота это Notepad. Однако, если программа написана на VB, то класс окна будет в любом случае ThunderRT6FormDC. Короче, стартани SpyXX(или скачай WndViewer из проектов) и глянь класс окна этого бота.


оки, пасиба Огромное, буду пробовать.


А что касается моего второго вопроса, как можно узнать каки приложения стучат на Определённый IP по определённому Порту и сколько этих приложений?
В программировании нет не решаемых проблемм, есть проблеммы на которые
мы не можем найти решение...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 10.01.2007 (Ср) 17:22

Глобальный перехват Api-ФУНКЦИИ ответственной за соединение.
Изображение

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 10.01.2007 (Ср) 20:14

Для выяснения класса окна можно воспользоваться моим WndViewer-ом (лежит в проектах).

Дальше - прога, которая меняет свое название делает это в Ring0 (я это реализовал в версии 1.06 все того же WndViewer-а). Значит скорее всего есть драйвер. Чтоб прога общалась с драйвером ей необходим его хэндл. Тип хэндла - файл. Решение проблемы - перечисляем все хэндлы в системе, находим нужный и узнаем PID процесса-владельца. Убиваем процесс.

Все вышеперечисленное описывается в моих статьях про описатели(хэндлы). Статьи лежат на VBStreets.
А я все практикую лечение травами...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 11.01.2007 (Чт) 13:03

Twister
Не мудри. Насколько я понял, имелось ввиду переименования exe пользователем.
Изображение

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 11.01.2007 (Чт) 13:15

А что касается моего второго вопроса, как можно узнать каки приложения стучат на Определённый IP по определённому Порту и сколько этих приложений?
Я однажды выкладывал фаерволл на vb, он это умеет. ZoneProtect называется.
Лучший способ понять что-то самому — объяснить это другому.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 11.01.2007 (Чт) 17:26

keks-n
Автор топика писал(а):Просто есть программа, которая может менять своё название, на любое другое. Мне не обходимо её отлавливать в памяти и убивать.
Я понял именно так, как понял. Хотя гадать, что имел ввиду автор желания нет...
А я все практикую лечение травами...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 11.01.2007 (Чт) 18:20

Автор писал(а):Это БОТ в линейке, меня человек попросил написать на клиент программку АНТИБОТ, но предусмотреть вариант изменения имени, папки и т.п.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: YaCy [Bot] и гости: 108

    TopList