|
Баг с переполнением 2^64, можно ли доработать? - Баги и читы Lineage 2 - Уязвимости, баги и читы для Lineage 2 в этом разделе |
16.04.2013, 00:36
|
#1
|
|
|
|
Разведчик
|
Регистрация: 01.04.2013
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Баг с переполнением 2^64, можно ли доработать?
Друзья, не судите строго, пока это не баг, по крайней мере на моем сервере сработать не получилось. Но может у кого будет работать, или кто-то поможет его довести до ума, у меня мысли закончились.
Все наверно читали про баг с переполнением, когда сумма денег переваливала за 2 в 32 степени - отсчет шел по новой. Не знаю с каких хроник, но это пофиксили. В результате несложных изысканий я определил, что сейчас это число - 2^64 степени (в цифрах 18.446.744.073.709.551.615), ну по крайней мере на сервере где я играю (ява HighFive).
Итак, я подошел к продавцу НПС гросери и начал покупать самое дорогое, что у нас есть на сервере - scroll of recovery S gr по 100.000 аден за штуку. Максимум, сколько можно за раз кинуть - 99.999.999.999 штук. Поставил автокликер, минут 30 он пахал и вот заветное число 2^64 степени перевалило и....... отсчет общей суммы аденок, необходимых на покупку, пошел с 0! Я остановил автокликера, подогнал вручную так, чтобы сумма, которую я должен заплатить, была чуть меньше того, что у меня есть наличных, при этом число вещей к покупке было громадным (что-то около 184.467.440.737.095 штук (за это продавец просил всего условно 200.000 аден). Нажал купить - и меня кикнуло с сервера
Очевидно, стоит фикс какой-то? Думаю, идет проверка числа предметов для покупки, и при таком громадном числе купить не дает (может кто знает так это или нет?)
Да, кстати, интересно, что после того, как сумма аден переваливает за половину от того огромного числа 18...... - перед суммой аден появляется знак минут, например -(это минус) 9.000.000.000.000.000.000 аден, и по мере дальнейшего добавления вещей эта минусовая сумма стремится к 0.
Пытался купить и с минусовой суммой, тоже кикает.
Есть мысль, что если бы как-то довести число предметов на покупку до меньшего количества, то может и сработало бы. Но это можно сделать только (по крайней мере как с понимаю), если покупать не один тип предмета, а много разных, чтобы число каждого предмета было более реальным, но за счет того, что предметов много, общая сумма перевалит заветные 2^64 степени. Только вот как, все остальные предметы в лавке торговца еще более дешевые, и мне кажется, ими не набрать нужную сумму 2^64.
Либо же нужны намного более дорогие предметы, чтобы их число было не таким большим, а сумма при этом перевалила за 2^64. Но что-то не могу найти ничего более дорого (речь идет, конечно, о стопковых предметах.
Если есть умные люди - подумайте, может что получится.
|
|
|
28.04.2013, 22:13
|
#2
|
|
|
|
Разведчик
|
Регистрация: 10.06.2012
Сообщений: 23
Популярность: 168
Сказал(а) спасибо: 2
Поблагодарили 8 раз(а) в 8 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
ты писал что максимально число которое можно купить за раз это 99.999.999.999, тут же ты пишешь что общее число которое ты натаскал было 184.467.440.737.095, и как ты рассчитал что максимальное число адены на новых хрониках это 18.446.744.073.709.551.615 или 2^64 степени?
|
|
|
28.04.2013, 22:43
|
#3
|
|
|
|
Разведчик
|
Регистрация: 01.04.2013
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
|
|
|
29.04.2013, 16:40
|
#4
|
|
|
|
Разведчик
|
Регистрация: 10.06.2012
Сообщений: 23
Популярность: 168
Сказал(а) спасибо: 2
Поблагодарили 8 раз(а) в 8 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
ну тогда мне не понятно как ты пол часа покулал scroll of recovery S gr автокликером, если они стопковые.. далее не знаю про какие ты хроники говоришь на ит это число (максимальное кол-во денег в рюкзаке) 2^31 а не 2^32 как ты писал, да и + к этому меньше на единицу то есть 2147483647 как и 2^16 это 65536 а в л2 это число 65535(максимальная заточка) опять же на единицу меньше
|
|
|
29.04.2013, 17:36
|
#5
|
|
|
|
Разведчик
|
Регистрация: 01.04.2013
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
Записал макрос на работу автокликера. Понятно, что автокликер, так сказать, с расширенным функционалом, т.е. им можно и цифры вводить с клавиатуры (хотя можно и кликами в окне выбора числа вещей, но с клавы быстрее).
Про хроники я упоминал в первом посте, это HighFive. Про более ранние хроники, насколько мне известно, это все же 2^32 степени -1 (про минус 1 ты прав). После 2^31 степени -1 (2.147.483.647) отсчет должен перейти в отрицательное значение (вот поэтому, очевидно, это и было ограничением на максимальное число денег в рюкзаке) и затем стремиться к 0, а после 2^32 уже выйти из отрицательных значений, перевалить за 0 и снова начать свой положительный путь до 2.147.483.647, затем опять полоса отрицательных значений и снова 0 и по кругу).
Почитайте про целочисленные типы в языке ява, все станет ясно (я не программист, могу коряво объяснить).
---------
Значения целочисленных типов - целые числа в следующих диапазонах:
Для byte, от -128 до 127, включительно
Для short, от -32768 до 32767, включительно
Для int, от -2147483648 до 2147483647, включительно
Для long, от -9223372036854775808 до 9223372036854775807, включительно
Для char, от '\u0000' до '\uffff включительно, т.е. от 0 до 65535
----------
для чисел типа byte модуль диапазона будет равен 256, для short – 65536, для int – 4294967296 и для long – 18446744073709551616
----------
Последний раз редактировалось 098qaz; 29.04.2013 в 17:59.
|
|
|
29.04.2013, 18:58
|
#6
|
|
|
|
Пехотинец
|
Регистрация: 20.05.2010
Сообщений: 57
Популярность: -27
Сказал(а) спасибо: 20
Поблагодарили 29 раз(а) в 13 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
Это всё визуальный обман линейки, всё равно что пытаться артмани себе адены дать, вызуально есть а реально нет, и не путайте визуальность и реальность.
________________
Если помог - Поставь спасибо!
|
|
|
29.04.2013, 19:10
|
#7
|
|
|
|
Разведчик
|
Регистрация: 01.04.2013
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
|
Цитата: |
|
|
|
|
|
|
|
|
|
Это всё визуальный обман линейки, всё равно что пытаться артмани себе адены дать, вызуально есть а реально нет, и не путайте визуальность и реальность.
|
|
|
|
|
|
При чем тут визуальный обман и рисование? Этот баг был и работал, погуглите "lineage 2 баг с переполнением 2^32".
Вот например его подробное описание (автор - не я):
Показать Переполнение
Чуть-чуть теории.
Целое число (uint32), занимает 4 байта или 32 бита. Это значит, что в двоичном представлении, мы можем закодировать аж 2^32 (в 32 степени) значений, включая ноль.
Но ноль нам не нужен. Поэтому 2^32 - 1 = 4 294 967 295. Ровно такое число мы можем впихнуть в 4 байта.
Что будет если мы впихнем 4 294 967 295 + 1 в 4 байта? Во первых нам нужен будет 33-ий бит, но раз его нету, то мы получим 0. Это и есть переполнение.
Ближе к делу!
Всем известен предел количества аденок, который можно накопить на чаре, после которого цифра становиться отрицательной. Посмотрим в чем тут дело.
Итак сновово наши 4 байта или 32 бита int32 значения. Как нам указывать отрицательное число? Для этого будет использовать 32 бит, указывая 0 значит положительное, 1 значит отрицательное число.
У нас остается 31 бит, а это значит мы можем закодировать аж 2^31 значений, включая ноль. Без нуля, мы сможем впихнуть туда 2^31 - 1 = 2 147 483 647.
Мы запомним два числа 4 294 967 295 и 2 147 483 647.
Баги, баги.
Чтобы заработать аденки, нам нужно что-то продать. При этом продать нечто, что мы купили за бесценок.
Берм в руки переполнение и идем к трейдеру, покупать резуректы. Свиток стоит 2 500 аден, а продать его мы можем по 1 000 аден.
Поделим 4 294 967 295 на 2500 и получим 1 717 986,9180. Округляем вниз и добавляем еденичку - 1 717 987.
Момент истины! Умножаем 1 717 987 на 2 500, отнимаем 4 294 967 295 и получаем 205! Да, да! 205 аден сдерут с вас за покупку 1 717 987 свитков.
Если продать эти свитки по 1000, то мы получим 1 717 987 000 аден (помним про 2 147 483 647).
Удачи, дорогие друзья!
Моменты с учетом веса, я думаю, вы сможете легко обойти.
Еще посоветую, пользоваться трешем, а не выкидывать на землю. Эффективнее.
|
|
|
30.04.2013, 00:47
|
#8
|
|
|
|
Пехотинец
|
Регистрация: 08.03.2011
Сообщений: 93
Популярность: 17091
Сказал(а) спасибо: 52
Поблагодарили 536 раз(а) в 215 сообщениях
|
Re: Баг с переполнением 2^64, можно ли доработать?
Всё новое хорошо забытое старое,подумаю на досуге что можно придумать.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 05:14.
|
|