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

mrPTyshnik

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

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

  • Посещение

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

    1

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

  1. 1 минуту назад, XenonH сказал:

    У меня консольное приложение. То есть переставить?

    Создание хацка через overlay - это наложение прозначного Window(окна) на окно игры и дальнейшая разрисовка этого прозрачного окна, используя примитивы.
    Моя идея заключается в том, чтобы это прозрачное окно было всегда активным "поверх всех окон". 


    Если не могёшь дотянуться до свойств созданного тобою же окна, юзай SetWindowPos (MSDN)
    SetWindowPos(Handle, HWND_NOTOPMOST,
    Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE),

    где HWND_TOPMOST - Places the window above all non-topmost windows. The window maintains its topmost position even when it is deactivated.

    Не берусь утверждать, что это решит твою проблему, но попробовать стоит.

  2. Ты был очень близок к разгадке.
    Уже тут всё стало понятно:

     n2YnN0buodll6A.png

    Если посмотреть с другой стороны(без использования патча), то ответ на поверхности - как приложения учитывают кол-во копий?
    -Объекты ядра(Events, Mutex, Jobs).

    При запуске первого приложения, создаётся Mutex с именем "PoERunMutexA", где A - указывает, что это первая копия игры, а так же, проверяется создан ли мютекс PoERunMutexB. Если создан - значит показываем сообщение с огр. кол-ва запуска.
    nAyBP6kFYv6RXr.png

    При запуске второго, проверяется первый мютекс и создаётся второй
    zANyRBJIB5Gn52.png

    После этого, если мы попытаемся запустить третью копию - вылезет ошибка.

    Лечение:
    Закрывать PoERunMutexB или PoERunMutexA , и тогда мы сможем запускать сколько угодно копий, без патча и прочих извров.
    vAW47ebI1XNe6r.png

     

    52a8jebu4dJ5zm.png


    Примерный код реализации в игре:

    function CreateMutexEx(name: PWideChar): LongBool;
    begin
      CreateMutex(nil, false, name);
      if GetLastError = ERROR_ALREADY_EXISTS
      then Result := False
      else Result := True;
    end;
    
    begin
      if (CreateMutexEx('PoERunMutexA') = false) //первая копия запущена
      then if (CreateMutexEx('PoERunMutexB') = false) //если вторая копия запущена
      then  MessageBox(0, 'You may only run бла бла бла', 'Error', 1);
    end.

    Моего ПК хватило только на 5 копий:
    v294MyaI3kMMNm.png

    • Плюс 3
  3. В 14.06.2017 в 00:06, Esone сказал:

    Не работает,работает только инжект через папку

    MM сработает и скрытие либы в спике - тоже.(рохитаб)

    Левый пример: В PB используют Dll-связку(2 либы): одна загружает вторую, затем покидает адресное пространство.
    Вторая dll выполняет роль чита, загружаясь особым образом(MM)(кури форум античат, там как раз статья с исходом осталась), первая - только загрузчика.

    *На случай, если захочешь "прокачать свой драндулет".

  4. EAC не делает скрины, не банит за софт, запущенный в юзер моде(речь о CE, но не об отладчиках)

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

    Загрузка неподписанного драйвера через DSEfix TLD - аналогично
    Могу посоветовать ковырять способы загрузки неподписанных драйверов на Win Vista/ 7 - на этих осях несколько умельцев смогли загрузить неподписанные дрова и не получили детект.

  5. Как это делал я после нескольких неудач:

    Поставил против себя бота, в своё тиме я тоже один

    Подрубил "супер возможности":

    sv_cheats 1

    noclip 1

     

    Заблокировал ботов, чтобы не бегали далеко:

    bot_freeze 1

    bot_flipout 1

     

    И поехало...

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

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

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

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