2009-09-29 2 views
1

Просто интересно, есть ли у кого-нибудь опыт работы с java (как appose to c/C++) в цифровой криминалистической среде, и если бы они могли мне посоветовать о проблемах или преимуществах, с которыми они могли столкнуться ? CheersJava как цифровая криминалистическая среда

+0

Вы имеете в виду делать экспертизу на Java-приложениях или использовать приложения Java для проведения экспертизы других данных? – leonm

+0

Привет, leonm. Я полагаю, что я действительно использую java для проведения экспертизы по другим данным. Подобно набору или набору сыщика.Я знаю, насколько это известно в C/C++/Perl, и я пытаюсь посмотреть на возможность выполнения чего-то подобного на Java и пытаюсь выяснить ограничения или преимущества ... Пример) Возьмите образ диска (возможно бит для бит), а затем проанализируйте приложение, разработанное и запрограммированное на Java. Надеюсь, что это clarifys. – Nick

+0

Основываясь на вашем пояснении, в целом вы, как правило, обладаете большей гибкостью при сходе на «голый металл» с такими языками, как C, но кто знает, кто-то может написать подобные вещи на Java. – phoebus

ответ

2

Да, вы можете сделать все это на Java, если есть что-то, что нужно сделать на C, у вас есть пакет JNI, через который вы можете вызвать «опасные» процедуры. Java предоставляет вам надежность, модель безопасности, масштабируемость - это не большая проблема ... вам не нужно справляться с 64-битной ОС или оптимизировать свой код, чтобы воспользоваться преимуществами нескольких процессоров, вы найдете это странным, но верно: ваш программное обеспечение может работать быстрее на Java, чем на C. Если вы не являетесь средним разработчиком, если вы знакомы с структурой процессора, строго понимайте машинный код и обработку с регистрами, затем забудьте свой текст, вы можете сделать это лучше в C.

+0

Спасибо что brillent – Nick

+0

u приветствую - этот звук сложный, r u найм? –

+0

Нет, принимая его как проект. Должно быть интересно, если не сказать больше. – Nick

2

Мы перемещались наш криминалистической код из C++ и Python на Java по следующим причинам:

  • Мы обеспокоены тем, как коррумпированные данные могут повлиять на наши инструменты; с Java это не проблема.
  • Отдельная Java-бинарная система будет работать на 32-битных и 64-битных системах
  • Лучшая эксплуатация потоков.

Наши первоначальные результаты весьма перспективны: bulk_extractor, перенесенный с C++ на Java, выполнялся в 3 раза быстрее! Мы были поражены. Мы считаем, что это связано с тем, что jflex производит более быстрый FSM, чем flex.

Основная проблема заключается в том, что нет надежных Java-криминалистических файловых систем с открытым исходным кодом, и нет никаких привязок JNI для SleuthKit. Одним из наших обходных решений является извлечение всех метаданных из образа диска с использованием флекса в XML-блок, а затем обработка XML в java.

Чтобы скачать эти инструменты, проверить http://afflib.org/

+0

делает sence ... cheers – Nick

+0

Мы фактически отказались от Java. – vy32

1

Работы с двоичным разборе и произвольной строкой разбором действительно труден в Java и совершенно ненужный. Отсутствие целых чисел без знака в Java также вызывает раздражение.

Мы используем python для всего, что является его тривиальным кодом (особенно по сравнению с объемностью java), struct.pack/unpack делает синтаксический анализ двоичных данных простым, встроенными структурами данных/объектами и тем фактом, что они являются библиотеки для почти все, что нужно

Я действительно не мог бы рекомендовать Java для судебно-медицинской экспертизы обработки

редактировать:

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

+0

Спасибо за комментарии. Мне интересно, почему вы не могли создать struct.pack и struct.unpack в Java ... – vy32

1

Комплект Sleuth теперь имеет привязки JNI. Они официально не выпущены, но вы можете найти их в филиале github. База данных SQLite заполняется кодом C++ с метаданными файловой системы, а затем код Java запрашивает базу данных и создает соответствующие объекты Java. JNI используется для получения содержимого файла на стороне Java. Autopsy 3 (это приложение Java NetBeans RCP) использует привязки.

Смежные вопросы