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

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Весь контент MasterGH

  1. >> не помешало бы рассчитывать траекторию понижения снаряда Пока я этим не заморачиваюсь. Потому что карта немалая и мишени небольшие и урон только по прямому попаданию. Это все на первое время. Чтобы как-то оживить игру, нужные звуки. Может кто найдёт? 1) Хождение по траве 2) Хождение по бетону ( будут не большие декорации в виде сеток-приметивов) 3) Прыжок 4) Голос Урона игрока (модель робота), голос админа (модель робота) 5) Голос "Убийства" игрока(модель робота), голос админа(модель робота). Ну не реального убийства из криминала, ну короче вы поняли чтобы как по игре у робота... 5) Действие нажатия на кнопку 6) Музыка во время игры и меню 7) Звук или голос победы 8) Звук или голос проигрыша Любые идеи по звукам. В аттаче текущая игра. В ней некоторые функции пока не включаются. Например, нет условия выигрыша и проигрыша, Хотя диалоги эти есть. Ну и админы по меш-агенту пока не двигаются как надо, поэтому выключил это дело. Два админа стоят на вышках, один у стены из кубов.
  2. Специально для чит-создателей - обычные ракеты теперь это "супер-античит ракеты". "Счётчик ракет" (ну, тот который видим на экране рядом со значком ракет), теперь это счётчик количества ракет-обЪектов, а не кол-ва возможных выстрелов как раньше. Иными словами больше 50 ракет теперь практически невозможно сделать через отладчик не узнав структуру игры, игрового движка и функции кода с ним работающих. Меняете счётчик или нет - без толку. Главное мне ничего не стоило создать этот финт, кроме как продублировать ракеты в игровом движке пять раз по 10 и внести 5 строчек кода.
  3. Почти каждый кто был на этом форуме задавал себе вопрос "А как я буду делать трейнер? А какой язык программирования выбрать?" Сначала оцените сколько времени вы готовы потратить на создание трейнера с нулевыми знаниями в программировании. Если Вы маньяк, то например, приблизительно полгода - год (может быть и больше). Тогда смело "Форма трейнера на рабочем столе и Ingame Menu" : С++ + WinAPI + directX-hook + может быть Fasm/MASM(или другие по асму). Приблизительно меньше месяца: Тогда C#. Лучшего его потому что он близок к C/С++ а эти знания Вам пригодятся куда более вероятнее чем VB. Переходить с VB на Си может быть утомительно. Приблизительно неделю или две, три: Cheat Engine и Lua + АА (может быть даже directX - hook на Lua (на форуме CE есть примеры)) Приблизительно не более пару часов (при не знании АА скриптов и не знании как работать с CE): Cheat Engine и АА, и автоматически генерирумый трейнер по умолчанию. Потом трейнеры бывают такие разные и индивидуальные, что может быть трейнер с простой реализацией, а может быть и с кучей эффектов и доп. информацией и др. функциями. Так что всё упирается во время. Планируйте время и оценивайте свои возможности. И никогда не беритесь делать что-то без понимания готовых примеров. Ищите и учитесь на них, иначе угробите кучу своего времени.
  4. >> чтобы не было проблем Каких проблем например ?
  5. Ver 0.2 (скоро выложу) Уже сделано: 1) Изменён эффект взрыва. Меньше пыли и дыма и сильнее сила взрыва. Дым уже надоел, его так много, что не видно, что внутри него происходит 2) Добавлен мягкий зум и мягкий возврат из зума и мягое изменение чувствительности мышки при удерживании и отпуске правой кнопки мышки. Нужно для дальнего прицела. 4) Более быстрое перемещение, более высокий прыжок 5) Иконка сердца. Если здоровье меньше критичного, то звук сердца, плавная анимация сердца. 6) Добавлены очки от урона 7) Добавлена система урона и начисления очков. Ракета отрываясь от родителя несёт информацию о нём. Если она попадает в противника (прямое попадание), то начисляется ему урон, а владельцу ракеты 10 очков. Напомню кто для кого противниики. Игрок против трёх админов. Если заканчиваются ракеты, то Вам не повезло. Будите бегать пока Админиы вас не добьют или у них не закончатся ракеты. 8) Наконец появилось игровое меню. Пока две опции - более чем достаточно. "Play", "Exit". Вызывается по Esc. Play начать игру. Exit выйти в Windows. 9) Добавлена горячая клавиша P - поставить или снять паузу в игре. ---------- В разработке: 10) Выигрываете игру если побеждаете всех админов. Проигрываете - если сами побеждены. Соответсвенно две мессаги для этих событий держатся какое-то время. Затем происходит выход в меню игры. 11) При старте уровня даётся 50 ракет вам и 50 ракет каждому Админу. Если заканчиваются у всех ракеты побеждает Вы, если у Вашего игрока меньше всех урона. 12) Хоть какой-то AI со стратегией нападения. ------------- Выложу игру в ближайшее время.
  6. Судя по ошибке возможно нужно закрыть lua-консоль сразу же после вставки в неё lua скрипта (он после этого сохранится куда-то внутри ресурсов ). Затем из меню File главного окна CE произвести сохранение в формате exe. Если не получится его запустить, то сразу из меню File главного окна CE генерим *.CETRAINER. И смотрим этот файл текстовым редактором (например, Notepad+ режим кода Lua) на предмет добавления новых строк кода, которых ты сам не добавлял. Убираешь их, сохраняешь файл. Затем открываешь его (*.CETRAINER) Cheat Engine и сохраняешь в exe.
  7. У меня сложилось впечатление такое. 1) Автор совсем не стремится описать свои действия(!) 2) Автор не стремится задавать конкретные вопросы (!) 3) Автор опирается на опыт прочтения статей, который у него отсутствует(!) => Вывод: пользователь странный. Вот вспомните.Приходит однажды человек на форум и расписывает по пунктам, что конкретно он делал и где конкретно он застрял. Видно 100% желание самостоятельно решить проблему - сомнений нет. Приходит другой пишет что он делал - "читал статьи" и... "не получилось". Что не получилось, что читал, что делал? Все за кадром остаётся... молчит как партизан. Будем надеяться что когда-нибудь он раскроет описания того где он застрял и что не получилось.
  8. Для этого возможно не надо пользоваться строкой [[[[[BF2.exe+005F40A8]+DC]+4]+3C]+10] А расписать запись значения (float)100000 нормальным образом - запись по адресу через ассемблерные инструкции и регистры. А если не знаешь как это делается, то используй заморозку по адресу. В адрес вставь весь указатель [[[[[bF2.exe+005F40A8]+DC]+4]+3C]+10]. При генерации трейнера оба способа подойдут для данной игры.
  9. Какие статьи ? В каких таких некоторых играх ? И как было определено, что в некоторых играх срабатывает, а в "Orcs Must Die 2" не срабатывает. Пожалуйста, поподробнее. А то впечатления о Вас стало неоднозначным после вопросов Т.е. Вы понимаете, что статьи работают в каких-то не названных играх... Вы со знанием дела определили, что "несколько статей срабатывают лишь в некоторых играх", а в "Orcs Must Die 2" что-то не работает (не поясняя что именно),... и ничего толком не расписывая задаёте вопрос "Как найти адрес в CE? или надо делать через Olly?". И ждёте от нас наверно полностью проделанной работы. Может быть стоит всё-таки поподробнее написать, что не получается в Orcs Must Die 2 по каким-то таким статьям?
  10. 1) Сначала для спокойствия возможно стоит убедится нет ли проблемы с записью в память по другим адресам - может быть у игры стоит защита от изменения данных и нужно её изучать... 2) Попробуй найти пример работы со спрайтами на C++, скомпилируй его посмотри какие трудности в изменении координат спрайтов и какие ошибки могут возникать при этом. Ориентируйся на рисование спрайта по этому примеру кода: D3DXVECTOR3 pos; pos.x=10.0f; pos.y=20.0f; pos.z=0.0f; sprite->Begin(D3DXSPRITE_ALPHABLEND); sprite->Draw(texture,NULL,NULL,&pos,0xFFFFFFFF); sprite->End(); Я думаю эта информация может помочь. Попробуй сделать pos глобальной переменной в которую по циклу записывается перемещение спрайта по дисплею слева-направо и наоборот, затем скомпилируй и попробуй вмешаться в эту запись с помощью CE замораживая адрес. Обычно в анимацию ещё вмешивается параметр времени. Смотрим сколько времени прошло и затем меняем координату и затем рисуем - перемещения по времени. А если ты меняешь координату и происходит рисование по таймеру за какими-то пределами, то может это ведёт к каким-то ошибкам. В общем тестируй, смотри. 3) По поводу ошибок. Держи в уме как работает программа на WinAPI + directX. Т.е. в программе за один кадр (если так предустановлено) идёт расчёт данных, затем рисование графики. Во время ошибки в отладчике нужно посмотреть стек, куда он ведёт - в областью рисования графики или в область рассчётов. Ставь бряк на чтение адреса, исследуй ветку кода. Измени значение адреса, опять исследуй ветку кода с ошибкой. Держи в уме где ошибка могла начаться и где закончилась и две ветки кода. Сравнивай их и ищи источник вылета.
  11. SnedS91, да у тебя прямо талант, не перестаёшь удивлять. Но только Cheat Engine это внешняя программа со сканером памяти и не всегда хочешь включать ПК ради того чтобы включить Cheat Egnine. На этот случай удобнее встроенный сканер памяти GameCIH или аналогичные и CE в большинстве случаев не потребуется (правда встречаются шифрованные последовательности в некоторых играх - специально шифруют, не хотят чтобы их игру быстро прошли)
  12. А другие ничего не скажут кроме поверхностных ответов, потому что непонятно как работает AOBSCAN() функция. А это можешь знать только ты.
  13. Xipho, справедливо указал требования по поводу внесения дополнительной информации к описанию темы. Потому что больше похоже на желание сделать например кряк вместо создания читов наиболее популярными и известными способами. Ну, а кряками мы не занимаемся. Раз автор не хочет вносить пояснения, то приму эстафету от Xipho. Тема закрыта
  14. Если ты секцию добавлял правильно (секция добавляется в другой исполняемый файл скомпилированный тобой), то на текущем исполняемом файле наверно есть защита на проверку целостности данных. Скорее всего причина в этой проверке.
  15. Я даже не предполагал, что автор додумается квадратные скобки написать куда ненадо и не получить при этом соответствующей ошибки. А ошибку он написал совсем другую, т.е. скрипт у него якобы успешно скомпилировался. Про dealloc я пропустил признаю.
  16. По данной информации ни чем помочь не могу. Могу посоветовать перепроверить скрипты при пошаговой отладке или сделать инъекцию кода в другое место.
  17. Могу посоветовать начать с примера Привет Миру на SDK Андроид + Eclipse Затем искать информацию по работе и доступу к памяти Актива как в закормах SDK Анродида так и в NDK. Во всяком случае архитектуру Андроида возможно знать пригодится. Про актив и немного об архитектуре ОС Андроид здесь. Сканирование памяти возможно не обойдётся без NDK.
  18. К первому посту [ENABLE] alloc(newmem,2048) //2kb should be enough label(returnhere) newmem: fstp dword ptr [eax] // выбросить из верхушки FPU стека значение в адрес [eax] mov dword ptr [eax], {float}100 // перезаписать ret 000C jmp returnhere "EMPIRES.EXE"+5E7E0: jmp newmem returnhere: [DISABLE] "EMPIRES.EXE"+5E7E0: fstp dword ptr [eax] ret 000C
  19. >>Я при этом в любом случае люблю выделать память побайтно (но это во мне минимализм играет). Если минимализм играет, то можно обходится без выделения памяти - например, искать такие участки где достаточно что-то занопить или потереть ряд инструкций сократив их. Порой это весьма сложно, но можно. Страничный размер если я не ошибаюсь 4 кб на 32 разрядной Windows. На 64 разрядной вроде в два раза больше - 8 кб. Проверить можно экспериментально в той же CE посмотрев память после выделения. Так что сколько не пиши alloc(_label, меньше 4кб) будет 4 кб и погоды это не сделает. Только можно спровоцировать пользователя на ненужные вопросы. У кого вопросы - в Интернете полно информации по Архитектуре виртуальной памяти процесса.
  20. Я думаю, что GUI рисовать внутри игры лучше. 1) Не требуется переключаться между игрой на рабочий стол из полноэкранного режима 2) Не требуется запоминать горячие клавиши читов
  21. Присоединение к процессу возможно только через название процесса. Поиск по названию окна ещё не реализован. Можешь написать Дарк Байту (разработчику CE) с предложением сделать эту функцию. Так же всё-таки есть вариант сделать поиск окна на АА-скрипте выполняемого через Lua-функцию (есть такая спец функция) или сделать dll-ку на языке высокого уровня под WIndows и использовать её функционал. Находишь дескриптор процесса по названию и открываешь процесс с определенными правами. Эти операции нужно делать самому. Можно сделать на АА-скриптах, можно в dll-ке. А можно забить на CE и всё что с ним связано и писать свою программу.
  22. Run, в директории с Cheat Engine есть программы для тренировок (Tutorial-i386.exe и Tutorial-x86_64.exe). За некоторое время можно сделать трейнер для первого урока в одной из этих программ. Опытный человек сделает ну, наверно за 1 минуту, если не будет особо спешить. Этот вариант для заморозки значения по адресу Рис. 1 Этот вариант уже изменяет машинный код так чтобы программа (Tutorial-x86_64.exe) сама записывала 1000 в адрес здоровья. Рис. 2 Надеюсь эти рисунки помогут начать и не забросить CE. Это программа не раз сможет помочь быстренько написать скриптец и проверить его, особенно, когда нет времени делать трейнер на языке программирования. Также исправление машинного кода может помочь не искать всю цепочку указателей до адреса здоровья, а только последний адрес в этой цепочки или несколько последних адресов. Так и нопинг ТМК лучше заменить на mov [адрес], #1000 или mov [адрес], (float)1000 или на значение из рядом стоящего адреса, что даже лучше push [адрес+4] // максимальное здоровье кладём в стек pop [адрес] // выталкиваем из стека в адрес здоровья Часто значения можно уже видеть в стеке от смещения esp или ebp в дизассемблере при пошаговой отладке... push eax mov eax, [esp + ???] mov [адрес+4], eax pop eax Часто приходится фильтровать врагов и своего героя label(gotoOriginalCode) push eax mov eax, [ecx + ???] cmp [ecx + 4], eax // условие и сравнение pop eax jne gotoOriginalCode ..... // тут код записи gotoOriginalCode: Это скорее всего основные и наверно все приёмы общего характера. Подучить синтаксис CE Auto Assembler Engine + подучить работу с отладкой - установкой брейпоинтов и анализирование их показаний... ну и можно записываться в Beginner Advanced Game-Hacking.
  23. Вам надо понимать, что я не плохой,а хороший Я не смеялся. Ок. Напишу иначе без смайлов. Я написал вопрос о том, каким образом Вы осваиваете CE и почему сразу не зашли в дизассемблер. Если Вы работали с ТМК и Tsearch, то должны знать, что "эти" байты делают и для чего они. А значит можете знать, что есть как минимум одно решение проблемы - ручное копирование байтов из дизассемблера. Если Вы не привели решения, то возможно CE Lua Engine будет слишком сложен для Вас. С помощью CE Lua Engine можно построить байты по форм-фактору TMK. НО ТМК и Tsearch (если это старые версии) не работают с выделенной памятью, а иногда она очень требуется для инъекции кода чита с особенным условием записи значения по адресу. Придётся обходится нопингом, изменением инструкций или кодкейвом в определённых местах машинного кода игры (возможно их придётся долго искать), которые позволят сделать чит без выделения памяти. Так же у этих программ насколько я помню нет адресации от ImageBase dll-ки по её названию, а она бывает необходима. Уже не говорю, про отсутствие сканера сигнатуры кода, который возможно понадобится и придётся его прикручивать. Если Вы абсолютный новичок, то проще пользоваться огромными по размеру генерируемыми трейнерами CE. Информации об этом у нас много на форуме. Много информации может запутать, но что делать?! Я начинал с англоязычной справки по CE по Autoassembler и смотрел примеры таблиц на официальном форуме CE. Было это в 2007 году, где-то в то время, когда я ещё был студентом после школы. Тогда CE был не таким функциональным монстром.
  24. >>осваиваю Cheat Engine. Нет ли в нем такой опции, и если есть, то как ей пользоваться Что Вы там (скорее всего "напряжённо") осваиваете в CE? Не знаете как выделить мышкой копировать/вставить байты из дизассемблера в блокнот и поправить их в формат TMK? Если Вы уже до этого не догадались, то CE Lua Engine наверно Вам ещё рано предлагать. Но дать подсказку наверно следует. disassemble(address): Disassembles the given address and returns a string in the format of "address - bytes - opcode : extra" splitDisassembledString(disassembledstring): Returns 4 strings. The address, bytes, opcode and extra field getInstructionSize(address): Returns the size of an instruction (basically it disassembles the instruction and returns the number of bytes for you) getPreviousOpcode(address): Returns the address of the previous opcode (this is just an estimated guess)
  25. Интересно видеть инструкции на скриншоте ZOCKIR-а, первый раз вижу. public int countRocket; Это именно та переменная количества ракет. Если countRocket меньше равно нуля, то новая ракета не появляется у персонажа. Т.е. не срабатывает конструктор ракеты. void GetNewRocket(){ if (rocetCount.countRocket <= 0) { return; } ammo = GameObject.Instantiate(rocketPrefab) as GameObject; ammo.transform.parent = transform.parent; ammo.transform.localPosition = new Vector3(0.7962646f, 0.3661532f, 0.06652832f); ammo.transform.localRotation = new Quaternion(0, 0, 0, 0); specParticleSystem = ammo.transform.GetChild(0).GetChild(1).particleSystem; animationSpecParticleSystem = specParticleSystem.animation; animState = animationSpecParticleSystem[animationSpecParticleSystem.clip.name]; }
×
×
  • Создать...

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

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