ffffffffff
-
Постов
7 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные ffffffffff
-
-
Можно ли как то представить Auto Assamblerовский код ввиде набора hex вставок ? В TSearch была такая удобная подпрограмма EASYWRITE INTERPRETER называлась, по нажатию "Tmk" асм код представал в виде hex значений вроде Poke _Адрес_ FF FF FF FF FF FF...
Но так как прога старая, на некоторые типы опкодов она реагирует неадекватно и пишет unknown identifer например на movsd xmm0,[esi+000000D0]
Так вот можно ли подобное реализовать в CE для дальнейшего использования в трейнере
Вот например один скрипт из моей таблицы ("One Hit Kill" для Mafia 2 патч 3), который TSearch не "проглотил" ,
[ENABLE]
alloc(allpedsp,2048)
label(returnhere)
label(originalcode)
label(exit)
label(ggpoint)
label(returnhere2)
label(originalcode2)
label(exit2)
label(Health)
registersymbol(Health)
allpedsp:
push eax
mov eax, [Health]
cmp eax,ebp
pop eax
je originalcode
mov [ebp+000000D0],0
originalcode:
comiss xmm0,[ebp+000000D0]
exit:
jmp returnhere
ggpoint:
mov [Health],esi
originalcode2:
movsd xmm0,[esi+000000D0]
exit2:
jmp returnhere2
Health:
dd 0
"mafia2.exe"+591133:
jmp allpedsp
nop
nop
returnhere:
"mafia2.exe"+7307E4:
jmp ggpoint
nop
nop
nop
returnhere2:
[DISABLE]
dealloc(ggpoint)
"mafia2.exe"+7307E4:
movsd xmm0,[esi+000000D0]
dealloc(allpedsp)
"mafia2.exe"+591133:
comiss xmm0,[ebp+000000D0]
unregistersymbol(Health)Без синтаксиса CE этот код выглядел бы примерно так
mov [00400019],esi
movsd xmm0,[esi+000000D0]
nop
nop
nop
nop
nop
nop
offset 00991133 ; Функция работает со здоровьем всех педов
jmp 00400019
offset 00400019 ; code cave
dd 0
push eax
mov eax, [00400019]
cmp eax,ebp
pop eax
je originalcode
mov [ebp+000000D0],0
originalcode:
comiss xmm0,[ebp+000000D0]
jmp 00991133offset 00B307E4 ; Функция работает только со здоровьем ГГ
В ручную искать в дизасемблеровом просмоторщике не очень хочется.
Да и вообще как сейчас трейнероделы поступают?
-
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" набором функций. Если по луа мануалы или примеры встречались, выложите кто - нибудь.
-
MasterGH Вообще то просто скинул сурсы своего трейнера. Умный человек скачает, откроет , по изучает. Про изменение мануал, содержимого ваших записей ничего не писал и ни кого обидеть не хотел.
PS Процесс создания трейнера на делфи описать статейкой могу , если мне самому она понравится , обязательно выложу здесь, а там уже на ваше усмотрение...
-
У вас в шапке уж больно увесистый и некомпактный трейнер в качестве примера приведен. Прошлым летом интересовался программированием трейнеров, в качестве языка выбрал Делфи, если кому интересно вот мой вариант, писался для игры GRID версии 1.3. Скачать исполняемый файл вышел всего в 48кб. Инклудов использовано по минимуму, больше и не надо.
-
Примеры вроде хорошие. Но вот решил на FASM испытать, скомпилить не удалось. Убрал лишние ссылки на инклуды вроде плеера XM'ов и about, при компилировании все хорошо, а на деле после запуска даже диалогового окна не выводит.
Плюс при скачке в архиве почему битый exe оказался. Если у вас есть оригинал трейнера , то большая просьба перезалить не битый архив. Хотелось бы протестить , может вообще на седьмой винде не пашет корректно.
Cheat Engine. Общие вопросы по работе с программой
in Вопросы по утилитам
Опубликовано
На счет дизасемблера, вроде как можно автоматизировать т.к. в CE работает LUA , в мануале есть функции но не ясно что делает та или иная ф-ция
например пишу
t=readBytes(0x00B307E4,10)
showMessage(t)
выводит 242 что эквиваленто тому если бы я в таблицы указал тип данных для поля просто byte , хотя вроде как вторая переменная 10 означает кол-во байт т.е. Array of Bytes , но от изменения этого числа ничего не изменяется
, хотя если напрямую через таблицу в type указать соответственно Array of Bytes выведет как надо E9 3C F8 79 04 90 90 90 EB 08 . Вообщем надо читать, но на первый взгляд того что надо нет