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

Blackdots

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

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

  • Посещение

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

  1. On 5/20/2017 at 10:53 PM, Laziz said:

    Да, он умеет выводит MessageBox но, он в целом внедряет .NET в программу а эта не только MessageBox.

    Больше дело меньше разговора как говорится, кто та хукнул уже DX9, DX10, DX11 или DX12?

    То, что ты описал, делается без проблем без лишних библиотек.
    Да, на C#

  2. 22 hours ago, uhx said:

    Так хуки обычно и делаются, если что.

    Я уже кидал скриншоты где-то какой хук ставит стимовский оверлей - там то же самое. Он эти байты переносит в отдельное место и дополняет их прыжком на hooked_func+5. С таким хуком не надо делать ничего.

    Смысл переносить все байты, если можно просто записать прыжок\вызов на свою функцию?

  3. 7 minutes ago, uhx said:

    лол. ну а это не является записью, что ли:

    и тогда уж проще найти девайс и поставить хук в его виртуальной таблице, не?

    Я же сказал, что с EndScene это еще нормально, но такой хук сам по себе очень плохой.

    Первое - их можно обойти. Второе - никто и никогда не проверяет EndScene на "целостность", потому что любая записывающая видеоролики программа способна поставить хук на эту функцию.

    Я имею ввиду, что "психануть и побайтово записывать функцию" - лишнее.

    Четвёртое, я об этом и говорю, что если изменить вызов игры на EndScene - проверка кода сработает, а если заменить сам EndScene (как я описал) то проверка не сработает

     

    P.S. в смысле хук в виртуальной таблице? Она хранит только адреса

  4. 33 minutes ago, uhx said:

    Такой способ не очень хорош. Постоянно перезаписывать функцию - очень и очень фигово. В случае с EndScene может и нормально, потому что в принципе только один поток вызывает эту функцию, но если это какая-нибудь APIшка которую могут использовать разные потоки - то тебе хана. Лучше сделать как сказал keng

    Не могу себе представить, что endscene будут вызывать разные потоки

    Можно найти call EndScene в самой игре и заменить её на call HookedEndScene и уже самому вызывать оригинал без перезаписей и тд, но в игре могут быть проверки девственности кода.

    Кстати, побайтово в игру ничего записывать не нужно, это полный бред, достаточно записать указатель на свою функцию

  5. 22 hours ago, keng said:

    Тогда я бы посмотрел на пример кода.

    Quote

            public static int HookedEndScene(IntPtr pointer)
            {
                using(var device = Device.FromPointer(pointer))
                {

                    // Risuem))))

                    hook.UnsetJump();
                    int toret = device.EndScene().Code;
                    hook.SetJump();

                    return toret;
                }
            }

     

  6. On 4/23/2017 at 11:14 AM, keng said:

    Я предположу, что даже у unsafe функции будет пролог, так что не совсем понятно, куда пихать начало старой EndScene после записи вместо него перехода на хук. Можно, конечно, психануть и все руками написать - выделить место, записать туда код побайтово, а затем использовать это как функцию. Проблема, в общем, в том, что нельзя сделать declspec naked в шарпе.

    Ошибаешься, базоыве знания C#.

    А "старый EndScene" никуда пихать не надо

    Делаешь jmp на свой EndScene, рисуешь, убираешь прыжок, вызываешь старый EndScene, ставишь прыжок обратно.

  7. 14 hours ago, partoftheworlD said:

    Это очень просто, хотя документации очень мало лишь та, что на F1 в IDA и всего 3 или 4 примера использования.

    Я тоже удивлён как на такой известный отладчик || декомпилятор нету нормальной документации и уроков, но из всего функционала мне хватает только псевдокод и названия переменных && функций.

    Я уже "декомпилировал" минимум 40% всей игры, но по видимому зря т.к. после обновы всё пропадёт, интересно же находить необычные баги для чита.

  8. 1 minute ago, partoftheworlD said:

     

    На всякий случай сделай копию базы перед эксперементами, мало ли что.

    А есть плагин который за меня сделает сигнатуры, и потом их заново найдёт? Если да, то как он называется?

  9. Всем привет, ревершу игру, уже достаточно много чего интересного смог найти с помощью IDA PRO, уже дал названия многим функциям.

    Проблема - после обновления игры оно 100% слетит, по понятным причинам.

    Вопрос - как после обновления автоматически всё восстановить?
    В голову приходит только заранее готовить сигнатуры и после обновления делать аобскан.

    Спасибо!

  10. Если что, то все топовые читы на КСГО хукают не д3д, а отрисовки самого движка, то есть включают Source SDK в свой чит и с его помощью рисуют.

    На сколько я смог понять, в source sdk есть некая оболочка на д3д, которую они хукают, но это только что лично я смог понять т.к. не интересовался и не ковырял.

     

    В чём разница хукать endscene или present?

    Cheat Engine хукает present, там есть функция д3д хука

     

    И да, вак не палит д3д хук, по крайней мере я хукаю endscene на C# и никаких vac, untrusted и тд не ловил.

  11. В общем, ничего на нашёл.

    Обговорили с человеком и остановились на том, что это не винформа, а очень сильно похожая менюшка на д3д.

    Так же если кликнуть на иконку на верху слева (на окне) то не появляется меню, хотя должно.

  12. Just now, keng said:

    Вот кроме шуток, объясни мне, пожалуйста, какой смысл в том, чтобы использовать managed-среду (C#) для таких вот извращений?

    А почему бы и нет?)

    Лично для меня C# читается и пишется на много проще, чем C++ да и по каким-то причинам я не хочу писать ни на чём кроме C#, но это уже личное.

    Во-вторых, могу с уверенностью сказать, что перехватывать и вызывать функции игры на C# не сложнее, чем на C++

    Мелкая обфускация и античиты а-ля VAC отпадают

    На счёт скорости: пока-что не проверял, но по скольку .NET при запуске переводится в машинный код, не думаю, что эта разница в производительности будет существенно сказываться.

    Иии.. то ощущение.

     

    Вопрос знающим: WPF по-сути рисуется с помощью D3D, в теории должно быть возможно нарисовать WPF форму внутри д3д игры, сейчас буду делать reasearch по этому поводу, но если есть кто вкурсе как это реализовать - прошу.

  13. 6 minutes ago, partoftheworlD said:

     

    Ещё скажи что хендл нулевой задавал и ждал появления окна.

    Нет, я говорил, что окно появляется, но его не видно, курсор при навидении на край невидимого окна (в полноэкранной игре) меняется (т.е. resize) при попытке кликнуть или изменить размер окна которое и так не видно, игра сворачивается.

    ЗЫ. Не стоит считать, что я не знаю что я делаю или говорю, 90% людей скажут, что реализовать d3d hook на чистом C# без оболочки C++ или чего-то там ещё невозможно, у меня хук на чистом C# без лишних библиотек а-ля EasyHook и без ассемблерных вставок. Я хочу узнать каким способом автор данного софта реализовал Winform внутри игры 

  14. 23 минуты назад, keng сказал:

    Я открою, возможно, страшную тайну, но "полноэкранный режим" - это окно с активной областью размером с весь экран. Почитай в MSDN про стили окон в Windows при их создании, там много интересных вещей связанных как с фокусом, так и с отрисовкой самих окон. 

    Кенг, я уже пытался сделать свою форму дочерней окна игры, делал форму передней (TopMost) но без результатов

    З.Ы. делал я без внедрения в игру, или нужно создавать окно будучи в игровой памяти? (т.е. инжектить свою библиотеку)

    Скрытый текст
    
    [DllImport("user32.dll", SetLastError = true)]
            static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    
            public Form1()
            {
                InitializeComponent();
    
                Process p = Process.GetProcessesByName("csgo")[0];
    
                SetParent(this.Handle, p.MainWindowHandle);
    
                new Thread(DoWork) { IsBackground = true }.Start();
            }
    
            private void DoWork()
            {
                while(true)
                {
                    Invoke(new Action(() =>
                    {
                        TopMost = true;
                    }));
                    Thread.Sleep(1);
                }
            }

     

    // В угол по видимому не достаточно, читаем правила форума и фак, переделывать каждое сообщение на форуме у меня нет ни времени, ни желания. На первый раз устное предупреждение. Garik66

  15. 51 minutes ago, Garik66 said:

    На видео я жму Alt Tab и, если ты жмёшь эти же клавиши, то конечно игра будет сворачиваться. Трейнер на видео не дописан, поэтому я и запускал игру в оконном режиме.

    Видео снято, что бы подтвердить, что на видео, который ты привёл в пример, не d3d9 hook.

     

    Допустим, там не д3д хук, каким тогда образом форма появляется в полноэкранном режиме? Я много раз пробовал делать overlay, но из моего опыта просто overlay не работает в полном экране, надо запускать игру в окне.

    Я могу записать на телефон, что такой способ не работает

  16. 6 часов назад, Garik66 сказал:

    Это точно не: 

     

    Только что ещё раз попробовал таким методом, окно как-бы есть, если навести на него курсор то он будет меняться, но самого окна не видно и при клике игра сворачивается

     "В угол" . Garik66

     

  17. Спасибо за ответы, на сколько я знаю, обычный d3d overlay не будет работать если игру запустить в полноэкранном режиме (не fullscreen windowed, a fullscreen) или я ошибаюсь?

    Все CS:GO читы которые я видел работают так-же и в полноценном фулскрине

  18. Всем привет! Недавно реализовал полноценный d3d9 hook на C#

    Теперь у меня стоит следующий вопрос - каким образом можно нарисовать Windows Form в D3D9 игре?

    Это не какой-то там topmost, работает даже в полноэкранном режиме.

    Пример на видео с 1:20 (видео не моё)

     

     

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

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

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