Tzeentch Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Хотел сделать взлом здоровья более быстрым, но не прокатило. Плоховато владею Assembler'ом. [ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code heremov ecx,(float)200.0mov [eax+10],ecxoriginalcode:mov [eax+10],ecxexit:jmp returnhere"xlive.dll"+22D5:jmp newmemreturnhere: [DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"xlive.dll"+22D5:mov [eax+10],ecxxor eax,eax//Alt: db 89 48 10 33 C0С этим игра вылетает =(Походу надо что с "xor eax,eax" сделать, но я не знаю что. Помогите , пожалуйста. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 10 декабря, 2014 Автор Поделиться Опубликовано 10 декабря, 2014 Ещё вот скрин с отладчика. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Неправильная инструкция найдена. xlive.dll не занимается обработкой здоровья игрока. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 10 декабря, 2014 Автор Поделиться Опубликовано 10 декабря, 2014 (изменено) Неправильная инструкция найдена. xlive.dll не занимается обработкой здоровья игрока.Спасибо. Попробую поискать. Кстати, если эту инструкцию нопить. Здоровье у игрока не отнимается. Не могу найти другую инструкцию, только находит xlive. Изменено 10 декабря, 2014 пользователем Tzeentch Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Вылетает скорее всего из-за xlive.dll, на форуме много раз выкладывали способ его обхода, поищи.P.S.Попробуй такой скрипт: (скрипт уменьшен из-за нужд скрипта, т.к. убраны некоторые метки, какие - читай комментарии)[ENABLE]alloc(newmem,2048)label(returnhere)// метки originalcode и exit убираем, и из тела скрипта - тожеnewmem:mov ecx,(float)200.0mov [eax+10],ecx // в своем коде ты дважды написал эту инструкцию, первый раз - в newmem, второй раз - в originalcodexor eax,eax // в своем скрипте ты забыл эту команду добавить в originalcodejmp returnhere// -- начало примера --//Код в блоке newmem с использованием originalcode и exit можно было записать так: (сравни со своим - поймешь ошибки)//newmem://mov ecx,(float)200.0 <-- здесь устанавливаем регистру ecx значение 200 во Float// <-- тут была лишняя инструкция "mov [eax+10],ecx", т.к. она выполняется дальше - в originalcode//originalcode://mov [eax+10],ecx <-- здесь берем значение из регистра ecx//xor eax,eax//exit://jmp returnhere// -- конец примера --"xlive.dll"+22D5:jmp newmemreturnhere: [DISABLE]"xlive.dll"+22D5:mov [eax+10],ecxxor eax,eaxdealloc(newmem) // освобождаем выделенную ранее память, после восстановления оригинального кода//Alt: db 89 48 10 33 C0 <-- это можно удалить, оно в общем-то не нужно, если ты не собираешься писать скрипт с AobScan-ом Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 10 декабря, 2014 Автор Поделиться Опубликовано 10 декабря, 2014 (изменено) Вылетает скорее всего из-за xlive.dll, на форуме много раз выкладывали способ его обхода, поищи. Спасибо! А можете скнинуть статью про обход xlive.dll? Было бы здорого. Я что-то её не нашел.К сожалению, с вашим скриптом тоже крашится. Но не так быстро. Надо значит как то xlive обходить :с Изменено 10 декабря, 2014 пользователем Tzeentch Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Спасибо! А можете скнинуть статью про обход xlive.dll? Было бы здорого. Я что-то её не нашел. К сожалению, с вашим скриптом тоже крашится. Но не так быстро. Надо значит как то xlive обходить :сНе помню, где именно, но обсуждалось и выкладывались методы обхода не раз. Как вариант, почитай эту тему. А лучше - используй поиск по форуму, найдется все, что нужно. Ссылка на комментарий Поделиться на другие сайты Поделиться
lamalamaz Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Вообще удаляешь Games for windows live из системы. Качаешь крякнутый xlive.dll кидаешь его в папку с игрой(там где exe файл) ....Profit 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 10 декабря, 2014 Автор Поделиться Опубликовано 10 декабря, 2014 Не помню, где именно, но обсуждалось и выкладывались методы обхода не раз. Как вариант, почитай эту тему. А лучше - используй поиск по форуму, найдется все, что нужно. Вообще удаляешь Games for windows live из системы. Качаешь крякнутый xlive.dll кидаешь его в папку с игрой(там где exe файл) ....ProfitСпасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
lamalamaz Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Как вариант есть программа Xliveless специально для GTA 4 http://gta-real.com/load/54-1-0-378 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
RockHammer Опубликовано 10 декабря, 2014 Поделиться Опубликовано 10 декабря, 2014 Вообще удаляешь Games for windows live из системы. Качаешь крякнутый xlive.dll кидаешь его в папку с игрой(там где exe файл) ....Profit Но все же, есть хорошая статейка по взлому Xlive. Я сам хотел ее пробить, но у меня небыло подходящей таблицы для тестирования обхода, т.к. взламывал лицуху из стимака.Tzeentch, как закончишь взлом - скинь табличку в ЛС) Хочу все таки пробить эту несчастную Xlive 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 11 декабря, 2014 Автор Поделиться Опубликовано 11 декабря, 2014 По ходу у меня уже изначально на клиенте стоял Xliveless. В моем скрипте осталось фильтр на игрока поставить. Но я не знаю как. Нужно чтобы эта функция действовала только на здоровье игрока. Кто может, помогите пожалуйста. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 11 декабря, 2014 Поделиться Опубликовано 11 декабря, 2014 Поиск по форуму подскажет, как найти уйди игрока. И несколько видео есть, где способ фильтрации рассматривается Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 15 декабря, 2014 Автор Поделиться Опубликовано 15 декабря, 2014 (изменено) У меня есть идея. У всех адресов смещение на 10 значение всегда меньше чем 100. А максимум здоровья игрока 200 и не может опуститься меньше чем 100. Может можно как то поставить условие на это. Тогда получится что-то вроде фильтра.Типо: cmp [eax+10],<(float)100.0 jne originalcode mov ecx,(float)200.0 originalcode: mov [eax+10],ecx xor eax,eax То есть если значение больше 100, то добавляется ему здоровье. Если меньше 100, то не добавляется. У всех других адресов в основном 1-5, но до 100 не доходит.По мне так не плохая альтернатива ИД.Но как в скрипте правильно знак "<" писать?Подскажите пожалуйста. Изменено 15 декабря, 2014 пользователем Tzeentch Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 15 декабря, 2014 Поделиться Опубликовано 15 декабря, 2014 cmp [eax+10],(float)100.0jbe originalcodemov ecx,(float)200.0originalcode:mov [eax+10],ecxxor eax,eaxЕсть инструкция прыжок, если меньше или равно jbe, или если меньше jb. Применяй нужную. Пример я привёл.JBE - Jump if Below or Equal - прыжок, если меньше или равноJB - Jump if Below - прыжок, если меньшеJGE - Jump if Greater or Equal - прыжок, если больше или равноJG - Jump if Greater - прыжок, если больше. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 15 декабря, 2014 Автор Поделиться Опубликовано 15 декабря, 2014 Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 16 декабря, 2014 Автор Поделиться Опубликовано 16 декабря, 2014 Справился - http://forum.gamehacklab.ru/topic/3021-grand-theft-auto-iv-ver-1061/ Ссылка на комментарий Поделиться на другие сайты Поделиться
ivan96222 Опубликовано 16 декабря, 2014 Поделиться Опубликовано 16 декабря, 2014 Тогда еще от меня вопрос, я C# тренеры делал тут приходится делать бесконечность через таймер, А штатным средством CE замораживает значение не так? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 16 декабря, 2014 Поделиться Опубликовано 16 декабря, 2014 Если заморозка обычного значения - то тоже так. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 29 декабря, 2014 Автор Поделиться Опубликовано 29 декабря, 2014 А можно поставить флаг таким образом: Если значение равно указанной структуре, то пропускает. То есть, если одна инструкция равна другой инструкции, то моя инъекция срабатывает.cmp [eax+10]=[esi+15]///пример в моём пониманииjne originalcodemov ecx,(float)200.0originalcode:mov [eax+10],ecxxor eax,eax Как бы, если значение в одной инструкции равно значению в другой инструкции.Мне интересно, может таким способом можно будет свести баги к минимуму. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 декабря, 2014 Поделиться Опубликовано 29 декабря, 2014 А можно поставить флаг таким образом: Если значение равно указанной структуре, то пропускает. То есть, если одна инструкция равна другой инструкции, то моя инъекция срабатывает.cmp [eax+10]=[esi+15]///пример в моём пониманииjne originalcodemov ecx,(float)200.0originalcode:mov [eax+10],ecxxor eax,eax Как бы, если значение в одной инструкции равно значению в другой инструкции.Мне интересно, может таким способом можно будет свести баги к минимуму.Попробуй так:push ebx // сохраняем регистр, которым будем пользоватьсяmov ebx,dword ptr[esi+15] // загоняем в него нужное значениеcmp [eax+10],ebx //сравниваемpop ebx // восстанавливаем регистр, после использования jne originalcodemov ecx,(float)200.0originalcode:mov [eax+10],ecxxor eax,eax 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 29 декабря, 2014 Автор Поделиться Опубликовано 29 декабря, 2014 Попробуй так:push ebx // сохраняем регистр, которым будем пользоватьсяmov ebx,dword ptr[esi+15] // загоняем в него нужное значениеcmp [eax+10],ebx //сравниваемpop ebx // восстанавливаем регистр, после использования jne originalcodemov ecx,(float)200.0originalcode:mov [eax+10],ecxxor eax,eax Спасибо. Попробую.Так.. Как мне сделать фильтр на патроны у игрока? mov [eax+10],ecx - отвечает не только за здоровье игрока, но и за его патроны.Мне нужно как то отфильтровать адреса отвечающие за патроны, чтобы не повлечь крах игры при их изменении. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 29 декабря, 2014 Поделиться Опубликовано 29 декабря, 2014 Спасибо. Попробую.Так.. Как мне сделать фильтр на патроны у игрока? mov [eax+10],ecx - отвечает не только за здоровье игрока, но и за его патроны.Мне нужно как то отфильтровать адреса отвечающие за патроны, чтобы не повлечь крах игры при их изменении.Описывалось уже не раз и в видео есть:1. в Отладчике выдели свою инструкцию ( mov [eax+10],ecx) 2. Правой кнопкой по ней - выбираем из контекстного меню: "Найти адреса, получающие доступ к этой инструкции. ) Новое окно.3. Вернись в игру, чтобы в окне появились адреса.4. Вернись в окно, посмотри на адреса (правой кнопкой - показать регистры). Обычно по одному регистру все адреса будут отличаться.Вот его (и значение в этом регистре) и выбирай за ID. Так можно отдельно для каждой характеристики написать, что хочешь, разделив их этим фильтром в коде инъекции . 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 29 декабря, 2014 Автор Поделиться Опубликовано 29 декабря, 2014 Описывалось уже не раз и в видео есть:1. в Отладчике выдели свою инструкцию ( mov [eax+10],ecx) 2. Правой кнопкой по ней - выбираем из контекстного меню: "Найти адреса, получающие доступ к этой инструкции. ) Новое окно.3. Вернись в игру, чтобы в окне появились адреса.4. Вернись в окно, посмотри на адреса (правой кнопкой - показать регистры). Обычно по одному регистру все адреса будут отличаться.Вот его (и значение в этом регистре) и выбирай за ID. Так можно отдельно для каждой характеристики написать, что хочешь, разделив их этим фильтром в коде инъекции . Спасибо.Конечно. Буду стараться сделать всё как надо) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения