Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

[Hint] Разбор алгоритма заточки.

-

Rising Force Online

- Уязвимости, баги, читы и статьи по RF Online.

Закрытая тема
 
Опции темы
Старый 01.05.2008, 05:39   #1
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
Thumbs up [Hint] Разбор алгоритма заточки.

Каюсь, копи паст [Ссылки могут видеть только зарегистрированные пользователи. ] Выражаю свою благодарность ↨StiM↨у за предоставленный материал.

------------------------------------------------------------------------

Итак, благодаря одному из участников форума(а конкретнее Airsimer, за что ему большое спасибо) мне в руки попались исходники сервера RF Online Giga3. Скажу сразу - версия старая, серверов на ее основе сейчас практически нет и современная ситуация может сильно отличаться от описанной. Тем более, исходники неполные и в рабочий сервер скомпилировать их мне не удалось.

Но зато появилась возможность посмотреть и выяснить давно мучавший меня вопрос, а именно - алгоритм работы Великого Корейского Рандома, вокруг которого ходило много мифов и легенд и сломано немало копий в спорах. И хотя версия устарела, не думаю, что принцип работы Giga3 будет сильно отличаться от современных версий.

Хочу сразу разочаровать любителей рецептов типа "убить флема в новолуние, забрать лут и выкинуть перед Героем помахав рукой - 100% точка!" - таких алгоритмов в исходниках мне обнаружить не удалось. Конечно, тут могут возразить - "а как же точатся на +7, я сам видел!". Точатся. Но не обычным способом, а с помощью одного финта, о котором я расскажу ниже.

Итак, главный вывод, который я вынес из просмотра исходников - Корейский Рандом существует!
Именно так - основная функция, с помощью которой оценивается успешная заточка и последствия неуспешной - стандартная функция С rand(). Вообще по стандарту эта функция возвращает случайное число типа float в промежутке от 0 до 1. Единственное, что влияет на ее значение - так называемое начальное значение, задаваемое функцией srand(). Так вот, начальное значение этой функции является текущее время, вернее, его преобразованное числовое значение

Код:
srand((unsigned)time(NULL));
Но это знание ничего нам не дает, кроме того, что рецепты типа "точись в полночь!" не так уж и необоснованы.

Идем дальше.

За заточку предмета отвечает функция pc_UpgradeItem, находящаяся в файле player.cpp. Рассмотрим ее подробнее.

С самого начала идут многочисленные проверки на соответствие предметов, слотов, таликов, камней и прочей. Кстати, все несоотвествия логируются по умолчанию, так что пакетчики - будьте осторожны!

Дальше начинается самое интересное.

1. Устанавливается рейт на основании использованных камней. Рейты каждого камня берутся из базы и суммируются. Рейт без камня - 0,125.

Код:
for(int i = 0; i < upgrade_jewel_num; i++) 
{ 
if(!pJewelFld[i]) 
    fRate += 0.125; 
else 
    fRate += pJewelFld[i]; 
}
2. Далее вычисляется рейт вещи в зависимости от ее уровня

Код:
BYTE GetItemUpgedLv(DWORD dwLvBit) 
{ 
     BYTE byLv = 0; 
     for(int g = 0; g < MAX_ITEM_LV; g++) 
     { 
         BYTE byTemp = (BYTE)((dwLvBit>>(g*4))&0x0000000F); 
         if(byTemp == __NO_TALIK) 
             break; 
         byLv++; 
     } 
     return byLv; 
}
конструкция не совсем ясна, но насколько я понял, вычисляемый левел - количество УЖЕ вставленных таликов - каждый бит переменной dwLvBit соответствует вставленному талику. Левелов всего 7, что вполне естественно. Похоже, от типа вставленных таликов зависимости нет.
Небольшое дополнение - рейт вещи вычисляется на основании вставленных таликов + учитывается вставляемый талик. Т.е. при расчете вещь считается уже проталеной, поэтому далее в конструкциях switch - case есть число 7.

3. Вычисляется общий, базовый рейт

Код:
dwTotalRate = s_dwItemUpgSucRate[byLv]*fRate/upgrade_jewel_num)*1000; 

значение s_dwItemUpgSucRate зависит от левела и является массивом 
s_dwItemUpgSucRate[] = {100, 75, 50, 25, 10, 5, 1};
4. Берется рандом.
Код:
DWORD dwR1 = rand(); 
DWORD dwRand = (dwR1<<16)+rand();
5. Первая проверка - талик вставится или сгорит

Код:
dwTotalRate <= dwRand%100000
сравнивается базовый рейт и рандом.

6. если первая проверка прошла(базовый рейт меньше либо равен рандому) идет проверка - сгорят ли уже вставленные талики

Код:
switch(byLv) 
             { 
             case 5: 
                 if(125 > ::rand()%1000) 
                     bTalikBreak = true; 
                 break; 
             case 6: 
                 if(250 > ::rand()%1000) 
                     bTalikBreak = true; 
                 break; 
             case 7: 
                 if(500 > ::rand()%1000) 
                     bTalikBreak = true; 
                 break; 
             }
это зависит от рейта вещи, т.е. уже вставленных таликов и.... заново вычиляемого рандома.

7. Если талики не сгорают, то вычисляется поломка вещи

Код:
bool bItemBreak = false; 
switch(byLv) 
{ 
     case 5: 
         if(125 > ::rand()%1000) 
         bItemBreak = true; 
         break; 
     case 6: 
         if(250 > ::rand()%1000) 
         bItemBreak = true; 
         break; 
     case 7: 
         if(500 > ::rand()%1000) 
         bItemBreak = true; 
             break;
Опять же, зависит от рейта вещи и заново вычисляемого рандома.

После этого выполняются необходимые действия - уничтожение вещи, таликов или помещение в слот успешно модифицированного оружия.

Ниже расположена ссылка на исходный код программы, которая реализует описанный алгоритм. Можете сами попробовать ее скомпилировать и поэкспериментировать с различными комбинациями - вставленными таликами и камнями.

Да, насчет точки +7. В исходнике имеется следующая конструкция:

Код:
if(m_bCheat_100SuccMake) 
dwTotalRate = 0xFFFFFFFF;
эта переменная при установке ее в значение true дает 100% шанс создания и модификации предмета.
переменная является параметром чара и устанавливается владельцем базы. возможно, GM имеют такой флаг и без проблем делают пухи +7. Обычным методом заточить на +7 очень маловероятно.

Любые дополнения и исправления к статье приветствуются. Все вопросы в ПМ либо тут.

Модераторам - если я ошибся с разделом, просьба переместить сообщение в необходимый раздел.

Копирайт с rf-cheats.ru

------------------------------------------------------------------------

У кого еще остались сомнения по поводу хака заточки - просьба убиццо ап бижайшую стену, дабы сэкономить нервы окружающим =)
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©

Последний раз редактировалось Глюконатор; 01.05.2008 в 06:43.
 
19 пользователя(ей) сказали cпасибо:
АКРЕТ (30.06.2008), Akira667 (21.05.2008), Artem (19.06.2008), ChArIsMaTiC (24.05.2008), Coolerbox (29.06.2008), DarknessKnight (08.10.2008), Dingo (03.09.2008), Ivan_32 (30.11.2008), Letum (14.05.2008), lexxiy007 (08.06.2008), litvin93 (26.10.2008), MC_LIFE (20.04.2009), SAMBYK (07.06.2008), Shift (08.10.2008), Slaf4eg (19.06.2008), Vizir (08.06.2008), vladi2005 (11.05.2008), XoXoL (20.06.2008), Yohan (01.05.2008)
Старый 01.05.2008, 13:15   #2
Подпольщик
 Сержант
Аватар для roma!sk
 
roma!sk лучик света в грозовом небеroma!sk лучик света в грозовом небеroma!sk лучик света в грозовом небеroma!sk лучик света в грозовом небеroma!sk лучик света в грозовом небеroma!sk лучик света в грозовом небеroma!sk лучик света в грозовом небе
Регистрация: 12.04.2008
Сообщений: 147
Популярность: 748
Сказал(а) спасибо: 100
Поблагодарили 103 раз(а) в 52 сообщениях
Отправить сообщение для roma!sk с помощью Skype™
 
По умолчанию

кто-нить, чё-нить разобрал?)
________________
какгвсигда!11(9(
 
2 пользователя(ей) сказали cпасибо:
Amedomaru (08.06.2008), batondgan (30.04.2009)
Старый 01.05.2008, 17:13   #3
Заблокирован
 Фельдмаршал
Аватар для maxxx
 
maxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражания
Регистрация: 20.04.2008
Сообщений: 942
Популярность: 2281
Сказал(а) спасибо: 80
Поблагодарили 813 раз(а) в 460 сообщениях
Отправить сообщение для maxxx с помощью ICQ
 
По умолчанию

заставить рандом работать на себя можно... вы сами посмотрите: если при рандоме изменить пару значений, которые изменяют колво вставленных таликов и ту которую хочешь вставить то точить пухи можно легко... допустим все сгорело, но дамаг (скажем если пуху точить) останется... ибо параметры пухи уже изменены изменены
 
Старый 01.05.2008, 17:53   #4
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
По умолчанию

А можно тогда узнать примерный ход действий для замены кол-ва таликов.. Я просто не знаю.. Может реально есть. Пакет там какой-нить или еще чего. Заточкой я еще пока не занимался.
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©
 
Старый 01.05.2008, 18:20   #5
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
По умолчанию

ИМХО, данные по пухе берутся из базы сервера по твоему инвентарю. А в пакете на запрос по заточке скорее всего (хз, просто я их еще не разбирал) передается просто ид итемов... отсюда можно предположить, что ты не поменяешь стандартными способами (все, что угодно, кроме взлома БД РФ)...
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©
 
Старый 01.05.2008, 18:55   #6
Заблокирован
 Фельдмаршал
Аватар для maxxx
 
maxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражанияmaxxx блестящий пример для подражания
Регистрация: 20.04.2008
Сообщений: 942
Популярность: 2281
Сказал(а) спасибо: 80
Поблагодарили 813 раз(а) в 460 сообщениях
Отправить сообщение для maxxx с помощью ICQ
 
По умолчанию

хз...((

я просто слышал о умельцах которые что то меняли в директории игры и бегали с пухами с увелич дамагом
 
Старый 01.05.2008, 19:01   #7
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
По умолчанию

Там совсем другие причины. Вот цитата с какого форума:

Как выяснилось недавно скорость атаки оружия не проверяеться сервером в определенных пределах
тоесть до максимально возможного значения с учетом шмоток оружия бафав
из этого следует что можно легко поставить даже на ББ шмот атаку такую как будто ты в дисте
выше числом поставить можно но получим холостой удар
проверено на русофе реально убиваем одного и тогоже монстра раза в 1.5-2 быстрей обычного
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©
 
Старый 01.05.2008, 22:23   #8
 Разведчик
Аватар для Baal
 
Baal никому не известный тип
Регистрация: 01.05.2008
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию

Цитата:
ИМХО, данные по пухе берутся из базы сервера по твоему инвентарю.

так и есть. По одной цифре определяется кол-во слотов, на сколько и чем заточен предмет.
 
Старый 01.05.2008, 22:26   #9
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
По умолчанию

Можешь написать по каким байтам это определяется и ИД пакета?
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©
 
Старый 01.05.2008, 22:31   #10
 Разведчик
Аватар для Baal
 
Baal никому не известный тип
Регистрация: 01.05.2008
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию

Я по базе смотрел Не знаю если это число приходит клиенту.
Незаточенный предмет 7 слотов - 2147483647 , 6 - 1879048191 и т.д.
Когда точится, отнимается определенно число, в зависимости от талика и "уровню" заточки. Например первая заточка на игнор отнимет 15. Вторая на игнор 240. и т.д.
 
Пользователь сказал cпасибо:
Глюконатор (01.05.2008)
Старый 01.05.2008, 22:34   #11
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
По умолчанию

По базе чего? О_о...
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©
 
Старый 01.05.2008, 22:36   #12
 Разведчик
Аватар для Baal
 
Baal никому не известный тип
Регистрация: 01.05.2008
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию

mssql сервера
 
Старый 01.05.2008, 22:41   #13
 Рыцарь-защитник
Аватар для Глюконатор
 
Глюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе ценуГлюконатор знает себе цену
Регистрация: 28.04.2008
Сообщений: 657
Популярность: 4925
Сказал(а) спасибо: 251
Поблагодарили 1,126 раз(а) в 335 сообщениях
 
По умолчанию

Ааа... свой сервак есть? или доступ?
________________

Внимательно читаем Правила. Незнание правил не освобождает Вас от ответственности .
http://zhyk.ru/forum/imagehosting/20...95d0cee2b1.gif
Просьба не писать мне в ЛС по поводу того, что что-то не работает/выложить тему из подполья/рассказать о последних багах, читах, глюках. Не отвечу! Задавайте конкретные вопросы. Чем смогу - тем помогу. И в теме указывайте суть вопроса, а то смотреть вообще не буду - удалю и все.

__________________
Предоставляю услуги Гаранта/Проверяющего. Все подробности здесь.
Связь только через ПМ. В теме писать "Гарант/Проверка".
__________________

__________________
Мои проекты:

-> DarkOrbit Helper
__________________
__________________
† Ваш рай - это только сон † ©
 
Старый 01.05.2008, 22:43   #14
 Разведчик
Аватар для Baal
 
Baal никому не известный тип
Регистрация: 01.05.2008
Сообщений: 8
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию

доступ =)
 
Старый 14.05.2008, 00:21   #15
 Разведчик
Аватар для DASM32
 
DASM32 на правильном пути
Регистрация: 26.04.2008
Сообщений: 5
Популярность: 20
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 2 сообщениях
 
По умолчанию

люди! идея! есть такая прога cheat engine вы ее тут уже выкладывали. так вот там есть опция Unrandomizer. т.е. он убирает рандом ведь да? так вот если эту весч заюзать? ммм?
 
Закрытая тема


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Hint] Бессмертие Yohan Rising Force Online 10 17.05.2008 11:49

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 22:32.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net