Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2011, 15:26   #1
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
Восклицание Пишу античит для игры

Привет всем. Создаю античит для определенной игры. Достиг в этом больших успехов. Работает античит по системе Клиент-Сервер. Сделал обнаружение модифицированных файлов (не по размеру файла, а по начинке), шифровку пакетов, стабильную работу, интегрировал античит в игру, такчто теперь он действительно работает и кикает нечестных игроков, но вот самая насущная проблема это трейнеры. Сделал поиск по названию программы, это работает, но такая защита смехотворна. Как можно реализовать защиту от такого вида читов, хотябы от внедрения Cheat Engine и Art-Money? Буду очень благодарен и ставить плюсы!
Каждый день узнаю новое...

Последний раз редактировалось Anton911; 19.12.2011 в 15:28.
Anton911 вне форума Ответить с цитированием
Старый 19.12.2011, 15:37   #2
Noor
Участник клуба
 
Аватар для Noor
 
Регистрация: 01.11.2006
Сообщений: 1,082
По умолчанию

А защиту от инжекта?
И может делать проверку наличия Cheat Engine и Art-Money не по названию программы, а по классу и имени одного из дочерних окон (по кнопке или по списку) имя файла можно поменять, в вот имя и класс компонента врятли
Noor вне форума Ответить с цитированием
Старый 19.12.2011, 15:51   #3
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Noor Посмотреть сообщение
А защиту от инжекта?
И может делать проверку наличия Cheat Engine и Art-Money не по названию программы, а по классу и имени одного из дочерних окон (по кнопке или по списку) имя файла можно поменять, в вот имя и класс компонента врятли
Да именно, защиту от инжекта. Мне бы реализовать хотябы защиту от одного вида внедрения, с остальными я уже сам разберусь.
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 20.12.2011, 03:14   #4
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

И еще, возможноли узнать список подгруженных dll в указанный процесс?
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 20.12.2011, 06:01   #5
yuran666666
Форумчанин
 
Аватар для yuran666666
 
Регистрация: 23.04.2009
Сообщений: 346
По умолчанию

Возможно. Тулхелп+ФиндФирст/НекстМодуль
Нет, ну правда..
yuran666666 вне форума Ответить с цитированием
Старый 20.12.2011, 13:35   #6
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Посмотрите пожалуйства, вот нашел в интернете функцию поиска dll.

Код:
function TForm1.GetLoadedDLLList(sl: TStrings;
  Options: TModuleOptions = [moRemovePath]): Boolean;
type
  EnumModType = function (hProcess: Longint; lphModule: TModuleArray;
  cb: DWord; var lpcbNeeded: Longint): Boolean; stdcall;
var
  psapilib: HModule;
  EnumProc: Pointer;
  ma: TModuleArray;
  I: Longint;
  FileName: array[0..MAX_PATH] of Char;
  S: string;
begin
  Result := False;

  (* Данная функция запускается только для Widnows NT *)
  if Win32Platform <> VER_PLATFORM_WIN32_NT then
    Exit;

  psapilib := LoadLibrary('psapi.dll');
  if psapilib = 0 then
    Exit;
  try
    EnumProc := GetProcAddress(psapilib, 'EnumProcessModules');
    if not Assigned(EnumProc) then
      Exit;
    sl.Clear;
    FillChar(ma, SizeOF(TModuleArray), 0);
    if EnumModType(EnumProc)(GetCurrentProcess, ma, 400, I) then
    begin
      for I := 0 to 400 do
        if ma[i] <> 0 then
        begin
          FillChar(FileName, MAX_PATH, 0);
          GetModuleFileName(ma[i], FileName, MAX_PATH);
          if CompareText(ExtractFileExt(FileName), '.dll') = 0 then
          begin
            S := FileName;
            if moRemovePath in Options then
              S := ExtractFileName(S);
            if moIncludeHandle in Options then
              sl.AddObject(S, TObject(ma[i]))
            else
              sl.Add(S);
          end;
        end;
    end;
    Result := True;
  finally
    FreeLibrary(psapilib);
  end;
end;
Как переделать этот код, чтобы он искал список длл в процессе, который ищется по названию окна.
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 20.12.2011, 13:46   #7
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Сменить заголовок главного окна ?
Guy вне форума Ответить с цитированием
Старый 20.12.2011, 14:43   #8
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Можетбыть я неправильно выразился. Процесс, который ищется по заголовку главного окна, который известен заранее, допустим "Test Game".
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Старый 20.12.2011, 15:29   #9
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Нет это я не по коду говорю, а как бороться с тренерами. Сменить верней не заголовок А Имя главного окна. Ну и заголовок заоодно. Тренер ищущий хендл окна по имени просто не найдёт окно. Для понимаю Текст главного окна является его заголовком
Guy вне форума Ответить с цитированием
Старый 20.12.2011, 17:09   #10
Anton911
Форумчанин
 
Аватар для Anton911
 
Регистрация: 23.08.2011
Сообщений: 171
По умолчанию

Цитата:
Сообщение от Guy Посмотреть сообщение
Нет это я не по коду говорю, а как бороться с тренерами. Сменить верней не заголовок А Имя главного окна. Ну и заголовок заоодно. Тренер ищущий хендл окна по имени просто не найдёт окно. Для понимаю Текст главного окна является его заголовком
Да, но такая проблема, что я защищаю не свою игру а чужую, а для этой чужой игры столько гадости читерской существет, просто немыслимо. Для начала я думал проверять процесс игры на наличие сторонних ("читерских") библиотек (длл).
Каждый день узнаю новое...
Anton911 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пишу макрос для экселя Alinka-malinka HTML и CSS 0 17.08.2011 10:55
подредактировать античит к игре игре Nhl 09 (античит написан на дельфи) Viper18 Фриланс 3 03.08.2011 17:37
Пишу программу для рассылки kakawkin Работа с сетью в Delphi 8 19.07.2010 10:01
Античит для кс + делфи :) Pirotexnik Общие вопросы Delphi 1 26.03.2009 20:02
пишу плагин для IExplorer`а good3p Общие вопросы .NET 1 23.04.2008 17:54