Добрый день, друзья я тут как обычно сидел и играл в cs:go и тут произошло кое-что интересное, в катку залетел читер и она стала гораздо веселее. И тут я подумал стоп, cs:go ведь защищена античитом Valve Anti Cheat. Тот же варфейс защищен античитом с дебильном названием Mrak. А в играх серии call of duty был античит PunkBuster. Так что я подумал, а почему разработчики разных онлайн игр постоянно заявляют, что пытаются бороться с читерами, а у самих античиты полное говно? Даже я, человек совсем не шарящий в разработке игр без проблем за пять минут написал простейший античит на python, который изично детектит инжектирование читов в игру. Я об этом кстати сейчас тоже расскажу.
Так вот почему, разработчики не могут сделать также, это ведь действительно не сложно защитить игру от читеров. И тут-то я понял в чем дело понял почему читерство существует и почему читеры будут существовать всегда. Сейчас я все расскажу, встречайте дорогие друзья а разоблачение мифов об античите. Так вот и разработчики онлайн игр лишь делают вид, что защищают свои игры от читеров. К этому списку относятся такие игры как варфейс, world of tanks и ks go. Я сейчас беру это все не с потолка, дело в том, что я сам запускал и играл в эти игры с читами совсем недавно и все работает без проблем даже на самых свеженьких версиях игр. Но не подумайте, ничего плохого, я не читер. Более того, я всегда презирал таких людей. По моему мнению либо ты играешь честно, либо не играешь вообще.
Давайте на секунду отодвинем шторку честности и заглянем по ту сторону читерство. В игре с читами у тебя есть wh он же wallhack позволяющий видеть других персонажей через стену. У тебя есть aim позволяющий автоматически прицеливаться в головы противников. И конечно же у тебя есть куча других плюшек вроде замены скинов, накрутки монеток и всего такого. И все бы ничего, но меня больше всего разозлило только одно, разработчики этих игр яростно утверждают, что защищают свои игры от читаков, но в игре их почему-то становится только больше. В том же варфейс встроен дебильный Mrak, в ks go не доделаный VAC, который только для вида периодически банит игроков маленькими пачками. И вот в этом-то и кроется дьявол, разработчики сами заинтересованы, чтобы читы работали в их играх, главное просто периодически делать апдейт и менять адреса памяти. Именно поэтому большинство платных читов доступны только по подписке. Не бывает чита, который бы работал раз и навсегда. Так что это все вполне жирная хоть и серая статья доходов для разработчиков игр, приносящая им десятки если не сотни тысяч долларов в месяц. Остается только играть на публику делая вид, что ты все пытаешься защитить игру от читеров, которые так и лезут обратно со своими взломами. И никто даже не задумывается, что все читы работают по одному и тому же принципу, что в самой первой, что в самой последней версии игры все читы действуют по одной и той же схеме. То есть по факту, как я и сказал разработчики лишь обновляют адреса памяти клиента своей игры, чтобы старые читы перестали работать и люди покупали новые. А знаете что самое смешное, то что почти все читы активируются путем инжектирования их длллки в процесс игры. А бедные разработчики делают вид, что прям никак не могут отследить факт инжектирования сторонний длл к их игре. Лично мне, как программисту это смешно. Они могли бы выдумать причину посерьёзнее, но видимо лень стараться.
Ну а мы давайте сейчас все дружно постараемся и покажем бедным разработчикам как это делается за пару минут. Мы сделаем свой анти-чит, который будет отрубать 99 процентов всех существующих читов. И если ты хоть раз в жизни ставил читы или пользовался ими, то ты знаешь, это как правило делается через инжектирование дллки в процесс игры каким-нибудь сам инжектором, а значит самое простое, что мы можем с этим сделать это сравнив сигнатуры загруженных длл с оригинальными. Не буду закидывать вас умными словечками, просто скажу что есть такая утилитка как listdlls. Её можно скачать с официального сайта microsoft и она нужно, чтобы показывать список загруженных в процесс длл.
Перейдем к самому интересному, я написал вот такой исходный код нашего античита на языке программирования python. Кстати, я его назвал ХНР или же сокращение от хреновый, но рабочий. Античит очень простой и кто шарит, тот это поймёт. При запуске наш античит создает отпечаток сигнатур загруженных длл, а затем каждые пять секунд автоматически их сканирует. Если сигнатуры вдруг не совпадут, то есть был запущен чит, наш античит автоматом закроет игру.
Как видите это вполне реально, а разработчикам тупо выгодно, чтобы читы работали. Это именно то, о чем я сегодня хотел рассказать.
Так вот почему, разработчики не могут сделать также, это ведь действительно не сложно защитить игру от читеров. И тут-то я понял в чем дело понял почему читерство существует и почему читеры будут существовать всегда. Сейчас я все расскажу, встречайте дорогие друзья а разоблачение мифов об античите. Так вот и разработчики онлайн игр лишь делают вид, что защищают свои игры от читеров. К этому списку относятся такие игры как варфейс, world of tanks и ks go. Я сейчас беру это все не с потолка, дело в том, что я сам запускал и играл в эти игры с читами совсем недавно и все работает без проблем даже на самых свеженьких версиях игр. Но не подумайте, ничего плохого, я не читер. Более того, я всегда презирал таких людей. По моему мнению либо ты играешь честно, либо не играешь вообще.
Давайте на секунду отодвинем шторку честности и заглянем по ту сторону читерство. В игре с читами у тебя есть wh он же wallhack позволяющий видеть других персонажей через стену. У тебя есть aim позволяющий автоматически прицеливаться в головы противников. И конечно же у тебя есть куча других плюшек вроде замены скинов, накрутки монеток и всего такого. И все бы ничего, но меня больше всего разозлило только одно, разработчики этих игр яростно утверждают, что защищают свои игры от читаков, но в игре их почему-то становится только больше. В том же варфейс встроен дебильный Mrak, в ks go не доделаный VAC, который только для вида периодически банит игроков маленькими пачками. И вот в этом-то и кроется дьявол, разработчики сами заинтересованы, чтобы читы работали в их играх, главное просто периодически делать апдейт и менять адреса памяти. Именно поэтому большинство платных читов доступны только по подписке. Не бывает чита, который бы работал раз и навсегда. Так что это все вполне жирная хоть и серая статья доходов для разработчиков игр, приносящая им десятки если не сотни тысяч долларов в месяц. Остается только играть на публику делая вид, что ты все пытаешься защитить игру от читеров, которые так и лезут обратно со своими взломами. И никто даже не задумывается, что все читы работают по одному и тому же принципу, что в самой первой, что в самой последней версии игры все читы действуют по одной и той же схеме. То есть по факту, как я и сказал разработчики лишь обновляют адреса памяти клиента своей игры, чтобы старые читы перестали работать и люди покупали новые. А знаете что самое смешное, то что почти все читы активируются путем инжектирования их длллки в процесс игры. А бедные разработчики делают вид, что прям никак не могут отследить факт инжектирования сторонний длл к их игре. Лично мне, как программисту это смешно. Они могли бы выдумать причину посерьёзнее, но видимо лень стараться.
Ну а мы давайте сейчас все дружно постараемся и покажем бедным разработчикам как это делается за пару минут. Мы сделаем свой анти-чит, который будет отрубать 99 процентов всех существующих читов. И если ты хоть раз в жизни ставил читы или пользовался ими, то ты знаешь, это как правило делается через инжектирование дллки в процесс игры каким-нибудь сам инжектором, а значит самое простое, что мы можем с этим сделать это сравнив сигнатуры загруженных длл с оригинальными. Не буду закидывать вас умными словечками, просто скажу что есть такая утилитка как listdlls. Её можно скачать с официального сайта microsoft и она нужно, чтобы показывать список загруженных в процесс длл.
Перейдем к самому интересному, я написал вот такой исходный код нашего античита на языке программирования python. Кстати, я его назвал ХНР или же сокращение от хреновый, но рабочий. Античит очень простой и кто шарит, тот это поймёт. При запуске наш античит создает отпечаток сигнатур загруженных длл, а затем каждые пять секунд автоматически их сканирует. Если сигнатуры вдруг не совпадут, то есть был запущен чит, наш античит автоматом закроет игру.
Код:
"""
АНТИЧИТ ХНР (Хреновый Но Рабочий)
=================================
"""
# Настройки
process_name = "game.exe" # название процесса с игрой
signatures = "" # зафиксированные сигнатуры
mode = 1 # режим
v = "1.0.0 BETA" # версия античита
scan_delay = 5 # промежуток сканирования сигнатур
# Функции
def crc(fileName):
prev = 0
for eachLine in open(fileName,"rb"):
prev = zlib.crc32(eachLine, prev)
return "%X"%(prev & 0xFFFFFFFF)
# Имплементация
import os, subprocess, zlib, time
sigs_path = "./sigs/" + process_name + "_sigs.txt"
sigs_local_path = "./sig.txt"
if mode:
# создание сигнатур процесса
sigs = subprocess.check_output('listdlls ' + process_name).decode("utf-8")
f = open(sigs_path, 'w')
f.write( sigs )
f.close()
print("Сигнатуры процесса " + process_name + " созданы!")
# протекция по сигнатурам
f = open(sigs_local_path, 'w')
f.write( sigs )
f.close()
while True:
print("Сканирую игру ...")
sigs = subprocess.check_output('listdlls ' + process_name).decode("utf-8")
f = open(sigs_local_path, 'w')
f.write( sigs )
f.close()
check = crc(sigs_path) == crc(sigs_local_path)
if( check ):
# Сигнатуры совпали
print( "Сигнатуры совпали, продолжаю ..." )
time.sleep(scan_delay);
continue;
else:
# Сигнатуры не совпали
print( "Сигнатуры НЕ СОВПАЛИ, закрываю игру!" )
os.system('taskkill /IM "' + process_name + '" /F')
break;
print("Античит ХНР v "+v+" завершил свою работу.")