Добрый день всем
Долго думая решил все таки создать данный гайд. На создание гайда уйдет много времени, поскольку буду рассказывать и показывать на каких то примерах, а так же с примерами функций...
Что нам потребуется вообще :
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
В данном под гайде я вам расскажу и покажу на примерах базовые понимания - как писать читы.
Использовать будем Cheat Engine.
Будем отсеивать значения с помощью СЕ.
Чаще всего СЕ не отсеивает значения потому, вы можете их неправильно искать по типу чисел в памяти. А так же некоторые значения могут быть так же кодированными.
В качестве примера выбрал игру "Косынка", т.к Это самая распространенная Windows игра.
Шаг 1. - И так, запускаем "Косынку"
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 2. - Затем CE
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 3. - Щелкаем по этому значку:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 4. - Выбираем процесс игры:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 5. - Затем выбираем опции поиска (если это нужно).
[Ссылки могут видеть только зарегистрированные пользователи. ]
где:
Also scan read-only memory - переводится как "Сканировать так же память из области Только для чтения". Не очень нужная вещь. Т.к большинство нужных нам адресов изменяются, а если включить эту опцию, то будут искать и значения которые нельзя изменить.
Fast scan - бистрое сканирование.
Pause the game while scanning - Приостанавливает игру, на момент поиска значения. Удобно если вы ищете значение, которое постоянно меняется в игре. Но есть минус - Онлайн игры из-за этого могут выключаться.
Шаг 6. - Делаем любое действие, которое прибавит или уменьшит очки. В нашем случае - делаем ход тузом. Нам прибавилось 10 очков.
В СЕ в Value: Вводим нашиочки, в данном случае 10. И нажимаем поиск
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 7. - Потом делаем любое действие, что бы увеличить или уменьшить очки.
И делаем действия (Шаг 6) , только вписываем текущее количество очков.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 8. - Делаем до тех пор, пока у вас не нашло только 1 значение. Затем левой кнопкой мыши щелкаем по найденому значению. Оно у вас добавляется в адрес лист.
[Ссылки могут видеть только зарегистрированные пользователи. ]
И двойным щелчком левой кнопкой мыши нажимаем сюда:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Шаг 9. - В появившемя окошке меняем значение на свое:
[Ссылки могут видеть только зарегистрированные пользователи. ]
И у нас получается:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Так же можно делать во всех играх (так же онлайн).
Если у вас не находит нужные значения - меняем тип данных, на какой нибудь:
Бинарный
байт
2 байта
4 байта
8 байт
Float
Double
[Ссылки могут видеть только зарегистрированные пользователи. ]
В предыдущем под гайде мы научились находить нужное нам значение в игре.
Теперь мы можем прописать в памяти процесса какое то значение и заморозив его. (Для того, что бы он не менялся), но вот проблема, в некоторых играх такое не сделаешь, игра просто аварийно закрывается. Что же делать? Можно изменить саму работу процесса игры, так сказать немного перепрограммировав его. Делается это с помощью Дизасамблеров и отладчиков. Cheat Engine имеет встроенный отладчик, которым мы и будем пользоваться. Но это только в некоторых случаях мы будем использовать встроенный отладчик в Cheat Engine. Т.к много-го он не умеет делать. Но для урока вполне сойдет.
И так, наша задача обмануть игру, заставить ее работать так, как нам это надо.
Находим участок игры (ячейку памяти - байты) которой мы хотим изменять.
И так, добавляем в адрес лист нужный нам байт.
Потом щелкаем правой кнопкой мыши и выбираем "Find out what writes to this addres"
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь делаем любое действие в игре, что бы изменить значение (которое мы хотим в дальнейшем править)
ВНИМАНИЕ!! Тут еще есть некоторые СЕ, которые не выполняют это. Вот я сейчас забыл об этом и попытался с помощью CE by PreDoK сделать все это, а он выдал мне ошибку. Так что в дальнейшем буду использовать другое СЕ.
Появляется окошко:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Кликаем по коду и нажимаем "Show disassembler"
[Ссылки могут видеть только зарегистрированные пользователи. ]
У вас будет по другому.
Расшифровка то, что получилось.
По адресу FF4D96CC находится байт-код (последовательность байт в 16чных числах) 41 83 43 14 FE, на языке дизасамблера это выглядит "add dword ptr [r11+14],FE". (поместить в ячейку с адресом значение которой получается как число в регистре "add dword ptr [r11+14],FE" ( 11 и 14 это 16чное число, на ассемблере почти всегда используется 16чной система счисления), число равное регистру FE)....
После нажатия "Show disassembler" видим новое окно. Это окно отладчика, курсор стоит именно там, где надо
Далее нам нужно будет найти относительность этого байт-кода от 1 байт кода.
Открываем окошко Cheat Engine и нажимаем клавиши (Ctrl+M) и мы видим:
[Ссылки могут видеть только зарегистрированные пользователи. ]
Видим, что появилась новая колонка, а в ней у указателя прибавилось "solitaire.exe + 39641" - Это смещение (offset) от базового адреса (1го байт-кода)
Теперь что бы проверить нажимаем правой кнопкой по выделенной строчки и выбираем "Replace with code that does nothing" (Переводится как - "Заменить кодом, который ничего не делает"). и Смотрим в игре - наше значение не изменяется больше
Если все так и есть, то Ура, мы можем издеваться теперь над этим адресом как хотим
В данном под гайде мы поговорим о методе работы с более можным отладчиком,чем CE - Olly DBG
Использовать будем версию - 1,10. Т.к под эту версию сделано очень много полезных плагинов.
В предыдущих под гайдах мы научились находить нажный байт-код, научились смотреть и изменять ход игры. А так же научились находить смещение относительно 1рого байт-кода (offset).
Сейчас научимся находить фактический адрес байт-кода..
Открываем Olly DBG и выбираем "Файл" , затем "Присоединиться к процессу". В новом окне находим нужный нам процесс. Буду показывать на примере другой игры, т.к В Windows 7 родные игры со скрытым процессом и Olly DBG не видит просто процесс. (Конечно можно найти нужный плагин, но оно того не стоит.) Буду использовать специально для этого сделанную программу - [Ссылки могут видеть только зарегистрированные пользователи. ])..
Запускаем Olly DBG.
Нажимаем в ней "File" потом "Attach". Теперь выбираем из процессов нужный нам. В данном случае "Tutorial.exe"
[Ссылки могут видеть только зарегистрированные пользователи. ]
При подсоединении olly к процессу она его останавливает. Что бы возобновить ход процесса нажимаем F9.
Из 2 урока мы нашли оффсет этой функции (которая отвечает за исполнение действия -прибавить/уменьшить) но т.к пример я поменял, выполняем все заново, (т.е нам надо выполнить под гайд II для дальнейших действий.)
Теперь нам нужно будет найти основной адрес (point) этой функции. Для этого нажимаем "View" , а затем "Executable Modules"
[Ссылки могут видеть только зарегистрированные пользователи. ]
В открывшемся окошке находим наш модуль и смотрим на вкладку "Base".
[Ссылки могут видеть только зарегистрированные пользователи. ]
В данном случае point равен - "04000000".
После кликаем по нему 2 раза левой кнопкой мышки, теперь у нас открылись окошки с программным кодом на языке ассемблера этого модуля..
Теперь открываем калькулятор. Windows XP(Вид -> Инженерный). Winows 7 (Вид -> Программист). Ставим галочку на "Hex"
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь плюсуем (point + offset).
point мы нашли в предыдущих действиях.
offset нашли во II под гайде.
У меня получилось (из-за изменения примера (на чем я показываю) у меня оффсет будет другим, от II подгайда.)
04000000+20F3E = 4020F3E.
где:
04000000 - point
20F3E - offset
Это будет у нас адрес функции (изменяющей значение - уменьшает / увеличивает)
Теперь в Olly DBG нажимаем комбинацию клавиш - Ctrl+G и вводим результат, а именно - "4020F3E" и жмем ОК.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь останавливаем процесс (на всякий случай, дабы не было никаких сбоев) кнопкой F12.
И щелкаем по курсору (после поиска серый курсор встал на строчку) вот теперь щелкаем по нему и в открывшемся окошке можешь изменять действие.
Для теста как и в прошлом под гайде сделаю простое остановку выполнения (т.е что бы эта функция перестала работать. Уменьшать/увеличивать очки в программа/игре.)
Для этого вместо той функции вписываем - "nop" (БЕЗ кавычек). И ставим галочку на "Fill with NOP's"
[Ссылки могут видеть только зарегистрированные пользователи. ]
И нажимаем "Assemble".
Теперь входим в игру и пробуем увеличить/уменьшить это значение. Если у вас это не удастся значит вы все правильно сделали .
Теперь смотрим основные обозначения в асме - http://zhyk.ru/forum/showthread.php?t=356509
Ну и на последок расскажу как потом очень быстро находить адрес (после обновы).
Для этого открываем через программу IDA PRO нужный нам модуль (смотря какая игры/программа) и вводим наш адрес в поиск по тексту (Ctrl + F). Далее после того как найдет нам нужно будет пролистать чуть-чуть вверх до 1рого указателя (указатель - это текст/название функции в модуле - которое сумел расшифровать дизасамблер.. Вот теперь смотрим адрес возле этого указателя (слева от него).
Потом открываем калькулятор. Windows XP(Вид -> Инженерный). Winows 7 (Вид -> Программист). Ставим галочку на "Hex"
И вводим наш адрес и жмем "-" минус. Потом вставляем адрес указателя. Нажимаем "=" равно. Результат будет разность адреса функции-адреса функции.
Теперь записываем указатель и разницу. А после обновления программы/игры открываем модуль через IDA PRO и нажимаем Ctrl+F вводим нащ указатель. Потом когда найдет IDA PRO наш указатель - копируем адрес возле указателя. В калькуляторе к этому адресу прибавляем разность (перед этим делали (разность = адрес функции - адрес указателя))..
По возможности нужно использовать не повторяющийся Указатель (т.е что бы при поиске его выдавало только 1 совпадение !!)
Скрины не стал делать. Т.к они в принципе не нужны.
ЗЫ Редактировал тему 3 раза, т.к много лишнего написал (можно сказать Секретного)
Это только начало, в дальнейшем после ваших тестов вы сможете уже хорошо разбираться в этом...
ЗЫ. Только есть 1 Хитрость, если подключить Cheat Engine aka Olly DBG к процессу pointblank.exe будет краш. Это можно убарть с помощью специальных плагинов. Их у меня нету , ну мб Так что google.com в помощь
Только вот наврятли вы встретите данный плагин в рунете. Ищите на зарубежных чит порталах...
Вот впринцыпе и все.
С уважением, Mathers
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Skilful; 15.03.2012 в 20:57.
Я нашол с помощью Оli dbag без чет энжена текстовые значения которые отвечают за нужные мне опции как мне их плюсонуть правельно?
[Ссылки могут видеть только зарегистрированные пользователи. ]
Ещё мою тему по поиску поинтеров закрывали.... Если так и далее пойдёт, то вдруг с ида про слезут на оллю Хотя знаний не хватет
P.S. Смысл аттачится к процессу пб? Что мы с этого поимеем? Классы раскапывать? xD
пкскай переходят... тебе то что... у каждого софта свое предназначение и плюсы
з.ы. а он даже не сможет приаттачится к процессу пб, фрост скажет ему иди от сюда противный
Добавлено через 18 минут
короткая рецензия
Часть I. Поиск значения с помощью Cheat Engine
Ну что сказать в пб дело неблагодарное, много геморроя, есть вероятность что раунд закончится и то что вы искали исчезнет (динамическая память), ну или вы тупо не чего не сможете найти потому данные будут меняться не как вы хотите, вы можете наткнуться на копии данных, данный могут закриптованы и самое самое самое реальное завершения этих действий это огромный листинг данных, в которых не возможно разобраться и понять что вообще от куда....
итог: данный гайд не совсем подходит для пб, иногда может не помочь
Часть II. Работаем с отладчиком в Cheat Engine
На x64 еще попробуй запусти отладчик На выбор либо VEH либо курнел мод, второе не работает/вызывает синего пикачу без какогото дополнения для СЕ (не помню как называется), а лично у меня поставлено криво и итак вызывает пикачу (хотя я не знаю точно). А veh не кто из присуствующих для кого писал ты этот гайд не сможет нормально поюзать, так как надо убивать фрост...
на x32 ситуация лучше
итог метод работы с ним очень полезный, но фрост тоже не дремлет, хотя он занимается тем чем не должна античит система
Часть III. Работа с Olly DBG
Приаттачится к процессу пб еще умудриться надо, опять фрост страдает фигней..
итог нужно открывать ее файл, для остальных целей убивать фрост/ставить плагины для скрытия (но может не сработать)
Часть IV. Быстрый поиск адреса + функция на asm в СЕ
большинство не юзают, мне пригодилось лишь пару раз... и в гайде не сказано про тонкость с местом начала поиска...
Часть V. Быстрое обновление адресов после обновы.
Интересно а кто-нибудь знает что он вообще ищет. И вообще большинство мастеров пб после начала ковыряния другой игры дико обламываются...
Если так и далее пойдёт, то вдруг с ида про слезут на оллю Хотя знаний не хватет
Да у olly много плюсов в функционале, но и у ida pro тоже не хуже. У каждой свои плюсы и недостатки. Я предпочитаю комбинировать эти программы, одно делать одной, а другое другой.
Цель при создании гайда у меня была "ввести" пользователей в начало. Это простейшие действия, но многие ничего из этого не знают..
Цитата:
Сообщение от pia3333(4)
P.S. Смысл аттачится к процессу пб? Что мы с этого поимеем? Классы раскапывать? xD
Так быстрее можно потестить
Цитата:
Сообщение от slava-zis
з.ы. а он даже не сможет приаттачится к процессу пб, фрост скажет ему иди от сюда противный
мб мб
Цитата:
Сообщение от slava-zis
Ну что сказать в пб дело неблагодарное, много геморроя, есть вероятность что раунд закончится и то что вы искали исчезнет (динамическая память), ну или вы тупо не чего не сможете найти потому данные будут меняться не как вы хотите, вы можете наткнуться на копии данных, данный могут закриптованы и самое самое самое реальное завершения этих действий это огромный листинг данных, в которых не возможно разобраться и понять что вообще от куда....
итог: данный гайд не совсем подходит для пб, иногда может не помочь
Полностью согласен. Но пока не перезайдешь или СЕ не выключишь и\или сместишь указатель - будет все ок.
Цитата:
Сообщение от slava-zis
На x64 еще попробуй запусти отладчик На выбор либо VEH либо курнел мод, второе не работает/вызывает синего пикачу без какогото дополнения для СЕ (не помню как называется), а лично у меня поставлено криво и итак вызывает пикачу (хотя я не знаю точно). А veh не кто из присуствующих для кого писал ты этот гайд не сможет нормально поюзать, так как надо убивать фрост...
У меня х64 кернел мод работает нормально (только вот Kernel Detective не запускается, а он бывает ой как нужен..)
Цитата:
Сообщение от slava-zis
Приаттачится к процессу пб еще умудриться надо, опять фрост страдает фигней..
итог нужно открывать ее файл, для остальных целей убивать фрост/ставить плагины для скрытия (но может не сработать)
Можно, только нужены специальные плагины - такие есть (у меня раньше было много их, скачал из одного источника, но вот сейчас они от туда удалены и у меня камп несколько раз был почищен. Они потерялись..) так факт в том, что я присоединял олли к процессу пб. Сейчас же такое я не могу (ввиду отстутствия этих плагинов) ++ фрост намного поумнел. Итог: Этот гайд для ознакомления...
Цитата:
Сообщение от slava-zis
большинство не юзают, мне пригодилось лишь пару раз... и в гайде не сказано про тонкость с местом начала поиска...
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
+
Я даже поставить винду вторую хочу... Не робят дебагеры и Kernel Detective... Фрост не сломать значит...
Для этих целей я использую другой компьютер (благо у меня еще ноутбук)..
Так же можно сделать вторую винду на 1 камп
а так же сделать виртуальную винду.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).