AJAX-хаки для антиотладки

Discussion in 'PHP' started by drim, 24 Aug 2012.

  1. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    Какие есть хитрые приёмы использования аякса? Цель - затруднить анализ/эмуляцию/отладку кода, загружаемого в браузер. Например, при обычной работе у пользователя в браузере, код работает стандартным образом, но у поискового/антивирусного бота код не срабатывал/не загружался.
     
  2. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    При целенаправленном анализе кода ничего не поможет, а так можно попробовать приемы связанные с действием от пользователя: движения мыши, нажатия на кнопки и т.д.
     
  3. roflzi

    roflzi New Member

    Joined:
    16 Apr 2010
    Messages:
    42
    Likes Received:
    0
    Reputations:
    0
    то, что вам нужно называется обфускацией.
    примитивный пример: www.javascriptobfuscator.com/Default.aspx

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

    удачи
     
    #3 roflzi, 24 Aug 2012
    Last edited: 24 Aug 2012
  4. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Чисто ради интереса - каким образом обфускация и "играя с расширениями, инклудами и точками вызовов кода" может предотвратить исполнения кода в браузере? И второй вопрос - нафига собственно нужен код который не будет работать в браузере?
     
  5. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Мб следует организовать проверку на user-agent, на странице обращения ajax-скрипта?
     
  6. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    та не, ну глупо же. Я ботов ловил на некликабельную ссылку (которую человек 100% не увидит) - там ua как у браузера.

    2roflzi я знаю как это называется. Вот суть этой самой "игры" меня и интересует. Нужно, чтобы код, который исполняется в обычном браузере, не исполнился на эмуляторе. Простая обфускация в данном случае никак не спасёт - дешифратор выполнится и в среде эмуляции.
    Понимаю, что способов обойти эмулятор должен быть вагон и маленькая тележка, но хотелось бы послушать отработанные приёмы. Наример, примитивнейший - заслать куки, а потом считать (в js) и передать их обратно через GET/POST. Техника рассчитана на то, что не каждый бот куки принимает.

    Читал, что один из способов был придуман разработчиками зловредов - проверялась тактовая частота CPU. Если она меньше 1Ггц, начинка не выполнялась. У эмуляторов песочница слабенькая по ресурсам, у реального юзера - мощная машина.

    Еще есть мысль - использовать функционал html5, рассчитывая на то, что не все боты пока его поддерживают. Минусы такого способа очевидны - во1х, не все браузеры живых юзеров поддерживают этот функционал (все менее актуально), во2х - все боты скоро будут поддерживать html5 (всё более актуально).

    Интереса ради, попробуйте выдрать ссылку на скачивание фильма на сервисе ivi.ru. Не из кеша браузера поднять, а именно прямой линк на скачивание файла фильма.
     
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    drim SpiderMonkey или WebKit'овский движок подключенный к боту - режут вашу идею защиты против "эмуляторов" на корню
     
    _________________________
  8. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    я про движки в первую очередь говорю - умный бот будет сделан на базе одного из них. Но почти уверен, чего-то не будет хватать в нём, что есть в полноценном браузере.
     
  9. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Главная вещь которой в нем будет не хватать - это пользователь, значить нужно попробовать зафиксировать данный факт с помощью JS, как? Это уже зависит от твоей смекалки - можно логировать движения мыши, открыть слой на весь экран и подписаться на события его закрытия с помощью js(собственно и закрывать его с помощью js при клике) и дофига чего еще есть. Искать какие-то специфические признаки каждого браузероэмулятора не разумная трата времени.
    Там все на флеше сделано как бы.
     
  10. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Думаю намного разумней потратить время на создание очередной фичи, вот например не лицензионными копиями Windows регулярно миллионы человек, в тоже время столь коже их покупают.
     
  11. drim

    drim Member

    Joined:
    27 Aug 2009
    Messages:
    347
    Likes Received:
    33
    Reputations:
    4
    про движение мышью - гуд. эмулятор ею не будет двигать.
    насчёт слоя не понял, что имелось в виду?
     
  12. seosimf

    seosimf Member

    Joined:
    3 Mar 2011
    Messages:
    271
    Likes Received:
    44
    Reputations:
    6
    Ну а что тут не понятного:
    слой(div,span) поверх остальных, на нем размещаем несколько изображений, одно из изображений допустим животное, и пишем в слое на изображениями - "Защита от ботов, для продолжения выберите изображения с животным" и т.д., все просто. Или что-то на подобии этого http://firewall.foxy.pro/index.php?url=forum.antichat.ru
     
    #12 seosimf, 24 Aug 2012
    Last edited: 24 Aug 2012