Сейчас на форуме: -Sanchez- (+6 невидимых) |
eXeL@B —› Основной форум —› Взлом Unity3D игр |
<< . 1 . 2 . 3 . 4 . >> |
Посл.ответ | Сообщение |
|
Создано: 24 января 2015 17:39 · Поправил: 4kusNick · Личное сообщение · #1 Дружественные темы: Распаковщики / упаковщики, редакторы ассетов Инжект Описание формата web сборок По поводу кода Код в Unity компилируется либо в managed mono сборки, которые имеют в своей основе IL байткод, совместимый с .NET, (отличается только апи), либо в нативный для целевой платформы код. Для работы с managed кодом используем инструменты из смежной темы про Дотянуться до managed кода можно либо распаковав билд, либо сдампив managed сборки стандартными средствами (см. в теме про .NET). Почитать Если кто-то пользуется ещё какими-то инструментами - пишите, добавлю в шапку. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: Gideon Vi, TryAga1n, Mime, LinXP |
|
Создано: 06 марта 2015 14:15 · Личное сообщение · #2 |
|
Создано: 06 марта 2015 14:54 · Поправил: JohnyDoe · Личное сообщение · #3 int Я хотел сказать, что если в файле -rwxr-xr-x 1 mobile mobile 1108480 Jan 23 05:09 Assembly-CSharp.dll* код не вычищен, то в принципе лазить в основной исполняемый файл вообще нет смысла. Весь функционал находится именно в этой dll. Исключение составляют случаи с методами типа extern. Обычно размер этой dll в 1 мегабайт говорит о том, что код там есть. Правда был у меня случай, когда dll была больше мега, но кода там не было. Я не стал разбираться почему она такая большая, при отсутствии кода. Кстати, интересно почему. Я предположил, что вместо вычищения кода, каким-то образом ссылки на оригинальное тело функций были замещены ложными. Вот только я в структуре .Net-библиотек ничего не понимаю. Потому и не могу ничего по этому поводу сказать. С другой стороны, выяснилось, что размер этой же библиотеки под андроид был в 2 раза больше. Поэтому я посчитал, что ошибался по поводу замещения оригинальных функций ложными. P.S> про патч я не подумал. Если тебе надо патчить, то действительно о везении речь не идет. |
|
Создано: 06 марта 2015 15:09 · Личное сообщение · #4 int Если тебе нужно реверсить, то ползай по тем двум dll, но если надо патчить - то надо патчить в нативном коде =( Добавлено спустя 1 минуту JohnyDoe Да, скорее всего оригинальный байткод оставили, просто заинжектили ret в начало каждого метода либо перебили ссылки на methodbody. Вычищать байткод сложнее чем просто его "отсоединить". ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 марта 2015 19:02 · Поправил: LinXP · Личное сообщение · #5 |
|
Создано: 12 марта 2015 22:36 · Личное сообщение · #6 |
|
Создано: 13 марта 2015 23:15 · Личное сообщение · #7 |
|
Создано: 13 марта 2015 23:59 · Поправил: JohnyDoe · Личное сообщение · #8 |
|
Создано: 14 марта 2015 00:13 · Личное сообщение · #9 JohnyDoe пишет: Disunity определяет структуру как TextMesh Он и есть скорее всего. Его используют для вывода текста в 3d. Вот описание полей: http://docs.unity3d.com/Manual/class-TextMesh.html Там же можно типы полей подсмотреть. Вот скрипт реф на всякий: http://docs.unity3d.com/ScriptReference/TextMesh.html В конце концов текст можно и из кода поменять без особых проблем. Возможно будет проще, чем сцену насиловать (коими являются файлы level*). ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 14 марта 2015 08:45 · Личное сообщение · #10 Может кто знает как заныкать мой скрипт от FindObjectsOfType ? Все эвенты загрузки dll я похукал. GetAssemblies всегда возвращает пустой список. Но если добавить любой класс наследник MonoBehavior игрулина палит =\ Единственное что в голову приходит, что игрушка сканит через FindObjectsOfType и вытаскивает из какой dllки. // Как можно рисовать гуи без monobehavior? |
|
Создано: 14 марта 2015 12:58 · Личное сообщение · #11 vovanre пишет: Единственное что в голову приходит, что игрушка сканит через FindObjectsOfType и вытаскивает из какой dllки. Так гляньте в коде как именно она детектит. Потом можно и патчить в памяти то что не нравится, чтобы проверки поотключать. Добавлено спустя 1 минуту vovanre пишет: // Как можно рисовать гуи без monobehavior? Хороший вопрос, возможно что никак, ибо иначе ничего в сцену не прицепишь. Ещё можно патчить какой-нибудь существующий MonoBehaviour добавляя в него OnGUI (если через него гуй рисуете). ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 14 марта 2015 14:15 · Личное сообщение · #12 4kusNick Точно такие же мысли возникли. А как еще GUI рисовать, кроме как через onGUI? Я пробовал одну консольку рипануть. Так она рисуется криво. В смысле в непонятных плоскостях и с непонятным масштабом. Подозреваю, что она привязана как-то к камере. Потом нашел консоль с onGUI. Ее и использую. Легко встраивается в любое приложение путем добавления через ildasm/ilasm. Хочется только шрифта моноширинного, типа courier new. |
|
Создано: 14 марта 2015 17:09 · Личное сообщение · #13 В Unity 4.6 появился новый UI он через Canvas работает, там все в редакторе собирается уже, а не кодом. То есть те же кнопки, списки и т.д. можно выводить, но уже другим способом. А так ещё через GUIText можно текст выводить и через GUITexture графику, но ам уже намного сложнее что-то серьёзное собрать. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 14 марта 2015 18:34 · Личное сообщение · #14 4kusNick пишет: Так гляньте в коде как именно она детектит. Вот этот момент для меня веселее всего. Вылизал от начала до конца dll'ку. Никаких левых вызовов FindObject* Даже не подписывается на AssemblyLoadEvent (который я на всякий случай убил). Детектиn секунды через две после Code:
И я не понимаю -_- |
|
Создано: 14 марта 2015 18:43 · Личное сообщение · #15 Так скиньте нам с JohnyDoe посмотреть, может найдём чего. Ещё как вариант - оно может в нативе детектить, если речь не про WebPlayer. vovanre пишет: obj.AddComponent<KWW>(); UnityEngine.Object.DontDestroyOnLoad(obj); Тут просто добавляют компонент KWW (с одноимённым классом KWW) на GameObject по ссылке obj. И затем сообщают движку о том, что этот GameObject нельзя уничтожать при смене сцены, то есть он будет "жить" в игре пока его не прибьют вручную (обычно все игровые объекты уничтожаются при смене сцены). ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 14 марта 2015 18:46 · Поправил: vovanre · Личное сообщение · #16 4kusNick пишет: Тут просто добавляют компонент KWW (с одноимённым классом KWW) на GameObject по ссылке obj. Немного коряво составил предложение. Этой мой код который я внедряю. Сейчас залью и по лс отошлю. Добавлено спустя 8 минут 4kusNick пишет: Ещё как вариант - оно может в нативе детектить, если речь не про WebPlayer. Как раз я говорю о WebPlayer. Добавлено спустя 43 минуты Забыл отписать. Отослал файлы в лс. |
|
Создано: 14 марта 2015 20:03 · Личное сообщение · #17 |
|
Создано: 14 марта 2015 22:35 · Поправил: 4kusNick · Личное сообщение · #18 LinXP Поменять текст довольно просто, у текст меша есть публичное свойство "text". Главное - знать как дотянуться до самого текстмеша. Это тоже довольно просто, нужно лишь узнать в какой он сцене находится и посмотреть какие ещё скрипты в этой сцене работают. Если повезет, его текст и так будет устанавливаться через код. Тогда достаточно подправить сам код. Если нет, тогда уже по выбору - либо дописать в любой имеющийся в сцене компонент в Start \ Awake смену текста, либо запилить свой компонент с самодобавлением на первый попавшийся геймобжект из статического конструктора например. Добавились, поменяли текст, уничтожились. Пример: Code:
vovanre Спасибо, погляжу файлы в скором времени, пока не удаётся - отвлекают. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 15 марта 2015 00:13 · Поправил: JohnyDoe · Личное сообщение · #19 LinXP Не знаю почему у тебя не вышло. Я сейчас под виндой собрал простейший проект. Заменил в нем текст и у меня все запустилось с измененным текстом. Может ты кирилический текст неправильно вставляешь? Он в юникоде должен быть. Еще возможно внутри архива присутствует выравнивание байтов. Unity очень любит все выравнивать. Это тоже надо учитывать. 4kusNick Вряд ли такое возможно сделать. Там у объектов и имен нет. Обычно загрузка уровней происходит через стандартный скрипт. Если сцен много, то придется еще и проверять существует ли вообще такой объект. Иначе NullReference error вылезет. Я не говорю, что это нереально, но это костыль будет. Я потому куб и не стал программно изменять. |
|
Создано: 15 марта 2015 12:16 · Личное сообщение · #20 JohnyDoe У всех объектов в сцене есть имена, если объект генерируется без имени, то присваивается GameObject 1, GameObject 2 и т.д. Загрузка уровней происходит из кода, да, потому я и говорю, надо просто выяснить в какой сцене нужный текстмеш и в этой сцене уже пытаться к нему обращаться. Может это звучит сложновато, но на деле все крайне просто, мне было бы проще код допистаь, чем с бинарниками сцен работать. Но тут уже кому как больше нравится, хорошо, что есть несколько вариантов решения одной задачи =) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 15 марта 2015 14:24 · Поправил: JohnyDoe · Личное сообщение · #21 По поводу имени ты прав. Только имена могут дублироваться. Попробовал добавить 3D text'ы. В итоге получил 3 объекта с именами New Text. Как с ними в коде разбираться не ясно. Обычно такой проблемы не должно возникать. Игры, поддерживающие несколько языков, хранят тексты в каких-нибудь текстовиках. Но если разработчик не задал нормальное имя каждому объекту, то возникнут проблемы. И все-таки через код пытаться что-то изменить это костыль. Изменить текст в сцене много проще. Достаточно удлиннить строку, записать правильный размер, без учета выравнивания, выравнять байты. Иллюстрация с двумя объектами TextMesh с длиной текста 4 и 5 байт. | Сообщение посчитали полезным: 4kusNick, LinXP |
|
Создано: 15 марта 2015 15:24 · Личное сообщение · #22 JohnyDoe пишет: Только имена могут дублироваться. Попробовал добавить 3D text'ы. В итоге получил 3 объекта с именами New Text. Как с ними в коде разбираться не ясно. Обычно такой проблемы не должно возникать. Игры, поддерживающие несколько языков, хранят тексты в каких-нибудь текстовиках. Но если разработчик не задал нормальное имя каждому объекту, то возникнут проблемы. Да, все так, в таком случае проблему всё ещё можно режить кодом, но уже надо дописывать условия, искать тот текстмеш, в котором находится искомый текст (indexOf("oldText")). Но если для правки текста в сцене достаточно сделать то что ты на скрине привёл, то с кодом возиться действительно смысла вообще нет. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 15 марта 2015 22:00 · Поправил: LinXP · Личное сообщение · #23 |
|
Создано: 06 мая 2015 17:54 · Личное сообщение · #24 Возможно пригодится кому-то при ковырянии IL2CPP билдов ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: OlegT4 |
|
Создано: 14 мая 2015 23:49 · Личное сообщение · #25 |
|
Создано: 15 мая 2015 03:37 · Личное сообщение · #26 OlegT4 Надо @vovanre потыкать, у меня не осталось =( Если сумеете достать - я буду рад вылить на мегу, чтобы ссылка не помирала. ?обавлено спуст¤ 2 минуты След. статья из цикла "устройство IL2CPP", там про то как выглядит пользовательский код после генерации в c++. Тоже может пригодиться при реверсе. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 31 июля 2015 21:20 · Личное сообщение · #27 Какая-то очередная утилита. Имеется плагин для unity3d. Повертел чуток. Так и не понял для чего может пригодиться. Unity3d файлы открывать отказалась. Assets'ы открыла от 4 версии. Что умеет так и не понял. Но раз связана с unity, подумал ссылку стоит подобрать. Может в будущем что-то из этого выйдет интересного. http://www.hongfire.com/forum/showthread.php/112039-SB3Utility-Releases-and-Discussion/page61?p=3352965#post3352965 | Сообщение посчитали полезным: 4kusNick |
|
Создано: 31 июля 2015 22:47 · Поправил: 4kusNick · Личное сообщение · #28 JohnyDoe Хехе, это моддинг-тулза для хентай-игр от Illusion, которые ранее были на другом движке, а теперь встречаются и на юнити, судя по форуму на котором это размещено. Но думаю тулза может пригодиться и не только любителям хентая, там много интересных вещей разобрано. К сожалению, оригинальную утилиту забросили 3 года назад (репа на гитхабе заброшена), а вот форк активно обновляется (последний апдейт 8 дн. назад): Автор бинари не распространяет, так что кому интересно - пробуйте компилировать, там vs проект. JohnyDoe пишет: 1.0.16 вроде как последняя версия бинарей и они доступны по ссылке Ну, братец, виноват: слона-то я и не приметил) ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 01 августа 2015 00:32 · Поправил: JohnyDoe · Личное сообщение · #29 4kusNick 1.0.16 вроде как последняя версия бинарей и они доступны по ссылке. Есть альфа вроде 1.0.17. Попробовал читерским способом собрать в 2010 студии. Проект сделан под 2012. Только один из плагинов собрался, но он идентичен оказался с тем, что был собран автором. Для сборки разные фреймворки требуются. |
|
Создано: 04 августа 2015 04:23 · Поправил: LinXP · Личное сообщение · #30 Unity Assets Bundle Extractor (UABE) - is a stylish tool that allows editing assets bundles and .assets. It can export .assets files from bundles and import them back so you can edit these. Скачать UABE v1.6b: Инфо: https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor | Сообщение посчитали полезным: 4kusNick |
|
Создано: 04 августа 2015 13:05 · Личное сообщение · #31 LinXP Спасибо, добавил в шапку. ------ Ещё статьи по IL2CPP (все это может пригодиться при реверсе): Кстати, билды IL2CPP уже не содержат mono сборок по очевидным причинам, так что с полным приходом IL2CPP настанет конец инжекту managed либ, патчингу IL и прочим приятным вещам. На iOS и Web он уже есть, на очереди дроид и консоли (сентябрь), затем Windows Store (декабрь) и далее другие платформы (про PC пока анонсов не было, но там он тоже будет). ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: JohnyDoe |
<< . 1 . 2 . 3 . 4 . >> |
eXeL@B —› Основной форум —› Взлом Unity3D игр |