проблема уже назрела и случай с ранбфг её только обостряет. нужно попробовать её как-то решить. само создание детектора, я думаю, можно разделить на два этапа:
Я думаю надо детектор на предмет внешнего воздействия на дф.
Мона отслеживат сервер тайм - замедлен он или нет.
Еси повезет у меня есть друган с защиты информации. И еси я его уговорю это сделать. То он я думаю смог бы написать длл.
Но пока надо определьться как детектить.
DLL я могу написать без проблем
но если б я знал, "что творица внутри кваки"...
Каким образом можно засечь таймскальщика когда пользуется он сторонней прогой замедляющей всю систему?
у меня есть прога, на которую на опц ссылку давали, она замедляет только кваку. гм, если вся система замедляеца, тогда правда нельзя, если только квака не пишет в демку отметки о системном времени, его-то нельзя замедлить. нада формат файла демки узнать что ли.
нада глянуть .идейка не беды
I think demo´s must be analyzed by people who know how to analyze demos. Because cheaters always look for new ways etc.
У меня есть спецификация формата дем dm_68 (сурсе)
кто разбирается сговоримся
R3tw3R.Скинь глянуть
я с защиты информации и дллку легко напишу. Рад, скинь спецификацию dm_68 на serphere(at)mail(dot)ru.
Мой взгляд на некоторые аспекты этой проблемы:
Можно написать программу, которая сравнивает системный таймер с таймером кваки, но что получается, придется эту программу распространять среди дефраггеров, чтоб они играли тлько под ней. Чтото типа cheat-death для кс =). Мне кажется распространение будет проблемой
Можно посмотреть спецификацию dm_68 у меня уже есть некоторые задумки но без спецификации я ничего не скажу.
Кстати имхо хороший способ обломать многих скриптеров это запретить изменение pitchspeed и yawspeed, все равно на стрелочках никто не играет.
qpk4
всю жизнь на стрелках играл
а насчет распространения длл, то можно спихнуть это дело дф-тим, чтобы они вставили в 1.91 (если мы конечно этого дождемся)
Я ваще не понимаю как с этим говном (таймскалом) играть можно !
Типо давайте с чегонибудь начинать кидайте линки на исходники(df и q3), инфу по dm_68 и конечно ваши идеи !будем чегонибудь писать тестировать что кто написал и выбирать лучшее ! Хотя мне какжется что лучше Gaz'a в этом ни кто не сечет а он врядли своими знаниями делиться захочет !
Цитата (R3tw3R @ 9.06.2005 - 10:03) |
У меня есть спецификация формата дем dm_68 (сурсе) кто разбирается сговоримся |
Кста- я в нагрузку вам сделал прогу изменяющую таймскайл - стоит ли ее выкладывать?
Когда напишите реальный детектор? Ведь даже такой ламак как я может сделать трейнер.
Есть ли различия в размере дем с различными таймскайлами?
Цитата (anti777 @ 10.06.2005 - 00:00) |
Кста- я в нагрузку вам сделал прогу изменяющую таймскайл - стоит ли ее выкладывать? Когда напишите реальный детектор? Ведь даже такой ламак как я может сделать трейнер. Есть ли различия в размере дем с различными таймскайлами? |
Тут у мя одна мысль в голову пришла - можно зделать чтоб при выводе настроек с которыми была записана демка выводилась еще статистика запущенных приложений я имею в виду не exe name а заголовок приложения так как его изменить будет посложнее!
Как я считаю нужно следующие
1. Детектор внешнего воздействия на кваку.
2. Детектор внутреннего изменения переменных
3. Питч спид и явспид зафиксировать
4. Сравнивать сервер тайм с внутренним таймом кваки, если не равен это таймскэйл.
Длл должна встраваться в дефраг и работать с ним.
Лучше дать создателям дф и пусть выпустят хотя бы новую бету с античитом.
Цитата (extra @ 10.06.2005 - 04:04) |
выводилась еще статистика запущенных приложений я имею в виду не exe name а заголовок приложения |
Нам писать это бесполезно т.к. это НАМНОГО проще сделать в новой версии дефрага. Другое дело - это написание проги для детектинга таймскейла. Тут думаю проще всего было бы сделать мод - тада не понадобились бы никакие длл-ки и т.д. Но для начала нуна придумать способ как это все детектить.
Кстати, я еще спецификацию не читал. Но если в ней содержатся значения cl_pitchspeed & cl_yawspeed то можно запросто написать скрипт детектор т.к. редко кто-то меняет их во время рана если не юзает скрипты. Но это будет не 100%-й детектор.
Цитата (extra @ 10.06.2005 - 00:53) |
Че их делать их в инете итак полно качай нехочу! А выкладывать нах... ненадо ! |
Тут ради интереса сравнил демки на рунбфг одна из которых явно записана с таймскалом - вот результат
некс - 132 Кб
cодом - 121 Кб
генош - 121 Кб
Потом сам записал демку и сравнил её с записанной таймскалом - опять с тайм скалом оказалась весит больше ! Можно пока не написано реального детектора определять их по размеру и заставить всех включить в обязательные настройки df_ar_stopdelay 1000 - к примеру во избежании ошибок с размером !
я тока хотел про это же написать
Чем ниже таймскайл, тем тяжелее демка. Но ведь демки начинаются раньше, чем отсчет времени, причем на неопределенную величину . Вот если бы определить как-нибудь по демке, сколько она реально длится, т.е. начало+прохождение+1.8секунды(по дефолту)!
Вот тогда можно и подсчитать средний таймскайл. А чтоб определить, менялся ли тамскайл во время игры нужно както определить изменение количества поступающих от демки данных. Имхо все так
Скорее всего ето все ху..я потому как размер демки еще зависит от того на сколько стабильно твой комп держит 125 fps у некоторых когда ставишь com_maxfps 125 держится не больше 60 Следовательно и размер демы будет меньше тоесть можно установить какойнибудь таймскал запустить еще каккуюнибудь хуйню которая тормозит комп к примеру еще один q3 и при таймскале демка будет почти такаяже по размеру как и обычная а то и меньше
так что ето по ходу все бред!
у большинства здешних дефрагеров фпс 125
ну а определить, как шел фпс при записи наверна вопщче нереально?
ну сопсна я это самое уже давно предлагал газу, на что последовал игнор
пробуйте, может дф-тим посговорчивее будет
anti777
размер демки зависит от таймскейла только при изменении его в самом кваче
то же, с чем мы имеем дело, меняет таймскейл "снаружи"
так что способ не катит
замедлите систему и глянте чо получча.прог таких дахера.
Цитата (серафим @ 10.06.2005 - 23:23) |
замедлите систему и глянте чо получча.прог таких дахера. |
Получаем системное время в начале демки, и в конце, сравниваем разность с временем в демке.
qpk4
так это ведь нада юзать при записи демки, а хотелось бы определять разницу уже при просмотре. или в демку пишеца и то и другое время? (я ещё сильно не разглядывал исходники).
бля любая прога обойдет етот детектор
qpk4
radiator
если бы системное время писалось в демку, то уже давно не было бы проблемой запалить всех таймскейлеров
наиболее приемлемо будет выводить мессагу типа "^1TIMESCALED!!!" при записи, если детектор засёк расхождение таймеров
а можно вдобавок и сам таймскейл рассчитывать и тоже выводить
кто-то говорил про изменение названия приложения, ну я так понимаю, это либо список процессов (как в Task Manager) - изменить название процесса проще простого - переименовать exe-шник; либо это название окна приложения, если такое есть. Изменить заголовок окна без переписывания проги - тоже как 2 пальца..
так что выводить список запущенных прог имхо идея не очень
extra
Заголовок меняется одной командой
Мдя... Я так смотрю, в демке никакие настройки не сохраняются...
Остается идея с системным временем...
LAMA3OID
херовая идея, это ведь нада юзать при записи демки, то есть придёца распространять патч среди населения, а это трудновато...получаеца другой возможности нет?
radiator: захотят чтобы их демки считали легитимными - скачают
там же не только защита от таймскейла, но и защита базовых переменных, и питчспида с йоспидом
весь читерский набор отсекается как-никак
FarshMaker
тоже правильно. а новая версия дефрага неизвестно когда выйдет? там-то наверное пофиксят уже. может тогда уж дождаца...
radiator
FarshMaker
Если писать патч, то можно просто отключить нафиг таймскейл и еще некоторые команды. Если седня будет время, попробую начать все это дело...
ЗЫ. А ведь такой патч пишется по тому же принципу что и читы =)
LAMA3OID
Цитата |
ЗЫ. А ведь такой патч пишется по тому же принципу что и читы =) |
Кста реальная феня =)
Тока надо делать чтобы мона было включать и выключать
Или чтобы включалась при записи дем
Ну уже как-бы и начал... Но пока не много сделал. Уже научился встраивать свои команды в кваку (как в SDC), но еще не роздуплился как отключить команды которые не в qvm-ах, а прошиты в екзешнике... (а таймскейл, cl_pitchspeed etc имено такие)... Но думаю, сделаю.
LAMA3OID
Дык ведь главная проблема в том что читеры юзают не таймскал,а какие то левые проги для замедления времени. Как вы собираетесь защититься от них ?
=))
Бля люди поймите вы зделаете античит газ зделает еще кручи читы =)
eS-VIXen
Я пытаюсь запретить изменение переменной timescale. А это должно отсеять большую часть читов + ArtMoney и ему подобных. Ну а с прогами типа SpeedGear вряд-ли что-то можно сделать... Тока вот SpeedGear с квакой на замедление не работает (тока на ускорение), а увеличивать таймскейл вряд-ли кто-то будет.
С перемеонной timescale думаю проще и надежнее всего будет просто каждый такт устанавливать значение 1 и все.
dS_h@use
Ясно что это полностью не решает проблему читофф... Но это хотя-бы должно отсеять большую их часть.
Это был я
LAMA3OID
В том то и дело что этот твой Speedgear умеет замедлять кваку !!!
На OPC какой то чел давал ссылку на версию этой проги которая умеет замедлять именно кваку и другие игры на её движке...
eS-VIXen
Опа... Не знал... Надо подумать...
LAMA3OID
так замедление кваки как раз можно определить засечением системного времени и сравнением с квачным =)
radiator
Хм... Дома гляну что там с ее временем...
Братцы придумал реальную феню
надо чтобы таймстарт выводил реал тайм текущие
когда дема заканчивает писаться снова реал тайм
ВСЕ
легко и просто
zlobNYZopux
Респект !
Тока это уже должны делать программеры из дф тим.
Хотя можно попробовать и самим
тогда уж сразу чтобы bindlist писался
чтобы скриптеров не было
Не агрессор это не прокатит
Для скриптов не обязателен бинд... Можно простым exec-ом все сделать...
zlobNYZopux
Вчера пол дня сидел - пытался сделать.
Все время одна ошибка которую я до сих пор не исправил... Хотя, имхо, в том что я писал никакой ошибки нет. Но еще буду долбаться.
Седня если получится выложу кусок кода с ошибкой - может кто-то исправит...
LAMA3OID
клади, посмотрим, может пойму чё-нибудь =)
qboolean GAME_trap_EntityContact( const vec3_t mins, const vec3_t maxs, const gentity_t *ent )
{
if (!ent || !ent->classname)
{
GAME_trap_Printf("Error: null classname");
} else if (ent->classname == "")
{
GAME_trap_Printf("Error: empty classname");
} else if (ent->classname == "trigger_push")
{
GAME_trap_Printf("Trigger_Push \n");
} else if (ent->classname == "TRIGGER_PUSH")
{
GAME_trap_Printf("Trigger_Push \n");
} else
{
GAME_trap_Printf(ent->classname); // <- Ошибка в этой строке
}
qboolean retvalue;
retvalue = ( qboolean )GAME_CallSysCall( G_ENTITY_CONTACT, mins, maxs, ent );
return( retvalue );
}
Вот вызываемая функция:
void GAME_trap_Printf( const char *fmt )
{
GAME_CallSysCall( G_PRINT, fmt );
}
Все компилится. Без этой строки все работает намана. Компилится и с ней, но в рантайме ку3 вылетает с ошибкой. Все предидущие строки работают нормально. Если я пишу :
{
......
char *str = "123";
GAME_trap_Printf(str);
}
то все работает.
По моему, код правильный. Есть идеи почему он не работает ?
LAMA3OID
а с какой ошибкой вылетает? тут касяк какой-то с указателем, может он на какое-то гавно указывает? по шагам посмотри что под указателем.
В другом месте того же кода есть такое-же место, тока другая функция вызывается. Но передается все так же ent->classname. И все работает.
Здесь я пытался вызывать другую функцию с этим же параметром - вылетает.
Разница между тем и этим кодом только в том, что тот писал Кармак а этот я =)
Так как же я посмотрю, если это длл-ка ? В дебаге ее не запустишь... Я ее тестить могу тока на самой кваке да и в нее ее инжектю другой прогой.
Ошибка стандартная - программа выполнила недопустимую операцию и т.д...
Компилиться все классно
LAMA3OID
гм, странно, попробуй может так
GAME_trap_Printf(&(ent->classname));
или так
GAME_trap_Printf(*(ent->classname));
хотя хз вроде всё нормально...
тоесть, вы предлагаете написать детектор который будет детектить тайискейл? да?...
это конешно хорошо но рано или поздно его обойдут и будут читерить дальше...
разумнее написать длл которая будет не записывать таймскейленые дэмки
ps извините... может быть эта идея прозвучала раньше ( я всё не читал )
pps LAMA3OID
bestsukabro
скажи мобилу свою ( будет охуенно если у тебя Djuse )
My suggestion:
Don´t make a demo checker, but make something that will not write demo´s to a file if timescaling is detected! This is more consistent.
No4z
Не джус =(
(066)123-01-03
ЗЫ. Читерский номер
Bas Dirks de Grote
I`m trying 2 make a program that will show true time at the begining & in the end of demo. But I`m not sure that i`ll do this because it`s to hard for me. Usually i write my progs in Delphi, but that time i have to write it on C++.
It`s very easy 2 make this detector in new version of df, but i don`t know when it will be.
I can`t do something with other kinds of cheatz like progs, that hack g_speed. It`s posible 2 make it in new version of df. And it`s very easy too. But i`m not member of df team and i can`t do anything with df source.
P.S. Sorry 4 my English...
LAMA3OID:
[01:08] <Gazouille> you can change the time at recording
[01:08] <Gazouille> it's not detectable and that's why it's pointless to think about it
[01:08] <Gazouille> time waste
[01:09] <Gazouille> nothing is detectable
[01:09] <Gazouille> isnt that clear?
[01:10] <Gazouille> the concept itself of an absolute measure of time is known to be impossible
[01:12] <Gazouille> without an observer, everything is unfalsifiable
[01:12] <Gazouille> this means that anything that is not online is cheatable
[01:13] <Gazouille> i think ppl have a problem with understanding what an impossibility is and what it isnt
Good luck LAMA3OID, anti-timescale is theoretically impossible, and also practically.
[01:15] <Gazouille> what is true time?
[01:15] <|PsY|Z> was about to ask you this
[01:16] <Gazouille> there is no true time offline
[01:16] <|PsY|Z> he told it had something to do with server time
[01:16] <Gazouille> the same way i can change my date i can change my microseconds
LAMA3OID:
You might want to reconsider the workings of your program, because i promise you, the way you are trying to do it now, will not work.
Your best bet is to make an anti-cheat that functions as an add-on program, like cheating-death / punkbuster.
да, менять системное время можно, но это уже труднее. к тому же можно сравнивать его в каждом фрейме, то есть внешней проге придёца в каждом фрейме его подправлять, а тут уже появляеца проблема синхронизации для неё, ведь внешняя прога не может знать момент каждого фрейма, то есть всё равно есть вероятность, что расхождение задетектица имхо.
radiator
Нет. Он прав =(
Вероятность то есть, но это не то что нужно. Если уж писать прогу, то нужно писать ее так чтобы можно было быть увереным в том, что если чел играет с ней, то он не читер.
Я вчера довольно долгое время говорил в ирке с Бас Дирксом об этом. И я могу сказать что чувак знает о чем говорит. Он обсуждал эти дела на спиритическом сеансе с верховным божеством дефрага - Газом. И оказалось что тот пытался сделать то же что делаем мы, но не смог. А Газ - охеренный программер. Намного лучше чем я. И у него ничего не получилось.
Идею я пока что не бросаю, но нужно искать новые способы детекта. И Бар Диркс с Газом мне доказали что имеет смысл писать программу только для детектинга. А cheating-death for df лучше не нужно. Вот и будем что-то думать.
Бар Диркс обещал еще поговорить насчет этого с Газом. Плюс я подумаю... Плюс вы все. Может и додумаемся до чего-то о чем не подумал Газ.
LAMA3OID
ок, согласен, вероятность здесь не канает. тогда остаёца определять воздействие на систему (типа что её замедлили). как это вапще делают? процессор занимают просто или как-то хитрее? может отслеживать тогда какой процесс отжирает много процессора, блокировать его. кароче чувствую без доработки самого дф'а не обойтись...
Чувствую тут без доработки винды не обойтись... =)
Как работает спид гер я не знаю... Есть предположение что он перехватывает функции проверки системного времени (типа GetTickCount etc.) и выдает вместо них свои значения. Но это только мои предположения.
Я же говорю - можно попробовать написать cheating-death. Но сколько его версий ни выходило, сразу же появлялись читы под новую версию...
Все что можно написать можно и взломать.
If time is scaled, it leaves no trace, because it can never be compared to realtime. Therefore even if you use bios ticks, it is easy to fake.
LAMA3OID
садись и всё раздупляй
No4z
Это ж хорошо что ты посоветовал... А то я уже и не знал что делать
Надо попробовать записать две демы на чем-нить типа st1 просто зажав кнопку вперед... Т.е. чтобы были полностью одинаковыми. Тока одну с таймскейлом а другую без. И сравнить...
Занялся бы седня, но я дома еще дня 3-4 не смогу за комп сесть =( А у меня все на нем...
на очень многие проги подобные программы-замедлители не действуют. Зачем же q3 сделали зависимым от системного времени?
ТАк чё народ забили!?
Я считаю что эт надо сделать!
Еслиб я мог я б написал!
Я уже просто немого смотреть на ето: С каждым днём появляется всё больше и больше читерских дем!
кто может помоите нам!Сделайте чтоб читерских дем небыло или хотябы чтоб их было меньше!
Сделайте хоть самую простую прогу которая сможет обнаружить хотябы от начинающего читера!
iFX_BoneS
Меня отговорили...
Типа, если прога не может гарантировать 100%-ю проверку дем, то зачем она нужна ?
А прогу которая будет гарантировать все 100% написать не возможно...
LAMA3OID
хотя бы ваще читы ловила ;}
По идее в DeFRaG'e читы не канают. А в трикджампинге, по идее, важна красота сделанного трика. Сам, кнешна, стараюсь c timescale 1 триксовать
frAkIR
Лол, видимо ты совсем не в теме. Дело в том, что читы теперь как раз канают в Дефраге.
фф смысле в проходе уровня на время? ТАм же если включены читы, дема не пишется. Конечно можно нахимичить с прогой, но будет уже немного другая программа.
Вот именно, с помощью других прого можно в дефраге timescale поменать. И дефраг этого не показывает.
народ, а как какртинку сюда выложить, а то пытался и так, и сяк, и всёравно нихера не выходит!
Viper
Это я сделать смог-бы, но вот подумай... Сделал (или пробил) человек чит который обходит мою прогу и начал таймскейлит направо и налево. Да еще и не особо скрывая это. А что ему скажешь ? Наедешь - а он ответит что раз прога показует что читов нет, значит их нет.
И будем сухари сушить.
Хотите - займусь опять. Но, имхо, нет смысла (см. выше)
[FKs]destrukt
Чувак, ты имено втему =)
А ты займись но недавай стопроцентную гарантию работы!
Темболее смысл хотябы в том что-бы начинающих читеров заметить!
Cуть в том, что не получится создать одну прогу на все времена
Придется её постоянно подновлять, чтобы выявлять новые способы читинга
те читеры что-то придумали новое -> прога тоже должна обновится
да много нового они не придумает, да и неплохо было бы высекать хотя бы самые простые способы.
Нород помогите четным дефрагерам!
надо у веспа и газа все способы читинга узнать ( которые они юзали/юзают )
Так они тебе и расскажут
LAMA3OID
1)эта прога даст возможность определите те читы, к-е уже сейчас сделаны и записаны нек-ми. и они никак не отвертятся.
2)это исключит возможность читинга бол-ва ламеров:) т.к. они юзают проги полегче, чем Газ.
хорошо, что есть минус- чем меньше таймскайл, тем тяжелее демка
Нормального способа детекта читофф в обычных демах еще не нашли, наскока я знаю... По крайней мере так говорит Газ.
Предлагайте способы детектинга... Говорят, демы с таймскейлом весят больше. Но их несчем сравнивать... Но мыслю нужно обдумать.
По этому поводу есть одна идейка, но я сильно сомневаюсь что она реализуема.
Мдя... Если так, то вариант отпадает =(
На заметку - самый толковый способ тамскейлить - через инжект DLL (внешним таймскейлом).
Надо перехватить системные API (с помощью которых определяется текущее время) и вместо них подсунуть свою реализацию, выдающую _замедленное_ время. В этом случае при активизации "внешнего таймскейла" для хакнутой программы создается впечатление что она запущена на мощном компе. При наличии необходимых навыков реализация хака не составляет проблем. Тем более теперь, в связи с появлением исходников Q3, для реализации достаточно лишь уметь кое-как программировать на C.
Сами демки по своему формату получаются абсолютно легальные, никаких косяков с переменными, временем и тп в них нету. Задетектить чит можно лишь одним способом - анализируя движения игрока и скорость нажатия клавиш. Но, сами понимаете, это грозит паранойей и шквалом необоснованных обвинений.
Рассказать про другие способы чита?
Mojo чтото типа етого ?? тока пример не замедляет а ускоряет систему и написан на Asm'e!
.386
.model flat, stdcall
option casemap:none
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\w2k\ntdll.inc
include \masm32\include\w2k\ntddk.inc
include \masm32\include\w2k\ntstatus.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\w2k\ntdll.lib
include \masm32\Macros\Strings.mac
MB_OK equ 0
MB_YESNO equ 4
IDYES equ 6
MB_DEFBUTTON2 equ 100h
SystemTimeAdjustment equ 28
SYSTEM_QUERY_TIME_ADJUSTMENT STRUCT ; Information Class 28
TimeAdjustment DWORD ?
MaximumIncrement DWORD ?
TimeSynchronization BOOLEAN ?
db 3 dup(?) ; padding
SYSTEM_QUERY_TIME_ADJUSTMENT ENDS
PSYSTEM_QUERY_TIME_ADJUSTMENT typedef ptr SYSTEM_QUERY_TIME_ADJUSTMENT
SYSTEM_SET_TIME_ADJUSTMENT STRUCT ; Information Class 28
TimeAdjustment DWORD ?
TimeSynchronization BOOLEAN ?
db 3 dup(?) ; padding
SYSTEM_SET_TIME_ADJUSTMENT ENDS
PSYSTEM_SET_TIME_ADJUSTMENT typedef ptr SYSTEM_SET_TIME_ADJUSTMENT
SystemTimePrivilege equ 12
.code
start proc uses esi edi ebx
local sqta:SYSTEM_QUERY_TIME_ADJUSTMENT
local ssta:SYSTEM_SET_TIME_ADJUSTMENT
invoke ZwQuerySystemInformation, SystemTimeAdjustment, \
addr sqta, sizeof SYSTEM_QUERY_TIME_ADJUSTMENT, NULL
.if eax == STATUS_SUCCESS; && sqta.TimeSynchronization != FALSE
CTA "Would you like to adjust the time to move faster 4 times?\n\n", g_szMessage
CTA0 "It will be reverted back after this application exits."
invoke MessageBox, NULL, addr g_szMessage, \
$CTA0("Time adjustment confirmation"), MB_YESNO + MB_DEFBUTTON2
.if eax == IDYES
push ecx
invoke RtlAdjustPrivilege, SystemTimePrivilege, \
TRUE, \ ; Enable
FALSE, \ ; Use client's token
esp ; WasEnabled
pop ecx
mov eax, sqta.TimeAdjustment
shl eax, 2
mov ssta.TimeAdjustment, eax
mov ssta.TimeSynchronization, FALSE
invoke ZwSetSystemInformation, SystemTimeAdjustment, \
addr ssta, sizeof SYSTEM_SET_TIME_ADJUSTMENT
.if eax == STATUS_SUCCESS
invoke MessageBox, NULL, \
$CTA0("Now you are living faster 4 times?\n\nPress OK to revert back."), \
$CTA0("Time adjustment changed"), MB_OK
; Revert all back
mov eax, sqta.TimeAdjustment
mov ssta.TimeAdjustment, eax
mov ssta.TimeSynchronization, FALSE
invoke ZwSetSystemInformation, SystemTimeAdjustment, \
addr ssta, sizeof SYSTEM_SET_TIME_ADJUSTMENT
.else
invoke MessageBox, NULL, $CTA0("Sorry, time adjustment failed."), NULL, MB_OK
.endif
.endif
.endif
invoke ExitProcess, 0
ret
start endp
end start
2 mojo:
Это достаточно простой способ с не самой простой реализацией. Но тупым инжектом можно и проще сделать - при каждом вызове GetTickCount затормаживать с ответом.
А можно и реальный тайскейл менять - просто писать в чужой процесс.
Если знаешь другие способы - пиши.
А я думаю что все-таки сделаю античит против таймскейла на основе движка кваки (т.е. нужно будет запускать этот античит вместо екзешника кваки). Но со спидгером он бороться не будет.
Кроме того Бас Диркс подсказал мне способ как в некоторых случаях СпидГер отловить. Но я еще не проверял. И работать будет не во всех случаях.
extra
Ну ты даешь... Ты бы еще полный сурс чита выложил...
Постоянно сканируй память кваковского процесса в сегментах кода и констант загруженного экзешника на предмет изменений. Если твою софтину не заломают - то этого будет достаточно.
Насчет других способов. В свое время мне не хватило времени и терпения (другими словами - заколебало ) сделать скриптовый движок, полностью эмулирующий действия пользователя с точностью, на порядок превосходящей стандартные скрипты (плюс - с дополнительными фишками). Ядро было готово, но я не довёл до состояния, когда его можно было использовать. Работал через модификацию кода кваковского экзешника как q3sdc.
Еще в плане читов можно поработать с загруженным QVM, но это - для истинных маньяков. Геморройно очень.
Цитата |
Постоянно сканируй память кваковского процесса в сегментах кода и констант загруженного экзешника на предмет изменений. Если твою софтину не заломают - то этого будет достаточно. |
Цитата |
Насчет других способов. В свое время мне не хватило времени и терпения (другими словами - заколебало ) сделать скриптовый движок, полностью эмулирующий действия пользователя с точностью, на порядок превосходящей стандартные скрипты (плюс - с дополнительными фишками). Ядро было готово, но я не довёл до состояния, когда его можно было использовать. Работал через модификацию кода кваковского экзешника как q3sdc |
Цитата |
Еще в плане читов можно поработать с загруженным QVM, но это - для истинных маньяков. Геморройно очень. |
dS-LAMA3OID Если уже начал писать то могу помочь когда времени побольше будет - правда мне кажеться что ето пустая затея ! Короче если што стучи в асю побазарим на ету тему !
Цитата (dS-LAMA3OID @ 22.08.2005 - 13:45) | ||||||
1. Изменения там происходят все время ! Откуда я могу знать что константа изменилась из-за внешнего воздействия а не потому что движок так захотел ? 2. Даже если бы я все-таки сумел это сделать, то как бы я потом узнал, играли с прогой или без ?
Я это щас делаю... Тока не чит пишу, а бота. Тока не "как q3sdc" а как "ogc". В сдц его код исспользован. Ну и я его-же юзаю.
Работать с загруженым QVM способом, отличным от упомянутого выше ogc практически невозможно. Тут надо не просто маньяком быть... Тут надо быть гибридом Кармака и Билла Гейтса... Ну и еще кого-нить. Да Ну и, к тому же, ни один из перечисленых способов не решает проблему СпидГера. Но все равно, спасибо =) |
Цитата | ||
1. Изменения там происходят все время ! Откуда я могу знать что константа изменилась из-за внешнего воздействия а не потому что движок так захотел ? 2. Даже если бы я все-таки сумел это сделать, то как бы я потом узнал, играли с прогой или без ? |
Цитата |
Тока не "как q3sdc" а как "ogc". |
Цитата |
Работать с загруженым QVM способом, отличным от упомянутого выше ogc практически невозможно |
Цитата |
и то, даже если ты сможешь с ними работать, то все равно, имхо, не сможешь ничего сделать из-за встроеной в дф защиты этих переменных. |
Цитата |
Ну и, к тому же, ни один из перечисленых способов не решает проблему СпидГера. |
Цитата |
Но все равно, спасибо =) |
<<< Мое имхо - надо пресекать запись новых читерных демок, а не ковырять старые... >>> Што верно то верно
Цитата |
Нет, в сегменте кода и констант изменения не происходят (секции .text, .rdata). Изменения происходят только в секции .data и в динамически выделенной памяти (по умолчанию считаем, что для динамически выделенных областей стоят флаги, разрешающие запись в них). |
Цитата |
Существующие читерные демки со 100% успехом распознать не получится, поэтому стоит писать софтину, дополнительно включающую при записи в демку некоторые данные. А при проигрывании их валидировать. |
Цитата |
Ну почему же. QVM компилируется движком в нэтив код. Нам известно где хранится его информация о скомилированном коде. Соответственно, можно сделать дамп этого кода и поковыряться дизассемблером. |
Цитата |
Защита встроена в QVM, следовательно, ничего не мешает мне ее отключить, если я разберу этот QVM. |
Цитата |
Мое имхо - надо пресекать запись новых читерных демок, а не ковырять старые... |
Цитата |
Не за что, всегда приятно попиздеть и пораздавать идей |
походу придумал способ определения конкретно тока таймскала !
распространяться по етому поводу пока небуду потому как можт ошибаюсь !
просьба пусть ктонить запишет 4 демы на одной и тойже карте к примеру dtp
1 из которых будет таймскальной а все отсальные чистые но которая с таймскалом пусть неназывает а я попробую определить с помощью своей софтины котороя !потом сверим !кста могу сказать с уверенностью на 90% генош на ранбфг таймcкал не юзал в отличии от некса !
extra
неплохо, неплохо, давайте запишите ктонить, демки, а то я не умею с таймскалом
вот так
а то народ чето неспешит !
Только нахрена такой большой скрин пахать было? Хотел похвастаться, что у тебя плейлист на 1.5 тыщи?
Я я бы тебе посоветовал сделать типа... файлового менеджера твой детектор...
Типа открываешь папку с демками, жмёшь кнопку типа "проверить демки на таймскеил"... комп смотрит, и зачитереное выделяет... например красным цветом...
extra
ну круто, если работает, молодец! ) хорошо бы правда его поапгрейдить, чтобы оптом можно было демки детектить.
extra
проверь демку веспа с дфвц )
Цитата (GT-3oHT @ 29.08.2005 - 21:58) |
Только нахрена такой большой скрин пахать было? Хотел похвастаться, что у тебя плейлист на 1.5 тыщи? |
Цитата (radiator @ 30.08.2005 - 11:52) |
extra проверь демку веспа с дфвц ) |
Дак кинь прогу я тож хачууу
Да.... кидай её прямо сюда. И подумай над моим предложением, насчёт этой програмки... Мне кажется, что так будет удобнее всяким Зопухам демки отсеивать...
Я ж бля говорю что она бажная некоторые демы читерными считает хотя они нормальные некоторые наоборот не палит скорей всего что это от того что не у всех компы стабильно держат fps я вот например один раз играл sp7 и мне defrag ваще timescale reported выписал я аж ахуел !
Если все нормально будет работать то ясен хуй выложу жопить небуду а так зачем это мне чтоб нажить кучу врагов да и что толку все будут ссылаться на баги и прочую лабуду потому как это тока beta !
Нащет предложения я давно подумал просто нестал пока себе голову заморачивать !
Да и пусть всеже ктонить выложить несколько таймскальных дем тестить то начемто надо !
вобщем попытаюсь чето зделать!
а те надо через хак ячейки, или через хак ситстемного времени
anti777
все надо чем больше тем лучше тока желательно штоб карта была поменьше а то чето неулыбается метровые демки качать!
я поетому и нехочу на сам демы писать люди же разными способами таймскал юзают!
Прогу в студию =)
ты ж первый спалишся
extra
если ты прогу всё-таки замутишь,то wespy уже не выйграть DFWC04
я таймскейлить как и Хост - НЕ УМЕЮ
хе хe штож такое никто таймскалить неумеет !
неудевлюсь если резко подниметься спрос на заявки по удалению дем
васю пупкина с DFWC03 скачай, там будет тебе таймскел. %)
extra
Тупо забыл тебе демки записать...
глянь аську... Я тебе стукнул.
После выходных тоже зашлю
Попробовал с таймскейлом пойграть...Ацтой какойто!
Неудобно...
5005133k(RDC)
А вот некоторым очень даже удобно...
знает кто-нить точна:
1. Команды наподобе +forward длятся пропорционально 8 мсек ?
2. Если нет, то сколько минимум расстояние между повторным нажатием клавишы
Просто я думаю, что при низком таймскайле можно запалить на чрезвычайно малом промежутке между нажатием клавиш
Дану не получится, нормальные читеры уже так клавиши не нажимают, это раньше заметно было, что часто жмут, а сейчас - нет.
сука не выходит чето заебался уже с этим таймскалом ! думал что получилось а когда начал с дф.ру демы проверять чуть не охуел из 1000 гдето 200 пролетают врядли тут стока таймскальщиков набереться короче надо еще долго мудиться или забивать на ето дело !
мне ваще кажеться что это пустая затея так как дефраг существует не один год а таймскал определять так и не научились врядли я умнее других чтоб вот так за две недели чето конкретное замутить - думаю всетаки забью
И всёже попытайся проблему пеебать... сила в упорстве, брат...
extra
Ты где пропадаешь ? Авторизуй меня в аське - пообщаемся... Может че и выйдет.
dS-LAMA3OID лучше скажи во скока ты бываешь в онлайне ! А то я щас с этой ебучей работы не вылезаю а там хрен попиздеть удасться шеф у мя злой !
dS-LAMA3OID
всегда помни про почту и все подобное
Сорри за задержку, выложил обещанные демки
http://nopym4uk.narod.ru/ts-demos.zip
Если понадобится, вот ICQ: 100010230
extra
Я обычно бываю каждый четвертые сутки весь день... +с моба захожу каждый день.
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)