-
Постов
48 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Тип контента
Профили
Форумы
Загрузки
Блоги
Сообщения, опубликованные Maxs
-
-
Игра сделана на Unity3d. В каталоге с игрой обычно одна папка "название игры_Data" в ней папка "Managed" и там обязательно есть файл "Assembly-CSharp.dll" Это .net сборка, которая содержит практически всю логику игры и её объектов. Обычно она декомпилируется, но часто её обратно перекомпоновать нельзя из-за большого количества ошибок. Если научится загружать .net сборки в саму игру, то предположительно можно наделать много интересных читов к игре сделанной на Unity3d.
У меня уже же есть два скрипта, которые могут работать на играх Unity3d с видом от первого лица. Это полет камерой и телепорт.
Я сегодня пол дня проковырялся и ни как не могу подгрузить Cheat.dll (.net сборку) с читами изнутри этой игры.
По идее надо выполнить код ниже внутри самой игры с вызовом функции (на C++ аналог функции - точки входа в dll-ку)
Assembly a = Assembly.Load("Cheat.dll");
System.Type myType = a.GetType("Cheats");
MethodInfo myMethod = myType.GetMethod("Main");
object obj = System.Activator.CreateInstance(myType);
myMethod.Invoke(obj, null);Я вызывал этот код из самой Unity3d на тестовом проекте и dll-ка дотнетовская загружалась, чит работал, надпись зеленная горела. Значит осталось как-то исполнить этот код изнутри самой игры... Если кто в курсе как это сделать, то дайте знать.
Что делает вызов Майн-функции? Эта функция должна создать пустой GameObject и прицепить на него него поведение-скрипт позволяющий сохранять и загружать позиции.
public class Cheats{
public static void Main(){
GameObject go = new GameObject();
go.name = "Cheats";
go.AddComponent<Teleport>();
}
}Ну и вот класс телепорта в этой ддлке, который предположительно должен заработать или хотя бы загореться зеленная надпись в левом верхнем углу экрана. Функции Update() и OnGUI() уже будут вызываться самой игрой за кадр отрисовки.
using UnityEngine;
using System.Collections;
public class Teleport : MonoBehaviour {
Transform trCharacter;
#region MonoBehaviour
void Start() {
trCharacter = FindFirstCharacterController().transform;
}
void OnGUI(){
GUI.color = Color.green;
GUILayout.Label("Gamehacklab.ru");
}
void Update() {
//Save : "KeyCode.F1"
if(Input.GetKey(KeyCode.F1)){
if(trCharacter == null){
trCharacter = FindFirstCharacterController().transform;
}
if(trCharacter != null){
PlayerPrefs.SetString("Character Position", Vector3ToString(trCharacter.position));
PlayerPrefs.SetString("Character Rotation", Vector3ToString(trCharacter.eulerAngles));
}
}
//Load : "KeyCode.F2"
if(Input.GetKey(KeyCode.F2)){
if(trCharacter == null){
trCharacter = FindFirstCharacterController().transform;
}
if(trCharacter != null && PlayerPrefs.HasKey("Character Position") && PlayerPrefs.HasKey("Character Rotation")){
trCharacter.position = StringToVector3(PlayerPrefs.GetString("Character Position"));
trCharacter.eulerAngles = StringToVector3(PlayerPrefs.GetString("Character Rotation"));
}
}
}
#endregion
CharacterController FindFirstCharacterController(){
Object[] gos = GameObject.FindObjectsOfType(typeof(GameObject));
foreach (Object item in gos) {
if((item as GameObject).GetComponent<CharacterController>() != null){
return (item as GameObject).GetComponent<CharacterController>();
}
}
return null;
}
Vector3 StringToVector3(string argString){
string[] values = argString.Split(';');
return new Vector3 (float.Parse(values[0]), float.Parse(values[1]),float.Parse(values[2]));
}
string Vector3ToString(Vector3 argVector3){ return string.Format("{0};{1};{2}", argVector3.x, argVector3.y, argVector3.z);}
}-----
Есть программа Titanium 0.01. Поковырявшись в ней я так понял, что она использует моно функции, которые подгружают ддлки из той же папки Managed. Но мне кажется есть несколько способов и этот не самый лучший.
Пили видос по Unity3D
-
Xipho, вообще, я хочу научиться искать и взламывать в играх все
Но в данном случае я спрашивал именно про отдачу (No Recoil). То есть, структура ведь большая, как можно понять/определить, какое значение отвечает за отклонение ствола при стрельбе?
Нопай инструкции по очереди, когда увидишь что после очередного нопа выключилась отдача - запомни интрукцию, перезапусти игру, вернись к этой инструкции и нопай все типо mos eax,[esi+1]
-
Что за Rapid Fire?
Ну когда пистолет стреляет как миниган без отдачи.
-
Maxs, можешь использовать скрипты из моей темы (там уже есть чит на "бесконечную обойму") - http://forum.gamehac...BF%D1%82%D1%8B/
Я хочу Rapid Fire намутить... ) Вроде, даже выходит)
-
Эм... Watch Dogs? Вот я над ним и потею последнее время... Хотя успел пройти бОльшую часть игры, но только недавно начал взламывать...
Я использую VEH отладчик (В главном окне СЕ - кнопка "Опции" - справа, под значком CE, далее в открывшемся окне - "Параметры отладчика", и в "Методе отладки" переключаем на нужный отладчик)
тоже ставлю этот отладчик если игра ругается или вообще крашит !!
Спасибо за инфу, коллеги.
Эм... Watch Dogs? Вот я над ним и потею последнее время... Хотя успел пройти бОльшую часть игры, но только недавно начал взламывать...
Я использую VEH отладчик (В главном окне СЕ - кнопка "Опции" - справа, под значком CE, далее в открывшемся окне - "Параметры отладчика", и в "Методе отладки" переключаем на нужный отладчик)
Интересно, какая инструкция отвечает за изменение кол. патрон... как думаешь?
-
Я тебе могу даже подкинуть парочку тем по которым я писал свой сканер сигнатур
http://www.cyberforu...read520030.html
Как то все страшно) Есть на эту тему уроки в видео-формате?
Через "байты" не оптимальнее работать или я путаю понятия?
Сигнатура это вроде бы работа с офсетами...
Во всяком случае, мне нужен как то в кратце понять как появился этот код
ProcessName='PlantsVsZombies.exe';//Процесс Игры
Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт
SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игры
SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игрыОткуда взялись?
SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игры
SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры
-
Доброго времени суток, господа. Натолкнулся на такой камень сегодня... Witch Docs при поставке бряка адреса на чтения/запись (дабы получить какие-то инструкции) вылетает. Не понимаю в чем проблема. Это CE создает краш игры или это специальная защита?
Как и чем лечить?
P.S. Сорь если тема баян.
-
А может как то прыжки на инструкцию делать?
Тема кстати полезная.
-
Полностью согласен )) геморой ))
Юзай Delphi AOBScan что вы выкладивал или ищи в интернете !!
Попробую заняться этим вопросом, если будут проблемы/вопросы/успехи буду писать сюда.
-
Всё просто, ищешь значение float.
Находишь:
WormsMayhem.luaopen_table+3293B5 - D9 9E F0000000 - fstp dword ptr [esi+000000F0]Чуть выше заменяем
WormsMayhem.luaopen_table+3293A7 - DC 35 F8A58100 - fdiv qword ptr [WormsMayhem.MoviePlayerPC::MoviePlayerPC+5C045]На умножение на 0(0 берём из кода чуть далее):
WormsMayhem.luaopen_table+3293A7 - DC 0D AC237600 - fmul qword ptr [WormsMayhem.luaopen_table+32940C]Таким образом при каждом вычислении значения перегрева он умножается на 0 )))
Результат:
И сама таблица
Благодарю тебя за помощь.
Лайкнуть почему-то не могу, пишет "
Вы исчерпали лимит положительных оценок на сегодня
"
-
По первой ссылке... довольно странный код...
Я думал запись значение в адрес, сообственно будет проходить через адрес+массив из офсетов(типо 5745646+56+2a+35)
А тут используются, какие-то байты...
ProcessName='PlantsVsZombies.exe';//Процесс Игры
Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт
SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игры
SignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры
[size=4]Можно какую инфу по работе с байтами найти? или байты и есть офсеты?
-
Movss - Переслать одиночное короткое вещественное значение.
movss [NNN+NNNNNNN],100- ошибочно написано, так как мы не можем писать 100, мы должны взять значение из переменной типо xmm1 esx aex и т.д.
я так понимаю она может записывать только значение в переменную из переменной, то есть ты не можешь взять и написать свое значение.
ИМХО.
Читал тут - Ссылка
-
Добрый день, форумчани.
Прошу кинуть линк на тему или исходник трейнера под Delphi с возможностью чтения указателей.
-
Speed Hack
in ЧаВо
Привет. Тут довольно легко, нужно создать скрипт и пропиши туда:
[ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat luacall(speedhack_setSpeed(0.30)) //Slow motion [DISABLE] //code from here till the end of the code will be used to disable the cheat luacall(speedhack_setSpeed(1)) //Normal Speed
По активации скрипта будет работать спидхак, по диактивации будет все как прежде.
P.S. Надеюсь ты знаешь как ставить горячие клавиши для активации скриптов.
P.S.S. Лайк если помог
- 4
-
http://www.cheatengi...fo.php?tid=1315 самой игры нет - вон по формуле найди адрес в артмани,а после уже в СЕ накрутишь скрипт.
Не удалось скачать. Да мне и не интересно, качать что либо. Мне интересно, каким способом самому найти?
P.s. Отсеивание(стала больше/меньше) не помогает, там даже после 20 шагов адресов 2000 остается.
-
Попробуй отсеиванием найти адрес и заморозить его, начни поиск с неизвестного значения.
Я пробывал. Не находит.
-
Добрый день, форумчани. У меня проблема. В игре Worms: Ultimate Mayhem - Deluxe Edition есть возможность создать свое супер оружие, но чем быльше мы добавляем урона, тем больше датчик перегрузки зашкаливает(показано на видео).
Вопрос: как заставить этот датчик заморозиться на нуле, чтобы можно было у оружия выкрутить все настройки на максимум?
P.S. Искал его значение отсеиванием - толку 0.
-
Нужно сохранять трейнер в директорию без кирилических символов, только англ.
Я так и делаю! Сохраняю на C:/(имя трейнера) все равно вот такое гавно!
-
Люди, я столкнулся с проблемой, короче когда я делаю трейнер в CE 1.6 он его нормально скомперирует, но когда запускаеш его ОН НЕ ПОЕВЛЯЕТСЯ НО В ПРОЦЕСАХ ОН ЕСТЬ АШ 5 раз(смотрите скрин.)!
Пожалуйста помогите!!!
П.С когда делаю трейнер в СЕ 5.6 все нормально, но к сожиленюю он мне не нравится так как там мало функций.
-
как рисовать в чужой игре
in Создание трейнеров в специальных студиях
Опубликовано
Delphi?