Атака на цитадель алчности goabruce & porosenok Хакер, номер #091, стр. 091-078-3 Без комментариев. Тут даже дураку понятно, что для чего. Обратите внимание на переменные cash и acc. В них указывается количество дерьма, находящегося в цитадели и в отряде. Прикинувшись простолюдином, я решил немного поиздеваться. Вступив в сделку с отрядом под громким названием Jacks or Better, я получил подарок в размере 1000 (вероятно кг) отборного говна. Издевательство заключалось в том, что я сначала брал их хваленое дерьмо, а потом тут же возвращал, при этом не все, а по частям. Само собой, отряд после каждой операции все сообщал на базу. Я заметил, что сумма выданного и возвращенного птичьего помета указывалась в поле deposit, в виде отрицательного или положительного числа. Подведем итог. Отряды постоянно отсылают сообщения на базу о результатах своих операций. Одной из таких операций является прием и передача птичьего помета (ну и золотых монет тоже) на базу и обратно, причем эту операцию они выполняют сколько угодно раз по первому требованию доверчивого гражданина. Сообщение передается на древнеиндийском языке, в котором содержится фраза deposit, указывающая на количество передаваемых средств. Направление передачи определяется знаком числа, то есть отрицательное число - с базы к отряду, положительное - наоборот. Ну что, картина прояснилась, осталось найти ошибку и наказать злодеев по заслугам. Атака Выходим из засады и переходим к решительным действиям. Еще, сидя в засаде и анализируя работу отрядов, я заподозрил наличие ошибки, которая достаточно часто распространена при работе с денежными средствами. И первая же проверка подтвердила мои подозрения, но не будем торопиться и рассмотрим все по порядку. Во-первых, как ты догадался, мне не составило никакого труда замаскироваться под один из мобильных отрядов врага. В ближайшей службе доставки я нанял посыльного, и от имени отряда послал запрос в цитадель на доставку птичьего помета в количестве 0,001. GET http://game.hibet.ru/games/casino.php?deposit=0.001&nocache=4036119973&sync=10026&phpsessid=1754332441 HTTP/1.1 В ответ посыльный принес мне заказанное количество вонючей субстанции и сообщение, в котором говорилось, что сумма в отряде увеличена на 0,001, а вот та, что хранится в цитадели, не изменилась!!! phpsessid=1754332441&sync=10027&valute=fun&game=9&cash=400&Player=CasinoCracker&kassa=Операция выполнена&acc=600.001&cmds=&gameid=1145191524270079&done=1 Вот оно!!! То, что мы искали!!! Теперь мы сможем наказать супостата за разорение доверчивых граждан. Все, что нам осталось для достижения цели,- это создать секретное оружие и применить его. Нашим секретным оружием будет робот-воин, который сможет сам нанимать посыльного и отправлять сообщение с требованием выдачи 0,001 помета. Не буду вдаваться в технические подробности - просто посмотри на листинг программы. Робот для работы требует два параметра: 1. Текущее значение параметра sync. 2. Имя файла, содержащего часть передаваемого http-пакета. Файл, имя которого передается во втором параметре, содержит недостающие фразы для создания предложения на древнеиндийском языке. Как ты, наверное, заметил, мой робот в качестве двигателя использует энергию открывающихся окон, но я думаю, ты без труда сможешь его переделать под упряжку резвых пингвинов. Решающий момент - запуск роботы, [Enter] — и все. Пока наш робот резвится, давай поразмыслим, где ошибся жадный властитель цитадели. А ошибся он, скорее всего, где-то между бухгалтерами, казначеями и службой обработки входящих сообщений. Вероятно, служба обработки, принимая заказ на отправку помета, передавала его сразу в казначейство и в бухгалтерию. Первые на основании требования выдавали нужное количество, а вот вторые перед оформлением операции сначала округляли запрос до сотых, а только потом проводили операцию. В результате казначеи выдавали 0,001, а бухгалтеры, при оформлении документов, округляли и получали 0,00, а потом вычитали. Вот такая математика. Теперь посмотрим на работу робота. Ты посмотри, какой молодец, за час работы увеличил наш счет до 20-ти единиц, а ведь если вкладывать не птичий помет, а золото, то можно неплохо разбогатеть. Итак, справедливость восторжествовала, враг паникует и готов сдаться. |