Для тех, кого заинтересовала история взлома СБ, могу только обозначить направляющие, которые могут привести вас к положительному результату (а могут и не привести). Вообще, есть три способа укрощения СБ и ему подобных: читинг, патч и эмуляция.
Читинг - это способ "удовлетворить" СБ, не модифицируя его код. Для того чтобы СБ начислял вам деньги, вы должны просматривать веб-страницы. На техническом уровне это значит, что на первом плане у вас должен находиться Internet Explorer или Netscape Navigator (Opera почему-то не поддерживается), вы должны периодически переходить с сайта на сайт и время от времени шевелить мышкой. Переходы с сайта на сайт регистрируются путем DDE-нотификаций: можно посылать их СБ в обход настоящего браузера. Нажатия мышки регистрируются установкой глобального хука на функцию в DLL (что самой Майкрософт вообще-то не рекомендуется).
Существует 1000+1 программа "накрутки" СБ именно через читинг, но все они ловятся и выкупаются так или иначе - сразу или со временем. В частности, не вредно будет знать, что СБ может загружать "антихакерские" модули, число которых постоянно растет.
Патч - это метод взлома оригинального бинарного кода. Хочется сказать, что СБ.exe только этого и ждет, то есть весь код просто-таки нашпигован разнообразными проверками. В частности, проверяются контрольные суммы (по частям файла, а не целиком, так что "исправить" CRC не удастся) самой exe, dll, вычисляются и проверяются дайджесты и хеш-значения ресурсных строк (например, команд протокола и заголовки браузеров). К тому же, существует, по крайней мере, несколько runtime-проверок на работу под управлением (под отладкой) и дополнительно - та же возможность загружать модули для выполнения. Все это можно отключить, но я бы никогда не рискнул утверждать, что не осталось еще одной проверки.
Эмуляция - это такой случай, когда СБ.exe вообще никогда не получает управления, вместо этого работает ваша программа, выглядящая для сервера как СБ.
Естественно, что ваша программа не будет показывать банеры и не будет делать ничего "вредного", вроде уведомлений о попытке взлома. Задача рассыпается на три части: обнаружить команды интерфейса, декодировать трафик и исследовать стохастические вероятности.
Первое сделать просто - запустите какой-то прокси-сервер для порта 80, отслеживающий и записывающий трафик, настройте СБ на работу через этот прокси (благо, такая возможность предоставляется штатно) и поработайте пару часов "под СБ". Как вы скоро убедитесь, количество "штатных" команд не очень велико. Другое открытие, уже менее приятное,- трафик закодирован. Не пытайтесь использовать его повторно - в трафике стоят time stamps, и такая попытка приведет к аннулированию вашего счета.
Для кодирования в СБ используется два метода: первый - "сжимающий" алгоритм - кодирует текстовые строки в другие текстовые строки. Этот метод кодирования условно можно назвать x2. Поскольку x2 строит упорядоченные бинарные деревья, то найти его можно, поискав вызовы функции qsort.
Кроме того, в уже декодированной строке есть два комплиментарных дайджеста (aid и bid) - 11-байтных хеша, основанных на идентификаторе пользователя и текущем системном времени. (aid,bid)=function (id,time ()). Поскольку все кодировки в СБ основаны на случайных числах, которые инициализируются srand (time ()), то вызов srand () в начале функции безошибочно покажет вам, где идет кодирование или создание дайджестов. Справедливости ради отметим, что, кроме x2 кодировки и создания aid-bid дайджестов, в программе есть еще пару кодировок - в частности, для шифрования файла настроек.
Стохастический анализ пригодится вам для генерации правдоподобного трафика. Естественно, если вы будете каждую минуту зарабатывать балл, это вызовет подозрение. Чтобы получить "красивый" трафик, придется наблюдать собственную работу по категориям (например, "активная работа в браузере", "просто работал", "выключен" и т.д.), проследить плотность обмена в каждом режиме и само чередование режимов (дважды или трижды модулированная вероятность) - и тогда ваш эмулятор сможет работать в полностью автономном режиме под Linux.
Короче, как можно понять из всего сказанного выше, людям здравомыслящим принадлежит весь мир, но зато остальным - все остальное. Так что выбор есть.