Сейчас на форуме: -Sanchez- (+6 невидимых)

 eXeL@B —› Основной форум —› Взлом Unity3D игр
. 1 . 2 . 3 . 4 . >>
Посл.ответ Сообщение


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 24 января 2015 17:39 · Поправил: 4kusNick
· Личное сообщение · #1

Дружественные темы: Взлом .net, Java. Взлом и реверсинг, Взлом Android приложений, Flash (swf) распаковка, декомпиляция, правка байткода.

Распаковщики / упаковщики, редакторы ассетов
disunity - этакий комбайн по распаковке \ упаковке webplayer билдов и asset bundle'ов. Позволяет вытащить графику, шейдеры, код, и запихать все это обратно после модификации.
UnityAssetsExplorer - инструмент от русскоговорящего автора для редактирования .assets файлов - можно вытаскивать ресурсы, заменять и класть обратно. Ссылка на бинарь обновляемая (там всегда последняя версия). Есть ещё ветки на форумах тут и тут.
Плагин для TC - хорошая альтернатива UnityAssetsExplorer'у, тоже от русскоговорящего автора.
Link - анпакер Unity билдов (WebPlayer, мобильные билды), на основе QuickBMS, не помню где его нашёл к сожалению, выложил ту версию что была у меня, возможно есть посвежее. Вытаскивает код и ресурсы. Обратно упаковывать не умеет.
Unity Studio - приложение для извлечения ресурсов (звуки, шрифты, текстуры, шейдеры и т.д.) из сборок Unity.
Grim's Unity Asset Editor - аналог Unity Studio - редактор, импортер / экспортер ассетов
Скрипт для автоматического импорта моделек в 3dsMax - вытаскивает из билдов модельки и закидывает в макс.
SB3Utility - моддинг-тулза для редактирования ресурсов.
Unity Assets Bundle Extractor - ещё одна моддинг утилита, позволяет импортировать и экспортировать содержимое asset bundles и файлов .assets.
QuickBMS и скрипты для Unity - ищем на страничке линк на саму QuickBMS и на скрипты для Unity. Скрипты позволяют распаковывать юнити билды, так же их можно доработать для обратной упаковки. Ещё есть UI для QuickBMS.
UnityEX - очередной распаковщик с GUI и консолью.
Unity Assets Viewer - вьювер и редактор .assets файлов, сам написан на Unity3D.

Инжект
UnityHook - простой инжектор managed сборок с MonoBehaviour, заточен под определённую игру, может не работать на релизных сборках.
mono-assembly-injector - более серьёзный инжектор в mono-процессы, в т.ч. и в Unity приложения. Очень прост в эксплуатации, есть пример использования. Коммент от vovanre: чтобы переделать прокачанный инжектор под WebUnity достаточно зареплейсить L"mono.dll" на L"mono-1-vc.dll"
Инжект своей сборки Assembly-CSharp. Коммент от vovanre: метод перехватом во время загрузки.

Описание формата web сборок
4.1.5f
4.3.3f1

По поводу кода
Код в Unity компилируется либо в managed mono сборки, которые имеют в своей основе IL байткод, совместимый с .NET, (отличается только апи), либо в нативный для целевой платформы код. Для работы с managed кодом используем инструменты из смежной темы про .NET, для работы с IL2CPP билдами используем инструментарий, подходящий для нативного кода соответствующей платформы.

Дотянуться до managed кода можно либо распаковав билд, либо сдампив managed сборки стандартными средствами (см. в теме про .NET).

Почитать
Цикл статей по IL2CPP от одного из разработчиков. Содержит полезную информацию, которая может пригодиться при ковырянии Il2CPP билдов.

Если кто-то пользуется ещё какими-то инструментами - пишите, добавлю в шапку.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


| Сообщение посчитали полезным: Gideon Vi, TryAga1n, Mime, LinXP

Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 24 января 2015 17:48
· Личное сообщение · #2

Жду, когда вы до кокоса доберетесь)

P.S. А Flash давно умер. Что такого интересного на флэше сейча можно найти?

| Сообщение посчитали полезным: 4kusNick


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 24 января 2015 18:54
· Личное сообщение · #3

int
Сейчас всё ещё много гэмбла на флэше, всякие мелкие игры ещё на нём до сих пор пилят, мобильное неправление активно попёрло (AIR). Но вцелом он потихоньку дохнет, это да, но пока я бы не сказал что умер.

До cocos - нуу не знаю, боюсь что долго ждать будете

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 25 января 2015 00:18 · Поправил: JohnyDoe
· Личное сообщение · #4

Из моих скудных познаний в unity.

Это заголовок unity3d файла. Я им руководствовался, когда ручками собирал обратно, то что удалось распаковать при помощи qiuckbms.



| Сообщение посчитали полезным: 4kusNick, Dark Koder

Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 25 января 2015 11:16
· Личное сообщение · #5

Простое описание формата unity3d

Примитивный инжектор в стандалон Unity игры

Прокачанный инжектор в стандалон Unity игры

Что бы переделать прокачанный инжектор под WebUnity достаточно зареплейсить L"mono.dll" на L"mono-1-vc.dll"


// дампер .unity3d я просрал, если кому то особо нужно могу заново напиать

| Сообщение посчитали полезным: 4kusNick


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 25 января 2015 15:06
· Личное сообщение · #6

vovanre пишет:
// дампер .unity3d я просрал, если кому то особо нужно могу заново напиать

А что он умел?

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 25 января 2015 15:34
· Личное сообщение · #7

4kusNick, просто автоматизировал поиск в процессе .unity3d файлов и дамп их.




Ранг: 150.3 (ветеран), 175thx
Активность: 0.160.07
Статус: Участник

Создано: 25 января 2015 16:50 · Поправил: -=AkaBOSS=-
· Личное сообщение · #8

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

Я лёгких путей не искал - наваял несколько скриптов для распаковки/упаковки unity3d файлов, и попробовал собрать так ресурсы, вытащенные из андроидной игры - нифига не вышло. Пробовал брать лаунчеры от ПКшных игр - тоже не получилось. Методы грубые и глупые, но по-другому не умею)




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 25 января 2015 17:19 · Поправил: 4kusNick
· Личное сообщение · #9

vovanre
А у вас бывали случаи, когда .unity3d не светился в сетевых профайлерах и исходниках страницы? Если да, то дампер однозначно пригодится!

-=AkaBOSS=-
JohnyDoe уже реализовывал такие вещи (портировал с мобил на PC), мне пока не доводилось, но я видел результат - так что могу однозначно сказать что это возможно, но с некоторыми оговорками. Все сильно зависит от конкретного случая - как там ввод реализован, используются ли датчики и т.д.
Причём с андроида на PC переписать - дело, в целом, выполнимое, а вот с iOS - могут быть проблемы, под iOS оно компилится в натив и IL сборки кладутся только для совместимости, особо хитрые разработчики эти сборки подчищают, так что если игрушка эксклюзив для iOS и разработчики подчистили сборки - то код уже не получится достать так просто - надо натив реверсить, что может стоить дороже разработки аналога с нуля.

Ну и мобильные шейдеры от PCшных тоже отличаются, возможно придется попотеть и поразбираться с шейдерным языком, если в игре используется что-то уникальное а не только из набора стандартных шейдеров.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.


| Сообщение посчитали полезным: -=AkaBOSS=-

Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 25 января 2015 17:26
· Личное сообщение · #10

4kusNick пишет:
А у вас бывали случаи, когда .unity3d не светился в сетевых профайлерах и исходниках страницы? Если да, то дампер однозначно пригодится!


На моей памяти была только заминка с https, но не более чем заминка. Так что смысла в дампере особого нет.

Добавлено спустя 19 минут
Нашёл на диске. Вот как можно внедрять свой Assembly-CSharp (метод перехватом во время загрузки).

| Сообщение посчитали полезным: 4kusNick

Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 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


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 25 января 2015 19:00 · Поправил: 4kusNick
· Личное сообщение · #12

vovanre пишет:
На моей памяти была только заминка с https, но не более чем заминка. Так что смысла в дампере особого нет.

Да, и заново тем более кодить его особого смысла нет, WebPlayer все равно скоро помрёт.

vovanre пишет:
Вот как можно внедрять свой Assembly-CSharp (метод перехватом во время загрузки).

Спасибо, добавлю в шапку, может пригодиться, если перепаковка по каким-то причинам не подходит.

JohnyDoe пишет:
4kusNick видел и может подтвердить, что вышло хорошо.

Подтверждаю, вышло отлично!

JohnyDoe пишет:
не понятно зачем оно вообще надо

Я вот тоже сходу не могу применение придумать кроме перепродажи, но это как-то... по-китайски

JohnyDoe пишет:
Плагин для Total Commander.

Спасибо, отличная альтернатива AssetExplorer'у.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 89.1 (постоянный), 134thx
Активность: 0.060.07
Статус: Участник

Создано: 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

Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 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

Ранг: 89.1 (постоянный), 134thx
Активность: 0.060.07
Статус: Участник

Создано: 28 января 2015 22:11
· Личное сообщение · #15

JohnyDoe пишет:
В целом перенос с мобил на ПК задача не то чтобы простая. А самое главное - не понятно зачем оно вообще надо))

знаешь, а мне бы пригодилось если это не сложно делается, отлаживать андроид-игру при локализации удобней всё таки на ПК, чем на андроиде, можно всё таки небольшую инструкцию по портированию?



Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 28 января 2015 23:08
· Личное сообщение · #16

LinXP Первая игра, которую мне удалось запустить на ПК выглядела как простое окно с розовым фоном. Оно не реагировало на клики мышью и вообще мне казалось, что вариантов нет.

Чтобы привести приложение в порядок надо переделать код, пересобрать шейдеры под ПК, перекодировать груфику. Переделать код означает убрать все ошибки, которые можно глянуть в логах приложения. Обычно они связаны с тем, что вызываются функции не присущие ПК. Возможно понадобится переписать код взаимодействия с интерфейсом. Шейдеры, если они нестандартные, надо сначала привести к компилируемому состоянию. Инструмент для этого один - мозги. Я не смогу тебя научить писать шейдеры, используя шейдер скомпилированный под android. Графика не всегда может быть извлечена в читаемый формат. Стандартные шейдеры не всегда получается запихнуть в игру. Если попробовать скомпилировать некоторые шейдеры, на которые ругается приложение выложенное выше, и засунуть обратно, приложение просто начнет падать. Я представления не имею как так. Наверное программное взаимодействие с этими шейдерами заточено под android и это приводит к неполадкам при запуске на ПК.

Как я уже написал, задача не то чтобы простая. И браться за нее, только для того чтобы иметь возможность отлаживать локализованную версию, вряд ли оправдано.



Ранг: 89.1 (постоянный), 134thx
Активность: 0.060.07
Статус: Участник

Создано: 28 января 2015 23:12
· Личное сообщение · #17

JohnyDoe ясно, спасибо, буду делать как умею.. )




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 12 февраля 2015 02:23
· Личное сообщение · #18

Кто-нибудь копал уже WebGL билды?
Вот собрал простенький билд --> Link <-- с кодом
Code:
  1. using UnityEngine;
  2.  
  3. public class SomeCode : MonoBehaviour
  4. {
  5.          void Start ()
  6.          {
  7.                  Debug.Log("test1234567890!");
  8.          }
  9. }

Скрипт висит на камере и в консоль браузера должен посылать лог с текстом "test1234567890!".
Если кому интересно - можете попробовать поискать этот код в сборке =)

Локально сборку можно запустить в последнем FF.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 12 февраля 2015 12:31
· Личное сообщение · #19

4kusNick Я не пробовал.

Посмотрел твою сборку. Там идет указание на то, что класс SomeCode находится в Assembly-CSharp.dll. Но самой dll в явном виде не обнаружил. Тестовая строка хранится в юникоде в том же файле. Видимо сам код класса лежит рядышком. Наткнулся на интересные строки типа IL2CPP. Без знания мат. части сложно что-то сказать.




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 12 февраля 2015 13:27 · Поправил: 4kusNick
· Личное сообщение · #20

JohnyDoe
Немного мат части - код перегоняется в asm.js-совместимый по такой цепочке: IL2CPP -> CLang (LLVM) -> Оптимизация LLVM -> Emscripten -> asm.js код.
Обратить это намного сложнее, чем просто декомпилировать IL, слишком много там необратимых изменений с кодом производится =(

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 3.2 (гость), 4thx
Активность: 0.010
Статус: Участник

Создано: 13 февраля 2015 02:18
· Личное сообщение · #21

Внесу свои пять копеек. --> Link <--
Стиль изложения немного дурной и многие вещи вообще без описания. Однако.. делал, по большей части, для себя.


| Сообщение посчитали полезным: 4kusNick, SReg, vovanre, JohnyDoe


Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 13 февраля 2015 04:38 · Поправил: 4kusNick
· Личное сообщение · #22

maximrouf
Наглядное представление структуры ассет-файла порвало
Вообще отличный разбор, жаль что для довольно древней версии WebPlayer.
А ещё больше жаль, что ваши труды, как и многих других людей скоро совсем потеряют актуальность с переходом от WebPlayer к WebGL =(

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 05 марта 2015 22:35
· Личное сообщение · #23

FFFFFUUUUUUUU...

Code:
  1. [[NSBundle bundleWithPath:@"/System/Library/Frameworks/GameController.framework"] load]
  2. ...
  3.   sub_1F25478("_storeKitCanMakePayments", sub_1FF2150);
  4.   sub_1F25478("_storeKitSetApplicationUsername", sub_1FF21E4);
  5.   sub_1F25478("_storeKitGetAppStoreReceiptUrl", sub_1FF2338);
  6.   sub_1F25478("_storeKitRequestProductData", sub_1FF2660);
  7.   sub_1F25478("_storeKitPurchaseProduct", sub_1FF2AD4);
  8.   sub_1F25478("_storeKitFinishPendingTransactions", sub_1FF2C18);
  9.   sub_1F25478("_storeKitFinishPendingTransaction", sub_1FF2C98);


Где искать код?




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 05 марта 2015 22:48
· Личное сообщение · #24

Похоже на подключение методов из нативного iOS плагина.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 06 марта 2015 01:00
· Личное сообщение · #25

Ну это iOS и есть, сдампленный (после dumpdecrypted.dylib) и засунутый в Hex-Rays ARM.

Code:
  1. gamexxx.app/Data root# ls -l Managed/
  2. total 9952
  3. -rwxr-xr-1 mobile mobile   27648 Jan 23 05:09 Assembly-CSharp-firstpass.dll*
  4. -rwxr-xr-1 mobile mobile 1108480 Jan 23 05:09 Assembly-CSharp.dll*
  5. -rwxr-xr-1 mobile mobile   96256 Jan 23 05:09 Mono.Data.Tds.dll*
  6. -rwxr-xr-1 mobile mobile  184320 Jan 23 05:09 Mono.Posix.dll*
  7. -rwxr-xr-1 mobile mobile  294400 Jan 23 05:09 Mono.Security.dll*
  8. -rw-r--r-- 1 mobile mobile  440320 Jan 23 05:09 Newtonsoft.Json.dll
  9. -rw-r--r-- 1 mobile mobile   60416 Jan 23 05:09 P31RestKit.dll
  10. -rwxr-xr-1 mobile mobile  124928 Jan 23 05:09 System.Configuration.dll*
  11. -rwxr-xr-1 mobile mobile  299520 Jan 23 05:09 System.Core.dll*
  12. -rwxr-xr-1 mobile mobile  856064 Jan 23 05:09 System.Data.dll*
  13. -rwxr-xr-1 mobile mobile   46592 Jan 23 05:09 System.EnterpriseServices.dll*
  14. -rwxr-xr-1 mobile mobile  135168 Jan 23 05:09 System.Security.dll*
  15. -rwxr-xr-1 mobile mobile   27648 Jan 23 05:09 System.Transactions.dll*
  16. -rwxr-xr-1 mobile mobile  106496 Jan 23 05:09 System.Xml.Linq.dll*
  17. -rwxr-xr-1 mobile mobile 1270272 Jan 23 05:09 System.Xml.dll*
  18. -rwxr-xr-1 mobile mobile 1678848 Jan 23 05:09 System.dll*
  19. -rwxr-xr-1 mobile mobile  171520 Jan 23 05:09 UnityEngine.UI.dll*
  20. -rwxr-xr-1 mobile mobile  643584 Jan 23 05:09 UnityEngine.dll*
  21. drwxr-xr-3 mobile mobile     102 Mar  5 15:18 mono/
  22. -rwxr-xr-1 mobile mobile 2590208 Jan 23 05:09 mscorlib.dll*

Code:
  1. gamexxx.app/Data root# ls -l Raw/
  2. total 180
  3. -rw-r--r-- 1 mobile mobile 178695 Jan 23 05:09 Library_ios.unity3d
  4. -rw-r--r-- 1 mobile mobile   1407 Jan 23 05:09 index.html

Code:
  1. gamexxx.app/Data root# ls -l Resources/
  2. total 156
  3. -rw-r--r-- 1 mobile mobile 159664 Jan 23 05:09 unity_builtin_extra

Корень каталога Data:
Code:
  1. gamexxx.app/Data root# ls -l
  2. total 79672
  3. drwxr-xr-3 mobile mobile      748 Mar  5 15:18 Managed/
  4. -rw-r--r-- 1 mobile mobile       20 Jan 23 05:09 PlayerConnectionConfigFile
  5. drwxr-xr-2 mobile mobile      136 Mar  6 01:05 Raw/
  6. drwxr-xr-2 mobile mobile      102 Mar  5 15:18 Resources/
  7. -rw-r--r-- 1 mobile mobile     5144 Jan 23 05:09 level0
  8. -rw-r--r-- 1 mobile mobile   128100 Jan 23 05:09 mainData
  9. -rw-r--r-- 1 mobile mobile 65235404 Jan 23 05:09 resources.assets
  10. -rw-r--r-- 1 mobile mobile 14284320 Jan 23 05:09 sharedassets0.assets
  11. -rw-r--r-- 1 mobile mobile   880736 Jan 23 05:09 sharedassets1.assets
  12. -rw-r--r-- 1 mobile mobile  1031069 Jan 23 05:09 unity\ default\ resources

Выше Data только главный файл (нативный, objectiv c) приложения, который в себе почти ничего интересного не содержит.

Копать надо в Library_ios.unity3d ?




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 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 --> Link <--

Добавлено спустя 12 минут
А вот доки по StoreKit:
--> Link <--

Возможно, в твоём случае используется плагин для StoreKit от Prime31 (можно легко проверить глянув наличие класса StoreKitManager в managed сборках):
--> Link <--

Он позволяет из юнити удобно дёргать iOSные методы нативные связанные с этим StoreKit.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 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 влеплен получается?



Ранг: 105.6 (ветеран), 69thx
Активность: 0.060
Статус: Участник

Создано: 06 марта 2015 11:10 · Поправил: JohnyDoe
· Личное сообщение · #28

int

Насколько я понимаю mono идет отдельной библиотекой. Это в андроиде. Под iOs код из этих dll вообще не исполняется. Тебе повезло - код в этих библиотеках не вырезан, судя по размеру файлов. Нативный код тебе в принципе не нужен. Там должно быть тоже самое, что и в dll в директории Data, только в другом виде.

Хотя был случай, когда функция в dll была помечена как extern. Под андроидом тело такой функции находится в so-библиотеке в директории lib. Под iOs ее можно достать только из основного исполняемого файла.




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 06 марта 2015 11:58
· Личное сообщение · #29

взял для примера игру под iOS на Unity3D, там такие же длл большого размера, но внутри все функции пустые... Жаль, придется версию для андроида копать




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 06 марта 2015 12:19
· Личное сообщение · #30

int пишет:
А как вообще эти DLL открываются?

На iOS они никак не открываются, они там лежат для мебели, а точнее для совместимости, чтобы рефлексия работала наверное. Но их можно безболезненно почистить, оставив все тела методов пустыми и все продолжит работать как раньше.

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.



. 1 . 2 . 3 . 4 . >>
 eXeL@B —› Основной форум —› Взлом Unity3D игр
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати