Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Правила форума Чёрный рынок Реклама и привилегии Гаранты Арбитраж

Регистрация Бан-лист Сообщество ПОПУЛЯРНОЕ
Вернуться   RF-Cheats.ru - форум читеров и ботоводов > > > >

Пакетный уровень RFO / WPF-скрипты

: Обсуждение пакетов, способа отсылки/редактирования пакетов и багов на их основе. Технически говоря - обсуждение сетевого протокола RF.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаБоты и читы для The Elder Scrolls Online (TESO) бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр




Ответ
 
Опции темы
Старый 17.09.2008, 09:31   #1
Fog
Постоялец
Аватар для Fog
OFFLINE
Регистрация: 16.06.2007
Возраст: 36
Сообщений: 110
Благодарностей:
233 всего
Мнения: + 1521
Репутация: 766
Отправить сообщение для Fog с помощью ICQ

[Tutorial] CE Tutorial


Дабы помочь юным читерам разобраться в азах (, на самом деле функций у этой проги вагон и маленькая тележка) был написан минигайд и оформлен в виде проги.
Далее будет следовать перевод (свободный) основных моментов этапов этого гайда. Суть каждого этапа - ломануть значение. При обнаружении факта читерства становится активной пимпа для перехода на следующий этап. Итак, поехали:

(Пролог)
- Для начала запускаем СЕ, если он у вас все еще не запущен. Кликаем на пиму "открытия процессов" (мигающий компьютер слева-вверху) Когда откроется список запущенных приложений - выбираем процесс этого туториала (что-то по типу tutorial.exe) и нажимаем "ok". Если руки растут оттуда, откуда надо - окошко процессов исчезнет, а сверху в СЕ будет написано название выбранного процесса.

(Step 2)
- Итак. Открывать процессы мы уже научились. На текущий момент у нас по идее открыт этот самый туториал. Если нет - открываем. Внизу туториала наблюдательные читеры могут заметить надпись "Health: 100", пимпу "Hit me" (получить по башке) и неактивную пимпу "Next". Повторюсь - задача каждого этапа активировать эту пимпу, путем изменения значений (условия оговариваются в каждом этапе). Тру читера перед тем как рваться в бой сначала убедяться, что тип искомого значения 2 Bytes или 4 Bytes. Можно использовать и 1 Bytes, но у нас могут возникнуть проблемы, когда мы найдем адрес и захотим его изменить. 8 Bytes также могут работать если байты после адреса являются 0, но не будем исптывать судьбу =)
Singles, Doubles не работают вообще, т.к. хранят переменные другим способом.
Убедившись, что мы ищем "Exact Value" вписываем в поле для поиска значение хелсов и жамкаем на пимпу "First Scan". Спустя некоторое время (если ваш железный конь - ппц тормоз) поиск закончится и слева отобразятся найденные адреса. Если нашлось более одного адреса - не огорчаемся. Жамкаем себе по башке (для танкистов - кликаем на "Hit Me"), записываем новое значение заместо старого и давим на "Next Scan". Повторяем сие действие пока не останется один адрес.
Порадовавшись своим успехам дважды кликаем (далее "2клик") по этому адресу и Девид Блейн перемещает его в списочек внизу. 2клик по значению (или можно выделить и жамкнуть Ентер) и меняем его на 1000. Если бох не обделил вас прямыми руками, то пимпа "Next" станет активной (1000 и есть то самое искомое значение). С чувстом исполненного долга можно по ней жамкнуть.

З.Ы. Если бох вас все таки обделил руками - не стоит сразу огорчаться, можно нажать на пимпу "New Scan" и испытать удачу вновь.. А вот если после 100500-ой попытки вы так и не смогли осилить данный этап, то бох вас, видимо, обделил еще и мозгами. В таком случае рекомндую закрыть данный туториал и вырубить комп до лучших времен.

(Step 3)
- Сразу замечу, что по прошествии каждого этапа и тыкании пимпы некст на следующем этапе отобразиться пасс, при вводе которго в самом начале (окно для ввода пасса найдете сами) можно незамедлительно попасть на нужный вам этап туториала. Отображаются они в скобках, примерно такого вида (PW=*******). Писать пассы тут я не буду. Сообщения с пассами и просьбами их выложить мной так же будут удаляться - дабы нубы не ленились прокачивать свой моск. Вернемся к нашим баранам.
OK. Первый отсев нубов прошел. Вижу вы научились искать точные значения. Го дальше к знаниям.
В прошлом тесте мы знали какое значение будем искать. Тут же есть небольшой напряг в виде статусбара с полосочкой нашей жизни. Все что мы знаем, дак это то, что значения находятся в диапазоне от 0 до 500. И каждый раз когда мы бьем себе по башке, наша жизнь укорачивается, что в принципе вполне логично. Количество потерянных жизней каждый раз будет отображаться над статусбаром.
Как обычно у нас дофига возможностей найти интересующее нас значение, но тут будет объяснен самый нупский способ это сделать. "Unknown initial value" нас спасет. А также уменьшение переменной.
Т.к. мы не втыкаем скока у нас сейчас жизней, то выбираем тип сканирования "Unknown initial value", тип переменной 4 Bytes (чаще всего будут искаться переменные типа 4 Bytes) и жамкаем на "First Scan". Ждем. Если комп - тормоз - идем пить чай.
Когда поиск окончится - жахаем себе по башке (думаю уже все вкурсе что именно надо сделать). Кол-во снесенных жизней покажется на пару секунд и исчезнет, но эта информация нам вообще ни к чему.
Далее идем в СЕ, выбираем "Decreased Value" и давим на "Next Scan". Повотрям процесс, пока не получим несколько значений. Учитывая что значение находятся в диапазоне от 0 до 500 выбираем наиболее приглянувшееся нам, добавляем его (процесс добавления, начального и дальнейшего поиска был подробно описан, так что далее он описываться не будет) и меняем на 5000. Руки прямые -> переходим на следующий этап.

(Step 4)
- Хитрые программеры иногда используют тип "floating point" (плавающая точка; числа вида "5.12"), дабы запутать бедных нас. Но тручитера это не остановит, а наоборот добавить масла в огонь =)
Продвинутый читер пропалит надписи "Хелс" и "Аммо" внизу окошечка. Наша задача сводиться к тому, чтобы поиметь программу и обяснить ей что эти значения равны 5000 (или больше) каждое. Хелсы хранятся в виде 'floating point', а аммо в виде "double". Тип сканирования "Exact value" тут пашет, но можно поэксперементировать и с другими типами.

Бонус: Рекомендуется отключить "Fast Scan" для типа "double".

(Step 5)
- Иногда найденные нами значения меняются по непонятным причинам (Девид Блейн ), при рестарте игры или (верх наглости) во время самой игры. В таких случаях у нас есть 2 пути для нападения. В этом этапе будет оглашен один из них: "Code Finder".
Переменная, используемая в данном этапе будет храниться в разных местах при каждой загрузке этого туториала.
Находим адрес переменной (учитывая то, до какого этапа мы с вами дошли, будет полагаццо, что вы уже знаете как это делать). Найдя нужный нам адресок, можно тыкнуть по нему правой пимпой грызуна и выбрать "Find out what writes to this address". Появится окошко с пустым листом. Далее тыкаем на пимпу в туториале "Change value" и го обратно в СЕ. В том самом появившемся окошке будет адрес и ассемблерный код (не будем щас вдаваться в подробности что вообще все это значит). Выделяем его и тык на пимпу "Replace" и заменям ничего-не-делающим-кодом. Другими словами тупо стираем что увидели. Все эти манипуляции так же добавят адрес в "Advanced Option" и вы их сможете просмотреть, если у вас конечно стоит нужная галка в настройках.
Жамкаем на "Stop" в том окне, где первый раз увидели код ассемблера. Замечу, что окна СЕ имеют свойство ныкаться друг за дружку, поэтому если вы не увидели нужного вам окна - поперетаскивайте остальные - авось что и найдете.
Жамкаем на "Change Value" и если все было сделано прально - го на следующий этап.

(Step 6) Указатели (крышеснос для непривыкших людей)
- В прошлом тесте мы вкуривали в Code Finder. Но есть один небольшой минус. С его помощью довольно сложно поменять значение на то, которое хотим мы. Поэтому щас будем вкуривать в указатели. Внизу опытный читер пропалит две пимпы: "Change value" (поменять значение) и "Change pointer" (поменять указатель). Первая менять только значение, а вторая меняет значение И его месторасположение (!). На данном этапе знания ассемблера не особо пригодятся, но упростят понимание.

Находим переменную. Знакомыми движениями врубаем функцию "Find out what writes to this address". Меняем значение и видим "то, что писало по этому адресу". 2клик по этой шняжке (или можно выделить и нажать "More info") и новое окошечко покажет детальную информацию о том, что произоидет, когда выполнится эта инструкция. Если в ассемблерном коде ничего не будет между "[" и "]" (это только касательно строчки, выделенной красным), то юзаем другой адрес. Если все пучком, то мы уже недалеко от цели.
Го в главное окно СЕ и ищем 4 Bytes. В поле для поиска вбиваем то, что нам показало "More Info", только не забываем поставить галку "Hex".
После окончания поиска, если повезет то мы найдем один адрес. Если не повезет несколько сотен. Чаще всего искомый адрес - самый маленький, другими словами он где-то в начале списка. Добавляем адрес в список и объяснем СЕ, что это указатель. Делается это путем несложных манипуляций. 2клик по адресу только что добавленного значения, ставим галку (место куда ее можно поставить - одно единственное, так что не думаю, что вы ошибетесь). Наше окошко преображается предлагая ввести нам адрес указателя и оффсет. В адрес указателя вводим адрес найденного значения. Если все хорошо, то в надписи над окшоком адреса вместо знаков вопроса появится адрес переменной с нашим значением (это то, что мы первое нашли). Жамкаем ОК и адрес этой переменной приобретает вид: "Р->********", где заместо звезд адрес нашей первой переменной. Теперь меняем значение указателя на 5000 и замораживаем (ставим галку в столбце Frozen). В туториале жамкаем на "Change pointer" и если все сделали прально, пимпа некст станет активной.

Бонус 1: Если между [ и ] оказалось не просто значение, а что-то по типу EAX+EDX+00000038... Можно конечно в панике побегать по комнате с криками "Мы все умрем!!!" или "Ктулху зохавалЪ мой моск!!!", это кому что больше по душе. Но можно не сцать, а открыть виндовскую считалочку и провести там это сложение. Значение EAX или чего еще непонятного можно узнать в окне "More Information" внизу. Там написаны все значения регистров на момент выполнения команды. Так же не забываем, что проводить вычисления надо в хекс системе. Подробнее про эту муть можно почитать здесь. Численные смещения (в данном случае это 00000038) вводтся в поле оффсета

Бонус 2: Можно тупо заюзать поиск указателей на данный адрес =)

(Step 7) Инжектинг.
Вкратце - мы подсовываем процессу свой исполняемый код.
На данном этапе все, как в былые времена... Хелсы и жамкнуть себе по башке. При жамкании по башке хелсы будут уменьшаться сторого на 1. Наша задача состоит в том, чтобы прога увеличивала значение на 2 при каждом жамкании. В результате мы получим, что стандартный код уменьшает значение на 1, а наш код увеличивает его на 3 и в итоге значение увеличивается на 2. Так что не пугаццо =) Поехали:... Стоп. Знания ассемблера начинают приветствоваться %) Вроде все.

Ищем адрес и "то-что-в-него-пишет". Когда все это будет найдено жамкаем на "Show disassembler" и открываем окошко автоассемблера (бред полный, но я бы тоже не смог придумать названия лучше ) путем нажатия на ктрл+А или выбором менюшки Tools -> Auto Assemble. Далее Template -> Code Injection и вводим адрес кода, который понижает нам хелсы (по идее там уже будет нужный нам адрес, если не выделяли другие строки в дизассемблере). Все эти действия приведут к автоматической генерации простейшего инжектинга на асме.

Далее следуют замечания автора о том, что могут возникнуть ошибки при использовании данной функции если у нас стоит что-то начиная с 2000 винды и заканчивая СП2 для ХР (не включительно). Находим в появившемся коде таукю строчку:

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

Как некотрые уже догадались, всталять свой код надо сюда, а именно после этих каментов недоходя до originalcode.
Что вставлять? Каждому на его усмотрение, но я рекомендую самую юзабельную команду асма ADD. Вот пример:

ADD [ebx+0000030c],2

Регистр не учитывается. Данную команду можно интерпретировать так: сложить значение находящееся по адресу [ebx+0000030c] и 2. Результат записать в адрес [ebx+0000030c]. Квадратные скобки тут обязательны. Ясен пень что заместо [ebx+0000030c] каждый напишет свой адрес. Наблюдательные читера найдут небольшую несогласовку данной команды и условия прохождения данного этапа. Думаю на данном этапе нашего с вами развития многие поймут что тут именно надо написать. Как альтернативу могу предложить удеаление строки, уменьшающей ваши хелсы из раздела origincode. Мир от этого не рухнет, так что можно быть спокойным.

Бонус: Автор гайда упоминает о том, что часто играх данный инжект не работает. Это может происходить по разным причинам. Одна из них - происходит "прыжок" на то место памяти, где хранится наш внедренный код. Методы обхода: исправить прыжок или пихать наш код в другое место в памяти.

(Step 8)
Мультиуровневые указатели. Слабонервных поршу удалиццо...
- Давным-давно, а именно на 6 этапе все было просто и понятно... Там использовался одноуровневый указатель, т.е. он сразу указывал на нужное нам значение. Тут автор гайда решил немного поизвращаться и сделал немного по другому. Указатели найденные вначале сего этапа будут указывать не на значение, а на адрес следующего указателя.. Юзается тут 4-хуровненый указатель, так что готовим вазелин =)

Ищем значение и "то-что-получает-доступ". Найденное значение будет указателем!..Продолжаем поиск пока нас не посетит мысль, что, наверное, пора заканчивать (скажу по секрету - пока не найдем адрес, значение которго отобразится зеленым цветом; тут-то нам и откроется страшная тайна сего явления - адреса, которые по мнению СЕ являются статическими будут подсвечены зеленым; что такое статический адрес я думаю вы поймете взглянув на ассемблерный код). Итак мы нашли путь из этих указателей. Если вы уверены в ваших действиях, то замораживаем все адреса, а значение переменной замораживаем на 5000. Жамкаем "Change value"... и если все ништяк -> некст.

Теперь если не все ништяк... =) Вариантов тут два. Либо вы заморозили не все адреса, либо накосячили с их поиском (нашли не то что надо). Вычислятеся это простым способом. Стат адрес (зеленый) всегда является первым указателем с конца. Соответственно в нем хранится адрес следующего указателя. Если вы нашли все правильно то можно восстановить цепочку, в итоге получив то значение переменной, которое на данный момент будет показывать туториал. Если фишка не сработала - косяк с поиском и надо делать все заново.

Бонус 1: Эта проблема (прохождение этапа) может быть также решена при помощи скрипта автоассемблера или поиска указателей (имеется ввиду ф-ия СЕ). Это со слов автора туториала.

Бонус 2: В некоторых ситуациях (к примеру как эта) будет целесообразным поменять настройки codefinder'а дабы он нам показывал значения регистров ДО выполнения самой команды. От себя: наблюдательные читера, владеющие англ. яз. смогли заметить надпись в окне More Information, предупреждающую, что значения регистров, которые показываются, являются значениями ПОСЛЕ выполнения команды. Дабы исправить сие недоаразумение поменяйте настройки на такие-то такие-то.

Бонус 3: Просматривая асм код можно подметить, что код, касающийся указателей, всегда в одном месте (ничего плохого ). Так будет не всегда, но значительно может упростить поиск указателя при возниконовнеии проблем с отладкой.

(Step 9) Инжект++. "И пришел он... И настал хаос!.."©
- Тут мы замутим то же самое что и на 7 этапе, тока чуток посложнее. Задача на этот раз - заменить код, уменьшающий наши хелсы на код, который будет выставлять значение 1000 если значение текущей секунды >= 30 и 2000 если оно меньще 30. Все это можно сделать при помощи некоего кода, умеющего обращаться к АПИ винды и узнавать текущее время. Дабы не выносить моск окончательно аффтар предлагает написать сишный скрипт.

Ищем значение хелсов и дуем в script engine (ctrl+alt+a в memory view или tools -> script engine)
Далее автор дает нам мегабонус в виде сишного скрипта (копировать который я не вижу смысла), ибо он не уверен, что мы вообще кода-то кодили на С ..

вместо строчки addresstochange в скрипте вставляем адрес значения, не забыв приписать 0x вначале, т.е. если адрес 0012345, то вписывать его надо как 0x0012345. Выбираем inject -> Inject into current process и нашему взору открется окно аа с кодом вызова нашего скрипта. Теперь как в 7 этапе дуем к коду, который уменьшает наши хелсы, выбираем autoassembler -> template -> code injection и пишем там процедуру вызова которую нам сгенерил этот самый СЕ. Аффтар напоминает, что при вызове нашего кода(скрипта, называйте как хотите) могут поменяться значения флагов, поэтому если мы хотим их сохранить, то сначала мы их сохраняем а потом возвращаем обратно. Так же рекомендуется убрать оригинальый код, ибо это может усложить задачу инжектинга. Тык на Execute, а затем на Hit Me и если все прошло удачно некст станет кликабельным и будет менять значения в соответсвии с нашим кодом.

Тыкаем спасибки.

(c)Глюконатор
 
Ответить с цитированием
Сказали спасибо:
SmiT (17.12.2008), Недоступно (01.11.2008), ZeTTo (28.09.2008), RFbager (28.09.2008), Недоступно (19.09.2008)


Старый 17.09.2008, 20:00   #2
Упячко
Гость
Аватар для Упячко
Сообщений: n/a
Благодарностей:
0 всего

Хорошо хть Глюка упомянул)


А где прога?
 
Ответить с цитированием
Старый 17.09.2008, 20:18   #3
Fog
Постоялец
Аватар для Fog
OFFLINE
Регистрация: 16.06.2007
Возраст: 36
Сообщений: 110
Благодарностей:
233 всего
Мнения: + 1521
Репутация: 766
Отправить сообщение для Fog с помощью ICQ

www.cheatengine.com
 
Ответить с цитированием
Старый 17.09.2008, 22:40   #4
dark
Владимир Владимирович
Аватар для dark
OFFLINE
Регистрация: 09.04.2007
Сообщений: 964
Благодарностей:
36,485 всего
Мнения: + 34587
Репутация: 116118
Отправить сообщение для dark с помощью ICQ Отправить сообщение для dark с помощью Skype™

Fog +11 постов
Дал бы больше, если б это твоя работа была.

Cheats Development | Создание читов на заказ

Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
 
Ответить с цитированием
Сказали спасибо:
Fog (18.09.2008)
Старый 19.09.2008, 16:28   #5
gegebyte
Гость
Аватар для gegebyte
Сообщений: n/a
Благодарностей:
0 всего

Ку!
Хлопец, который написал АртМани, наверное тоже догадывался о подобных методах спрятать значение от взлома, а так же, и о методах достать спрятанное, в том числе и глубоко под большим вложением указателей. Однако материал, пропостеный тут - посерьёзнее будет, хотя и написан на своего рода сленге.
т.е. Спасибо. про дабл ещё не задумывалсо.

Однако Есть Проблема: локальные игрушки ломать смысла мало - фан от прохождения уже получен. и бесконечным нитро уже не удивишь.
И танки у нас ещё в "Дюне 2" очередью стреляли... - это мы детям на кухне за водочкой расскажем в припадке ностальгии по 286 машинкам с дос.ом и ега картинкой на чб !Телевизоре! :)

А теперь, собственно суть:

Насколько я понимаю ситуацию онлайн игр (я не читер, я только хочу...:), в РФ команды и математика игрока исполняются и просчитываются "на месте", а потом отправляются на серв для, так сказать, синхронизации с внешним миром. Скорее всего там же (на серве) и проверяется на "честность".

Вот бы почитать материал об принципах обмана сервера. Как все наши изменения преподнести серву за чистую монетку?
 
Ответить с цитированием
Старый 20.09.2008, 10:17   #6
Упячко
Гость
Аватар для Упячко
Сообщений: n/a
Благодарностей:
0 всего

Цитата:
Сообщение от Fog Посмотреть сообщение
по этой ссылке ничего похожего с СЕ, там даже скачать нечего)
Дайте рабочую ссылку.
 
Ответить с цитированием
Старый 20.09.2008, 10:22   #7
n1fr1t
Модератор раздела Requiem Online
Аватар для n1fr1t
OFFLINE
Регистрация: 14.11.2007
Возраст: 36
Сообщений: 39
Благодарностей:
304 всего
Мнения: + 807
Репутация: 1339
Отправить сообщение для n1fr1t с помощью ICQ Отправить сообщение для n1fr1t с помощью Skype™

Fog чуть чуть промазал )
Link
CE 5.4
 
Ответить с цитированием
Сказали спасибо:
Fog (20.09.2008), Упячко (20.09.2008)
Старый 20.09.2008, 12:23   #8
Fog
Постоялец
Аватар для Fog
OFFLINE
Регистрация: 16.06.2007
Возраст: 36
Сообщений: 110
Благодарностей:
233 всего
Мнения: + 1521
Репутация: 766
Отправить сообщение для Fog с помощью ICQ

Цитата:
Сообщение от n1fr1t Посмотреть сообщение
Fog чуть чуть промазал )
Link
CE 5.4
а ну да) Обычно кто не знает тот юзает гугль.
 
Ответить с цитированием
Старый 28.09.2008, 01:45   #9
RFbager
Эксперт
Аватар для RFbager
OFFLINE
Регистрация: 12.06.2008
Сообщений: 315
Благодарностей:
641 всего
Мнения: + 3523
Репутация: 1966

Огромное,человеческое спасибо оочень не хватало)

 
Ответить с цитированием
Старый 28.09.2008, 02:21   #10
demo
Читер со стажем
Аватар для demo
OFFLINE
Регистрация: 03.08.2007
Возраст: 35
Сообщений: 481
Благодарностей:
726 всего
Мнения: + 4033
Репутация: 3119
Отправить сообщение для demo с помощью ICQ

а мне вообще ни за одну тему постов не дали... ни за одно сообщение.... даже за магистр, о котором я писал пм, и который у меня слили однажды :11:

Попробуй убей меня тут!

Приложение для андроид для игроков руоффа: https://market.android.com/details?i...rfstatuserfree
 
Ответить с цитированием
Сказали спасибо:
user999 (16.11.2009)
Ответ



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр
Загрузка...