ZOCKIR Опубликовано 17 июня, 2012 Поделиться Опубликовано 17 июня, 2012 В 17.06.2012 в 16:40, АртёмКО сказал: о_ОВВеди в гугле RocketDock и посмотри что это за чудо)просто в ваших уроках вы сами говорили что указатель должен быть только 1 (ну или мне показалось)Я не ддружу с гуглом, яндекс или бинг.Указатель бывает и 8 штук. Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 17 июня, 2012 Поделиться Опубликовано 17 июня, 2012 В 17.06.2012 в 16:43, ZOCKIR сказал: Я не ддружу с гуглом, яндекс или бинг.Указатель бывает и 8 штук.Ладно буду курочить дальше....Буду пробывать добивать игру.Уже сделал 2 трейнера к игре C&C generals v 1.8 +Zero Hour v 1.4 (это так...повыкалвался)) Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 17 июня, 2012 Поделиться Опубликовано 17 июня, 2012 Показалось! А может, я ошибся.Один и всегда только один может быть адрес какого-то значения - здоровья, патронов и так далее. Указателей же (рабочих) на этот один-единственный адрес может быть и много. Скажем, есть у нас количество здоровья:Player { health = 100;}И есть несколько разных функций для работы с этим значением:SpawnPlayer() { positionX = 20; positionY = 50; positionZ = 10; player = new Player(); player.Place(positionX, positionY, positionZ);}KillPlayer(Player player) { if(player.health == 0) { player.body.Explode(); player.weapon.Drop(); }}Получается, что две разных функции работают с нашим адресом здоровья. Ну, абстрактно говоря. Я не сильно хочу углубляться и рассказывать, откуда берётся много цепочек указателей, но абсолютно не страшно, если их несколько и они работают. Т.е. по факту, указатель - это просто адрес, хранящий адрес какого-то объекта. Например, переменной здоровья. Как только у нас получается, к примеру, объект, хранящий этот объект, скажем, массив игроков:playerList = { player1, player2, player3 };То указатель становится на уровень больше, т.е. было:player1.health;А стало:playerList[0].health;Штука в том, что предыдущий указатель при этом никуда не девается (пока его не убьёт сам код игры или сборщик мусора, если решит, что такой указатель больше игре не нужен).В общем, ещё раз - не страшно, если на один адрес указывает много указателей, использовать можно любой из них. Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 17 июня, 2012 Поделиться Опубликовано 17 июня, 2012 В общем для себя я решил, что я криворукий бот(Пробывал в автоматическом режиме нашёл несколько сот указателейПерезапустил игрунашёл новый адресс нужного мне значения...выполнил отсеивание и оказалось что указателей 0(В общем кому не лень...или кто просто хочет помочь человеку, сделайте урок по поиску указателей к игреЖелательно именно этот репак...тут ещё пару десятков модов вшили...да и я пробую ломать именно её. (взламываю полоску азота)[CENSORED]Кенг я знаю что у тебя уже есть 2 видеоурока...но поиск указателей в туториале намного легче чем искать в играх...(в туториале я уже чуть не с закрытыми глазами это делаю).Ваши уроки просматривал уже десятки раз.У вас всё так просто находиться чуть не с 1 раза...а у меня вечно проблемы (а научиться очень хочу)Хотя может быть проблема и в другом:например можеть быть что я ЛОЛКА..Может где-то туплю.Но ошибки своей найти не могу Замечание: Не мешало бы еще и правила форума почитать!На первый раз без предупреждения.//Xiphoигра Burnout Paradise: The Ultimate Box 1.1.0.0 + Russian Vanity 1.4 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 18 июня, 2012 Поделиться Опубликовано 18 июня, 2012 В 16.06.2012 в 19:32, M4K сказал: ....И искать указатели надо в статических адресах, а не по всей памяти игры.Upd.: Или я неправильно понял эту тему?Первый адрес в цепочке указателей должен располагаться в области памяти Image файла exe или dll-ки по пути Image Base + смещение = статический адрес.. Где смещение не превышает размер модуля или exe. Все остальные смещения "внутри статического адреса", которых может быть много могут располагаться в памяти процесса с разными правами доступа - в динамической памяти. Хотя может быть и исключение - не только в динамической, но и в Image области могут находится адреса из цепочки указателей.Статическая память это область Image файла exe или dll-ки, подразумевается что адрес в этой памяти не поменяет своего места положения во время игры.Динамическая память - это память, в которой адреса могут менять своё место положение. Это касается памяти, которая выделяется во время работы процесса игры.Отсюда следует, что искать указатель через автоматический поиск нужно :1) настроить области статической памяти для поиска первого адреса в цепочке указателей (это можно сделать в CE задавая промежуток поиска статического адреса и исключая указанные ранее модули, адресное виртуальное пространство которых не будет входит в поиск);2) указать область сканирования для адресов цепочки вложенных в первый адрес. Эта область может захватить как динамическую память так и может затронуть области статической памяти;3) указать размер структуры данных (обычно не более 1-2кб), в которой могут располагаться вложенные указатели из цепочки указателей.Ну а далее отсев, отсев, отсев...Короче совет тем у кого проблема с автоматическим поиском. У CE есть программа для тренировки. Там точно должно быть задание по поиску указателей. Так что можно потренироваться в поисках указателей как через отладку, отладку+сканер памяти так и через автоматический поиск указателей Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 21 июня, 2012 Поделиться Опубликовано 21 июня, 2012 Возник ещё 1 вопрос.При внедрении кода..вылазит ошибка о том что "некоторые функции не могут быть ведрены" как быть?Даже если код не меняешь новый код не внедряеться.Это говорит о том что игра защищена? Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 Скорее всего скрипт "внедрения кода" неправильный. Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 В 22.06.2012 в 04:58, Andrey сказал: Скорее всего скрипт "внедрения кода" неправильный.да у меня такая мысль сразу возникла после ошибки.Следующий раз я КОД ВООБЩЕ НЕ МЕНЯЛ и попытался внедрить. Вывод таже ошибка о невозможности внедрения. Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 В 22.06.2012 в 10:02, АртёмКО сказал: да у меня такая мысль сразу возникла после ошибки.Следующий раз я КОД ВООБЩЕ НЕ МЕНЯЛ и попытался внедрить. Вывод таже ошибка о невозможности внедрения.Код-то покажи. Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 это оригинальный (тоже не внедряется)[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:mov [ecx+000000A0],edxexit:jmp returnhere"Burnout Paradise. The Ultimate Box.exe"+9205F:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Burnout Paradise. The Ultimate Box.exe"+9205F:mov [ecx+000000A0],edx//Alt: db 89 91 A0 00 00 00хочу убрать 1 функцию (но при попытке внедрения ошибка)originalcode:mov [ecx+000000A0],edx//////хочу заменить на nop Показать контент данная проблема наблюдается пока что только в игре Burnout Paradise: The Ultimate Box 1.1.0.0 + Russian Vanity 1.4 Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 А если просто:[ENABLE]"Burnout Paradise. The Ultimate Box.exe"+9205F:nopnopnopnopnopnop[DISABLE]"Burnout Paradise. The Ultimate Box.exe"+9205F:mov [ecx+000000A0],edx//Alt: db 89 91 A0 00 00 00?Т.е. не обязательно делать code-cave с jmp-инструкциями туда-сюда, если тебе надо одну-единственную инструкцию затереть nop-ами. Тут главное баланс байт сохранить (оригинальная инструкция = 6 байт длиной, затираем шестью nop-ами по одному байту каждая).А ругаться он может просто потому, что СЕ иногда глючит со своим дизассемблером\ассемблером - не знает, как обратно в память записать "mov [eax+123], ebx". На других версиях СЕ та же картина наблюдается? Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 В 22.06.2012 в 13:38, keng сказал: А если просто:[ENABLE]"Burnout Paradise. The Ultimate Box.exe"+9205F:nopnopnopnopnopnop[DISABLE]"Burnout Paradise. The Ultimate Box.exe"+9205F:mov [ecx+000000A0],edx//Alt: db 89 91 A0 00 00 00?Т.е. не обязательно делать code-cave с jmp-инструкциями туда-сюда, если тебе надо одну-единственную инструкцию затереть nop-ами. Тут главное баланс байт сохранить (оригинальная инструкция = 6 байт длиной, затираем шестью nop-ами по одному байту каждая).А ругаться он может просто потому, что СЕ иногда глючит со своим дизассемблером\ассемблером - не знает, как обратно в память записать "mov [eax+123], ebx". На других версиях СЕ та же картина наблюдается?1. Пробывал вписать ваш код...Вывод та же ошибка2.Сейчас скачаю CE 6.1 ENG и попробую сноваСкачал попробывал...всё тоже самое (ну ошибка....только на английском языке ) Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 22 июня, 2012 Поделиться Опубликовано 22 июня, 2012 Burnout Paradise. The Ultimate Box.exe переименую название игры на орг. названиетак:BurnoutParadise.exeПоправь скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 26 июня, 2012 Поделиться Опубликовано 26 июня, 2012 В 22.06.2012 в 15:01, ZOCKIR сказал: Burnout Paradise. The Ultimate Box.exe переименую название игры на орг. названиетак:BurnoutParadise.exeПоправь скрипт.Без толку.В диспетчере отображаеться как Burnout Paradise. The Ultimate Box.exe.На скольк я понял.В корне папки с игрой лежит в лаунчер. И файл запуска игрыНо сам испольнаемый файл висит ...точнее запокован в DAT файл.заметил это потому что при запуске игры появляеться табличка VMMARE//.....Ещё раз говорю это не оригинальная игра.А игра перепакованная и с модами. Неужели CE е дружит с пробелами? Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 26 июня, 2012 Поделиться Опубликовано 26 июня, 2012 Дело тут не в пробелах, т.к. CE уже давно ставит ковычки при использование модульной адресации. Вместо модульной адресации можно использовать просто адрес или AOBSCAN, но, думаю, итог будет тот же. Возможно присутствует какая-либо защита. Настройки от обнаружения CE включены ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 26 июня, 2012 Поделиться Опубликовано 26 июня, 2012 Цитата ANT' timestamp='1340715641' post='9756']А что если занопить инструкцию вручную, не используя скрипт ?Возможно присутствует какая-либо защита. Настройки от обнаружения CE включены ?1.Как это сделать?2 Ес оф кос Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 26 июня, 2012 Поделиться Опубликовано 26 июня, 2012 в отладчике двойной клик на инструкцию и в появившемся окошке пишешь "nop" (без кавычек) Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 26 июня, 2012 Поделиться Опубликовано 26 июня, 2012 Цитата ANT' timestamp='1340717315' post='9758']в отладчике двойной клик на инструкцию и в появившемся окошке пишешь "nop" (без кавычек) ничего не происходит! Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 7 июля, 2012 Поделиться Опубликовано 7 июля, 2012 Проблема решена...Игра лахачная...поставил норм репак всё запахало.Возник ещё один вопросвот есть КОД (взято с уроков Keng'a)push edxlea edx,dword ptr [eax]*4cmp edx,00534A9Cpop edxje returnhereДело в том что адресс 00534A9C и после перезапуска он меняетьсявопрос вот в чем..Допустим я найду указатель на этот адресс....как засандалить указатель в код?..чтобы скрипт все время рабочий был.и 2 вопроскак видно из кода кенг использует регистры которые не использует игра. Но как быть если все регистры используются?. (в качестве примера взял игру counter strike sourse мод MW3)Помогите.Я только начинаю разбираться в этом деле Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 7 июля, 2012 Поделиться Опубликовано 7 июля, 2012 Это никак не "проблема cheat Engine", а ваша...Допустим мы нашли адрес со здоровьем "7654321"Поставили бряк и нашли инструкцию, которая что-то делает со здоровьем mov ecx,[eax+12345]Потом нашли указатель на этот адрес [[[["name.exe"+123]+4]+56]+12345]пишем скрипт[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)newmem:push ebx //Помещаем регистр ebx в стекmov ebx,["name.exe"+123] //Вначале помещаем в ebx базовый адресmov ebx,[ebx+4] //теперь первое смещениеmov ebx,[ebx+56] //и еще одно//В итоге, в ebx будет находится значение указателя на игрокаcmp ebx,eax //Сравниваем значение указателя с текущим значением регистра eaxpop ebx //Убераем ebx из стекаjne originalcode //Если если значения регистров ebx и eax не равны,//(значит, в данный момент, выполняется действие не со структурой нашего игрока).//то выполняется оригинальный код//А если ebx и eax равны, то//сначала меняем значение адреса "[eax+12345]" на "999", а затем выполняем оригинальный кодmov [eax+12345],#999originalcode:mov ecx,[eax+12345] //Оригинальная инструкцияjmp returnhere"ADDRESS":jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"ADDRESS":mov ecx,[eax+12345]Можно написать этот скрипт и так[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)newmem:cmp [[["name.exe"+123]+4]+56],eaxjne originalcodemov [eax+12345],#999originalcode:mov ecx,[eax+12345]jmp returnhere"ADDRESS":jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"ADDRESS":mov ecx,[eax+12345]А можно и вот такhttp://forum.gamehac...%B0-id-players/А можно и самому найти еще много всего интересного.И для ответа на 2 вопрос возьмем ту же выдуманную инструкцию "mov ecx,[eax+12345]"В расчетах используется только 2 регистра - ecx и eax, а все остальные (разве, что кроме esp) мы может использовать для наших нужд Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 7 июля, 2012 Поделиться Опубликовано 7 июля, 2012 Цитата ANT' timestamp='1341677069' post='9999']Это никак не "проблема cheat Engine", а ваша...Допустим мы нашли адрес со здоровьем "7654321"Поставили бряк и нашли инструкцию, которая что-то делает со здоровьем mov ecx,[eax+12345]Потом нашли указатель на этот адрес [[["name.exe"+123]+4]+56]пишем скрипт[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)newmem:push ebx //Помещаем регистр ebx в стекmov ebx,["name.exe"+123] //Вначале помещаем в ebx базовый адресmov ebx,[ebx+4] //теперь первое смещениеmov ebx,[ebx+56] //и еще одно//В итоге, в ebx будет находится значение указателя на игрокаcmp ebx,eax //Сравниваем значение указателя с текущим значением регистра eaxpop ebx //Убераем ebx из стекаjne originalcode //Если если значения регистров ebx и eax не равны,//(значит, в данный момент, выполняется действие не со структурой нашего игрока).//то выполняется оригинальный код//А если ebx и eax равны, то//сначала меняем значение адреса "[eax+12345]" на "999", а затем выполняем оригинальный кодmov [eax+12345],#999originalcode:mov ecx,[eax+12345] //Оригинальная инструкцияjmp returnhere"ADDRESS":jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"ADDRESS":mov ecx,[eax+12345]Можно написать этот скрипт и так[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)newmem:cmp [[["name.exe"+123]+4]+56],eaxjne originalcodemov [eax+12345],#999originalcode:mov ecx,[eax+12345]jmp returnhere"ADDRESS":jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"ADDRESS":mov ecx,[eax+12345]А можно и вот такhttp://forum.gamehac...%B0-id-players/А можно и самому найти еще много всего интересного.И для ответа на 2 вопрос возьмем ту же выдуманную инструкцию "mov ecx,[eax+12345]"В расчетах используется только 2 регистра - ecx и eax, а все остальные (разве, что кроме esp) мы может использовать для наших нуждпопробую первые 2 способа...3 пока не для меняа насчёт второго вопроса...я недавно посмотрел урок...КЕНГ прал тот регистр где были все 0...При этом сказав что он не используеться. Когда я тоже действовал по уроку оказалось что во всех регистрах есть какие-то значения...поэтому я подумал что их нельзя использовать.Ладно спасибо...буду курочить дальше Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 7 июля, 2012 Поделиться Опубликовано 7 июля, 2012 Я допустил небольшую оплошность: Цитата ANT' timestamp='1341677069' post='9999']Допустим мы нашли адрес со здоровьем "7654321"Поставили бряк и нашли инструкцию, которая что-то делает со здоровьем mov ecx,[eax+12345]Потом нашли указатель на этот адрес [[["name.exe"+123]+4]+56]Указатель на адрес должен выглядить вот так: [[[["name.exe"+123]+4]+56]+12345], а [[["name.exe"+123]+4]+56] - это указатель на структуру.Но в скриптах все верно, т.к мы сравниваем [[["name.exe"+123]+4]+56] с eax (начало структуры игрока) и поэтому последнее смещение "12345" нам не нужно Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Greshnik Опубликовано 31 января, 2013 Поделиться Опубликовано 31 января, 2013 Я скачал Cheat Engine 6.1 И хочу разогнать браузер Он выдает ошибку Failure enabling speedhack (DLL injection failed) подскажите что делать буду благодареН.. Ссылка на комментарий Поделиться на другие сайты Поделиться
Kvazimado Опубликовано 31 января, 2013 Поделиться Опубликовано 31 января, 2013 Разогнать что?)) Ну, эм..ладно, пойду почитаю еще матчасть. Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 31 января, 2013 Поделиться Опубликовано 31 января, 2013 В "Счастливом Фермере" быстрее ничего расти не начнёт, если был понят мой тонкий намёк. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения