Сейчас на форуме: -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 |
|
Создано: 24 января 2015 17:48 · Личное сообщение · #2 Жду, когда вы до кокоса доберетесь) P.S. А Flash давно умер. Что такого интересного на флэше сейча можно найти? | Сообщение посчитали полезным: 4kusNick |
|
Создано: 24 января 2015 18:54 · Личное сообщение · #3 int Сейчас всё ещё много гэмбла на флэше, всякие мелкие игры ещё на нём до сих пор пилят, мобильное неправление активно попёрло (AIR). Но вцелом он потихоньку дохнет, это да, но пока я бы не сказал что умер. До cocos - нуу не знаю, боюсь что долго ждать будете ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 25 января 2015 00:18 · Поправил: JohnyDoe · Личное сообщение · #4 Из моих скудных познаний в unity. Это заголовок unity3d файла. Я им руководствовался, когда ручками собирал обратно, то что удалось распаковать при помощи qiuckbms. | Сообщение посчитали полезным: 4kusNick, Dark Koder |
|
Создано: 25 января 2015 11:16 · Личное сообщение · #5 Что бы переделать прокачанный инжектор под WebUnity достаточно зареплейсить L"mono.dll" на L"mono-1-vc.dll" // дампер .unity3d я просрал, если кому то особо нужно могу заново напиать | Сообщение посчитали полезным: 4kusNick |
|
Создано: 25 января 2015 15:06 · Личное сообщение · #6 |
|
Создано: 25 января 2015 15:34 · Личное сообщение · #7 |
|
Создано: 25 января 2015 16:50 · Поправил: -=AkaBOSS=- · Личное сообщение · #8 Наверно, глупый вопрос. Платформа юнити уже работает на многих устройствах - есть ли возможность модифицировать код так, чтобы, допустим, андроидная игрушка запустилась на ПК? (естесственно, после извлечения из apk). Или это слишком трудоёмко, и с эмулятором будет проще? Я лёгких путей не искал - наваял несколько скриптов для распаковки/упаковки unity3d файлов, и попробовал собрать так ресурсы, вытащенные из андроидной игры - нифига не вышло. Пробовал брать лаунчеры от ПКшных игр - тоже не получилось. Методы грубые и глупые, но по-другому не умею) |
|
Создано: 25 января 2015 17:19 · Поправил: 4kusNick · Личное сообщение · #9 vovanre А у вас бывали случаи, когда .unity3d не светился в сетевых профайлерах и исходниках страницы? Если да, то дампер однозначно пригодится! -=AkaBOSS=- JohnyDoe уже реализовывал такие вещи (портировал с мобил на PC), мне пока не доводилось, но я видел результат - так что могу однозначно сказать что это возможно, но с некоторыми оговорками. Все сильно зависит от конкретного случая - как там ввод реализован, используются ли датчики и т.д. Причём с андроида на PC переписать - дело, в целом, выполнимое, а вот с iOS - могут быть проблемы, под iOS оно компилится в натив и IL сборки кладутся только для совместимости, особо хитрые разработчики эти сборки подчищают, так что если игрушка эксклюзив для iOS и разработчики подчистили сборки - то код уже не получится достать так просто - надо натив реверсить, что может стоить дороже разработки аналога с нуля. Ну и мобильные шейдеры от PCшных тоже отличаются, возможно придется попотеть и поразбираться с шейдерным языком, если в игре используется что-то уникальное а не только из набора стандартных шейдеров. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: -=AkaBOSS=- |
|
Создано: 25 января 2015 17:26 · Личное сообщение · #10 4kusNick пишет: А у вас бывали случаи, когда .unity3d не светился в сетевых профайлерах и исходниках страницы? Если да, то дампер однозначно пригодится! На моей памяти была только заминка с https, но не более чем заминка. Так что смысла в дампере особого нет. Добавлено спустя 19 минут Нашёл на диске. | Сообщение посчитали полезным: 4kusNick |
|
Создано: 25 января 2015 17:46 · Поправил: JohnyDoe · Личное сообщение · #11 Вот приложение изначально выпущенное под android. Я в нем немного поковырялся. И такая поделка вышла. Выглядит оно конечно не очень и работает не оптимально для ПК. Но я не ставил задачи сделать полноценный клон для ПК. Это был чисто эксперимент на пару часиков. http://www49.zippyshare.com/v/O371M9rO/file.html Полноценный порт с ios я делал. Но не покажу)). 4kusNick видел и может подтвердить, что вышло хорошо. В целом перенос с мобил на ПК задача не то чтобы простая. А самое главное - не понятно зачем оно вообще надо)) Плагин для Total Commander. Распаковывает и обратно запаковывает ресурсы в assets-файлы. _http://www.zoneofgames.ru/forum/showtopic=29884&st=60 | Сообщение посчитали полезным: -=AkaBOSS=-, 4kusNick, LinXP |
|
Создано: 25 января 2015 19:00 · Поправил: 4kusNick · Личное сообщение · #12 vovanre пишет: На моей памяти была только заминка с https, но не более чем заминка. Так что смысла в дампере особого нет. Да, и заново тем более кодить его особого смысла нет, WebPlayer все равно скоро помрёт. vovanre пишет: Вот как можно внедрять свой Assembly-CSharp (метод перехватом во время загрузки). Спасибо, добавлю в шапку, может пригодиться, если перепаковка по каким-то причинам не подходит. JohnyDoe пишет: 4kusNick видел и может подтвердить, что вышло хорошо. Подтверждаю, вышло отлично! JohnyDoe пишет: не понятно зачем оно вообще надо Я вот тоже сходу не могу применение придумать кроме перепродажи, но это как-то... по-китайски JohnyDoe пишет: Плагин для Total Commander. Спасибо, отличная альтернатива AssetExplorer'у. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 28 января 2015 20:22 · Личное сообщение · #13 Unity Studio beta Current features: - Compatible with all Unity versions from 2.5.0 to 4.5.3f3 - Compatible with Web, PC, iOS, Android, PS3, Xbox 360, OSX and Linux games/apps - Automatically merges .split files from Android games - Able to load audio streams from .resS files - Search filter - Real-time preview window and export function for textures, audio clips, shaders and fonts -- Textures: DDS (Alpha8bpp, ARGB16bpp, RGB24bpp, ARGB32bpp, BGRA32bpp, RGB565, DXT1, DXT5, RGBA16bpp) -- PVR (PVRTC_RGB2, PVRTC_RGBA2, PVRTC_RGBA4, PVRTC_RGB4, ETC_RGB4) -- Audio clips: mp3, ogg, wav, xbox wav -- Shader files are exported in plain-text -- Fonts: ttf, otf Скачать: http://www.mediafire.com/download/wxwdiqw5mez9z14/Unity_Studio_0.4.zip | Сообщение посчитали полезным: vovanre, 4kusNick |
|
Создано: 28 января 2015 21:41 · Личное сообщение · #14 Вспомнил еще пару ссылок. Unity Assets Editor. Лично у меня работал криво, также как и Unity Studio. http://7daystodie.com/forums/showthread.php?5030-Grim-s-Unity-Asset-Editor А это скрипт для 3dsMax, который вроде как должен сцену из assets-файлов импортировать. Также заявлено выборочное импортирование. Т.е. этой штукой можно модели прямо в макс импортировать. Я сам не пользовался, но вроде как работает. http://kotschopshop.com/topic/5134976/14/ | Сообщение посчитали полезным: vovanre, 4kusNick |
|
Создано: 28 января 2015 22:11 · Личное сообщение · #15 JohnyDoe пишет: В целом перенос с мобил на ПК задача не то чтобы простая. А самое главное - не понятно зачем оно вообще надо)) знаешь, а мне бы пригодилось если это не сложно делается, отлаживать андроид-игру при локализации удобней всё таки на ПК, чем на андроиде, можно всё таки небольшую инструкцию по портированию? |
|
Создано: 28 января 2015 23:08 · Личное сообщение · #16 LinXP Первая игра, которую мне удалось запустить на ПК выглядела как простое окно с розовым фоном. Оно не реагировало на клики мышью и вообще мне казалось, что вариантов нет. Чтобы привести приложение в порядок надо переделать код, пересобрать шейдеры под ПК, перекодировать груфику. Переделать код означает убрать все ошибки, которые можно глянуть в логах приложения. Обычно они связаны с тем, что вызываются функции не присущие ПК. Возможно понадобится переписать код взаимодействия с интерфейсом. Шейдеры, если они нестандартные, надо сначала привести к компилируемому состоянию. Инструмент для этого один - мозги. Я не смогу тебя научить писать шейдеры, используя шейдер скомпилированный под android. Графика не всегда может быть извлечена в читаемый формат. Стандартные шейдеры не всегда получается запихнуть в игру. Если попробовать скомпилировать некоторые шейдеры, на которые ругается приложение выложенное выше, и засунуть обратно, приложение просто начнет падать. Я представления не имею как так. Наверное программное взаимодействие с этими шейдерами заточено под android и это приводит к неполадкам при запуске на ПК. Как я уже написал, задача не то чтобы простая. И браться за нее, только для того чтобы иметь возможность отлаживать локализованную версию, вряд ли оправдано. |
|
Создано: 28 января 2015 23:12 · Личное сообщение · #17 |
|
Создано: 12 февраля 2015 02:23 · Личное сообщение · #18 Кто-нибудь копал уже WebGL билды? Вот собрал простенький билд Code:
Скрипт висит на камере и в консоль браузера должен посылать лог с текстом "test1234567890!". Если кому интересно - можете попробовать поискать этот код в сборке =) Локально сборку можно запустить в последнем FF. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 12 февраля 2015 12:31 · Личное сообщение · #19 4kusNick Я не пробовал. Посмотрел твою сборку. Там идет указание на то, что класс SomeCode находится в Assembly-CSharp.dll. Но самой dll в явном виде не обнаружил. Тестовая строка хранится в юникоде в том же файле. Видимо сам код класса лежит рядышком. Наткнулся на интересные строки типа IL2CPP. Без знания мат. части сложно что-то сказать. |
|
Создано: 12 февраля 2015 13:27 · Поправил: 4kusNick · Личное сообщение · #20 JohnyDoe Немного мат части - код перегоняется в asm.js-совместимый по такой цепочке: IL2CPP -> CLang (LLVM) -> Оптимизация LLVM -> Emscripten -> asm.js код. Обратить это намного сложнее, чем просто декомпилировать IL, слишком много там необратимых изменений с кодом производится =( ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 13 февраля 2015 02:18 · Личное сообщение · #21 Внесу свои пять копеек. Стиль изложения немного дурной и многие вещи вообще без описания. Однако.. делал, по большей части, для себя. | Сообщение посчитали полезным: 4kusNick, SReg, vovanre, JohnyDoe |
|
Создано: 13 февраля 2015 04:38 · Поправил: 4kusNick · Личное сообщение · #22 maximrouf Наглядное представление структуры ассет-файла порвало Вообще отличный разбор, жаль что для довольно древней версии WebPlayer. А ещё больше жаль, что ваши труды, как и многих других людей скоро совсем потеряют актуальность с переходом от WebPlayer к WebGL =( ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 05 марта 2015 22:35 · Личное сообщение · #23 FFFFFUUUUUUUU... Code:
Где искать код? |
|
Создано: 05 марта 2015 22:48 · Личное сообщение · #24 |
|
Создано: 06 марта 2015 01:00 · Личное сообщение · #25 Ну это iOS и есть, сдампленный (после dumpdecrypted.dylib) и засунутый в Hex-Rays ARM. Code:
Code:
Code:
Корень каталога Data: Code:
Выше Data только главный файл (нативный, objectiv c) приложения, который в себе почти ничего интересного не содержит. Копать надо в Library_ios.unity3d ? |
|
Создано: 06 марта 2015 02:31 · Поправил: 4kusNick · Личное сообщение · #26 Весь пользовательский managed код (mono-совместимый байткод) надо искать в сборках Assembly-CSharp-firstpass.dll Assembly-CSharp.dll Остальные сборки в папке Managed по-моему стандартные + JSON.NET и связанный с JSON P31RestKit. Если повезёт, и авторы не порипали там всё, то можно нарыть что-нибудь интересное, если конечно речь не о патче, а о реверсе какого-нибудь алго. А так, исполняется весь код всё равно в нативе, т.к. на iOS нет JIT, весь managed байткод гонится в натив через AOT, а сборки с IL остаются просто для совместимости. Всё что в папке Raw, в нашем случае, Library_ios.unity3d - это обычно ассеты (графика, модели, звуки и т.д.), которые софтина может подгружать вов ремя работы динамически через WWW. Если IL в сборках не порипан, то найти место загрузки можно без труда - там будет что-то типа Application.dataPath + "/Raw/Library_ios.unity3d" или Application.streamingAssetsPath + "/Library_ios.unity3d" и где-нибудь рядом конструктор или вызовы инстанса WWW. Добавлено спустя 2 минуты Т.к. тут iOS, то подгружать сборки динамически оно тоже не сумеет по причине отсутствия того же JIT, потому маловероятно, что в Library_ios.unity3d есть какой-либо код. Добавлено спустя 6 минут И ещё, GameController - это стандартный паблик framework, который есть в iOS 7.x и 8.x согласно этйо статье в theiphonewiki Добавлено спустя 12 минут А вот доки по StoreKit: Возможно, в твоём случае используется плагин для StoreKit от Prime31 (можно легко проверить глянув наличие класса StoreKitManager в managed сборках): Он позволяет из юнити удобно дёргать iOSные методы нативные связанные с этим StoreKit. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
|
Создано: 06 марта 2015 05:28 · Личное сообщение · #27 4kusNick пишет: GameController - это стандартный паблик framework Я его написал, чтобы подчеркнуть, что речь об iOS (квадратные скобки - это objective c и HexRays так делать не умеет, только Hopper). В /System/Library/Frameworks/ в принципе никто не может писать, по крайней мере без Jailbreak. 4kusNick пишет: Assembly-CSharp-firstpass.dll Assembly-CSharp.dll Да, это то, что я искал. А как вообще эти DLL открываются? В главном файле mono влеплен получается? |
|
Создано: 06 марта 2015 11:10 · Поправил: JohnyDoe · Личное сообщение · #28 int Насколько я понимаю mono идет отдельной библиотекой. Это в андроиде. Под iOs код из этих dll вообще не исполняется. Тебе повезло - код в этих библиотеках не вырезан, судя по размеру файлов. Нативный код тебе в принципе не нужен. Там должно быть тоже самое, что и в dll в директории Data, только в другом виде. Хотя был случай, когда функция в dll была помечена как extern. Под андроидом тело такой функции находится в so-библиотеке в директории lib. Под iOs ее можно достать только из основного исполняемого файла. |
|
Создано: 06 марта 2015 11:58 · Личное сообщение · #29 |
|
Создано: 06 марта 2015 12:19 · Личное сообщение · #30 int пишет: А как вообще эти DLL открываются? На iOS они никак не открываются, они там лежат для мебели, а точнее для совместимости, чтобы рефлексия работала наверное. Но их можно безболезненно почистить, оставив все тела методов пустыми и все продолжит работать как раньше. ----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. |
. 1 . 2 . 3 . 4 . >> |
eXeL@B —› Основной форум —› Взлом Unity3D игр |