Pull to refresh
11
0
Send message
Тогда уже и рандомные перемещения курсора и паузы между кликами.
Ну и по поводу «всей ночи» — Вы сильно недооцениваете школьников или корейских игроков)
В свое время делал очень странного бота для Rift.
У рыбалки там несколько стадий. На тот момент был готовый бот, который использовал лог-файл игры для определения этих стадий, но, насколько помню, самая важная стадия(поклевка) в логе не отображалась и бот использовал какое-то решение, которое по какой-то причине меня не устроило(а может, просто захотелось написать свой собственный, не помню).
В итоге получилось забавно — я в силу своих скромных способностей в реверсе приложений умудрился найти только функцию, отвечающую за воспроизведение звуковых файлов. В итоге перехватывал эту функцию и, в случае воспроизведения соотв. поклевке файла, производил необходимые действия.
В итоге получилось что-то средней монструозности, но, на удивление, более-менее эффективное: за относительно короткий срок вкачал рыбалку на максималку и еще какое-то время неплохо зарабатывал на рыбе.

Но вообще лучший бот, который я когда-либо использовал — https://www.solarstrike.net/ для Runes of Magic. Логика на xml+lua шикарна, бот предоставляет базовый набор функций+куча функционала и готовых waypoint'ов от других пользователей + никто не мешает писать свою логику. Чего там только народ не ваял)
Шикарно смотрится подсвеченная кнопка в контексте.
Интересно, насколько вероятен вариант, в котором менеджеры Денуво придумали хитрый антипиар, после чего всем офисом сидели и сочиняли смешные матерные письма в духе «Послания казаков турецкому султану»?
Там шутка в несоблюдении принципf KISS и критике попыток вколачивания микроскопом гвоздей(достаточно посмотреть ответ Definitely use jQuery, пример вкусного тонкого троллинга).
Видимо это гибрид крота и пони — слепой, слабый, полон рюшечек и работает только когда его никто не видит.
Хорошая статья, спасибо.
А еще тор вполне неплохо контролируется программно+есть готовые решения для http/s трафика поверх тора(по крайней мере, для шарпа и ноды делал такие штуки).

Еще есть небольшой фокус: сам тор поддерживает смену IP без перезапуска(под виндой управление осуществляется через телнет, на остальных ОС — не в курсе), но, если не ошибаюсь, есть ограничение в 15 секунд между сменой. Обходится простым перезапуском.
— Круто, т.е. ты хочешь сказать, что я не должен ничего дополнительного устанавливать?

Ну да, не считая npm, кучи зависимостей для указанного модуля и, соответственно, нехилого количества кода, в котором может быть что угодно.
Npm мне друг, но истина — дороже (С)
У вас есть Javascript. Принцессу спасти невозможно, так как строитель замка — воинствующий эстет, использующий замыкания.

У вас есть Javascript. Вы подготавливаете коня, доспехи, оружие, дракона, замок и принцессу. Одновременно(асинхронность). Путаетесь в callback'ах и уезжаете в пасть дракону верхом на принцессе, оставив меч с доспехами в замке, который потерялся где-то по пути. Дракон умирает со смеху, принцесса уже у вас — и плевать, каким образом была достигнута цель.

У вас есть C#. А вы прикольный.

У вас есть brainfuck. Что, серьезно?

У вас есть node.js. Вы мастерски справляетесь со всеми препятствиями, отдаете замок на перестройку Равшану с Джамшутом, спаиваете дракона и становитесь лучшими друзьями, практически поднимаетесь в башню к принцессе...Error: This socket is closed. Shit.

У вас есть lua. В зависимости от того, как сложились звезды, вам либо придется построить замок, родить принцессу, вырастить ее, похитить, запереть в замке и освободить, либо проорать нечто маловразумительное, после чего принцесса окажется прямо на вашем коне(впрочем, никто не исключает, что после этого вашим конем окажетесь вы, а принцессой — замок).
Как говорил поручик Ржевский в анекдоте — «случаи разные бывают».
Собственно, обычно bug-bounty не в последнюю очередь выплачивается «за молчание», а точнее, за то время, которое понадобится разработчикам на исправление ошибки, что бы в это время ей никто не успел воспользоваться.

Представьте себе ситуацию: в банке находят уязвимость, позволяющую украсть неограниченную сумму, причем так, что отследить затруднительно или невозможно. На фикс бага уйдет, скажем, неделя.
Теперь посмотрим, как может поступить «белый шляп»(только 2 варианта, для сравнения):

1. Зарепортить баг по программе баунти
а) Банк боится репутационных потерь и тем или иным способом стимулирует разработчика не раскрывать эту информацию публично даже после фикса. Человек получает деньги, но не получает минутки славы. Что ж, тоже неплохо.
б) Банк адекватен, потому платит за сам баг, исправляет его, после чего сам выкладывает описание проблемы и имя человека, эту самую проблему решившего. Человек может запостить описание ошибки, бла-бла-бла.
Идеальный расклад — и рыбку съел, и на хабре отписался. Банк же получил исправленную ошибку и сэкономил много-много зеленых енотов, еще и показал свою честность, бла-бла-бла.
2. «Серый шляп» пишет в твиттере, хабре, сайте производителя и в спортлото про ошибку и выкладывает скрипт для эксплуатации бага. За неделю хомячки всего мира запускают этот скрипт, тырят мильйоны долярив, после чего банк накрывается медным тазом. «Шляпник» негодует, что ему ничего не выплатили. Sad, but true.

Вот Вам и причина, почему не стоит платить за подобные действия.

Конечно. Но для срабатывания брейкпоинта метод должен быть вызван тем или иным способом. К примеру:

function test(){
  var innerFunction=function(){
     console.log("You can't call me outside");
  };

  this.outer=function(){
     console.log("You can call me, but for what?");
  };
  
  setTimeout(innerFunction, 1000);
}


Сферический пример в вакууме.
innerFunction вызовется 1 раз и нанай. А если для отладки нужно ее запустить раз 5. к примеру? Ну или не отладки. а каких-нибудь личных хитровымудренных нужд(к примеру. для автоматизации каких-либо процессов на сайте при помощи userscri[t'ов).
На замыканиях — это вообще классика.
Кстати, иногда неплохо затрудняет отладку какого-нибудь обфусцированного кода, когда, к примеру, нужно вызвать напрямую какой-нибудь «приватный» метод.
Спасибо большое за перевод, весьма интересно.
Небольшой хинт — spread еще весьма удобно использовать для фокусов в стиле пуша массива в массив:

var a=[1,2,3];
var b=[4,5];
a.push(...b); //a==[1,2,3,4,5];
Так и есть)
Что до возврата всего подряд — если внимательно просмотреть листинг функции, то станет понятно, что она проходится по всем елдам внутри generatorFactory, вываливая exception в случае, если в Promise сработает reject.
Как эта хреновина работает — можно посмотреть здесь — https://davidwalsh.name/async-generators либо тут(похоже именно здесь эту функцию я и брал) — http://bhashitparikh.com/2014/06/04/better-jquery-ajax-with-es6-generators.html.
Это вообще самопальная функция-переделка в 14 строк из какой-то функции, спертой вообще неведомо где и приспособленная для своих нужд. Назначение — эмуляция async/await, дабы на каждый проект за собой babel или зависимости не таскать.
То, что есть готовые модули типа того же co или async — это круто, но иногда достаточно и самопальных функций.

var _asyncCatch=function(generatorFactory){
    var generator = generatorFactory.apply(this, arguments);
    var handleResult = function(result) {
        if(result.done) return result.value;
        if(result.value.then)
            return result.value.then(function(nextResult) {
                    return handleResult(generator.next(nextResult));
                }, function(error) {
                    generator.throw(error);
                }
            );
    };
    return handleResult(generator.next());
}
Свои костыли писать полезно иногда. А за совет — спасибо.
И, если не секрет — в чем стремность _asyncCatch'а заключается, кроме названия функции? Работает он приблизительно так же, как async/await из ES7:

async function testAsync() {
  try {
    let html = await request.getPromise2('get', {
            url: url,
            encoding: 'UTF-8',
            gzip: true
        }, 3, 2, true);
  } catch (err) {
    console.log(err);
  }
}


Вот getPromise2 стремен, тут не поспоришь.

Information

Rating
Does not participate
Registered
Activity