Небольшой гайд о том, как найти hex, изначально зная значение. А так же, как осуществить все изменения в программе, иначе говоря, как написать трейнер на lua.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Пожалуй, начну с доступного для понимания объяснения, что это такое, т.к. все равно это мало кому нужно, но представление иметь стоит.
Что же такое hex - думаю, самым простым объяснением будет такое:
Цитата:
Hex — шестнадцатеричная система счисления, где в качестве обозначения используются десятичные цифры от 0 до 9 и латинские буквы от A до F.
( Т.е. 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).
Ну, думаю, на информатике все проходили, как переводить числа с 1 системы в другую? Ну а если нет, и кому-то интересно, потом дополню
И так, перейдем к практике. Пожалуй, найти hex для значения, которое мы уже знаем, это самое простое, что может быть, гораздо сложнее (дольше), если само значение нам нужно найти, но это уже другая история.
Возьму для примера приложение [Ссылки могут видеть только зарегистрированные пользователи. ] - тему для которой я недавно создал.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее переходим к [Ссылки могут видеть только зарегистрированные пользователи. ]. Заходим в магазин и видим:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Ха, супер, значение более-менее не маленькое, не составит труда найти его.
Значение 4500
Искать - Точное значение
Тип - 4 байта.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Отлично, всего 14 адресов, теперь найдем именно тот адрес, который влияет на данное значение цены.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Для начала мы изменим все значения, дабы убедиться, что это то, что мы ищем, ну и соответственно что это повлияет на игру, что мы и видим на скриншоте.
Мы видим, что при изменение значения, изменились значения в игре - то что нам и нужно.
Как мы видим, есть значения, которые остались прежними, ну или впоследствии изменились сами на иное - хорошо, упрощает поиска - удаляем их.
Теперь нам нужно найти именно тот адрес, который является ценой за первое оружие.
Для этого мы возвращаем по 1 или несколько значений на прежнее место, пока не найдем.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Оп, а вот и они. (нам потребуется только последний адрес с 9999)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Убираем все лишние адреса, оставляем только этот и меняем его на изначальное (4500).
Жмем ПКМ по значению - Брейкпоинт на Доступ
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ] - жмем Да.
Открылось такое окошко:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее мы жмем на первую строчку - Показать отладчик
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вот оно, самое интересное творение в СЕ
[Ссылки могут видеть только зарегистрированные пользователи. ]
Жмем ПКМ на выделенном адресе - Найти адреса, получающие доступ к этой инструкции.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Откроется окошко:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Здесь мы видим адреса/значения/хиты
Тут оказалось все проще, т.к. адрес с нужным значением выпал сразу, порой, бывает, в приложениях нужно Нажать/Выйти-зайти с магазинов/Прочее, дабы значение отобразилось. (К примеру в Мир Вестерна, если не ошибаюсь).
Теперь удостоверимся, что это именно тот адрес, что мы ищем - Меняем значение.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Да, это именно то, что нам нужно. Погнали дальше.
ПКМ по адресу - Посмотреть этот регион памяти.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Жмем ПКМ по значению - сразу выбираем Просмотреть этот регион памяти
[Ссылки могут видеть только зарегистрированные пользователи. ]
После перехода, нам откроется Отладчик на нужном регионе памяти - самая первая строчка.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь вернем проверочное значение в исходное (4500).
[Ссылки могут видеть только зарегистрированные пользователи. ]
Как мы видим, hex изменился к исходному - Воуля.
Это то, что мы ищем
Копируем его, записываем в блокнотик.
Код:
94 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Теперь нам нужно что? - Получить денюжку
Для этого мы изменяем стоимость. Допустим, на -9999999
[Ссылки могут видеть только зарегистрированные пользователи. ]
(не пугайтесь, когда вы измените значение на -, а оно будет громозким с +. Достаточно нажать на значение (ПКМ) - и выбрать, Показать в виде значения со знаком)
Воуля, мы получили нужный нам hex, на который мы будем менять предыдущий, дабы получить - значение, а при покупке + в карман.
[Ссылки могут видеть только зарегистрированные пользователи. ]
(- не влез )
Для проверки, покупаем - получаем $.
Перезагружаем приложение, и ищем найденный нами массив.
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вот то, что мы ищем, 1 адрес, НО! Зачем нам столько циферок (когда будете писать трейнер, поймете). Убираем по паре цифер, до тех пор, пока будет находится больше 1 значения.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Возвращаем предыдущую пару.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Супер То что надо!
Теперь нам нужно изменить на новый hex, полученный путем изменения.
Для этого мы выделяем столько же пар цифр, сколько и в найденном выше =>
[Ссылки могут видеть только зарегистрированные пользователи. ]
Проверяем на деле:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Ессссс, мы сделали это
Пожалуй, здесь нам предстоит набраться неимоверного терпения
Основной проблемкой будет то, что нужно правильно выбрать процесс. Ну а далее, уже не совсем сложно, написать трейнер.
Немного о программирование на lua. Как по мне, это самый простой способ написать трейнер.
Объясню почему:
Не нужно почти никаких знаний, можно руководствоваться заготовленными шаблонами.
Очень простенький в освоение.
Все что нужно для простенького трейнера, присутствует на панельках.
Ну и много своих плюсов, которые, надеюсь, вы найдете для себя сами.
Жмем Свой дизайн.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Открылось куча всего-всего...Глаза разбегаются, что же делать?
Тут перед вами 2 выбора:
Создать с уже имеющимся стандартным дизайном (тогда фон придется добавлять через кнопочку, что в начале)
Создать свой собственный дизайн. (тут уже полет вашей фантазии )
Лично я предпочитаю свой дизайн, а вы уже решайте сами.
Я убираю стандартный дизайн, оставляю пустое окошко.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее накладываю на окошко картинку -
[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее ищем в колонке слева строку Picture
[Ссылки могут видеть только зарегистрированные пользователи. ] - жмем ...
Жмякаем Load - Выбираем нужную картинку - Ок.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Далее настраиваем окошко как пожелаем -
[Ссылки могут видеть только зарегистрированные пользователи. ].
Отлично. Фон готов.
Добавляем пару кнопок в трейнер.
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
В колонке слева ищем - Caption (что будет написано в трейнере на кнопке)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Изменяем как желаем
Жмем на 1 кнопку - Events в колонке слева - OnClick - ...
[Ссылки могут видеть только зарегистрированные пользователи. ]
От end отступаем 1 строчку, аналогичное повторяем со 2 кнопкой.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Остается накидать шаблон, и воуля, трейнер готов.
Вот вам заготовки, для Поиска/Замены, ну и пару фишек расскажу в конце.
--Код кидаем на кнопку Поиск
process = "Пишем процесс"
bytes = "Сигнатура"
results = AOBScan(bytes,"*W*X-C")
adress = strings_getString(results,0)
showMessage("Поиск дал результаты!")
=============================================== Можно немножко "усовершенствовать", добавив пару строк.
Код:
--Код кидаем на кнопку Поиск
process = "Пишем процесс"
bytes = "Сигнатура"
if (getProcessIDFromProcessName(process)==nil) then
showMessage("Процесс не найден!")
return end
openProcess(process)
results = AOBScan(bytes,"*W*X-C")
if (results==nil) then
showMessage("Значение не найдено!")
return end
adress = strings_getString(results,0)
showMessage("Поиск прошел успешно!")
===============================================
Код:
--Код кидаем на кнопку Активация/Деактивация
writeBytes(adress,0x??)
showMessage("Активация/Деактивация прошла успешно!")
Пример, что должно получиться.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Трейнер готов
Добавим иконку, почти аналогично картинке -
[Ссылки могут видеть только зарегистрированные пользователи. ]
Готово. Жмем Создать трейнер.
Обязательно! Путь должен быть полностью Английский! Иначе будет вылазить ошибка.
Создаем 2 трейнера х32 и х64.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Ура! Всё готово
[Ссылки могут видеть только зарегистрированные пользователи. ]
Добавляем на кнопку активировать в конец кода - showMessage("Текст")
Цитата:
Сообщение от Пример
function CEButton1Click(sender)
--Код кидаем на кнопку Поиск
process = "Пишем процесс"
bytes = "Сигнатура"
results = AOBScan(bytes,"*W*X-C")
adress = strings_getString(results,0)
showMessage("Поиск дал результаты!")
end
1. Кидаем на кнопку - shellExecute('http://...') при нажатие на нее вы перейдете по ссылке
Код:
function CEButton?Click(sender)
shellExecute('http://...')
end
Цитата:
Сообщение от Пример
function CEButton2Click(sender)
--Код кидаем на кнопку Активация/Деактивация
writeBytes(adress,0x??)
showMessage("Активация/Деактивация прошла успешно!")
shellExecute('http://zhyk.ru/forum/showthread.php?t=781568')
end
2.Если хотите что бы переход по ссылке осуществлялся при запуске трейнера то кидаем - shellExecute('http://....') в самый верх исходника
Работает только на Mozilla.
[Ссылки могут видеть только зарегистрированные пользователи. ] - [Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ] - [Ссылки могут видеть только зарегистрированные пользователи. ]
Описание встроенных в cheat engine функций - [Ссылки могут видеть только зарегистрированные пользователи. ]
Инфо. из wiki - [Ссылки могут видеть только зарегистрированные пользователи. ]
Керь, а смысл искать нех , если хватило бы просто значение 4500 ,что мы нашли , поменять на -999999 и купить в игре пушку? ради трейнера и все? или я чего то не понял \=
________________
1.Слабый-это не тот кто изначально в чём-то слабее кого-то , а тот кто смирился со своей слабостью
2.Счастье не в тех женщинах, с которыми хочется спать, а в тех, с которыми хочется просыпаться
3.Мир радовался твоему появлению на свет,а ты при этом плакал.Проживи жизнь так,чтобы мир плакал,когда ты,исполненный радости покинешь его.
4."Так вышло" - из этой фразы получился бы отличный эпиграф к любой человеческой жизни..
5.помог?ставь сяпку
6. Первое время у меня поживешь, а утром домой поедешь. Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Керь, а смысл искать нех , если хватило бы просто значение 4500 ,что мы нашли , поменять на -999999 и купить в игре пушку? ради трейнера и все? или я чего то не понял \=
Угу. Этот трейнер, просто как пример, допустим ты хочешь не 1 значение изменить, а 20. Представляешь каждое искать - менять т.д. т.п.
Можно просто сделать трейнер, нажатием 1 или более кнопок, произойдет то, что ты делал бы дольше
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось ~Керя~; 28.08.2013 в 14:09.
Угу. Этот трейнер, просто как пример, допустим ты хочешь не 1 значение изменить, а 20. Представляешь каждое искать - менять т.д. т.п.
Можно просто сделать трейнер, нажатием 1 или более кнопок, произойдет то, что ты делал бы дольше
так ты же все значения не можешь разом найти, допустим патроны разной цены на одно оружие и другое, тебе приходится каждое искать по отдельности, и проводить долгую операцию, проще найти значение и того и другого , снести сюда
и здесь уже менять, не парясь в поисках нех*а , но удобно только для занесение в трейнер, ведь обычно 1 раз вломал и хватает на долго, или я где то не прав?
________________
1.Слабый-это не тот кто изначально в чём-то слабее кого-то , а тот кто смирился со своей слабостью
2.Счастье не в тех женщинах, с которыми хочется спать, а в тех, с которыми хочется просыпаться
3.Мир радовался твоему появлению на свет,а ты при этом плакал.Проживи жизнь так,чтобы мир плакал,когда ты,исполненный радости покинешь его.
4."Так вышло" - из этой фразы получился бы отличный эпиграф к любой человеческой жизни..
5.помог?ставь сяпку
6. Первое время у меня поживешь, а утром домой поедешь. Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Да, ты прав, но...Допустим, ты играешь в стрелялку, в которой можно взломать патроны/перезарядку/скорострельность и т.д. при каждом заходе тебе постоянно приходится искать - менять значение, + к тому же, их можешь быть больше, чем 1-20. Пишешь трейнер - не паришься
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
~Керя~, Я вот тоже не понял, зачем так сложно искать HEX? 4500d = 1194h (т.е. 94 11 в памяти), далее уже на 3 скрине прекрасно видно адрес памяти, - тоже не понятно зачем так сложно. Первый раз нашёл адрес, перезапустил браузер с игрой, нашёл еще раз адрес, и смотришь что если он остался тот же, то можно его смело использовать.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
~Керя~, Я вот тоже не понял, зачем так сложно искать HEX? 4500d = 1194h (т.е. 94 11 в памяти), далее уже на 3 скрине прекрасно видно адрес памяти, - тоже не понятно зачем так сложно. Первый раз нашёл адрес, перезапустил браузер с игрой, нашёл еще раз адрес, и смотришь что если он остался тот же, то можно его смело использовать.
Дочитав до конца ты бы увидел, что я написал, как совершенно просто выйти Не всегда бывает все так просто.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
А как быть с другими приложениями ? Во многих пробовал, нашел 15-30 значений. Начал по 1 менять, и все равно цена в приложении не сменилась, как можно сменить цену для других приложения? Есть еще способы?
А как быть с другими приложениями ? Во многих пробовал, нашел 15-30 значений. Начал по 1 менять, и все равно цена в приложении не сменилась, как можно сменить цену для других приложения? Есть еще способы?
Возможно, был выбран неверный процесс. Так же, есть вероятность того, что значение находится под формулой, или в ином типе. Нужно смотреть
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Полезная тема.И всё более менее понятно описано.Нужно будет попробовать сделать а то надоедает всё время значения менять да и лишним опытом это точно не будет.
________________ Добрые вы тут однако -82КАК с Куста Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Керь, а как быть кого в "найти адреса, получающие доступ к инструкции " более 10к++++ адресов и они все пополняются и пополняются, все руками перебирать? пытался сделать сортировку по значению, но все равно 0 в перемешку с 19999999(пример) ? я прсидел минут 30 искал , так и не дошел до середины
________________
1.Слабый-это не тот кто изначально в чём-то слабее кого-то , а тот кто смирился со своей слабостью
2.Счастье не в тех женщинах, с которыми хочется спать, а в тех, с которыми хочется просыпаться
3.Мир радовался твоему появлению на свет,а ты при этом плакал.Проживи жизнь так,чтобы мир плакал,когда ты,исполненный радости покинешь его.
4."Так вышло" - из этой фразы получился бы отличный эпиграф к любой человеческой жизни..
5.помог?ставь сяпку
6. Первое время у меня поживешь, а утром домой поедешь. Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Керь, а как быть кого в "найти адреса, получающие доступ к инструкции " более 10к++++ адресов и они все пополняются и пополняются, все руками перебирать? пытался сделать сортировку по значению, но все равно 0 в перемешку с 19999999(пример) ? я прсидел минут 30 искал , так и не дошел до середины
Вызываешь окошко, делаешь что-то, жмешь СТОП. Далее в окошке жмешь на Значение - сортируется по возрастанию. Ищешь ползунком адрес с твоим значением, если их несколько, измени на какое-либо число, если изменится в окошке - ты нашел нужный адрес. Меняешь обратно, выходишь на адрес, получаешь hex. Фух
Добавлено через 1 час 0 минут Немного переделал шаблон Поиска/Активации/Деактивации.
Код:
--Код кидаем на кнопку Поиск
process = "Пишем процесс"
bytes = "Сигнатура"
results = AOBScan(bytes,"*W*X-C")
adress = strings_getString(results,0)
showMessage("Поиск дал результаты!")
=============================================== Можно немножко "усовершенствовать", добавив пару строк.
Код:
--Код кидаем на кнопку Поиск
process = "Пишем процесс"
bytes = "Сигнатура"
if (getProcessIDFromProcessName(process)==nil) then
showMessage("Процесс не найден!")
return end
openProcess(process)
results = AOBScan(bytes,"*W*X-C")
if (results==nil) then
showMessage("Значение не найдено!")
return end
adress = strings_getString(results,0)
showMessage("Поиск прошел успешно!")
===============================================
Код:
--Код кидаем на кнопку Активация/Деактивация
writeBytes(adress,0x??)
showMessage("Активация/Деактивация прошла успешно!")
Пример, что должно получиться.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Поясню 1 нюанс.
Мы ищем
Код:
CE 0A 00 00 00 00 00
Но меняем почему-то на
Код:
06 F8 50 D0
(полный hex выглядит так)
Код:
06 F8 50 D0 00 00 00
Так вот, как мы видим, после 4 пары, наступают повторения. Дак зачем нам менять то, что останется без изменений?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось ~Керя~; 30.08.2013 в 04:32.
Причина: Добавлено сообщение
А не легче просто написать 4500 и 4 байта поменять на массив потом написать много нулей а потом как ты сказал уберать по паре?
[Ссылки могут видеть только зарегистрированные пользователи. ]
И всё это 4500
Так то да, можно сделать так с точным значением. Но придется проделать двойную работу, а именно, Найти 4500 - изменить на Массив, скопировать/ Поменять обратно на 4 байта, изменить число, опять поменять на Массив - скопировать.
В отладчике же проще, на мой взгляд.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Загружаем в трейнер 2 картинки, накладываем друг на друга.
Я покажу пример, как сделать так, чтобы менялась при нажатие, далее разберетесь сами, если чуть помыслите.
Эту видим [Ссылки могут видеть только зарегистрированные пользователи. ] На эту изменится при нажатие [Ссылки могут видеть только зарегистрированные пользователи. ]
Для начала ставим в настройках второй картинки Видимость - False
[Ссылки могут видеть только зарегистрированные пользователи. ]