Перейти к содержанию

IzerodayI

Пользователи+
  • Постов

    277
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные IzerodayI

  1. 3 часа назад, seilormoon сказал:

    нашёл я допустим указатель на класс игрока, что дальше?!

    Смотреть структуру игрока в ReClass 

     

    3 часа назад, seilormoon сказал:

    а по русски?!

    вот тут все написано , какой статью раз кинуть , что бы ты ее заметил ??

    Движок у этих игр одинаковый , так , что  результат должен быть похожим 

  2. 3 минуты назад, seilormoon сказал:

    Что такое приставка m_

     

    9 часов назад, Xipho сказал:

    Это строки, которые встречаются в анализируемом файле. Это могут быть как названия функций/методов, так и названия параметров в структурах/классах.

    как программисты написали , так и видно....

  3. 13 минут назад, seilormoon сказал:

    я как понял дамп dll

    потом дамп в IDA pro открываешь и смотришь

     

    3 минуты назад, seilormoon сказал:

    Я даже не знаю что такое IAT info и что туда вписывать!

    надо просто нажать на кнопку и все 

    15 минут назад, seilormoon сказал:

    я как понял дамп dll

    да тут же все написано , что делать с дампом. Ты точно читал ?)

  4. 1 час назад, seilormoon сказал:

    Я не особо понял как это сделать!!!

    Если ты про дамп dll для будущего анализа , то помойму так : https://pastenow.ru/e3cf0a282f803e2722a639f87805d877 

    так же есть пару тем , которые могут помочь: (тут про дамп другой утилитой(но все таки scala лучше))

     

    3 часа назад, seilormoon сказал:

    Где здесь найти "найдем адрес начала модуля client.dll"?

     

    Так же можно присоединиться к игре , заходишь в отладочные символы и ищешь dll 

     

     

    PS тебе выше кидали тему(которая тебе может помочь, почитай) в которой есть ссылка на эту тему , тоже полезная информация , посмотри

     

     

  5. 15 минут назад, partoftheworlD сказал:

    лучше использовать мануал мапинг

    это же при internel ? (вроде)

    15 минут назад, partoftheworlD сказал:

    селф ремапинг.

    что-то новое )

    20 минут назад, partoftheworlD сказал:

    то придется все винапи которые будешь использовать переписывать

    переписывать -  это обращаться к ним через GetProcAddres (подгрузив до этого либу , откуда берется функция)?(можно по подробней)

    22 минуты назад, partoftheworlD сказал:

    C помощью хешей как малвари/руткиты делают.

    это как ?  Хеш (вроде) рассчитывается из какого-то известного значения  ? 

  6. 19 минут назад, JustHack сказал:

    А если у него, к этому железу, еще то-то привязано,

    можно обратно все восстановить

    19 минут назад, JustHack сказал:

    Есть другие, 100% способы снять бан по хвид

     все самое интересное утаишь?:P(шутка) 

     

  7.  

    Хочу реализовать externel чит на игру и возникли вопросы по реализации:

    1) как стоит вызывать две функции OpenProcces и ReadProccesMemory ?

       Если их вызывать в явном виде , то античит может обнаружить вызов этой функции , тогда может стоит вызывать эти функции не явно (через GetProcAddres)? 

    Что если получить OpenProcces через другой поток (CreateThr)? будет лучше, чем в явном виде ?

       Также античит будер реагировать если я буду пользоваться функцией через адрес (это одно и тоже , что и через GetProcAddres)?

    Может есть функции , за которыми античит VAC не следит(выполняющие те же действия как OpenProcces  и ReadProccesMemory(возможно похожие)) 

       Может ли VAC отследить постороннее окно над игрой ? 

    PS благодарю за ответы!

  8. Если я правильно понял , то запрет сервера скорее всего определяется по железу компьютера (Бан по HWID) и его можно обойти поменяв у всего железа "адреса"  , таких программ в интернете много , но универсальной подсказать не могу , вот к примеру ID Blaster 2.0 или CCtools , после этого желательно снести игру и почистить все CCleaner (чтобы игра ничего своего не сохранила), потом заново установить игру ("поменяв" все железо)  и зайти , ВОЗМОЖНО поможет , я не гарантирую.

  9.  

    Часть 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 статья писалась в помощь теме "исходники автошота с#" , приветствуется критика , отвечу на все непонятные вопросы B)

     

     

     

    Upd: смотрите "Часть 2" для самостоятельного подбора Y 

    • Понравилось 2
  10. 2 часа назад, JustHack сказал:

    Откуда вообще такой миф у вас с @IzerodayI

    Ты меня приписал к таким людям только потому , что я решил написать статью ? Я смотрю у тебя куча вопросов ко мне , так задавай , а сейчас я отвечу на некоторые из них: 

    2 часа назад, JustHack сказал:

    читаем память = бан.

    что за бред??? я так не считаю , если тебе интересно почему я начал писать статью , то вот почему:

    1) Повод начать писать на python (все никак не мог придумать , что бы сделать на нем)

    2) Мне понравилась тема и её реализация (чисто для себя)

    3) Я реализовал и решил об этом написать статью для этой темы , чтобы помочь

    2 часа назад, JustHack сказал:

    Триггеры по цвету, это эра динозавров.

    старовато , но раз такую тему создали  почему бы не помочь ?)

    • Понравилось 1
  11.  

    Часть 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 методом пропорций или руками , не зря же присутствует визуальная часть программы, будите видеть все наглядно :ph34r: 

    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. 1 час назад, JustHack сказал:

    Чуть чуть конструктивной критики вставляю, ты же не против? :D

    Всеми руками За ! B)

    1 час назад, JustHack сказал:

    0. Правильнее было бы, назвать тему "Триггербот для Crossfire". Автошот, это другое немного.

    был бы рад объяснению что такое автошот , реально (без сарказма)

    1 час назад, JustHack сказал:

    1. Я на питоне не пишу, но мне кажется, что многовато кода, для простого триггербота по цвету.

    это только "пипетка" для определения нужного параметра в будущем, визуально видеть лучше и все ;) ! PS готовый код намного короче...

    1 час назад, JustHack сказал:

    2. Почему бы сразу не выложить всю статью? Я так понимаю, сам триггербот уже готов? Или ты в-процессе пишешь? Если в-процессе, тогда это больше похоже на заметки, а не на статью.

    можно было бы коротко описать всю статью , но хочется все подробно (для новичков), чтобы лишних вопросов не было ,  а если возникнут я с удовольствием отвечу :D

    1 час назад, JustHack сказал:

    3. Хотелось бы увидеть как на практике "это" работает. Перед смертью, хоть успеваем 1 пулю врагу пустить?

    есть две реализации обе твои  , одна из них на python  и без лишнего кода она работает достаточно быстро =) (все впереди) 

    1 час назад, JustHack сказал:

    4. Вряд ли новичкам, да и вообще, стоит писать на питоне подобное. С тем же успехом можно и на AUTOIT писать. Вот если бы статья была на C# хотя бы, другое дело.

    Лол , конечно я для себя переписал алгоритм на с++ , работает как часы B) , смысл данной статью в том , как Я креативно  подошел к данной задаче  чтобы научить новичков думать и рассуждать для решение конкретных задач на примере своих рассуждений 

    1 час назад, JustHack сказал:

    5. Писать и так не очень быстрый триггербот, да еще и на питоне, который в скорости исполнения, отстает от того же C#...

     Python я выбрал только потому , что хотел посмотреть на его способности и он меня впечатлил , не C# же  

    PS а вообще ЯП дело вкуса , достаточно лишь понять алгоритм работы :ph34r:

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.