MasterGH

Программирование трейнеров на Delphi

37 сообщений в этой теме

В примере используется Дельфи Лайт. Скачать разные версии можно отсюда. (Лайт)

А ты что запускаешь?

0

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


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

Разумеется SimpleTrainer.dpr )

0

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


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

У меня все нормально открывает. Смотри скриншот.

А ты попробуй распакуй архив, потом открой.

0

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


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

У вас в шапке уж больно увесистый и некомпактный трейнер в качестве примера приведен. Прошлым летом интересовался программированием трейнеров, в качестве языка выбрал Делфи, если кому интересно вот мой вариант, писался для игры GRID версии 1.3. Скачать исполняемый файл вышел всего в 48кб. Инклудов использовано по минимуму, больше и не надо.

trainer+src.rar

Изменено пользователем MasterGH
файл залит на форум (на тот случай если пропадёт на хостинге)
0

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


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

"уж больно увесистый и некомпактный трейнер"... Это Вы похвастаться хотите?! Ну пусть будет так.

Вы можете создать свой пост с содержанием того как может выглядеть первый пост этой темы. Если всё будет ок, то я изменю свой первый пост должным образом.

0

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


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

MasterGH Вообще то просто скинул сурсы своего трейнера. Умный человек скачает, откроет , по изучает. Про изменение мануал, содержимого ваших записей ничего не писал и ни кого обидеть не хотел.

PS Процесс создания трейнера на делфи описать статейкой могу , если мне самому она понравится , обязательно выложу здесь, а там уже на ваше усмотрение...

0

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


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

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

Кстати DefWindowProc правильно располагать в конце WindowProc(), а не в начале как в вашем коде. То что вы трейнеры умеете писать на WinAPI это весьма похвально.

Если стремиться к маниакальному размеру трейнера, то Вы сами можете увидеть в дизассемблере, что каждый Ваш трейнер будет иметь схожую информацию с другими трейнерами. Само содержание файла .exe будет повторяться и т.п. Это наводит на мысль иметь один исполняемый .exe файл который обрабатывал бы сверх компактные "скрипты-сценарии" + файл ресурсов. Именно это умеет делать LUA-engine в Cheat Engine 6.1 (которая пока ещё официально не отреализина). Т.е. то же что вы пишите на Дельфи, можно написать с успехом на LUA... Так что имейте в виду, что Ваши трудовые ресурсы которые вы вкладываете в свой трейнер на Дельфи WinAPI больше и трейнер ваш не такой компактный, если он будет не один, а их будет больше ~100. Наличие Cheat Engine это единственный недостаток для малых скриптовых-трейнеров...

Успехов!

0

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


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

MasterGH LUA то штука универсальная. Её и так ко всему можно прикрутить , не обязательно CE за собой везде таскать. Сейчас либы под делфи LUAшные изучаю, застопорился на простой и основной вещи - таблицы

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

Опираясь на вот этот материал писал

Открыть


var i:integer;
begin
lua_getglobal(L,Pchar(table));
if not lua_istable(L,-1) then
begin
Result:='';
Exit;
end;
lua_pushnil(L);
i:=1;

while lua_next(L,i) <> 0 do
begin
case lua_type(L,-2) of
LUA_TSTRING: Result:=Result+string(lua_tostring(L,-2))+' ';
end;

case lua_type(L,-1) of
LUA_TSTRING: Result:=Result+string(lua_tostring(L,-1))+' ';
end;
lua_pop(L,1);
end;
end;
function get(table: string):string;

а вот если не с массивом то все ок


lua_getglobal(L, 'width');
lua_getglobal(L, 'height');

Width := lua_tonumber(L, -2);
Height := lua_tonumber(L, -1);
  

На деле функция выводит имена ВСЕХ функции\переменных\массивов в глобале L без значений, даже если type является string, хотя с обычными переменными проблем нет.

Примеров по этой теме маловато, но если тему развить, можно и универсальный трейнер сделать, со своим "must have" набором функций. Если по луа мануалы или примеры встречались, выложите кто - нибудь.

0

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


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

MasterGH LUA то штука универсальная. Её и так ко всему можно прикрутить , не обязательно CE за собой везде таскать.

Может быть таскать и не обязательно по каким-то соображениям. Но CE поддерживает LUA функции дизассемблера, ассемблера, отладки , различные методы обхода защит... И это уже написано, и это обновляется и фиксится. И это можно очень умело использовать при создании автоматических инъекций в новых патчах одной и той же игры. Можно, конечно не "таскать" CE, а использовать его исходники с каждым обновлением вырезая их из проекта SVN. Можно вообще не использовать функции диз/ассемблера и отладки и делать трейнеры под каждую игру, под каждый новый патч. У каждого человека свои взгляды на то что может уметь его трейнер.

По вопросам с LUA подсказать пока не могу. Ибо с LUA мало опыта. Точнее разобраться я могу, но позже.

0

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


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

Как я могу переписать данный код в Delphi?

[ENABLE]
alloc(newmem,1024)

newmem:
mov eax,0
push eax
call 004A1240
mov ecx,eax
call 004F3240
ret

createthread(newmem)
[DISABLE]
dealloc(newmem)

0

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


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

KoBRaAndrey, ты просил ответить в эту тему. Отвечаю на вопрос:

>> Как я могу переписать данный код в Delphi?

Очевидно. Можно переписать изучив примеры исходников Cheat Engine, примеры создания трейнеров на Дельфи. Всё можно найти в Интернете включая документацию по Дельфи, WinApi и т.п. Если требуется готовое решение, то я им заниматься не буду ;)

0

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


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

Помогите...как в Delphi 7 сделать .exe файл? e nfv j,]zcybnt gkp...

Смотрю и улыбаюсь, вот так вот и все начиналось :-P

0

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


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас