Sep 25, 2017, 09:12 am

News:

Ufasoft Coin 0.110 new features: SOCKS5, TOR,
bootstrap.dat DB format


ICQ Shiff DB формат данных

Started by Levon24, Dec 22, 2009, 04:55 am

previous topic - next topic
Go Down

Levon24

Dec 22, 2009, 04:55 am Last Edit: Jan 01, 1970, 01:00 am by Guest
Собственно таблица Analayzers для чего, в ней только HTTP и PROXY.
Я так полагаю, как был траффик перехвачен?
Напрямую или по прокси, ну тогда HTTP надо заменить на NAT, например...
Правильно я предполагаю?

Если взять таблицу Users, то в ней есть поле AnalyzerID, т.е. как пользователь работает?
А если у него Аська через прокси, а почта напрямую?
Непонятно.
UID, nick - это берем из аськи, понятно.
Email - тоже понятно.
Password - на что? email?
Name - Из почты дергается?

Таблица Messages - все хорошо, но только, я так понимаю для аськи, а остальное где?

PS: Хочу поучавствовать в развитии программы и получить ключик.

ufasoft

#1
Dec 22, 2009, 12:54 pm Last Edit: Jan 01, 1970, 01:00 am by Guest
>Собственно таблица Analayzers для чего,
Таблица Analyzers только для сопоставлению каждому анализатору по имени числового ID
Работает так:

когда впервый раз активизируется например анализатор ICQ он добавляет в Analyzers
ID=1, Name="ICQ"

и далее в таблицу Messages добавляет "AnalyzerID=1" для кажойго ICQ-сообщений

>Email - тоже понятно.
>Password - на что? email?
>Name - Из почты дергается?
Некоторые поля в Users не имеют смысла для конкретных анализаторов
если Password перехывчен для SMTP или POP3 он попадает в Users от имени Email-анализатора,  если при ICQ, создается другая запись в Users уже от ICQ-анализатора


PROXY- это тоже анализатор - например он перехватывает пароли "SOCKS", но обычно он передает поток анализатору более высокого уровня.

Levon24

#2
Dec 23, 2009, 07:04 am Last Edit: Jan 01, 1970, 01:00 am by Guest
Ок, логика ясна, вот только у меня база данных как достигла 500 с лишним килобайт так и не растет.
Поставленны галочки логировать все, однако не логируется как положенно.
Имеет смысл перейти на нормальную базу данных типа sqlite ?

PS: Просьба поправить в программе, чтобы она при запуске себя в памяти искала и не запускалась если есть в памяти есть. Вылетает иначе с критом.
Опять же, просьба о ключике...

Levon24

#3
Dec 25, 2009, 10:50 am Last Edit: Jan 01, 1970, 01:00 am by Guest
В таблице Users такой мусор, мама родная...
в поле uid: значения типа _unknown_, номера асек, хотемайл агентов, куча пустых записей, логины FTP...
Самое страшное, что все это вместе и AnalizerID = 0 !
Залазием в файловую структуру в XML, более не менее понятно + поле client_ip.

Предлагаю создавать таблицы icq, mirc, yahoo и т.д.
т.е. icq_users и icq_logs, mirc_users и mirc_logs, ftp_users & ftp_logs.
Это внесет ясность.
Последнее более лучший вариант ибо, уж очень специфичны все протоколы что сниферятся.

ufasoft

#4
Dec 25, 2009, 04:43 pm Last Edit: Jan 01, 1970, 01:00 am by Guest
Quote
Предлагаю создавать таблицы icq, mirc, yahoo и т.д.
т.е. icq_users и icq_logs, mirc_users и mirc_logs, ftp_users & ftp_logs.
тогда очень сложно будет составлять запросы к таблице
например: "вывести сообщения всех видов за такую-то дату".

ICQ, MSN..все являются подвидом сообщений значит должны содержать общую чатсь в единой таблице по правилам проектирования БД

Levon24

#5
Dec 28, 2009, 04:51 am Last Edit: Jan 01, 1970, 01:00 am by Guest
CREATE TABLE t1
( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(45) NOT NULL,
  PRIMARY KEY (`id`)
);

INSERT INTO t1 VALUES (1, "Мурки");
INSERT INTO t1 VALUES (2, "Мяфки");

CREATE TABLE t2
( id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  name VARCHAR(45) NOT NULL,
  PRIMARY KEY (`id`)
);

INSERT INTO t2 VALUES (1, "Мурки2");
INSERT INTO t2 VALUES (2, "Мяфки2");

Далее производим очень сложный запрос:
SELECT id, name FROM t1
UNION
SELECT id, name FROM t2

PS: Однако вы можете поступить по своему и поправить поле AnalyzerID, ибо оно не работает.

И еще один вопрос, советую убрать ADO, у вас оптимизированно на Access, там используется немного специфический синтаксис, в итоге не получается подсоеденить базу данных MySQL. Лучшее решение использовать SQLite - полноценная библиотека с транзакциями и без ограничения базы  в 2 Гб.

От себя, если будет так реализованно могу написать простенькие скрипты на РНР для запуска под легкий сервачек Xitami для доступа к базе и просмотра событий.

ufasoft

#6
Dec 28, 2009, 11:26 am Last Edit: Jan 01, 1970, 01:00 am by Guest
2 препятствия SQLITE:
1. Корпоративные пользователи предпочтут MSSQL
2. Для SQLITE нет GUI-приложения аналогичного MSAccess

Оптимальным будет написание класса-wrapper-а, обобщающего интерфейс ADO и SQLITE, чтобы в самой программе не было никаких зависимостей от DBMS-реализации

Levon24

#7
Dec 28, 2009, 11:50 am Last Edit: Jan 01, 1970, 01:00 am by Guest
1 - Для полноценного MSSQL не ограниченного в 4 Гб надо очень дорогую лицензию, ставить MSSQL экспресс - не комильфо. Лучше с MySQL подружить.
2 - Уважаемый, тут смотрели - http://www.sqlite.org/cvstrac/wiki?p=ManagementTools хоть платные, хоть бесплатные.

Quote
Оптимальным будет написание класса-wrapper-а, обобщающего интерфейс ADO и SQLITE, чтобы в самой программе не было никаких зависимостей от DBMS-реализации
Конечному пользователю все равно.
То что логи вести надо - ежику даже понятно, бывает так что через полгода всплывает факт и нужно найти откуда ноги растут.
А вот представьте себе за год сколько народ по аське напишет друг другу, а сколько инфы в поисковики забьют, сколько почтой перешлют?
У нас общая билинговая статистика за год в базе имеет размер 40 Гб на 100 сотрудников.
А такой размер что MSSQL, MySQL, SQLite - одинаково будут в задумчивости долго у упорно тупить по поиску WHERE message LIKE '%бабло слил%'

ufasoft

#8
Dec 28, 2009, 05:19 pm Last Edit: Jan 01, 1970, 01:00 am by Guest
Ошибка с AnalayzerID исправлена в исзодниках, спасибо за помощь. RegCode к программе Вам будет выслан на Email.

Quote
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools
За ссылку спасибо, это большой аргумент в пользу того чтобы по Default использовать SQLITE

Quote
1 - Для полноценного MSSQL не ограниченного в 4 Гб надо очень дорогую лицензию, ставить MSSQL экспресс - не комильфо. Лучше с MySQL подружить
Это все верно, но админов, которые просят поддержку MSSQL убедить - не наша задача.

ufasoft

#9
Dec 28, 2009, 05:25 pm Last Edit: Jan 01, 1970, 01:00 am by Guest
Quote
А такой размер что MSSQL, MySQL, SQLite - одинаково будут в задумчивости долго у упорно тупить по поиску WHERE message LIKE '%бабло слил%'
Вроде как во всех современных DBMS включая SQLITE есть FUll-text search.  
Так что поиск по подстрокам довольно быстрый.

Levon24

#10
Dec 29, 2009, 04:18 am Last Edit: Jan 01, 1970, 01:00 am by Guest
Quote
Вроде как во всех современных DBMS включая SQLITE есть FUll-text search.
Так что поиск по подстрокам довольно быстрый.
Я бы сказал относительно быстрее, но многие производители, предпочитают использовать свои реализации.

Я все таки хотел бы получить ответ на свой вопрос о решении проблеммы с AnalizerID (В полях сообщений и пользователей, везде 0), непонятках с таблицей Users (откуда куча пустых записей, как формируются остальные поля, имеет ли смысл разбить таблицы по протоколам? Объединение таблиц дело 2 секунд, я не вижу особой универсальности в таком решении).
Ограничением на Access в 2 гб и переводе базы в сторому, например, SQLite либо MySQL, т.е. не коммерческих баз данных.

ufasoft

#11
Dec 29, 2009, 06:58 am Last Edit: Jan 01, 1970, 01:00 am by Guest
Ошибка с AnalayzerID исправлена в исходниках, как я уже написал

в сторону Sqlite будем двигаться
разбивки теблицы Messages не будет

c Users решим чуть позже, там слишком запутано - трудно отождествлять обнаруженых пользователей с уже имеющимися в БД

Levon24

#12
Dec 29, 2009, 07:27 am Last Edit: Jan 01, 1970, 01:00 am by Guest
ОК, жду следующей версии...

PS: Для нормального тестирования хотелось бы ключик поиметь.

ufasoft

#13
Dec 29, 2009, 11:35 am Last Edit: Jan 01, 1970, 01:00 am by Guest
Выслали ключик на Email

Levon24

#14
Dec 29, 2009, 11:43 am Last Edit: Jan 01, 1970, 01:00 am by Guest
Quote
Выслали ключик на Email
Пасибо за подарок дедушка мороз =)

Go Up