-
Постов
105 -
Зарегистрирован
-
Посещение
-
Победитель дней
8
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные doc9009
-
-
если еще будете, могу сыграть на выходных с вами)) только в этой игре нуб нубом мой steam: kemper1993807
-
вот простенький пример решения твоей проблемы http://forum.gamehacklab.ru/topic/2223-%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D0%BE%D0%BF%D1%86%D0%B8%D0%B9-%D1%82%D1%80%D0%B5%D0%B9%D0%BD%D0%B5%D1%80%D0%B0-%D0%BF%D1%80%D0%B8-%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9-%D0%B8-%D1%82%D0%BE%D0%B9/
-
возможно игра запускала какие-то службы, что повлекло автоматический липовый запуск процесса... Проверь и отпишись по возможности, очень интересный случай.
-
я ж уже говорил, что искать цепочки оффсетов и использовать их в трейнерах для современных игр трудоемко... Теперь по поводу адреса, этот самый адрес который ты не знаешь как достать называется базовым, для начала попробуй его увидеть через ollydbg, а потом уже программно доставай) Как его в ольке увидеть скажешь ты? Открываешь ольку, подключаешься к игре, идешь в обозреватель всех подключенных модулей(в гугле найдешь как попасть туда), там ищешь свою dll из цепочки оффсетов и смотришь на столбик BaseAddr вот там то и адрес твоей dll. В итоге у тебя уже такая цепочка получается BaseAddr + 15AC34 + 264 + 0 + 20.
Теперь по поводу того как прочитать данные из адреса по цепочке:
ReadProcessMemory(hProcess, (LPVOID)baseAddr + 0x15AC34, (LPVOID)baseAddr, 4, NULL);
ReadProcessMemory(hProcess, (LPVOID)baseAddr + 0x264, (LPVOID)baseAddr, 4, NULL);
ReadProcessMemory(hProcess, (LPVOID)baseAddr + 0x0, (LPVOID)baseAddr, 4, NULL);
ReadProcessMemory(hProcess, (LPVOID)baseAddr + 0x20, (LPVOID)baseAddr, 4, NULL); -
эти значения тебе тут не помогут, по крайней мере если использовать только их.... В игре скорей всего есть отдельные значения высоты прыжка и скорости бега, вот их и ищи
-
есть предложение сделать опцию продолжить просмотр, то есть открыл прогу, выбрал анимэ, нажал на кнопку продолжить просмотр и прога открывает браузер или свой встроенный плеер с серией, на которой ты остановился.
можно если через встроенный плеер в проге смотреть запоминать где остановился просмотр с точностью до секунды и при следующем открытии продолжить просмотр например с середины серии. Короче задумка не плохая у тебя
-
Трейнеры могут запускаться и без CE (зависит от настроек) Это говорит о том, что в CE не ковырялся.
Наверно, все сводится к тому, что тебе нравится программировать на С++. Использовать свое время на реализацию идей на С++, видеть результат и как это работает. Обычное хобби.
Моя же точка зрения это побыстрее сделать. Чтобы это работало без ошибок. Хотя я уже давно по читам ничего не делал, мне просто лень. Для меня реализация на С++ как и на другом языке это скучная рутина. На CE сделать гораздо интереснее. Необходимые готовые функции под рукой, Автоассемблер удобно инжектит, Lua Engine прекрасно выполняет сценарии. Формат .cetrainer хранит все мои наработки, которые я могу поправить и исправить. Мне не нужно лазить между CE и средой разработки C++ и копипистить сигны или байт код новой инъекции. CE сам все генерит. __asm вставки на C++ мне не понравилось использовать, это не Автоассемблер....
Как ни странно даже большие трейнеры сделанные на CE скачивают и продолжают скачивать. Для игрока главное чтобы работало, а потом он просто удалит трейнер в корзину. Стараться сделать все идеально... не стоит оно того.
В общем это было мое, может быть, унылое мнение. Если кому оно было противно, не интересно... не принимайте близко к сердцу
я CE почти не пользуюсь, для копания в ассемблерном коде мне больше нравится олька, еще один пример, что на вкус и цвет товарища нет. На С++ можно написать движок трейнера с нужным функционалом и не париться... В asm вставках код взятый из ольки минутное дело поправить... И вообще тема в бесконечный флуд и спор превратилась.
-
Вот одна из тестовых работ (функционал доделаю)
где же по твоему серьезно?
на С++ ? где нужно писать движок просто для того, чтобы нарисовать что то внутри формы. и еще для того, чтобы работать с памятью процесса...
сделано на плюсах без особых усилий, была только трудность в рисовании дизайна... Движок почти доделан скоро пущу в свет трейнеры с этим дизайном... Короче каждому свое, но мое предпочтение всегда останется на плюсах.
-
я думаю ты не там тему разместил...
P.S.: в CE писать готовые exe трейнеры не серьезно, хотя дело твое...
-
на сколько я знаю хрюша не может быть с net 4.5 максимум 4.0... А не работает может быть из-за того, что программа написана в 2012 студии и в параметрах проекта не стоит данная опция
опция эта появляется в 12 студии, кстати, начиная со 2 обновления. В 13 студии сомневаюсь, что оставят поддержку хрюши
-
а я люблю всю линейку mass effect и марио, верная добрая(не всегда правда, там и джойстики летали из-за нее по комнате, чего только не было) игра детства) Родраж еще игра детства была на сеге)
-
в том месте где менял инструкцию правой кнопкой тыкаешь и жмешь восстановить оригинальный код.
-
ну раз это статья, значит и мануал должен быть к твоему коду, я так думаю... Я имею ввиду описание(алгоритм) этого кода...
-
хм, странно, у тебя windows xp?
-
так не заменяй) сделай так:
movss [rbx+08],xmm2
mov [rbx + 08], 0 -
покажи как ты скрипт написал
вот мой старый скрипт посмотри его и сделай вывод, что можно сделать) http://forum.gamehacklab.ru/topic/2224-deadpool-v10-steam-rip-10000000-dp-godmode-onehitkill/
-
Я так тоже пробовал. Если DWORD value; сделать глобальной, то метка value исчезает совсем, вместо него появляется call в никуда...
Жалко что никто не знает решение. Остается только написать функцию с запросом и возвратом значения...
наверно потому, что надо делать так:
mov [value], edxтогда все прокатит
-
Трейнер пока работает только на Windows Vista, Windows 7, Windows 8
В будущем планируется добавить еще несколько функций, убрал добавление опыта, т.к. не стабильно функционировал, но добавление опыта обязательно верну...
P.S.: довольно интересный движок унреал оказывается) 1 функция выполняет кучу задач, в зависимости от содержимого регистров
- 3
-
можно value сделать глобальной переменной и вывести её значение MessageBox'ом
char buff[4];
wsprintf(buff, "value = 0x%X", value);
MessageBox(NULL, buff, "", MB_OK);по идее еще можно вызвать из ассемблерского кода еще, но тут уже гугл в помощь
-
Трейнер работает вроде стабильно, хотя для 4 обновления были некоторые проблемы, убрал строительство за 1 ход, для следующего обновления попытаюсь вернуть...
- 1
-
слушай это тебе в первую очередь надо, а тут тебе у человека нудный голос, другой по английски говорит, давай меньше капризов... ты зачем тему создавал то? чтоб как красна девица носом воротить?
Это код поиска сигнатур, когда твоя dll находится в памяти процесса:
bool DataCompare(const BYTE* pData, const BYTE* pattern, const char* mask)
{
for(; *mask; ++mask, ++pData, ++pattern)
if (*mask == 'x' && *pData != *pattern)
return false;
return (*mask) == NULL;
}
DWORD FindPattern(DWORD start_address, DWORD length, BYTE* pattern, char *mask)
{
for(DWORD i = 0; i < length; i++)
if(DataCompare((BYTE*)(start_address + i), pattern, mask))
return (DWORD)(start_address + i);
return NULL;
}По аналогии делай из exe файла, как это сделать подумай сам...
P.S.: этот код можно было найти на этом форуме, это раз и найти в гугле, два.
- 1
-
а тебе, что подавай все сразу и на блюдечке? если по ходу урока вдумываться, а не просто переписывать код с экрана, то очень даже не нудный... ну, а если тебе нужен код, чтобы просто скопипастить увы огорчу тебя, у тебя ничего не выйдет.
-
уроки кодера смотри
-
вышла ошибка переименуйте тему, версии игры, с которыми работает трейнер 1.1, 1.2, 1.3
как найти адрес таймера в игре
in Вопросы по созданию читов в одиночных играх
Опубликовано
влезь в структуру игрока, там может скрываться...