XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
ScorpioT1000
Работаем
offline
Опыт: отключен
AlexeiK, причем тут код ассемблера? я говорю, что при хешировании простых чисел применяются побитовые операции типа xor и and этих чисел с хеш-ключом (ну и ясно что по своим формулам)
Старый 31.08.2010, 21:01
AlexeiK

offline
Опыт: 257
Активность:
ScorpioT1000, ну ты говоришь, что за один такт выполняется. токо не учитываешь, модель процессора.
ты бы сразу дал расклад, а то говоришь, что там все просто и времени не отнимает.
я вижу ,что тебе кроме слов лень привести сам код хэша,поэтому и спросил asm код.
Старый 01.09.2010, 10:14
ScorpioT1000
Работаем
offline
Опыт: отключен
Где я тебе возьму его ? У меня нет сорцов вара, вобщем ты несёшь какуюто ерунду. Не люблю таких людей как ты, которые делают вид, что во всём шарят, сами из себя ничего не представляют.
Старый 01.09.2010, 12:39
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Увидел как-то такой способ хранения.

Код:
integer g_Val[]

nothing SetVal (handle h, integer val){
    g_Val[GetHandleId(h)-0x100000] = val
    
}
integer GetVal (handle h){
    return g_Val[GetHandleId(h)-0x100000]
}


Пользуюсь им сейчас. Нареканий нет.
Старый 01.09.2010, 12:57
ScorpioT1000
Работаем
offline
Опыт: отключен
Аминь, это и есть
не надо ничего резать, надо просто вычесть число, с которого начинается отсчёт
и поскольку
GetHandleId
то
сейчас нельзя получить номер хендла независимо от версии
видишь, все мои сообщения логически связаны)
Старый 01.09.2010, 13:00
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Только если где-то в периодическом таймере или функции будет утечка, то такой метод даст сбой, когда необнуленные хендлы превысят лимит массива.

Аминь добавил:
Цитата:
Сообщение от ScorpioT1000
> сейчас нельзя получить номер хендла независимо от версии


Т.е. на 23 версии не будет работать?
Вот блин...
Старый 01.09.2010, 13:02
ScorpioT1000
Работаем
offline
Опыт: отключен
integer g_Val[]

#if DEBUG

void SetVal (handle h, integer val){
    if((GetHandleId(h)-0x100000) > 8191) { BJDebugMsg(`FUNCNAME`+"array overriding"); }
    g_Val[GetHandleId(h)-0x100000] = val
}
integer GetVal (handle h){
    if((GetHandleId(h)-0x100000) > 8191) { BJDebugMsg(`FUNCNAME`+"array overriding"); return 0; }
    return g_Val[GetHandleId(h)-0x100000]
}

#else

void SetVal (handle h, integer val){
    g_Val[GetHandleId(h)-0x100000] = val
}
integer GetVal (handle h){
    return g_Val[GetHandleId(h)-0x100000]
}

#endif
ScorpioT1000 добавил:
Т.е. на 23 версии не будет работать?
именно.
Старый 01.09.2010, 13:07
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
ScorpioT1000, скажи, если все правильно обнулять, то проблем с переполнением не должно возникнуть?
Я тестировал свою карту и словил баг, как я выяснил, именно из-за переполнения массива.
(в Цикле был необнуленный таймер)
Имеет ли такая система другие недостатки или все будет работать надежно?
Старый 01.09.2010, 13:20
ScorpioT1000
Работаем
offline
Опыт: отключен
лучше добавить проверку :) а так, это был самый распространенный способ аттача, пока близзы всё не испортили (т.е. не разделили версии)
Старый 01.09.2010, 13:23
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
Ведь все прогрессивное человечество перешло на 24 версию. Или я ошибаюсь?
Хотя в русских румах мне не удавалась найти игру 24 версии.
Аминь добавил:
#if DEBUG
DEBUG это булевая глобалка или режим Jass Helpera?
Старый 01.09.2010, 13:26
ScorpioT1000
Работаем
offline
Опыт: отключен
режим Jass Helpera
ScorpioT1000 добавил:
адик сделал так что если галка стоит то DEBUG == да, иначе нет
ScorpioT1000 добавил:
Ведь все прогрессивное человечество перешло на 24 версию
я, например, делаю свою кампанию для всех версий от 1.19 (и это работает), а убедившись в том, что на старом варе еще играют (судя напр. по комментам xgm.ru/p/wc3/5798), я не собираюсь менять решение)
Старый 01.09.2010, 13:31
Аминь
Crazy about that shit
offline
Опыт: 3,214
Активность:
ScorpioT1000, можно узнать твое решение проблемы разных версий?
Старый 01.09.2010, 13:35
ScorpioT1000
Работаем
offline
Опыт: отключен
unit/item custom value + timer exploit + метод перебора)
ScorpioT1000 добавил:
xgm.ru/forum/showthread.php?p=874675&highlight=PauseTimer&am... пример аттача к таймеру числа
Старый 01.09.2010, 16:00
ScorpioT1000
Работаем
offline
Опыт: отключен
ну и да, чуть не забыл, к равкодам также можно крепить просто вычитая из него 'A000' xgm.ru/p/wc3/about_int
Старый 02.09.2010, 11:51
AlexeiK

offline
Опыт: 257
Активность:
ScorpioT1000:
Где я тебе возьму его ? У меня нет сорцов вара, вобщем ты несёшь какуюто ерунду. Не люблю таких людей как ты, которые делают вид, что во всём шарят, сами из себя ничего не представляют.
а я равнодушен к тебе и вижу твои косяки в понимании русского языка :)
поэтому , скажу тебе, чтобы ассемблерный код, как бы лежит в game.dll. и сорцы не нужны,чтобы его оттуда взять. только вот есть ньанс,надо знать откуда брать :)
Старый 02.09.2010, 16:50
ScorpioT1000
Работаем
offline
Опыт: отключен
Скорую вызывать? Давай просто удалим эти сообщения, чтобы ты не позорился?)
Старый 02.09.2010, 17:54
AlexeiK

offline
Опыт: 257
Активность:
ScorpioT1000,
ну давай остановимся на том,что алгоритма хэширования ты не ведаешь и твои предположения не верны.
я то думал, ты ка кбы можешь взять асм код ,но вижу ты запутался.
решил поделится знаниями.
ты возьми ida pro программку, открой ею game.dll ,посмотри это и будет асм код варика. функция хэша, где то там. нужно знать адрес.

Отредактировано AlexeiK, 02.09.2010 в 18:55.
Старый 02.09.2010, 18:47
ScorpioT1000
Работаем
offline
Опыт: отключен
Ты представляешь, во сколько строк чистого бинарного кода (именно бинарного, который лежит в бинарном файле игры) превращается обычная программа, скомпилированная на c++ под win32, выводящая на экран всего-лишь надпись "hello, world"? Я чувствую, что нет, иначе бы ты не говорил такие глупые вещи.
Старый 02.09.2010, 18:55
AlexeiK

offline
Опыт: 257
Активность:
ScorpioT1000, ты что реально хочешь офтопить,чтобы выяснить, кто тут и что знает про exe файлы винды?
слушай, какие еще бинарные файлы то :) ты открой через блокнот game.dll , там hex коды,что собсно и есть асм код, ida pro сможет тебе вместо hex кодов,подставить asm синтаксис и тогда можно увидеть алгоритм хэш функции.
на ответ ниже:
ScorpioT1000, вот я и прошу поделись знаниями то,токо напиши asm. и я оценю, что ты там узнал в полной мере, а твои голословные заявления, только плодят офтоп.
Старый 02.09.2010, 18:59
ScorpioT1000
Работаем
offline
Опыт: отключен
мы изучали бинарники вара пару лет назад, всё, что надо оттуда уже узнали
ScorpioT1000 добавил:
какие еще бинарные файлы то
game.dll
сам себе противоречишь же.. вобщем бестолку общаться
ScorpioT1000 добавил:
ida pro
есть такая штука называется visual studio debugger - внезапно, не правда ли?)
Старый 02.09.2010, 19:04
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 19:43.