前言
今天逛游戏广告的时候发现了一个除了广告和充值功能都是单机的挂机类游戏。其数据自然是走的Unity
那套的PlayerPrefs
,去看看SP里面包名开头的那个xml的内容,因为PlayerPrefs
在安卓下的表现是包名.v2.playerprefs.xml
,官方说明在这。
可以尝试解一下,如果一点明文都没有的话就肯定是加密的,如果有一点点字符串啥的那可能是protobuf的,当然也有可能直接存明文的。这里解了下是加密的,那么就尝试找找加密方式或者能直接绕过的方法呗。
探索
其lib
目录内容如下:
有个libil2cpp.so
,那么只要不是开发者闲着没事干打包着玩,基本上可以确定是IL2CPP
方案打包的Unity
游戏。
再看看assets/bin/Data/Managed
目录的内容:
果然没有Assembly-CSarp.dll
,那么确实是IL2CPP
打包了。
ida看了下libil2cpp.so
,没带符号表,属于是正常情况。
静态分析的话有个方案是Il2CppDumper,不过今天咱们要用动态调试去做,所以用另一个方案:frida-il2cpp-bridge+Il2CppHookScripts。
环境
首先自然是adb连上真机,然后真机上frida-server
也开起来。
然后把Il2CppHookScripts
给编译一下,直接npm install
就行,因为有声明"prepare": "npm run build"
,所以install
环节会直接给build
一遍,不需要再手动npm run build
和npm run watch
。我这边因为考虑到环境问题,直接在docker里面编译了。
不过因为我这会的时候这个项目还在重构,所以编译时需要改一下agent/API
目录的大小写,不然有报错。
其实不用编译也行,因为仓库里面就有编译好的(作者给的ReadMe让手动编译,很奇怪)
然后就直接按作者给的方法,frida -U -f com.esigame.coalmininginc -l ./Il2CppHookScripts/Il2cppHook/_Ufunc.js
去spawn
上来呗,然后发现花屏了。
不确定具体问题是在Unity
、frida
、frida-il2cpp-bridge
、Il2CppHookScripts
其中的哪个上面,那就先启动游戏然后frida -U -F -l ./Il2CppHookScripts/Il2cppHook/_Ufunc.js
去attach
吧。
尝试HookPlayerPrefs()
一下,结果发现没识别到Unity
版本,报了个il2cpp: couldn't determine the Unity version, please specify it manually
。
查了下是frida-il2cpp-bridge
那边的报错,于是根据couldn't determine the Unity version里面给的方案加了段代码在Il2CppHookScripts
的agent/index.ts
里面。
顺带跟开发者反馈了下这么个情况,具体见有指定 Unity 版本的方法吗?,所以现在可以直接改fixMoreVerison
函数里面的版本来指定版本(不过感觉有点暴力,后续看看能不能提个pr改成更优雅的实现。
不过这个HookPlayerPrefs
函数默认只打印寄存器不打印堆栈,所以要HookPlayerPrefs(true)
。
看看0x797400
这个位置在IDA里面是啥。
发现是0x7971C8
的函数,那showAsm('0x7971C8')
看看函数名是啥。
好像没认出来,不确定是啥情况,不过这个数据是TimerInfo
的,不太重要,看看ShopInfo
的堆栈吧。
所以去看看0xa4e580
这个位置的函数入口是啥。
是0xA4E504
,再showAsm
看看。
可以看到是Assembly-CSharp.DataStatic
下的AutoSave
函数,那么看名字已经很明显了,就是个定时自动保存用的。
然后上下看了下其他几个数据的调用堆栈,就是下面那四个Save
函数(至于为啥地址都和实际BL
的地方差一行,应该是Hook时候解析堆栈实现上的锅)。所以尝试看看其中一个,比如说还是上面那个ShopInfo
,那应该就是去看0x680688
。
发现没识别出来有啥函数,可以尝试Il2Cpp.trace().assemblies(Il2Cpp.Domain.tryAssembly("Assembly-CSharp")).and().methods(Il2Cpp.Domain.tryAssembly("Assembly-CSharp").image.tryClass("ShopModel").tryMethod("Save")).start().attach()
跟一下内部调用链。(.start()
是我刚给frida-il2cpp-bridge
pr的一个方法,用来指定起始函数以过滤输出结果,所以可能需要大家自行编译一下,见add filter start methods to Tracer)
因为内部调用堆栈比较长,截图贴不下,我粘贴出来:
il2cpp: 0x00680688 ┌─ShopModel.Save
il2cpp: 0x008f71f0 │ ┌─PlayerPrefsHelper.SetData
il2cpp: 0x008f726c │ │ ┌─PlayerPrefsHelper.SerializeObject
il2cpp: 0x00721a28 │ │ │ ┌─LitJson.JsonMapper.ToJson
il2cpp: 0x00bcc2fc │ │ │ │ ┌─LitJson.JsonWriter.Reset
il2cpp: 0x006061b4 │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcc2fc │ │ │ │ └─LitJson.JsonWriter.Reset
il2cpp: 0x0073de88 │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc3dc │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc3dc │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccb00 │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteArrayStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bccb00 │ │ │ │ │ │ └─LitJson.JsonWriter.WriteArrayStart
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcca10 │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteArrayEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcca10 │ │ │ │ │ │ └─LitJson.JsonWriter.WriteArrayEnd
il2cpp: 0x0073de88 │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccb00 │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteArrayStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bccb00 │ │ │ │ │ │ └─LitJson.JsonWriter.WriteArrayStart
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073de88 │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x0073acc0 │ │ │ │ │ │ │ └─LitJson.JsonMapper.AddTypeProperties
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ ┌─LitJson.WriterContext..ctor
il2cpp: 0x006061b4 │ │ │ │ │ │ │ │ └─LitJson.WriterContext..ctor
il2cpp: 0x00bcccd8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectStart
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcca10 │ │ │ │ │ │ ┌─LitJson.JsonWriter.WriteArrayEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcca10 │ │ │ │ │ │ └─LitJson.JsonWriter.WriteArrayEnd
il2cpp: 0x0073de88 │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc6c0 │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc3dc │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc3dc │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccdc0 │ │ │ │ │ ┌─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbf80 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutString
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcbf80 │ │ │ │ │ │ └─LitJson.JsonWriter.PutString
il2cpp: 0x00bccdc0 │ │ │ │ │ └─LitJson.JsonWriter.WritePropertyName
il2cpp: 0x0073de88 │ │ │ │ │ ┌─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc3dc │ │ │ │ │ │ ┌─LitJson.JsonWriter.Write
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bcc3dc │ │ │ │ │ │ └─LitJson.JsonWriter.Write
il2cpp: 0x0073de88 │ │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bccbe8 │ │ │ │ │ ┌─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x00bcbbec │ │ │ │ │ │ ┌─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbbec │ │ │ │ │ │ └─LitJson.JsonWriter.DoValidation
il2cpp: 0x00bcbef0 │ │ │ │ │ │ ┌─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbef0 │ │ │ │ │ │ └─LitJson.JsonWriter.PutNewline
il2cpp: 0x00bcbe54 │ │ │ │ │ │ ┌─LitJson.JsonWriter.Put
il2cpp: 0x00bcbe54 │ │ │ │ │ │ └─LitJson.JsonWriter.Put
il2cpp: 0x00bccbe8 │ │ │ │ │ └─LitJson.JsonWriter.WriteObjectEnd
il2cpp: 0x0073de88 │ │ │ │ └─LitJson.JsonMapper.WriteValue
il2cpp: 0x00bcc290 │ │ │ │ ┌─LitJson.JsonWriter.ToString
il2cpp: 0x00bcc290 │ │ │ │ └─LitJson.JsonWriter.ToString
il2cpp: 0x00721a28 │ │ │ └─LitJson.JsonMapper.ToJson
il2cpp: 0x008f726c │ │ └─PlayerPrefsHelper.SerializeObject
il2cpp: 0x008f72d0 │ │ ┌─PlayerPrefsHelper.RijndaelEncrypt
il2cpp: 0x008f72d0 │ │ └─PlayerPrefsHelper.RijndaelEncrypt
il2cpp: 0x008f71f0 │ └─PlayerPrefsHelper.SetData
il2cpp: 0x00680688 └─ShopModel.Save
可以很明显地发现最后调用了PlayerPrefsHelper.RijndaelEncrypt
这个方法,这名字写得这么明显了,铁加密没跑了,还是微软特色的Rijndael
算法。
所以去showAsm('0x008f72d0')
看看这个方法吧。
正好两个参数,一个数据一个密钥,那么直接Il2Cpp.trace().methods(Il2Cpp.Domain.tryAssembly("Assembly-CSharp").image.tryClass("PlayerPrefsHelper").tryMethod("RijndaelEncrypt")).and().attach("detailed")
看一下输入输出咯。
所以密钥就是dovixxxxxxxxxxxxxxxxxxxxxxxxxxxx
,尝试在线解密一下数据看看具体模式啥的,发现就是默认的。
尝试加密回去,发现结尾不对,猜测是padding
的问题,于是改成pkcs7
,成功复原加密情况。
然后这不就看见了个叫hasNoAds
的字段了嘛,看字面意思是开通了去广告的增值功能咯。
所以现在可以尝试覆写一个hasNoAds
为true
的加密数据,不过由于这个游戏有定时保存,所以frida
里面改PlayerPrefs
可能不太靠谱,我这里直接关掉游戏改安卓的xml
文件。
成功变成无广告模式,但是不太直观,再改个数值吧。
成功拿下。
Comments NOTHING