Ru-Board.club
← Вернуться в раздел «Программы»

» InqSoft Sign 0f Misery / Neos0m

Автор: berkut9737
Дата сообщения: 24.02.2011 11:29
Alfizik

При беглом прочтении вашей идеи, наверное, возможно. Потребуется InqSoft Window Scanner для определения класса окон, скачать можно с сайта http://kickme.to/inqsoft
Автор: Alfizik
Дата сообщения: 24.02.2011 11:32
Пока разобрался только с пунктами 1 и 2.


Код:
RUN_CMD 'C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe' '' '' 0 ''
SLEEP 200
EMULATE_KEYPRESS $74 .
Автор: berkut9737
Дата сообщения: 24.02.2011 11:36
1. Запустить программу
2.Ожидать появления окна с указанным заголовком
3.Эмулировать нажатие клавиши
и т.д и т.п..
Автор: kosjachok
Дата сообщения: 24.02.2011 11:41
Боюсь что с антивирусом может ничего не выйти, если на его окнах стоит блокировка эмуляции нажатий клавиш, мышки (у каспера стоит 100% у НОД незнаю)
Автор: berkut9737
Дата сообщения: 24.02.2011 11:42
Alfizik, прошу прощения, вы, работаете в программе InqSoft Neo Sign 0f Misery, а я вам толкую про InqSoft Sign 0f Misery -это 2 разные вещи.

Автор: Alfizik
Дата сообщения: 24.02.2011 11:50
berkut9737


Цитата:
2.Ожидать появления окна с указанным заголовком


Ээээ, это какая команда?

Дополнительная информация, через сканер посмотрел информацию об окне антивируса, пишет, что:
Хэндл окна - 000100F4
Текст окна - ESET NOD32 Antivirus
Имя класса окна - ESET Client Frame

P.S.
А чем вариант

Цитата:

1. Вызвать GUI интерфейс антивируса NOD, путем запуска его exe-шника - C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe

2. Эмулировать нажатие клавиши F5 - вызывает окно настроек антивируса


не подходит?


Цитата:
2.Ожидать появления окна с указанным заголовком
- так надежнее?

P.P.S.
berkut9737, буду очень признателен если поможете в написании скрипта и сможете отвечать на мои детские вопросы, просто я Sign 0f Misery пользуюсь впервые в жизни и мне многое еще не понятно.
Автор: berkut9737
Дата сообщения: 24.02.2011 11:55
Alfizik , по моему, на п.3 нужно просканировать класс окна, затем перейти к этому классу, затем найти дочернее окно "Обновление" и послать комнду "нажать". Так логично.
Автор: Alfizik
Дата сообщения: 24.02.2011 11:55
kosjachok, пока получается Пункт 2 выполнился, по эмуляции нажатия клавиши F5 окно настроек открылось

berkut9737,

Цитата:
Alfizik, прошу прощения, вы, работаете в программе InqSoft Neo Sign 0f Misery, а я вам толкую про InqSoft Sign 0f Misery -это 2 разные вещи.


Мне нужно скачать и писать скрипт в InqSoft Sign 0f Misery? Neo Sign не подойдет? Если это необходимо сейчас скачаю nqSoft Sign 0f Misery.
Автор: berkut9737
Дата сообщения: 24.02.2011 12:02
Alfizik, я советую вам не торопиться, если вы привыкли работать Neo Sign. Ждите, когда подтянется вся братия.
Автор: Alfizik
Дата сообщения: 24.02.2011 12:20
berkut9737,

Цитата:
Alfizik , по моему, на п.3 нужно просканировать класс окна, затем перейти к этому классу, затем найти дочернее окно "Обновление" и послать комнду "нажать". Так логично.


Ой, кажется мы друг-друга не совсем правильно понимаем, сейчас проиллюстрирую, что к чему.

1. Вызвать GUI интерфейс антивируса NOD, путем запуска его exe-шника - C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe

Вот он:

Дополнительная информация, через сканер посмотрел информацию об этом окне, пишет, что:
Хэндл окна - 000100F4
Текст окна - ESET NOD32 Antivirus
Имя класса окна - ESET Client Frame

2. Эмулировать нажатие клавиши F5 - вызывает окно настроек антивируса

После нажатия клавиши F5 появляется такое окно



Слева на белом поле есть пункт "Обновление" надо перейти к нему, при нажатии на этот пункт появляется следующее окно:



Хэндл окна - 002D088C
Текст окна - ESET NOD32 Antivirus
Имя класса окна - #32770


Добавлено:
berkut9737,

Цитата:
я советую вам не торопиться, если вы привыкли работать Neo Sign. Ждите, когда подтянется вся братия.


Да мне все равно в принципе в чем работать в Neo Sign или просто в Sign, обе программы для меня впервые, просто так получилось что я скачал сразу Neo Sign и начал пробовать в нем ковыряться, у меня подозрение что командами он от Sign ничем не отличается.

Ну что по примерам окон и их хэндл-ам можете мне привести пример скрипта, как Вы бы реализовали алгоритм, очень надеюсь что мне это поможет.

Пока к сожалению ничего лучше чем

Код:
RUN_CMD 'C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe' '' '' 0 ''
SLEEP 200
EMULATE_KEYPRESS $74 .
Автор: kosjachok
Дата сообщения: 24.02.2011 12:40

Цитата:
Слева на белом поле есть пункт "Обновление" надо перейти к нему, при нажатии на этот пункт появляется следующее окно:

на этот пункт с помощью клавы пожно перейти??? Стрелками или комбинацией?
Автор: Alfizik
Дата сообщения: 24.02.2011 12:51
kosjachok,

Цитата:
на этот пункт с помощью клавы пожно перейти??? Стрелками или комбинацией?


Да, можно.

1-й вариант - в русской раскладке клавиатуры, нажать кнопку "о" (Обновление), при нажатии кнопки "о" сразу происходит переход в нужное окно.

2-й вариант воспользоваться кнопками "стрелка вверх" и "стрелка вниз", но этот вариант врятли подойдет, так как не факт, что по умолчанию фокус будет на самом первом пункте в списке, он может быть на любом другом (NOD запоминает последнее окно в котором работали), т.е. фокус может быть и на Исключениях и на Карантине.

Отсюда в разных случаях придется различное число раз эмулировать нажатия клавиш стрелки, чтоб в конечном итоге попасть на пункт "Обновление".
Автор: kosjachok
Дата сообщения: 24.02.2011 13:08
С раскладкой тоже не всё гладко, т.к. если применять эмуляцию комбинации для смены раскладки - не угадаешь комбинацию клавишь, и активную раскладку

Давай пробовать стрелками:

Цитата:
так как не факт, что по умолчанию фокус будет на самом первом пункте в списке, он может быть на любом другом (NOD запоминает последнее окно в котором работали), т.е. фокус может быть и на Исключениях и на Карантине.

- давай попробуем нажать Home чтобы позиция вернулась в начальное состояние
- после этого отсчитываем кол-во нажатий стрелки вниз
Автор: Alfizik
Дата сообщения: 24.02.2011 13:15
kosjachok,

Цитата:
давай попробуем нажать Home чтобы позиция вернулась в начальное состояние


Супер! Кнопка Home работает

Тогда алгоритм будет выглядеть так:

3. Эмулировать кнопку "Home"

4. 13 раз подряд эмулировать кнопку "Стрелка вниз"

5. Эмулировать нажатие клавиши "Tab" 4 раза подряд, чтобы фокус переместился на кнопку "Изменить"

Далее облом кнопка не срабатывает при нажатии на клавишу "Enter", только при нажатии клавиши "з" (Изменить...)


Добавлено:
Но до пункта 5 включительно все работает - УРА!!!

Вот мой скрипт:

Код:
RUN_CMD 'C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe' '' '' 0 ''
SLEEP 200
EMULATE_KEYPRESS $74 .
SLEEP 200
EMULATE_KEYPRESS $24 .
SLEEP 200
EMULATE_KEYPRESS $28 .
SLEEP 200
EMULATE_KEYPRESS $09 .
SLEEP 200
EMULATE_KEYPRESS $09 .
SLEEP 200
EMULATE_KEYPRESS $09 .
SLEEP 200
EMULATE_KEYPRESS $09 .
Автор: kosjachok
Дата сообщения: 24.02.2011 13:34

Цитата:
Далее облом кнопка не срабатывает при нажатии на клавишу "Enter", только при нажатии клавиши "з" (Изменить...)

Далее используй InqSoft Window Scanner
- наведи на кнопку и получи инфу о кнопке
- используй
WND_FIND 1 $ $ 'ESET NOD32 Antivirus' 4 . ; Ищем окно настроек
WND_FIND_CHILD 2 1 $ $ 'Изменить' 4 . ;Ищем кнопку
WND_CLICK 2 ;кликаем по кнопке

Добавлено:

Цитата:
И еще вопрос почему после каждой строчки команды нажатия клавиши нужно ставить точку?

Точкой обозначается окончание команды, в том случае, если данная команда предполагает ввод большего кол-ва параметров, чем введено - это называется признак завершения списка параметров команды.
т.е. можо сделать
EMULATE_KEYPRESS $12 $09 . ;Альт+Таб

Добавлено:

Цитата:
несколько напрягает, впадлу точно таким образом эмулировать нажатие на клавишу "Стрелка вниз" 13 раз подряд...

Только через цикл(метки):
STO_I 3 13 ;записываем в переменную 3 число 13
^Tab ;ставим метку
EMULATE_KEYPRESS $28 .
SUB 3 . ;уменьшаем значение переменной 3 на 1
BRANCH 3 0 $ ^Tab . ;сравниваем переменную 3 с 0 если неравно - возврат на метку
Автор: Alfizik
Дата сообщения: 24.02.2011 14:08
kosjachok, большое спасибо, что возитесь со мной, теперь многое становиться понятным

Sign 0f Misery весчь для автоматизации рутинных действий!!! Другие проги и рядом не валялись...


Цитата:
Точкой обозначается окончание команды, в том случае, если данная команда предполагает ввод большего кол-ва параметров

Теперь понятно


Цитата:
Далее используй InqSoft Window Scanner
- наведи на кнопку и получи инфу о кнопке

Навел, вот что выдало:

Хэндл окна - 005808D2
Текст окна - И&зменить...
Имя класса окна - Button

По приведеному Вами примеру, прописал вот что:

Код:
WND_FIND 1 $ $ 'Обновить настройки выбранного профиля' 4.
WND_FIND_CHILD 2 1 $ $ 'И&зменить...' 4 .
WND_CLICK 2
Автор: kosjachok
Дата сообщения: 24.02.2011 14:12

Цитата:
Кнопочка не кликается

И не удивительно
Нужно так:
WND_FIND 1 $ $ 'ESET NOD32 Antivirus' 4 .
WND_FIND_CHILD 2 1 $ $ 'зменить' 4 .
WND_CLICK 2
Автор: Alfizik
Дата сообщения: 24.02.2011 14:44
kosjachok,


Цитата:
И не удивительно


Попробовал и так как Вы порекомендовали

WND_FIND 1 $ $ 'ESET NOD32 Antivirus' 4 .
WND_FIND_CHILD 2 1 $ $ 'зменить' 4 .
WND_CLICK 2

и по свойму

WND_FIND 1 $ $ 'Обновить настройки выбранного профиля' 4.
WND_FIND_CHILD 2 1 $ $ 'зменить...' 4 .
WND_CLICK 2

ни так ни так не работает, не кликаеться кнопка

Объясню почему я использую строку 'Обновить настройки выбранного профиля', дело в том, что при наведении InqSoft Window Scanner в район где находиться кнопка "Изменить..." InqSoft Window Scanner выхватывает вот эту область, смотри рисунок (вместо InqSoft-овского курсора на скриншоте почему то отобразился обычный):


Хэндл окна - 00170954
Текст окна - Обновить настройки выбранного профиля
Имя класса окна - Button

Вопрос, а может быть лучше искать сразу окно кнопки?









Добавлено:
Попробовал еще такую конструкцию:

WND_FIND_FOCUS 1
WND_CLICK 1

При выполнении скрипта в самом конце выдается ошибка: "Error in script. Error code=1001. Offset in bytecode =1A6".
Автор: kosjachok
Дата сообщения: 24.02.2011 15:28
У меня так ищет, открывает - но через раз:
GALLOC 5 .
WND_FIND 1 $ $ 'eset' 4 .
; WND_SET_ACTIVITY 1 .
WND_FIND_CHILD 2 1 $ $ 'зменить' 4 .
WND_CLICK 2
end

- из за вот этих непонятных глюков этого не очень InqSoft мне по душе...

Цитата:
Sign 0f Misery весчь для автоматизации рутинных действий!!! Другие проги и рядом не валялись...

Ещё и как валялись ...
Рекомендую использовать аналог: Autoit на который давно уже сам перешёл.
- намного проще,
- намного разжёванней справка,
- намного больше возможностей в плане интеракции с пользователем...
- Также компилируется в исполняемый файл.
и т д и т п...
Автор: Alfizik
Дата сообщения: 24.02.2011 16:02
kosjachok, добавил к Вашей конструкции SLEEP 200 открывать стала всегда (ну во всяком случае 3 раза подряд сработало, больше не проверял).

Спасибо за конструкцию!

GALLOC 5 .
WND_FIND 1 $ $ 'eset' 4 .
WND_FIND_CHILD 2 1 $ $ 'зменить' 4 .
WND_CLICK 2

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

Конкретно не понял, что делает строчка - GALLOC 5 . В справке фраза "Выделить несколько переменных на стеке глобальных переменных" мне ни о чем не говорит, с чем это едят?

WND_FIND 1 $ $ 'eset' 4 . - в этой строке почему ищется окно со словом eset. Как угадали\определили, что нужно искать eset?

И еще что значить число - "4" в конце команд? В справке просто не нашел примеров с числом 4.

Остальное вроде понятно.
Автор: berkut9737
Дата сообщения: 24.02.2011 16:05
Alfizik, вот посмотрите, пож., может быть это вам поможет http://rghost.ru/4517065 Скрипт делал программой InqSoft Sign 0f Misery в виртуальном режиме с установкой NOD 32, поэтому, возможно, потребуется его корректировка. У меня сработало.
Автор: kosjachok
Дата сообщения: 24.02.2011 16:22

Цитата:
Конкретно не понял, что делает строчка - GALLOC 5 . В справке фраза "Выделить несколько переменных на стеке глобальных переменных" мне ни о чем не говорит, с чем это едят?

Ну, грубо говоря - для работы с переменными, их нужно обьявить (или забить ячейки памяти под них).


Цитата:
WND_FIND 1 $ $ 'eset' 4 . - в этой строке почему ищется окно со словом eset. Как угадали\определили, что нужно искать eset?

Из справки:
WND_FIND 1 2 3 4 5
(Поиск окон среди окон верхнего уровня)
1 DWORD Индекс первой переменной, в которую будет помещен список хэндлов окон, подходящих по условиям поиска
2 BINARY BLOCK Эталонная строка - имя класса окна или часть имени класса окна; интерпретация зависит от значения третьего параметра
Не выполнять поиск по имени класса
3 DWORD Способ сравнения имени класса и эталонной строки
4 BINARY BLOCK Эталонная строка - текст окна (полный или частичный), способ интерпретации зависит от значения пятого параметра
5 DWORD [more=Способ сравнения]
0 Сравнение не выполняется, результат сравнения считается положительным
1 Результат сравнения считается положительным, если строки равны, при сравнении учитывается регистр символов
2 Результат сравнения считается положительным, если строки равны, но при сравнении регистр символов игнорируется (т.е. строки "Строка1" и "сТРОКа1" считаются равными)
3 Результат сравнения считается положительным, если первая строка является подстрокой для второй строки. Регистр символов учитывается
4 Результат сравнения считается положительным, если первая строка является подстрокой для второй строки без учета регистра символов (т.е. результат стравнения строк "ОКА" и "Строка1" считается положительным)[/more] текста окна и эталонной строки ...
Полностью продублировал справку...
Автор: Alfizik
Дата сообщения: 24.02.2011 16:35
До пункта "Список серверов обновлений" я теперь дохожу, но никак не получается вписать в поле "Серверы обновлений:" текст с адресом сервера.



Сканером просканировал поле вот что получил:
Хэндл окна - 0047085E
Текст окна отсутствует там все пусто, ничего нет.
Имя класса окна - Edit

Пробовал так
WND_FIND 3 $ $ 'Edit' 4 .
WND_SET_TEXT 3 'http://123.123.123'

и так
WND_FIND_FOCUS 3
WND_SET_TEXT 3 'http://123.123.123'

не получилось, что не так делаю?



Добавлено:
berkut9737, а как\чем открыть файл MyScript_Alfizik_3.s0m ?
Автор: berkut9737
Дата сообщения: 24.02.2011 17:00
Alfizik, программой InqSoft Sign 0f Misery, сайт http://kickme.to/inqsoft , скачать http://s0m.narod.ru/s0m27p_inst.zip

Автор: Alfizik
Дата сообщения: 24.02.2011 17:03
kosjachok, я так понимаю, теперь мне нужно найти окно с классом Edit

наверное вот так WND_FIND 3 'Edit' 1 .

где насколько я понял 3 - индекс первой переменной, в которую будет помещен список хэндлов окон, подходящих по условиям поиска.

'Edit' - эталонная строка, имя класса окна

1 - результат сравнения считается положительным, если строки равны, при сравнении учитывается регистр символов

и ввести туда текст сервера WND_SET_TEXT 3 'http://123.123.123'

итого

WND_FIND 3 'Edit' 1 .
WND_SET_TEXT 3 'http://123.123.123'

но что то не фурычит

Добавлено:
berkut9737, а можете просто привести листинг вашего скрипта здесь или в виде txt файла через файлообменик?
Автор: berkut9737
Дата сообщения: 24.02.2011 17:13
Alfizik

Имя файла скрипта: MyScript_Alfizik_3.s0m


Цитата:
1    Запустить программу    C:\Program Files\ESET\ESET NOD32 Antivirus\egui.exe     N/A
2    Ожидать появления окна с указанным текстом в заголовке    ESET NOD32 Antivirus    N/A
3    Эмулировать нажатие клавиши    F5    N/A
4    Вставить задержку    1,0 сек.    N/A
5    Эмулировать нажатие клавиши    Down arrow    N/A
6    Эмулировать нажатие клавиши    Down arrow    N/A
7    Эмулировать нажатие клавиши    Down arrow    N/A
8    Эмулировать нажатие клавиши    Down arrow    N/A
9    Эмулировать нажатие клавиши    Down arrow    N/A
10    Эмулировать нажатие клавиши    Down arrow    N/A
11    Эмулировать нажатие клавиши    Down arrow    N/A
12    Эмулировать нажатие клавиши    Down arrow    N/A
13    Эмулировать нажатие клавиши    Down arrow    N/A
14    Эмулировать нажатие клавиши    Down arrow    N/A
15    Эмулировать нажатие клавиши    Down arrow    N/A
16    Эмулировать нажатие клавиши    Down arrow    N/A
17    Эмулировать нажатие клавиши    Down arrow    N/A
18    Вставить задержку    1,0 сек.    N/A
19    Найти окно по тексту в его заголовке    ESET NOD32 Antivirus    N/A
20    Найти дочернее окно по имени класса и тексту в заголовке окна    Button    И&зменить...
21    Послать окну сообщение "Нажать"    N/A    N/A
22    Найти окно по полному тексту его заголовка    Список серверов обновлений    N/A
23    Найти дочернее окно по имени класса и тексту в заголовке окна    Edit    
24    Установить новый текст окна    http://172.16.50.2:2221    N/A
25    Найти окно по полному тексту его заголовка    Список серверов обновлений    N/A
26    Найти дочернее окно по имени класса и тексту в заголовке окна    Button    &Добавить
27    Послать окну сообщение "Нажать"    N/A    N/A
28    Найти окно по полному тексту его заголовка    Список серверов обновлений    N/A
29    Найти дочернее окно по имени класса и тексту в заголовке окна    Button    &OК
30    Послать окну сообщение "Нажать"    N/A    N/A
31    Найти окно по тексту в его заголовке    ESET NOD32 Antivirus    N/A
32    Найти дочернее окно по имени класса и тексту в заголовке окна    Button    &OК
33    Послать окну сообщение "Нажать"    N/A    N/A
34    Найти окно по имени класса и тексту в заголовке окна    Eset Client Frame    ESET NOD32 Antivirus
35    Спрятать окно    N/A    N/A
36    Завершить скрипт    N/A    N/A

Автор: kosjachok
Дата сообщения: 24.02.2011 18:37
Alfizik
WND_FIND 4 $ $ 'Список серверов обновлений' 4 .
WND_FIND_CHILD 5 4 'edit' 4 .
WND_SET_TEXT 5 'http://123.123.123'
WND_FIND_CHILD 5 4 $ $ 'Добавить' 4 .
WND_CLICK 5
WND_FIND_CHILD 5 4 $ $ 'OК' 4 .
WND_CLICK 5
WND_FIND_CHILD 2 1 $ $ 'OК' 4 .
WND_FIND 1 $ $ 'eset' 4 .
WND_CLOSE 1
end

- С задержками поиграйся...
Автор: Alfizik
Дата сообщения: 25.02.2011 08:40
kosjachok, я наверное порядком уже надоел, но Ваша конструкция тоже не работает, хоть и игрался с задержками.
Банально в текстовое поле "Список серверов обновлений:" ничего не записывается, и дальше скрипт уже ничего не делает.

Возможно текст нужно вставлять через буфер обмена?

Добавлено:
Думаю проблема в самой команде WND_SET_TEXT, или она тут не подходит и вместо неё нужно применят другую, либо что не так с параметрами команды.

kosjachok, попробовал через буфер обмена вставить текст, вот такой конструкцией

WND_FIND 4 $ $ 'Список серверов обновлений' 4 .
WND_FIND_CHILD 5 4 'edit' 4 .
CLIPBOARD_SET_TEXT 'http://123.123.123' . ; Поместил текст в буфер обмена
EMULATE_KEYPRESS $11 $56 . ; Эмуляция сочетания клавиш Ctrl+V
SLEEP 200
WND_FIND_CHILD 5 4 $ $ 'Добавить' 4 .
WND_CLICK 5
WND_FIND_CHILD 5 4 $ $ 'OK' 4 .
WND_CLICK 5
WND_FIND_CHILD 2 1 $ $ 'OK' 4 .
WND_FIND 1 $ $ 'eset' 4 .
WND_CLOSE 1

Тоже не работает, ничего не вставляется, а если вручную вызвать Ctrl+V вставляется почему то строка "SLEEP 200" ))) О_о
Автор: kosjachok
Дата сообщения: 25.02.2011 09:23
Из справки:
WND_SET_TEXT (Установить новый текст окна) - Команда предназначена для изменения текста окна. Команда способна менять как заголовки окон, если речь идет об окнах верхнего уровня, так и надписи на кнопках, текстовые надписи, содержимое полей редактирования и т.п., если речь идет о дочерних окнах. В частности, эта команда может использоваться для автоматического ввода текстов и паролей во всевозможные поля редактирования.

Возможно WND_FIND 4 $ $ 'Список серверов обновлений' 4 . - не срабатвает
попробуй сделать чтобы искало по части названия например:
WND_FIND 4 $ $ 'писок' 4 .

Автор: Alfizik
Дата сообщения: 25.02.2011 09:33
Попробовал не срабатывает, там походу не все так просто, провел такой эксперимент.

При вызове окна "Список серверов обновлений" курсор по умолчанию уже мерцает в поле "Список серверов обновлений:" смотрите картинку выше.

Если сразу вручную начать нажимать на клавиши клавиатуры, там сразу печатается текст, попробовал провести тот же самое через скрипт при помощи эмуляции нажатия клавиш:

EMULATE_KEYPRESS $56 . ; Эмуляция клавиши V
SLEEP 200
EMULATE_KEYPRESS $56 . ; Эмуляция клавиши V
SLEEP 200
WND_FIND_CHILD 5 4 $ $ 'Добавить' 4 .
WND_CLICK 5
WND_FIND_CHILD 5 4 $ $ 'OK' 4 .
WND_CLICK 5
WND_FIND_CHILD 2 1 $ $ 'OK' 4 .
WND_FIND 1 $ $ 'eset' 4 .
WND_CLOSE 1

По идее должен набраться текст "VV", но ничего не набирается. Прямо какое то заколдованное поле...

Страницы: 1234567891011121314151617

Предыдущая тема: http сервер


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.