-
Постов
232 -
Зарегистрирован
-
Посещение
-
Победитель дней
29
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные DenkA003
-
-
В общем снова пример нужно искать в гугле как и всегда )))
-
мм я только намекну куда можно копать чтобы обойти защиту
E:\Games\Black Desert\live\Paz
Имя.PAZ
а дальше сами ))))
-
Всем привет !! Нужна ваша помощь )))
Как выделить в чужом процессе свободное пространство как это делает функция AllocMem ?
А то получается создать свободное пространство только в своем процессе ((
Delphi. Функция AllocMem( Size: Cardinal ): Poiner;Модуль: SysUtilsОписаниеФункция выделяет на куче блок памяти размером Size байт, заполняет его нулями и возвращает указатель на начало блока.
-
Сам использую функцию
function G_Base(ProcessID: Cardinal; MName: String): Pointer; var Modules : Array of HMODULE; cbNeeded, i : Cardinal; ModuleInfo : TModuleInfo; ModuleName : Array[0..MAX_PATH] of Char; PHandle : THandle; begin Result := nil; SetLength(Modules, 1024); PHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, False, ProcessID); if (PHandle <> 0) then begin EnumProcessModules(PHandle, @Modules[0], 1024 * SizeOf(HMODULE), cbNeeded); SetLength(Modules, cbNeeded div SizeOf(HMODULE)); for i := 0 to Length(Modules) - 1 do begin GetModuleBaseName(PHandle, Modules[i], ModuleName, SizeOf(ModuleName)); if AnsiCompareText(MName, ModuleName) = 0 then begin GetModuleInformation(PHandle, Modules[i], @ModuleInfo, SizeOf(ModuleInfo)); Result := ModuleInfo.lpBaseOfDll; CloseHandle(PHandle); Exit; end; end; end; end;
Применить :
varGAME_BasseAdress : Cardinal;ProcessId : Cardinal;beginTERA_BasseAdress := $0+Ulong(G_Base(ID процесса, 'Название файла .dll или .exe '));//TERA_BasseAdress := $0+Ulong(G_Base(ProcessId, 'TERA.exe'));ShowMessage(IntToStr('$'+TERA_BASSEADRESS));end;
-
Здравствуйте у меня такой вопрос как можно прочитать значение по статическому адресу ?
- 1
-
Всем привет)))
Я давно уже думал. А можно ли сделать сканер байтов. То есть если есть адрес то по нему бы выдавало байты ВКЛ и выкл
-
Слушай, а я не знал.
А что нужно спрашивать?
Ну вот я говорю про тоже
-
Почему ? работает как WriteProcessMemory так и ReadProcessMemory
-
Когда взламываете игру вы же спрашиваете у разработчика разрешения ?
-
Я в ехе сразу - я откуда знал что такие нельзя первый раз сюда загружаю... так что не чего удивительного.
сам не знал что .exe не грузит ((( постоянно в архивах заливаю все ))
-
Я модеру уже написал - что когда стал загружать трейнер,мне вылезло сообщение - что я не могу файлы с таким расширение загружать.
оО что за расширение такие ? .rar .zip .txt .jpg норм все загружаются
-
Я для чего тебя в группу трейнер мейкеров добавил?
Для красоты )))
-
Не много глупо утверждать о краже сигнатур ... ведь функций мог бы сделать больше нужно реализация скриптов ,а мне лень прописывать в ручную все jmp call и прочие. поэтому сделал самые доступные функции ...
Пример : я же не кричу что кто то своровал мои функции с трейнера Plants vs Zombies ведь с какой стороны ты не зайди там все го 5-6 инструкций которые отвечают за изменения адреса и будет логично что хороший программист выберет более подходящую инструкция для изменения и в дальнейшем составления сигнатуры ....
-
Название: Collapse +3
Добавил: DenkA003
Добавлен: 20 Янв 2015
Категория: Трейнеры
Сводка:
==-==-==-==-==-==
Автор:> DenkA003
Издание:> gamehacklab
Версия Игры:> v1.1
Язык Трейнера:>
Количество Функций:> 3
Дата Создания Трейнера:> 20-01-2015
Инструкция:
==-==-==-==-==-==
Скопировать все файлы из архива на робочий стол
Сначала запускаете игру, минимизируете, запускаете трейнер, нажимаем кнопку Insert чтобы активировать трейнер
Активация функций происходит на Numpad 1-4
Функция Invisibility делает вас невидимым
Функция Kill All Enemies убивает все врагов вокруг вас (Функцию нужно включить и сразу выключить)(при этом оставляя вас 0.3% здоровья) функцию можно повторно использовать после 3-5 секунд(чтобы использовать функцию повторно нужно использовать аптечку или подождать 1-3 секунды пока система вам не восстановит 1% здоровья)- 1
-
Название: Crimsonland 2 +4
Добавил: DenkA003
Добавлен: 20 Янв 2015
Категория: Трейнеры
Сводка:
==-==-==-==-==-==
Автор:> DenkA003
Издание:> gamehacklab
Версия Игры:> v1.9.9.2
Язык Трейнера:>
Количество Функций:> 4
Дата Создания Трейнера:> 20-01-2015
Инструкция:
==-==-==-==-==-==
Скопировать все файлы из архива на робочий стол
Сначала запускаете игру, минимизируете, запускаете трейнер, нажимаем кнопку Insert чтобы активировать трейнер
Активация функций происходит на Numpad 1-4
Функция Change Weapon станет доступной после того как активировали трейнер и нажали кнопку Numpad 4
После Активации Change Weapon нажимайте от F1 до F9 что бы сменить оружие -
Название: Nation_Red[Зомбилэнд] +7
Добавил: DenkA003
Добавлен: 19 Янв 2015
Категория: Трейнеры
Сводка:
==-==-==-==-==-==
Автор:> DenkA003
Издание:> gamehacklab
Версия Игры:> v1.0.4.1
Язык Трейнера:>
Количество Функций:> 7
Дата Создания Трейнера:> 19-01-2015
Инструкция:
==-==-==-==-==-==
Скопировать все файлы из архива на робочий стол
Сначала запускаете игру, минимизируете, запускаете трейнер, нажимаем кнопку Insert чтобы активировать трейнер
Активация функций происходит на Numpad 1-7
Функция Change Weapon станет доступной после того как активировали трейнер и нажали кнопку Numpad 6
После Активации Change Weapon нажимайте от F1 до F6 что бы сменить оружие
Чтобы просмотреть список доступных оружий наведите курсор мишки на Функцию в трейнер
Список Оружия:
==-==-==-==-==-==
F1-Пулёмет
F2-Ак 47
F3-Огнемет
F4-Гвоздомёт
F5-Гранатомёт
F6-Две Узи -
Название: Zombie Driver +8
Добавил: DenkA003
Добавлен: 19 Янв 2015
Категория: Трейнеры
Сводка:
==-==-==-==-==-==
Автор:> DenkA003
Издание:> gamehacklab
Версия Игры:> v2.0.0.10
Язык Трейнера:>
Количество Функций:> 8
Дата Создания Трейнера:> 19-01-2015
Инструкция:
==-==-==-==-==-==
Скопировать все файлы из архива на робочий стол
Сначала запускаете игру, минимизируете, запускаете трейнер, нажимаем кнопку Insert чтобы активировать трейнер
Активация функций происходит на Numpad 1-8
Функция Change Cars станет доступной после того как активировали трейнер и нажали кнопку Numpad 8
Функцию активируем в разделе Магазин
После Активации Change Weapon нажимайте от F1 до F6 что бы сменить автомобиль
Чтобы функция работала нужно переключить или улучшить текущий автомобиль или же выйти из Магазина и зайти обратно 2-3 раза пока не измениться ваш текущий автомобиль
Список Автомобилей:
==-==-==-==-==-==
F1 - Спортивная Машина
F2 - Лимузин
F3 - Автобус
F4 - Скорая Помощь
F5 - Полицейская Машина
F6 - Супер Автомобиль -
unction ScanSignature(base: Cardinal; size: Cardinal; sign: PByte; mask: PAnsiChar): integer;var mbi: MEMORY_BASIC_INFORMATION; offset: Cardinal; buffer: PByte; BytesRead: Cardinal; i: integer;begin offset := 0; while (offset < size) do begin VirtualQueryEx(m_hProc, Pointer(base + offset), mbi, sizeof(MEMORY_BASIC_INFORMATION)); if (mbi.State <> MEM_FREE) then begin GetMem(buffer, mbi.RegionSize); ReadProcessMemory(m_hProc, mbi.BaseAddress, buffer, mbi.RegionSize, BytesRead); for i := 0 to mbi.RegionSize do begin if (DataCompare(PByte(Integer(buffer) + i), sign, mask)) then begin FreeMem(buffer); result := integer(mbi.BaseAddress) + i; exit; end; end; FreeMem(buffer); end; offset := offset + mbi.RegionSize; end; result := 0; end;
Вот функция сканирования, которая ток статические сканирует.
попытайся поменять
if (mbi.State <> MEM_FREE) then beginGetMem(buffer, mbi.RegionSize);
на
if (mbi.State=MEM_COMMIT) and not (mbi.Protect = PAGE_READWRITE)then begin GetMem(Buf, Mbi.RegionSize); и тд
-
Если я знаю как это сделать мне не составит труда помочь человеку в начинаниях ,... возможно он и мне когда то поможет если я что то понимать не буду
Если тебя такой подход не устраивает, насильно на нашем ресурсе мы не держим.
кк без проблем ...
-
Спасибо себе и google.ua за помощь ))) толком не кто не помогал .. все говорили тайнами ... такое чуство что сам не знали как сделать и дабы показаться опытным специалистом говорили загадками
-
аа тебе нужен стартовый адрес процесса ?
Вот тебе Функция
Uses psapi,TlHelp32 ;
var
Form1: TForm1;
prID: Cardinal;
function GetModuleBaseAddress(ProcessID: Cardinal; MName: String): Pointer;
var
Modules : Array of HMODULE;
cbNeeded, i : Cardinal;
ModuleInfo : TModuleInfo;
ModuleName : Array[0..MAX_PATH] of Char;
PHandle : THandle;
begin
Result := nil;
SetLength(Modules, 1024);
PHandle := OpenProcess(PROCESS_QUERY_INFORMATION + PROCESS_VM_READ, False, ProcessID);
if (PHandle <> 0) then
begin
EnumProcessModules(PHandle, @Modules[0], 1024 * SizeOf(HMODULE), cbNeeded); //Getting the enumeration of modules
SetLength(Modules, cbNeeded div SizeOf(HMODULE)); //Setting the number of modules
for i := 0 to Length(Modules) - 1 do //Start the loop
begin
GetModuleBaseName(PHandle, Modules[i], ModuleName, SizeOf(ModuleName)); //Getting the name of module
if AnsiCompareText(MName, ModuleName) = 0 then //If the module name matches with the name of module we are looking for...
begin
GetModuleInformation(PHandle, Modules[i], @ModuleInfo, SizeOf(ModuleInfo)); //Get the information of module
Result := ModuleInfo.lpBaseOfDll; //Return the information we want (The image base address)
CloseHandle(PHandle);
Exit;
end;
end;
end;
end;
function GetProcess(FileName: string): Cardinal;
var
hSnap:THandle;
prEntry:PROCESSENTRY32;
begin
Result:=0;
hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
prEntry.dwSize:=SizeOf(prEntry);
If Process32First(hSnap,prEntry) then
begin
While Process32Next(hSnap,prEntry) do
Begin
If prEntry.szExeFile = FileName then
Result:=Cardinal(prEntry.th32ProcessID);
End;
end;
CloseHandle(hSnap);
end;Использование :
const
ProcessName='TERA.exe';
var
ReadBaseAdressHex:string;
begin
prID:=GetProcess(ProcessName);
ReadBaseAdressHex:= IntToHex(Ulong(GetModuleBaseAddress((prID),ProcessName)),Length(ReadBaseAdressHex));
Edit1.Text := ReadBaseAdressHex;
end;procedure TForm1.Button1Click(Sender: TObject);
-
Нет?
http://forum.gamehacklab.ru/forum/4-вопросы-по-созданиюпрограммированию-трейнеро
ладно, помогу чем смогу я сегодня добрый
Uses tlhelp32
...
var
hSnap:THandle;
pe:TProcessEntry32;
pid: DWORD;
begin
pe.dwSize:=SizeOf(pe);
hSnap:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
If Process32First(hSnap,pe) then
While Process32Next(hSnap,pe) do
if ExtractFileName(pe.szExeFile)='mRemote.exe' then
showmessage(IntToStr(pe.th32ProcessID));Адрес процесса называется PID в простонародье...
а полное название ProcessID))
-
А все таки как записывать такую структуру с вопросиками в делфи?
здесь так и писать
http://forum.gamehac...81%D1%81%D0%B5/
а вот здесь просто замени ?? на FF и когда будешь делать маску просто став 1 ?
-
Спасибо большое за видео(плюсик кинуть не могу - пишет лимит)...
Но, реально большое спасибо, теперь хоть как нибудь смогу разобраться!
Единственное, я не понял зачем ставить ?? вместо байт? Кто расскажет суть?
Когда я буду писать массив в паскале, мне что писать примеру массив байт {5a, 3a, ??, ??, 2d} заменить на {3a, 5a, ??, ??, 2d }?
В некоторых играх сигнатура может изменяться, т.е. байты в сигнатуре поэтому прописываются знаки вопроса
Если сигнатура изменилась то и байты естественно будут другими, для этого и прописывают знаки вопроса чтобы сигнатура была рабочей всегда
[Delphi] - Функция AllocMem
in Высокоуровневое программирование
Опубликовано
Ну пример от исходника много чем отличается ... а вот как были пользователи странные и не горящие помочь такими и остались