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

нужен движок для трейнера для Delphi XE с AOB Scan

Рекомендуемые сообщения

Мне нужен исходник любого трейнера написаный на Delphi XE с использованием AOB Scan
либо модули для создания читов на Delphi XE
если у вас завалялся какой то исходник или модули, и вам не жалко их вылаживать

то тогда скиньте мне????
за ранее спасибо

Мне нужны такие модули:
memoryscan.pas

Cheats Holder FULL.pas
uMSE.pas (не .dcu)

Изменено пользователем Nanark

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что, по-твоему, делают модули 

Cheats Holder Full и uMSE?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Cheats Holder FULL - это такой типо модуль для защиты сигнатур, чтобы небыло так просто достать сигнатуры с чита
а uMSE это модуль для сканирования памяти
и memoryscan тож сканирует память ток уже быстрее, тоесть лучьше чем uMSE

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 минут назад, Nanark сказал:

Cheats Holder FULL - это такой типо модуль для защиты сигнатур, чтобы небыло так просто достать сигнатуры с чита

Элементарное xor шифрование - и все, сигнатуры из чита не достать. По крайней мере, просто не достать. Если постараться - достать можно, конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Спойлер

unit CheatsHolder_FULL;

interface

uses
  Winapi.TlHelp32, System.StrUtils, ShellApi,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

procedure AntiScanCE_Start();
function AntiSpy: Boolean;
function CryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;
function DeCryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;

implementation

var
 poisk: string;

function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
Result := (0 = ShFileOperation(fos));
end;

function GetWin(Comand: string): string;
var
  buff: array [0 .. $FF] of char;
begin
  ExpandEnvironmentStrings(PChar(Comand), buff, SizeOf(buff));
  Result := buff;
end;

procedure AntiScanCE_Start();
var
  Dir: string;
  searchResult: TSearchRec;
  lines: TSTringList;
  poisk: string;
  I: Integer;
begin
  try

      poisk := GetWin('%AppData%');
      poisk := Copy(poisk, Pos('', poisk) + 0, Pos('\Roaming', poisk) - Pos('', poisk) - 1);
      poisk := (poisk) + '\Local\Temp\Cheat Engine';
      DelDir(poisk);
      CreateDir(poisk);

      if Lines.Strings[2] = '' then
      else  Halt;

      Lines := TSTringList.Create;
      begin
        lines.Clear;
        SetCurrentDir(poisk);
        if FindFirst('*.*', faAnyFile, searchResult) = 0 then
        begin
          repeat
            Lines.Add(searchResult.Name);
              if Lines.Strings[2] = '' then
              begin
               Halt;
              end
              else
              begin
                Halt;
              end;
          until FindNext(searchResult) <> 0;
            FindClose(searchResult);
        end;
      end;
      Lines.Free;
  except
  end;
end;

function CryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;
var
  i, q: Integer;
begin
  for i := 1 to Length(Signa) do
    begin
      q := (Ord(Signa[i]) + (Ord(CryptBuffer[(Pred(i) mod Length(CryptBuffer)) + 1]) - Ord('0')));
        if q >= 256 then Dec(q, 256);
      Signa[i] := Chr(q);
      Result := Signa;
    end;
end;

function DeCryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;
var
  i, q: Integer;
begin
  for i := 1 to Length(Signa) do
    begin
      q := (Ord(Signa[i]) - (Ord(CryptBuffer[(Pred(i) mod Length(CryptBuffer)) + 1]) - Ord('0')));
        if q < 0 then Inc(q, 256);
      Signa[i] := Chr(q);
      Result := Signa;
    end;
end;

function IsDebuggerPresent(): boolean; stdcall; external 'kernel32.dll';



function breakpoint(const addr: Pointer): Boolean;
begin
  try
    Result := (PByte(addr)^ = $CC) or (PByte(addr)^ = $E9) or (PByte(addr)^ = 104);
  except
    Result := True;
  end;
end;

function IsHacked: Boolean;
begin
  Result := breakPoint(GetProcAddress(GetModuleHandle('kernel32.dll'), 'WriteProcessMemory'));
end;

function AntiSpy: Boolean;
begin
  if IsHacked then
  begin
  SHowMessage('Bitch, off you soft!');
    {Halt;
    Application.Terminate;}
  end;
end;


end.


{
function IsBreakOnFunc(Address : Pointer):BOOL;
begin

try
  Result :=  (Pbyte(Address)^ = $CC) or (Pbyte(Address)^ = $CD)
  or (Pbyte(Address)^ = $CE) or (PByte(Address)^ = $E9) or (PByte(Address)^ = 104);
except
  Result := True;
end;

end;                                                    //


procedure CheckMyFunc(Libname, Funcname: PWideChar);
begin
VM_TIGER_RED_START();
  if IsBreakOnFunc(GetProcAddress(GetModuleHandle(Libname), Funcname)) then
  TerminateProcess(GetCurrentProcess, 0);
VM_TIGER_RED_END();
end;
}

 

 

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 22.06.2018 в 14:11, mrPTyshnik сказал:
  Скрыть контент


unit CheatsHolder_FULL;

interface

uses
  Winapi.TlHelp32, System.StrUtils, ShellApi,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;

procedure AntiScanCE_Start();
function AntiSpy: Boolean;
function CryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;
function DeCryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;

implementation

var
 poisk: string;

function DelDir(dir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_DELETE;
    fFlags := FOF_SILENT or FOF_NOCONFIRMATION;
    pFrom := PChar(dir + #0);
  end;
Result := (0 = ShFileOperation(fos));
end;

function GetWin(Comand: string): string;
var
  buff: array [0 .. $FF] of char;
begin
  ExpandEnvironmentStrings(PChar(Comand), buff, SizeOf(buff));
  Result := buff;
end;

procedure AntiScanCE_Start();
var
  Dir: string;
  searchResult: TSearchRec;
  lines: TSTringList;
  poisk: string;
  I: Integer;
begin
  try

      poisk := GetWin('%AppData%');
      poisk := Copy(poisk, Pos('', poisk) + 0, Pos('\Roaming', poisk) - Pos('', poisk) - 1);
      poisk := (poisk) + '\Local\Temp\Cheat Engine';
      DelDir(poisk);
      CreateDir(poisk);

      if Lines.Strings[2] = '' then
      else  Halt;

      Lines := TSTringList.Create;
      begin
        lines.Clear;
        SetCurrentDir(poisk);
        if FindFirst('*.*', faAnyFile, searchResult) = 0 then
        begin
          repeat
            Lines.Add(searchResult.Name);
              if Lines.Strings[2] = '' then
              begin
               Halt;
              end
              else
              begin
                Halt;
              end;
          until FindNext(searchResult) <> 0;
            FindClose(searchResult);
        end;
      end;
      Lines.Free;
  except
  end;
end;

function CryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;
var
  i, q: Integer;
begin
  for i := 1 to Length(Signa) do
    begin
      q := (Ord(Signa[i]) + (Ord(CryptBuffer[(Pred(i) mod Length(CryptBuffer)) + 1]) - Ord('0')));
        if q >= 256 then Dec(q, 256);
      Signa[i] := Chr(q);
      Result := Signa;
    end;
end;

function DeCryptSign(Signa: string; const CryptBuffer: String = 'MonsterByte'): String;
var
  i, q: Integer;
begin
  for i := 1 to Length(Signa) do
    begin
      q := (Ord(Signa[i]) - (Ord(CryptBuffer[(Pred(i) mod Length(CryptBuffer)) + 1]) - Ord('0')));
        if q < 0 then Inc(q, 256);
      Signa[i] := Chr(q);
      Result := Signa;
    end;
end;

function IsDebuggerPresent(): boolean; stdcall; external 'kernel32.dll';



function breakpoint(const addr: Pointer): Boolean;
begin
  try
    Result := (PByte(addr)^ = $CC) or (PByte(addr)^ = $E9) or (PByte(addr)^ = 104);
  except
    Result := True;
  end;
end;

function IsHacked: Boolean;
begin
  Result := breakPoint(GetProcAddress(GetModuleHandle('kernel32.dll'), 'WriteProcessMemory'));
end;

function AntiSpy: Boolean;
begin
  if IsHacked then
  begin
  SHowMessage('Bitch, off you soft!');
    {Halt;
    Application.Terminate;}
  end;
end;


end.


{
function IsBreakOnFunc(Address : Pointer):BOOL;
begin

try
  Result :=  (Pbyte(Address)^ = $CC) or (Pbyte(Address)^ = $CD)
  or (Pbyte(Address)^ = $CE) or (PByte(Address)^ = $E9) or (PByte(Address)^ = 104);
except
  Result := True;
end;

end;                                                    //


procedure CheckMyFunc(Libname, Funcname: PWideChar);
begin
VM_TIGER_RED_START();
  if IsBreakOnFunc(GetProcAddress(GetModuleHandle(Libname), Funcname)) then
  TerminateProcess(GetCurrentProcess, 0);
VM_TIGER_RED_END();
end;
}

 

 

 

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

 

 

покажите пожалуйста пример того как им зашифровать сигнатуры ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, Ярослав сказал:

где взять Winapi.TlHelp32.pas-dcu ?? 

Какая версия Delphi?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 часов назад, Xipho сказал:

Какая версия Delphi?

7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, Ярослав сказал:

7

Тогда нужно просто подключать TlHelp32, без WinAPI. Выше указана нотация для более свежих версий Delphi.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

фото вот как этом модулём зашифровать сигнатуры ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Ярослав сказал:

фото вот как этом модулём зашифровать сигнатуры ?

 

На фото ничего не разглядеть, приложи, пожалуйста, нормального размера.

 

Спойлер

2C09FFeJO4o.jpg

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, srg91 сказал:

 

На фото ничего не разглядеть, приложи, пожалуйста, нормального размера.

 

  Показать контент

2C09FFeJO4o.jpg

 

 

На фото было просто показано что при декомпиляции программы сигнатуры были в обычном виде,  вопрос как их зашифровать ?? ведь этот модуль должен как-то их шифровать ? или для чего он тогда ? Cheats Holder FULL

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, Ярослав сказал:

что при декомпиляции программы сигнатуры были в обычном виде,  вопрос как их зашифровать ??

Может стоит разобраться для начала как компилируется программа? Подобные вопросы вызывают у меня ужас.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, partoftheworlD сказал:

Может стоит разобраться для начала как компилируется программа? Подобные вопросы вызывают у меня ужас.

Извините, я не где не нашол информации про этот модуль, не могли бы вы написать инструкцию как им пользоваться ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 минут назад, Ярослав сказал:

Извините, я не где не нашол информации про этот модуль, не могли бы вы написать инструкцию как им пользоваться ?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
uses CheatsHolder_FULL;

begin
	WriteLn( CryptSign('90 90 90 90 90 90 90 90 90', 'AnyConst'));//получаем шифрованное значение - JniLo^|t1wy3xnc}A^?C_wsdJn
	
	//расшифровываем:
	WriteLn( DecryptSign('JniLo^|t1wy3xnc}A^?C_wsdJn', 'AnyConst'));//выведет 90 90 90 90 90 90 o0 90 90
	ReadLn;
end.


в реальном трейнере необходимо оставить только часть которая расшифровывает сигнатуру(строку):

uses CheatsHolder_FULL;

 
begin
	WriteLn( DecryptSign('JniLo^|t1wy3xnc}A^?C_wsdJn', 'AnyConst'));//вывод на экран 90 90 90 90 90 90 o0 90 90
    ReadLn;
end.


DecryptSign с байтами FF FF работает некорректно, в расшифрованной строке аномалии(если будешь использовать, придется фиксить)
Ну и приглядитесь к выводу "90 90 90 90 90 90 o0 90 90" 😅

Изменено пользователем mrPTyshnik
правка текста2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

×

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

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