-
Постов
277 -
Зарегистрирован
-
Посещение
-
Победитель дней
1
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные IzerodayI
-
-
3 часа назад, seilormoon сказал:
нашёл я допустим указатель на класс игрока, что дальше?!
Смотреть структуру игрока в ReClass
3 часа назад, seilormoon сказал:а по русски?!
вот тут все написано , какой статью раз кинуть , что бы ты ее заметил ??
Движок у этих игр одинаковый , так , что результат должен быть похожим
-
3 минуты назад, seilormoon сказал:
Что такое приставка m_
9 часов назад, Xipho сказал:Это строки, которые встречаются в анализируемом файле. Это могут быть как названия функций/методов, так и названия параметров в структурах/классах.
как программисты написали , так и видно....
-
23 минуты назад, seilormoon сказал:
Прочёл, не понял откуда берётся вот это " ai_CompatibilityMode "
там разбор игры warface , у тебя что-то другое должно быть, тебе выше кидали как в Source движке должно быть
-
13 минут назад, seilormoon сказал:
я как понял дамп dll
потом дамп в IDA pro открываешь и смотришь
3 минуты назад, seilormoon сказал:Я даже не знаю что такое IAT info и что туда вписывать!
надо просто нажать на кнопку и все
15 минут назад, seilormoon сказал:я как понял дамп dll
да тут же все написано , что делать с дампом. Ты точно читал ?)
-
1 час назад, seilormoon сказал:
Я не особо понял как это сделать!!!
Если ты про дамп dll для будущего анализа , то помойму так : https://pastenow.ru/e3cf0a282f803e2722a639f87805d877
так же есть пару тем , которые могут помочь: (тут про дамп другой утилитой(но все таки scala лучше))
3 часа назад, seilormoon сказал:Где здесь найти "найдем адрес начала модуля client.dll"?
Так же можно присоединиться к игре , заходишь в отладочные символы и ищешь dll
PS тебе выше кидали тему(которая тебе может помочь, почитай) в которой есть ссылка на эту тему , тоже полезная информация , посмотри
-
https://www.youtube.com/user/remizovm/videos
на канале есть видео и про D3D -
1 час назад, ITkhazeplov07 сказал:
Это разве работает в dx input?
Тут в теме про игру crossfire речь шла, в ней все что угодно работает )
-
57 минут назад, partoftheworlD сказал:
спускаться на нижний уровень
Это то есть с С++ перейти на С ? или сразу на asm ?
-
15 минут назад, partoftheworlD сказал:
лучше использовать мануал мапинг
это же при internel ? (вроде)
15 минут назад, partoftheworlD сказал:селф ремапинг.
что-то новое )
20 минут назад, partoftheworlD сказал:то придется все винапи которые будешь использовать переписывать
переписывать - это обращаться к ним через GetProcAddres (подгрузив до этого либу , откуда берется функция)?(можно по подробней)
22 минуты назад, partoftheworlD сказал:C помощью хешей как малвари/руткиты делают.
это как ? Хеш (вроде) рассчитывается из какого-то известного значения ?
-
19 минут назад, JustHack сказал:
А если у него, к этому железу, еще то-то привязано,
можно обратно все восстановить
19 минут назад, JustHack сказал:Есть другие, 100% способы снять бан по хвид
все самое интересное утаишь?
(шутка) -
Хочу реализовать externel чит на игру и возникли вопросы по реализации:
1) как стоит вызывать две функции OpenProcces и ReadProccesMemory ?
Если их вызывать в явном виде , то античит может обнаружить вызов этой функции , тогда может стоит вызывать эти функции не явно (через GetProcAddres)?
Что если получить OpenProcces через другой поток (CreateThr)? будет лучше, чем в явном виде ?
Также античит будер реагировать если я буду пользоваться функцией через адрес (это одно и тоже , что и через GetProcAddres)?
Может есть функции , за которыми античит VAC не следит(выполняющие те же действия как OpenProcces и ReadProccesMemory(возможно похожие))
Может ли VAC отследить постороннее окно над игрой ?
PS благодарю за ответы!
-
Если я правильно понял , то запрет сервера скорее всего определяется по железу компьютера (Бан по HWID) и его можно обойти поменяв у всего железа "адреса" , таких программ в интернете много , но универсальной подсказать не могу , вот к примеру ID Blaster 2.0 или CCtools , после этого желательно снести игру и почистить все CCleaner (чтобы игра ничего своего не сохранила), потом заново установить игру ("поменяв" все железо) и зайти , ВОЗМОЖНО поможет , я не гарантирую.
-
2 часа назад, partoftheworlD сказал:
всем пользователям права сбросить, включая администрацию, пусть беспомощные по форуму скитаются.
и это сделаешь ты ?!=)))
- 1
-
В данном видео я мышкой только вожу по столу.
-
Спойлер
Вот видео , работает достаточно шустро , так ,что вполне рабочий способ
- 1
- 3
-
Часть 3
Осталась последняя часть статьи и триггер (автошот) для игры кроссфаер готов , что же нам осталось , так это только сымитировать нажатие на клавишу в игре , как мы это сделаем ?! Сделаем это с помощью функции (тут можно почитать по подробней о ней - mouse_event)
mouse_event
а что бы ей воспользоваться нам потребуется импортировать модуль
import ctypes
Теперь когда все известно напишем свою функцию и будем ее вызывать
def autoshot(): ctypes.windll.user32.mouse_event(2, 0, 0, 0, 0) time.sleep(0.1) ctypes.windll.user32.mouse_event(4, 0, 0, 0, 0)
где 2- это флаг на MOUSEEVENTF_LEFTDOWN и 4 - MOUSEEVENTF_LEFTUP .
"Подшаманив" над "пипеткой" на python можно получить вполне работоспособный скрипт :
Спойлер#------------ from pyautogui import pixel, position #Здесь и далее импортируемый модуль автоматизации ( скачивается отдельно ) from time import sleep # время (Стандартный модуль) from ctypes import windll """ О скрипте : ________________________ |Форум : GameHackLab.ru| |Автор : zeroday | |______________________| По все вопросом и пожеланиям писать на форум GameHackLab <=-- """ def autoshot(): windll.user32.mouse_event(2, 0, 0, 0, 0) sleep(0.1) windll.user32.mouse_event(4, 0, 0, 0, 0) def main():# определяем мэйн функцию while True: # цикл sleep(0.01)# задержка x, y = position()#получаем в x, y координаты мыши y+=75 x1 = x + 3 x2 = x + 6 x3 = x - 3 x4 = x - 6 r, g, b = pixel(x, y)# получаем в r, g, b цвет r1, g1, b1 = pixel(x1, y)#x1 y r2, g2, b2 = pixel(x2, y)#x2 y r3, g3, b3 = pixel(x3, y)#x3 y r4, g4, b4 = pixel(x4, y)#x4 y if b!=-1 and b1!=-1 and b2!=-1 and b3!=-1 and b4!=-1 : if r>12 : if r/3+5>g and r/3+5>b : autoshot() continue if r1>12 : if r1/3+5>g1 and r1/3+5>b1 : autoshot() continue if r2>12 : if r2/3+5>g2 and r2/3+5>b2 : autoshot() continue if r3>12 : if r3/3+5>g3 and r3/3+5>b3 : autoshot() continue if r4>12 : if r4/3+5>g4 and r4/3+5>b4 : autoshot() continue #основной код начинается ниже. if __name__=="__main__": print("________________________") print("|Форум : GameHackLab.ru|") print("|Автор : zeroday |") print("|______________________|") print("По все вопросом и пожеланиям писать на форум GameHackLab <=--") sleep(2) print("В работе ...") main()#вызываем нашу функцию.
Поговорим о плюсах :
- так как это скрипт на python , то приватным он не получится , что позволяет пользователю посмотреть и убедиться , что в скрипте нет нежелательных функций для пользователя
- скрипт работает вполне быстро (первые 5 минут, потом надо перезапустить скрипт)
- поняв алгоритм работы можете переписать код на любой другой ЯП
- при моей кривой игре скрипт позволяет занимать 1-3 место (если людей не много), но бывают кикают...
- в интернете достаточно популярен такой способ автошота (триггер-а)в игре кроссфаер
PS Грамотно подберите задержку под своё оружие и потренируйтесь на ботах
минусы :
- скрипт надо запускать от имени Администратора так как игра запускается от его имени и нажатие заработает (может есть другие легкие способы но они мне не известны)
- есть баг который со временим все больше "ест" ЦП компьютера (из-за чего приходится перезапускать скрипт) , так и не исправил , но переписал алгоритм на с++
- Триггер по пикселем полностью не надежен (ложные срабатывания и ник появляется , а цель еще не на противнике)
PSS
Вывод :
Судите сами , есть + и - , готовый триггер (автошот) на игру мы написали и вы сами можете переписать алгоритм на любой другой вами любимый ЯП.
PSSS статья писалась в помощь теме "исходники автошота с#" , приветствуется критика , отвечу на все непонятные вопросы
Upd: смотрите "Часть 2" для самостоятельного подбора Y
- 2
-
1 час назад, JustHack сказал:
Зачем наставлять людей, на заранее тупиковый путь? Создание триггера по цвету, да к тому же, для 1 конкретной игры.
создал статью специально , чтобы помочь человеку в этой теме :
-
2 часа назад, JustHack сказал:
Откуда вообще такой миф у вас с @IzerodayI
Ты меня приписал к таким людям только потому , что я решил написать статью ? Я смотрю у тебя куча вопросов ко мне , так задавай , а сейчас я отвечу на некоторые из них:
2 часа назад, JustHack сказал:читаем память = бан.
что за бред??? я так не считаю , если тебе интересно почему я начал писать статью , то вот почему:
1) Повод начать писать на python (все никак не мог придумать , что бы сделать на нем)
2) Мне понравилась тема и её реализация (чисто для себя)
3) Я реализовал и решил об этом написать статью для этой темы , чтобы помочь
2 часа назад, JustHack сказал:Триггеры по цвету, это эра динозавров.
старовато , но раз такую тему создали почему бы не помочь ?)
- 1
-
1 минуту назад, X86Jumps сказал:
а в каких играх отображается ник при наведение на врага?
В данном случае статья о игре Crossfire , может еще в каких - то есть
-
PS конец второй части , оцениваем и обсуждаем , приветствуется конструктивная критика, продолжение следует...
-
Часть 2
Вот и
долгожданноепродолжение , мы закончили на определении 5 пикселей для цвета ника, заскринив игру, определим цвет ника (для большей уверенности перенесем цвет в paint и воспроизведем цвет по полученным данным), вот ,что получилось картинка2 , теперь мы знаем , что нам искать в игре.....Так как в игре мышка не двигается (координатно на экране), то стоит найти const-ное значение от прицела игры(мышки) до ника игрока , приступим
Как я сделал :
Спойлерразрешения экрана : 1920 х 1080 разрешение игры : 800 х 600 (оконный режим)
Все
просто, в ручную , подбирал и смотрел , когда получилась так (достаточно быстро подобрал) к переменной y+=75 .К предыдущему коду добавьте это
# это было \/ x, y = pyautogui.position() #эту переменную добавить y+=75 # это было \/ x1 = x + 3 x2 = x + 6 x3 = x - 3 x4 = x - 6
получается так , что от цели игры мы прибавили(спустились вниз по экрану) по ( вертикали ) Y 75 пикселей и по ( горизонтали ) X "разошлись" влево и вправо , чтобы задетектить ник игрока
PS если у вас другое разрешение экрана можете подобрать Y методом пропорций или руками , не зря же присутствует визуальная часть программы, будите видеть все наглядно
3 этап:
Как же нам определить какого цвета ник игрока?! Вот тут передо мной возникла интересная задачка , так как мы определяем цвет пикселя , а буквы на ники могут быть разные (доказано опытным путем - программой наводил на разные ники и смотрел) , то с const-ным значением цвета ника определится было нельзя(все зависело от буквы на которую попадал пиксел и я получил в итоге все оттенки красного)...
Я вспомнил , что цвет состоит из RGB (R-красный, G-зеленый, B- синий) и я придумал как определить оттенок красного (скорее всего это было придумано до меня), если R/3+5 и проверить ,что он больше G и B , то это точно оттенок красного(нужный нам ник противника).
Добавим еще кода :
Спойлерif b!=-1 and b1!=-1 and b2!=-1 and b3!=-1 and b4!=-1 : if r>12 : if r/3+5>g and r/3+5>b : print("shot : ",graphics.color_rgb(r, g, b))
где
if b!=-1 and b1!=-1 and b2!=-1 and b3!=-1 and b4!=-1 :
защита от "плавающего" бага
if r>12:
с помощью проверки убираем возможность стрелять по голубому союзнику(нику)
if r/3+5>g and r/3+5>b :
и тут определяем оттенок ли это красного , если удачно , пишем , что имитировали нажатие по такому цвету ...
PS вот и закончилась реализация первой части программы (за 3 простых этапа) :
5 часов назад, IzerodayI сказал:1) программа обнаруживает ник противника (пиксельно)
PSS код со всеми изменениями на данном этапе
Спойлер#------------ import graphics # Здесь и далее импортируемый модуль графических примитивов(скачивается отдельно) import pyautogui #Здесь и далее импортируемый модуль автоматизации ( скачивается отдельно ) import time # время (Стандартный модуль) def main():# определяем мэйн функцию win = graphics.GraphWin("pipshot", 300, 350, autoflush=True) x, y = pyautogui.position()#получаем в x, y координаты мыши r, g, b = pyautogui.pixel(x, y)# получаем в r, g, b цвет r1, g1, b1 = pyautogui.pixel(x, y) r2, g2, b2 = pyautogui.pixel(x, y) r3, g3, b3 = pyautogui.pixel(x, y) r4, g4, b4 = pyautogui.pixel(x, y) # Рисуем круги ==================================================================================== ColorDot = graphics.Circle(graphics.Point(50, 40), 25)# создаем точку, отображающую цвет ColorDot.setFill(graphics.color_rgb(r, g, b))# устанавливает ей заливку из ранее полученных цветов ColorDot.draw(win)# рисуем на форме win ColorDot1 = graphics.Circle(graphics.Point(50, 92), 25)# 2 ColorDot1.setFill(graphics.color_rgb(r1 , g1, b1)) ColorDot1.draw(win) ColorDot2 = graphics.Circle(graphics.Point(50, 144), 25)# 3 ColorDot2.setFill(graphics.color_rgb(r2 , g2 , b2)) ColorDot2.draw(win) ColorDot3 = graphics.Circle(graphics.Point(50, 196), 25)# 4 ColorDot3.setFill(graphics.color_rgb(r3 , g3 , b3)) ColorDot3.draw(win) ColorDot4 = graphics.Circle(graphics.Point(50, 248), 25)# 5 ColorDot4.setFill(graphics.color_rgb(r4 , g4 , b4)) ColorDot4.draw(win) # Отображаем значения цветов ============================================================================= RGBtext = graphics.Entry(graphics.Point(125 , 25), 10)# создаем RGB вывод RGBtext.draw(win)# рисуем на форме win RGBstring = graphics.Entry(graphics.Point(125 , 45), 10)#создаем вывод цвета в web стиле RGBstring.draw(win)# рисуем на форме win RGBtext1 = graphics.Entry(graphics.Point(125 , 77), 10)# создаем RGB вывод RGBtext1.draw(win)# рисуем на форме win RGBstring1 = graphics.Entry(graphics.Point(125 , 97), 10)#создаем вывод цвета в web стиле RGBstring1.draw(win)# рисуем на форме win RGBtext2 = graphics.Entry(graphics.Point(125 , 129), 10)# создаем RGB вывод RGBtext2.draw(win)# рисуем на форме win RGBstring2 = graphics.Entry(graphics.Point(125 , 149), 10)#создаем вывод цвета в web стиле RGBstring2.draw(win)# рисуем на форме win RGBtext3 = graphics.Entry(graphics.Point(125 , 181), 10)# создаем RGB вывод RGBtext3.draw(win)# рисуем на форме win RGBstring3 = graphics.Entry(graphics.Point(125 , 201), 10)#создаем вывод цвета в web стиле RGBstring3.draw(win)# рисуем на форме win RGBtext4 = graphics.Entry(graphics.Point(125 , 233), 10)# создаем RGB вывод RGBtext4.draw(win)# рисуем на форме win RGBstring4 = graphics.Entry(graphics.Point(125 , 253), 10)#создаем вывод цвета в web стиле RGBstring4.draw(win)# рисуем на форме win # координаты пикселей* =================================================================== Coordstring = graphics.Entry(graphics.Point(230, 35), 10)# создаем отображение координат Coordstring.draw(win)# рисуем на форме win Coordstring1 = graphics.Entry(graphics.Point(230, 87), 10)# создаем отображение координат Coordstring1.draw(win)# рисуем на форме win Coordstring2 = graphics.Entry(graphics.Point(230, 139), 10)# создаем отображение координат Coordstring2.draw(win)# рисуем на форме win Coordstring3 = graphics.Entry(graphics.Point(230, 191), 10)# создаем отображение координат Coordstring3.draw(win)# рисуем на форме win Coordstring4 = graphics.Entry(graphics.Point(230, 243), 10)# создаем отображение координат Coordstring4.draw(win)# рисуем на форме win while True: # цикл перереисовки формы time.sleep(0.01) x, y = pyautogui.position()#получаем в x, y координаты мыши y+=75 x1 = x + 3 x2 = x + 6 x3 = x - 3 x4 = x - 6 r, g, b = pyautogui.pixel(x, y)# получаем в r, g, b цвет r1, g1, b1 = pyautogui.pixel(x1, y)#x1 y r2, g2, b2 = pyautogui.pixel(x2, y)#x2 y r3, g3, b3 = pyautogui.pixel(x3, y)#x3 y r4, g4, b4 = pyautogui.pixel(x4, y)#x4 y if b!=-1 and b1!=-1 and b2!=-1 and b3!=-1 and b4!=-1 : if r>12 : if r/3+5>g and r/3+5>b : print("shot : ",graphics.color_rgb(r, g, b)) if r1>12 : if r1/3+5>g1 and r1/3+5>b1 : print("shot1 : ",graphics.color_rgb(r1, g1, b1)) if r2>12 : if r2/3+5>g2 and r2/3+5>b2 : print("shot2 : ",graphics.color_rgb(r2, g2, b2)) if r3>12 : if r3/3+5>g3 and r3/3+5>b3 : print("shot3 : ",graphics.color_rgb(r3, g3, b3)) if r4>12 : if r4/3+5>g4 and r4/3+5>b4 : print("shot4 : ",graphics.color_rgb(r4, g4, b4)) ColorDot.setFill(graphics.color_rgb(r, g, b))#Обновляем цвет RGBtext.setText(pyautogui.pixel(x, y))#Обновляем RGB RGBstring.setText(graphics.color_rgb(r, g, b))#Обновляем web цвет ColorDot1.setFill(graphics.color_rgb(r1, g1, b1))#Обновляем цвет RGBtext1.setText(pyautogui.pixel(x1, y))#Обновляем RGB RGBstring1.setText(graphics.color_rgb(r1, g1, b1))#Обновляем web цвет ColorDot2.setFill(graphics.color_rgb(r2, g2, b2))#Обновляем цвет RGBtext2.setText(pyautogui.pixel(x2, y))#Обновляем RGB RGBstring2.setText(graphics.color_rgb(r2, g2, b2))#Обновляем web цвет ColorDot3.setFill(graphics.color_rgb(r3, g3, b3))#Обновляем цвет RGBtext3.setText(pyautogui.pixel(x3, y))#Обновляем RGB RGBstring3.setText(graphics.color_rgb(r3, g3, b3))#Обновляем web цвет ColorDot4.setFill(graphics.color_rgb(r4, g4, b4))#Обновляем цвет RGBtext4.setText(pyautogui.pixel(x4, y))#Обновляем RGB RGBstring4.setText(graphics.color_rgb(r4, g4, b4))#Обновляем web цвет Coordstring.setText(str(x)+" "+ str(y) )#Обновляем координаты Coordstring1.setText(str(x1)+" "+ str(y) )#Обновляем координаты #x1 y Coordstring2.setText(str(x2)+" "+ str(y) )#Обновляем координаты #x2 y Coordstring3.setText(str(x3)+" "+ str(y) )#Обновляем координаты #x3 y Coordstring4.setText(str(x4)+" "+ str(y) )#Обновляем координаты #x4 y win.flush()# Даем команду на перерисовку формы #основной код начинается ниже. if __name__=="__main__": main()#вызываем нашу функцию.
PSSS в теории может быть ложный выстрел , на практике не встречал
- 3
-
12 минут назад, ReWanet сказал:
В случае с твоим читом "триггер" ближе подходит
Спасибо за пояснения )
-
1 час назад, JustHack сказал:
Чуть чуть конструктивной критики вставляю, ты же не против?
Всеми руками За !
1 час назад, JustHack сказал:0. Правильнее было бы, назвать тему "Триггербот для Crossfire". Автошот, это другое немного.
был бы рад объяснению что такое автошот , реально (без сарказма)
1 час назад, JustHack сказал:1. Я на питоне не пишу, но мне кажется, что многовато кода, для простого триггербота по цвету.
это только "пипетка" для определения нужного параметра в будущем, визуально видеть лучше и все ! PS готовый код намного короче...
1 час назад, JustHack сказал:2. Почему бы сразу не выложить всю статью? Я так понимаю, сам триггербот уже готов? Или ты в-процессе пишешь? Если в-процессе, тогда это больше похоже на заметки, а не на статью.
можно было бы коротко описать всю статью , но хочется все подробно (для новичков), чтобы лишних вопросов не было , а если возникнут я с удовольствием отвечу
1 час назад, JustHack сказал:3. Хотелось бы увидеть как на практике "это" работает. Перед смертью, хоть успеваем 1 пулю врагу пустить?
есть две реализации
обе твои, одна из них на python и без лишнего кода она работает достаточно быстро =) (все впереди)1 час назад, JustHack сказал:4. Вряд ли новичкам, да и вообще, стоит писать на питоне подобное. С тем же успехом можно и на AUTOIT писать. Вот если бы статья была на C# хотя бы, другое дело.
Лол , конечно я для себя переписал алгоритм на с++ , работает как часы , смысл данной статью в том ,
как Я креативно подошел к данной задачечтобы научить новичков думать и рассуждать для решение конкретных задач на примере своих рассуждений1 час назад, JustHack сказал:5. Писать и так не очень быстрый триггербот, да еще и на питоне, который в скорости исполнения, отстает от того же C#...
Python я выбрал только потому , что хотел посмотреть на его способности и он меня впечатлил ,
не C# жеPS а вообще ЯП дело вкуса , достаточно лишь понять алгоритм работы
-
вот начал писать статью , скоро допишу
Спойлер
[Warface] Создание чита с 0
in Вопросы по взлому FPS игр
Опубликовано
начни от сюда
CE тебе не поможет