第十一届 美亚杯中国电子数据取证大赛 个人赛 题解 - XD Forensics Wiki
https://forensics.xidian.edu.cn/writeups/MeiyaCup2025Individual/

第十一届 美亚杯中国电子数据取证大赛 个人赛 题解
¶
Author
NoahTie @ tratra 什么都会
写在前面
¶
这次美亚的个人赛整体题目难度不高, 但检材中出现了 2 个毒点:
iOS 检材因提取工具原因, 直接使用弘连及美亚的软件挂载会需要密码, 但实际上检材内容已是解密后的文件. 需要弱口令爆破或密码绕过.
虚拟货币截图检材的压缩包密码没有给出, 需要猜测或结合已有信息进行爆破.
复盘期间遇到的比较卡的题目有:
陈民浩手机部分, 涉及 WiFi 信息部分的题目. 我认为部分题目描述有错.
冯子超手机部分, 涉及 AirDrop, 文档, 相册的部分题目. 有些题目的答案依然模糊不清.
另外, 吐槽一下美亚杯的监考软件的问题, 比赛前我和很多其他参赛选手都遇到了很多工具被监考软件杀掉的情况. 软件是用 Go 写的, 我没有时间仔细逆它, 但我会内存取证, 于是我从软件的内存 dump 里面提取出了一个进程清单列表:
Text Only
wechat.exe,Weixin.exe,WeChatAppEx.exe,crashpad_handler.exe,qq.exe,dingtalk.exe,
WinSCP.exe,baidunetdisk.exe,baidunetdiskhost.exe,FlashFXP.exe,filezilla.exe,
wylogin.exe,lenovodata3.exe,115.exe,360EnterpriseDiskUI.exe,ChinaFTP.exe,ONENOTE.exe,
cuteftp.exe,cuteftppro.exe,Evernote.exe,EvernoteSubprocess.exe,YoudaoNote.exe,
ZoomMeetings.exe,Zoom.exe,wemeetapp.exe,WeLink.exe,WXWork.exe,Feishu.exe,AweSun.exe,
SunloginClient.exe,msedgewebview2.exe,ToDesk.exe,Feige.exe,Skype.exe,YY.exe,yixin.exe,
Ksyunpan.exe,eCloud.exe,aDrive.exe,QuarkCloudDrive.exe,WeiyunApp.exe,QmtChat.exe,
Telegram.exe,Whatsapp.exe,FeiQ.exe,Doubao.exe,yuanbao.exe,YuanbaoCrashHandler.exe,
wpscloudsvr.exe,awesun_guard.exe,AirDroid.exe,aria2c.exe,GameViewer.exe,有道云笔记Beta版.exe,
ToDesk_Service.exe,ToDesk_Session.exe
居然有
crashpad_handler.exe
和
msedgewebview2.exe
, FTP 客户端也杀的差不多了, 幸好我们组网连 FTP 一般都是用 Windows 资源管理器自带的 FTP 功能. WebView 杀了, 导致所有需要 WebView 的应用(包括所有使用 NodeJS 编写的 GUI 应用, 使用 C# 编写的部分 GUI 应用, 使用 Windows SDK 的部分 GUI 应用)全部被美亚的监考软件判定为违规应用. 弘连的大部分软件和 Ollama 的 GUI 都使用到了 WebView, 直接导致了这些软件无法正常运行.
我紧急想了一个比较邪乎的招: 用 Windows 的服务起一个启动器, 这样启动器启动的全部应用都会继承服务的权限, 而美亚的监考软件是用管理员权限启动的, 这样监考软件只能检测到违规应用启动, 但无法关闭其进程.
好在这个软件的配置是云控下发的, 比赛前的晚上 9 点多我刚准备往西电校内的参赛群发操作教程的时候, 美亚负责监考软件的工程师紧急拉我开了个在线会议, 才算是把监考软件的问题解决了.
使用到的工具清单
¶
info
以下是本文中出现的所有工具的清单(不包括 Windows 11 预装的系统工具), 仅供参考.
工具名称前标注有 * 的项为仅在复盘时使用了的工具, 其余工具为比赛时及复盘时均使用到的工具.
介质取证软件
火眼证据分析软件
X-Ways Forensics
FTK Imager
iLEAPP
数据库工具
DB Browser for SQLite (DB4S)
Navicat Premium
Realm Studio
虚拟机软件
VMWare Workstation Pro
编辑器/IDE
VS Code (Plist 插件)
010 Editor
Plist Editor Pro
福昕高级 PDF 编辑器
其他工具
Python 3.13
CyberChef
* BIP-39 Standalone
iOS_Local_PL_Photos.sqlite_Queries
HashMyFiles
IrfanView
VeraCrypt
Utools (二维码插件)
比赛信息
¶
容器信息
¶
容器密码:
FEYn0MJLYy9zTQRFHlXGRkVqXv3IkE8h
SHA-256 哈希:
ba7a59bda48932ae5507c4872a0492ee080cd8e6222d9e86fad961038801826e
比赛案情
¶
案情
警方接获报案, 前往西贡布袋澳处理一宗"伤人"事件. 经初步调查, 怀疑男子陈民浩以木棍袭击男子冯子超, 导致冯子超头部受伤昏迷. 冯子超已被送往医院救治, 陈民浩则因涉嫌"伤人"罪被警方当场拘捕, 被捕后一直保持缄默, 拒绝交代案情细节.
进一步调查显示, 两人冲突疑因女子梁燕玲而起. 根据现场迹象推断, 梁燕玲曾于事发时在场出现, 经警方多方搜索后, 至今仍未能与她取得联络. 请参赛者根据提供的资料, 深入分析线索, 寻找梁燕玲下落, 并还原事件真相.
背景资料
Green Technology Supply Co. Ltd.(绿创科技系统有限公司)为本港网络工程公司, 主要业务是为企业客户铺设网络服务及安装各类服务器.
男子 FUNG Chi-chiu(冯子超), 英文名为 Duncan, 30 岁, 未婚, 香港出生, 在 Green Technology Supply Co. Ltd. 任职工程师.
男子 CHAN Man-ho(陈民浩), 英文名为 Hogan, 35 岁, 未婚, 香港出生, 在 Green Technology Supply Co. Ltd. 任职系统工程师.
女子 LEUNG Yin-ling(梁燕玲), 英文名为 Ling, 28 岁, 未婚, 香港出生, 现为自由职业平面设计师.
附加资料
梁燕玲与陈民浩为同居情侣关系
梁燕玲通过陈民浩认识冯子超
三人均为密码学(Crypto)及隐写术(Stego)爱好者
陈民浩经常驾车接载三人前往郊区聚餐, 并一同钻研相关技术话题
案情思维导图
¶
最近在学 OSINT, 顺便拿 Maltego 画了个图
陈民浩的手机(iOS)
¶
案情
香港警方接到报案, 西贡区布袋澳有人持木棍袭击他人, 警方到达现场发现冯子超头部受伤昏迷, 身上只有一部智能手机但没有身份证明文件. 调查后香港警方以伤人罪拘捕了陈民浩. 陈民浩被捕后保持沉默, 拒绝交代案情, 身上搜获一部智能手机, 冯子超则被送往医院救治. 警方检查了两人的智能手机, 并由检验人员进行了检验. 冯子超的智能手机资料储存在
FUNG_CC_mobile.zip
文件中, 而陈民浩的智能手机资料则储存在
CHAN_MH.zip
文件中. 警方希望运用你的电子数据检验知识, 在两个人的智能手机中查找办案线索.
请你使用
CHAN_MH.zip
检材回答以下问题.
对检材文件的处理
由于 iOS 备份一些隐私数据(例如, KeyChain 等)强制要求用户设置备份密码, 因此取证工具在获取备份时往往会设置一个默认的密码或要求用户手动设置一个密码. 这样设置的备份密码通常为 4 位数字, 常见的是
0000
和
1234
之类的 4 位数字弱口令.
本次比赛的所有 iOS 检材均为备份文件, 且设置了备份密码. 大多数检材的密码为
0000
或
1234
, 可以通过 Passware 或 HashCat 等密码爆破工具结合弱口令字典或 4 位数字掩码进行爆破. 但仍有 1 个检材的密码无法通过该方法获取.
解压 iOS 检材之后, 可以看到目录中存在一个
iDevice_info.txt
文件, 该文件是
ideviceinfo
工具的输出结果. 该工具被许多 iOS 提取工具使用, 例如 Elcomsoft iOS Forensic Toolkit 就会使用该工具获取待提取设备的基本信息:
在检材中的
/var
目录中存储着
Info.plist
Manifest.plist
Manifest.db
Status.plist
和文件扩展名添加了
_DEC
的 4 个文件:
文件名包含
_DEC
的是提取工具生成的解密后的文件, 因此使用这些解密后的文件覆盖原始加密的文件, 并使用 Plist Editor 将
Manifest.plist
中将备份是否加密的标志改为
false
即可得到未加密的检材文件.
之后即可将该目录作为文件集合挂载在火眼取证中进行分析了.
或者, 也可以不对文件进行覆盖, 而是只删除
Manifest.db
并对
Menifest.plist
中的加密标志进行修改, 也可以达到相同的效果.
若直接删除
Menifest.db
和
Menifest.plist
, 也可以挂载检材, 但会缺失部分信息.
01 这个智能手机是什么操作系统
¶
选项
A.iOS 17.1.1
B.iOS 17.2.1
C.iOS 17.3.1
D.iOS 17.0.1
答案
A
在"基本信息"中可以看到:
或者在 iLEAPP 的报告中:
02 在这个手机中, 有多少组国际移动设备识别码(IMEI)号码
¶
答案
2
在"基本信息"中可以看到 1 个 IMEI
357328098205226
(证据来源是
Info.plist
文件):
在
iDevice_info.txt
中可以看到 2 个 IMEI
357328098205226
及
357328099153748
:
03 承上题, 以下哪一个才是正确的国际移动设备识别码(IMEI)号码
¶
选项
A.357328098205226
B.357328097205226
C.357328096205226
D.357328095205226
答案
A
接上题. 根据
Info.plist
文件的内容,
357328098205226
应该是正确的 IMEI.
04 请指出最后使用的使用者身分模组(SIM)的集成电路卡识别码(ICCID)
¶
答案
89852122206020998419
在"SIM 卡记录"分析结果中可以看到最后更新信息的 SIM 卡的 ICCID 为
89852122206020998419
:
在
iDevice_info.txt
中也可以看到相同的结果(提取数据当时安装在手机内的 SIM 卡的信息):
或者在 iLEAPP 的报告中:
05 请指出最后使用的 Apple ID 是多少
¶
答案
whoishogan@gmail.com
在"账号信息"分析结果中可以看到登录的 Apple ID 是
whoishogan@gmail.com
:
在
iDevice_info.txt
中也可以看到相同的结果:
或者在 iLEAPP 的报告中:
06 蓝牙模组中的蓝牙地址是多少
¶
答案
f8:38:80:bb:f5:28
在
iDevice_info.txt
中可以看到蓝牙的 MAC 地址
f8:38:80:bb:f5:28
:
07 这个智能手机曾经启动个人热点分享网络, 请问他的热点名称
¶
答案
iPhone
在
iDevice_info.txt
中可以看到热点的密码:
在陈民浩的另外一部安卓手机可以看到连接过 SSID 为
iPhone
的热点:
iPhone 的热点 SSID
iPhone 的热点名称在未越狱修改系统文件的情况下无法自定义, 中文系统下默认的热点名称为
<UserName>的iPhone
, 英文系统下默认的热点名称为
<UserName>'s iPhone
.
若 iPhone 手机未登录 Apple ID 或未设置用户名, 则热点的 SSID 将为
iPhone
.
08 这个智能手机没有连接过以下哪一个服务集标识符(SSID)
¶
选项
A.Hongn Home
B.CMHK
C.1010 free wifi
D.ErrorError
本题存疑
我的答案: AB
在"Wi-Fi 连接记录"分析结果中可以看到 4 个 WiFi 的连接记录:
在
/var/preferences/SystemConfiguration/preferences.plist
中可见用户使用过 "cmhk" APN, 但这是手机无线网络的 APN 而非 WiFi 网络的 SSID.
在 iLEAPP 的分析结果中也可看到相同的结果:
09 请指出首次连接服务集识别码(SSID)名称为"CMHK"的无线区域网络(Wi-Fi)的日期及时间
¶
本题存疑
暂无答案
接上题.
CMHK 是 China Mobile Hongkong 的简写, 在
apnsettings
或
China Mobile Hongkong
都可以看到关于 CMHK APN 的信息:
因此, 检材设备连接过 APN 为 CMHK 的蜂窝数据网络, 而非 WiFi 网络.
10 安装了以下即时哪个通讯软件?
¶
i) WhatsApp
ii) WeChat
iii) WhatsApp Business
iv) QQ
选项
A.只有 i) 和 ii)
B.只有 i), ii) 和 iii)
C.只有 i), ii) 和 iv)
D.以上皆是
答案
A
在"应用列表"解析结果中筛选非预装的应用包:
设备上安装了 WhatsApp, Telegram 和微信 3 个即时通信软件.
11 承上题, 请指出即时通讯软件"WhatsApp"的版本
¶
答案
731647702.0
在
Manifest.plist
中可以看到:
12 陈民浩的手机中, 总共安装 3 个文件传输软件, 封包名称分别为
com.apple.Sharing.AirDropUI
,
com.lenovo.anyshare
,
com.estmob.paprika
, 其中有哪一个软件曾经用来传送/接收文件功能
¶
选项
A.com.apple.Sharing.AirDropUI
B.com.lenovo.anyshare
C.com.estmob.paprika
答案
C
在
Menifest.plist
中可以看到题目中提及的 3 个软件包的信息:
在
com.estmob.paprika
(Send Anywhere) 的数据目录中的 realm 数据库
com.estmob.sendanywhere.sdk.database.realm
中存储着文件传输相关的信息:
13 承上题, 与其有传送/接收过资料装置的装置 ID 是多少
¶
答案
5402313593439
接上题. 在
TransferInfoEntity
表中可以看到 2 次传输记录, 其中的
peerDeviceId
列存储的是传输对象的设备 ID:
14 承上题, 这个装置名称是
¶
答案
Samsung SM-G930F
接上题.
该设备实际上是陈民浩的另外一部安卓手机:
15 承上题, 本机装置的装置 ID 是多少
¶
答案
3836403626142
在数据目录
/var/mobile/Applications/com.estmob.paprika/Library/Preferences/
中的文件
com.estmob.paprika.properties.plist
中可以看到本机的设备 ID:
在陈民浩的安卓手机中, 在应用数据目录
/data/com.estmob.android.sendanywhere/databases
中的数据库
main.db
中的
devices
表可以看到与该手机连接过的设备 ID 与陈民浩的 iPhone 手机一致:
由此确认 2 个文件的传输发生在陈民浩的两台手机之间.
16 承上题, 陈民浩的手机(
CHAN_MH_mobile.zip
)是传送方或是接收方
¶
选项
A.传送方
B.接收方
C.传送及接收方
答案
B
结合陈民浩的安卓手机内的截图数据, 可以判断这些截图文件是由陈民浩的安卓手机发送给他的 iPhone 手机的:
截图内容为米家 APP 的应用界面, 该截图在陈民浩的 iPhone 手机的 WhatsApp 与梁燕玲(Ling)的聊天记录中可以看到:
17 根据传送档案的名称, 判断是以下哪一类型
¶
选项
A.屏幕截图
B.手机拍摄影片
C.PDF 文件
D.zip 压缩文件
答案
A
文件名中包含
Screenshot
字样, 排除人为修改文件名的情况, 应该是屏幕截图文件.
在陈民浩的安卓手机内的截图文件夹中可以找到这些图片, 可以进一步印证推测.
18 承上题, 接收至哪一个装置
¶
选项
A.CHAN_MH_mobile.zip
B.blk0_sda.bin
C.FUNG_CC_mobile.zip
D.LAM_KH_Mobile.zip
E.WONG_CW_mobile.zip
答案
A
参考上述分析.
19 承上题, 传送方是通过此文档传输软件的哪个模式作出传送
¶
选项
A.SEND_PARTIALLY
B.SEND_PAPRIKA
C.SEND_DIRECTLY
D.SEND_BYCLOUD
E.SEND_BLUETOOTH
答案
C
参考本部分第 15 题. 在数据库
main.db
中的
transfer_history
表中可以看到上述文件的传输记录:
传输方式为
SEND_DIRECTLY
.
20 从来没有安装以下哪个网络浏览器
¶
选项
A.Safari
B.Chrome
C.Firefox
D.edge
答案
BCD
iOS 设备上会预装 Safari 浏览器:
在"应用授权日志"分析结果和"网络使用详情"分析结果中, 均未能找到 Safari 之外 3 个浏览器的使用记录.
21 承上题, 网络浏览器 Safari 有多少个书签(Bookmark)记录
¶
答案
9
在"Safari"的"书签记录"分析结果中可以看到有 9 条书签记录:
22 承上题, 曾经通过 Safari 浏览器用下列哪一个字词进行过搜索
¶
选项
A.非法处理尸体最高刑罚
B.escape room hong kong
C.cypto wallet
D.非法处理尸体
答案
ABC
在"Safari"的"搜索历史"分析结果中, 可以看到选项 A B C 的关键词:
有意思的是, 选项 C 中的"cypto"是一个 typo.
23 有多少个图片文件曾经储存到 iCloud
¶
答案
2
在 iLEAPP 的"Files App - Files stored in iCloud Drive"分析报告中可以看到一共上传了 3 个文件, 其中有 2 个是图片文件:
该分析报告的来源是
\var\mobile\Library\Application Support\CloudDocs\session\db\client.db
数据库:
24 相册中有多少张图片是通过屏幕截图功能取得
¶
答案
15
在"图片"的"屏幕快照"分析结果中可以看到共有 15 张屏幕截图:
冯子超的手机
¶
案情
请参考参赛材料
FUNG_CC_mobile.zip
回答以下问题.
25 这部智能手机连接过多少个 Wi-Fi 网络
¶
答案
2
在"Wi-Fi 连接记录"分析结果中可以看到 2 条记录:
26 这部智能手机曾经连接过以下哪个无线网络
¶
i) THREE_WIFI
ii) wanchai
iii) iPhone(2)
iv) Router
选项
A.只有 i)
B.只有 ii) 和 iii)
C.只有 ii), iii) 和 iv)
D.以上皆是
答案
B
接上题.
证据来源是
/var/preferences/SystemConfiguration/com.apple.wifi-private-mac-networks.plist
, 该文件中保存了 2 个使用了 iOS 的隐私 WiFi MAC 地址功能的 Wi-Fi 信息, 功能介绍参考
Use private Wi-Fi addresses on Apple devices
.
疑点
但在系统配置中的
com.apple.wifi.plist
文件中可见另外 1 个 SSID. 并且根据
IsEapNetwork
的配置项值为
true
可以判断该网络是 EAP 网络;
isCarrierBundleBased
的配置项值为
true
可以判断该网络是通过运营商的配置文件添加的网络:
我在网上搜索了一下, 发现
THREE_WIFI
是一家网络运营商
3HK
提供的 WiFi 路由器的默认 SSID. 我认为检材的设备还连接过 SSID 为
THREE_WIFI
的 Wi-Fi 网络.
但根据后续的题目来看, 设备实际上或许没有连接过
THREE_WIFI
, 目前还没有找到配置文件中出现该网络信息的原因.
27 这部手提手机最早连接(非热点) Wi-Fi 的时间是什么
¶
答案
2025-04-15 19:29:23
在
/var/preferences/SystemConfiguration/com.apple.wifi-private-mac-networks.plist
配置文件中可以看到 Wi-Fi 连接的详细信息.
添加(第一次连接)
iPhone(2)
网络的时间为
2025-04-15T09:40:44Z
(转换到 UTC+08 为
2025-04-15 17:40:44
):
但根据该网络的 SSID 来看, 该网络为 iPhone 手机开启的热点, 根据题目描述应当排除.
添加
wanchai
网络的时间为
2025-04-15T11:29:23Z
(转换到 UTC+08 为
2025-04-15 19:29:23
):
ISO 8601 标准时间表示
在 ISO 8601 中规定了 2 种标准的时间表示方式:
形如 1970-01-01T00:00:00.000Z: 该时间为 UTC 时间.
形如 1970-01-01T00:00:00.000+00:00: 该时间格式包含时区信息, 时区前的时间为该时区的当地时间
28 承上题, 请列出这个连接的服务集识别码(SSID)
¶
答案
wanchai
见上述分析.
29 承上题, 请列出这个连接的登入金钥
¶
答案
hellowanchai
在"钥匙串"分析结果中可以看到
wanchai
网络的密码:
30 相册中有两张 GIF "IMG_0057.GIF"及"IMG_0062.GIF", 请指出由哪一个软件拍摄
¶
选项
A.Infltr
B.Discreet
C.Meitu
D.Prisma
答案
A
我在
iOS_Local_PL_Photos.sqlite_Queries
仓库中的
iOS17_LPL_Phsql_Basic.txt
的基础上做了一些修改(主要是检材中的
photos.db
中的
ZMEDANLYASTATTR
的字段与仓库中提供的脚本略有区别):
SQL
SELECT
ZASSET
.
ZSORTTOKEN
AS
'ZASSET-SORT TOKEN'
,
ZASSET
.
ZPROMOTIONSCORE
AS
'ZASSET-PROMOTION SCORE'
,
CASE
ZASSET
.
ZCOMPLETE
WHEN
1
THEN
'1-YES-1'
END
AS
'ZASSET COMPLETE'
,
ZASSET
.
Z_PK
AS
'ZASSET-ZPK'
,
ZADDASSETATTR
.
Z_PK
AS
'ZADDASSETATTR-ZPK'
,
ZCLDMAST
.
Z_PK
AS
'ZCLDMAST-ZPK=ZASSET-MASTER'
,
ZASSET
.
ZMASTER
AS
'ZASSET-MASTER=ZCLDMAST-ZPK'
,
ZASSET
.
ZEXTENDEDATTRIBUTES
AS
'ZASSET-EXTENDED ATTRIBUTES=ZEXTATTR-ZPK'
,
ZEXTATTR
.
Z_PK
AS
'ZEXTATTR-ZPK=ZASSET-ZEXTENDEDATTRIBUTES'
,
CMZCLDMASTMEDDATA
.
ZCLOUDMASTER
AS
'CMZCLDMASTMEDDATA-CLDMAST=ZCLDMAST-ZPK'
,
ZCLDMAST
.
ZMEDIAMETADATA
AS
'ZCLDMAST-MEDIA METADATA KEY=ZCLDMASTMEDDATA.ZPK'
,
CMZCLDMASTMEDDATA
.
Z_PK
AS
'CMZCLDMASTMEDDATA-ZPK=ZADDASSETATTR&ZCLDMAST-MEDIAMETADATA KEY'
,
CMZCLDMASTMEDDATA
.
Z_ENT
AS
'CMZCLDMASTMEDDATA-ZENT'
,
ZASSET
.
ZUUID
AS
'ZASSET-UUID = STORE.CLOUDPHOTODB'
,
ZASSET
.
ZCLOUDASSETGUID
AS
'ZASSET-CLOUD_ASSET_GUID = STORE.CLOUDPHOTODB'
,
ZASSET
.
ZCLOUDCOLLECTIONGUID
AS
'ZASSET.CLOUD COLLECTION GUID'
,
ZCLDMAST
.
ZCLOUDMASTERGUID
AS
'ZCLDMAST-CLOUD_MASTER_GUID = STORE.CLOUDPHOTODB'
,
ZGENALBUM
.
ZCLOUDGUID
AS
'ZGENALBUM-CLOUD_GUID = STORE.CLOUDPHOTODB'
,
ZSHARE
.
ZSCOPEIDENTIFIER
AS
'ZSHARE-SCOPE ID = STORE.CLOUDPHOTODB'
,
ZADDASSETATTR
.
ZORIGINALASSETSUUID
AS
'ZADDASSETATTR-ORIGINAL ASSETS UUID'
,
ZADDASSETATTR
.
ZPUBLICGLOBALUUID
AS
'ZADDASSETATTR-PUBLIC GLOBAL UUID'
,
ZADDASSETATTR
.
ZMASTERFINGERPRINT
AS
'ZADDASSETATTR-MASTER FINGERPRINT'
,
ZADDASSETATTR
.
ZORIGINATINGASSETIDENTIFIER
AS
'ZADDASSETATTR-ORIGINATING ASSET IDENTIFIER'
,
ZCLDMAST
.
ZORIGINATINGASSETIDENTIFIER
AS
'ZCLDMAST-ORIGINATING ASSET ID'
,
ZINTRESOU
.
ZFINGERPRINT
AS
'ZINTRESOU-FINGERPRINT'
,
ZADDASSETATTR
.
ZADJUSTEDFINGERPRINT
AS
'ZADDASSETATTR.ADJUSTED FINGERPRINT'
,
ZUNMADJ
.
ZOTHERADJUSTMENTSFINGERPRINT
AS
'ZUNMADJ-OTHER ADJUSTMENTS FINGERPRINT'
,
ZUNMADJ
.
ZSIMILARTOORIGINALADJUSTMENTSFINGERPRINT
AS
'ZUNMADJ-SIMILAR TO ORIG ADJUSTMENTS FINGERPRINT'
,
CASE
PARENTZGENALBUM
.
ZCLOUDLOCALSTATE
WHEN
0
THEN
'0-ICLDPHOTOS-ON=ASSET_IN_SHARED/OTHER-ALBUM/ICLDPHOTOS-OFF=GENERIC_ALBUM-0'
WHEN
1
THEN
'1-ICLDPHOTOS-ON=ASSET_IN_GENERIC ALBUM-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
PARENTZGENALBUM
.
ZCLOUDLOCALSTATE
||
''
END
AS
'PARENTZGENALBUM-CLOUD-LOCAL-STATE-4START'
,
PARENTZGENALBUM
.
ZTITLE
AS
'PARENTZGENALBUM-TITLE-4START'
,
DATETIME
(
PARENTZGENALBUM
.
ZCREATIONDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'PARENTZGENALBUM-CREATION DATE-4START'
,
DATETIME
(
ZGENALBUM
.
ZCREATIONDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZGENALBUM-CREATION DATE-4START'
,
CASE
ZGENALBUM
.
ZCLOUDLOCALSTATE
WHEN
0
THEN
'0-ICLDPHOTOS-ON=ASSET_IN_SHARED/OTHER-ALBUM/ICLDPHOTOS-OFF=GENERIC_ALBUM-0'
WHEN
1
THEN
'1-ICLDPHOTOS-ON=ASSET_IN_GENERIC_ ALBUM-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZGENALBUM
.
ZCLOUDLOCALSTATE
||
''
END
AS
'ZGENALBUM-CLOUD_LOCAL_STATE-4START'
,
ZGENALBUM
.
ZTITLE
AS
'ZGENALBUM-TITLE-4START'
,
CASE
ZASSET
.
ZBUNDLESCOPE
WHEN
0
THEN
'0-ICLDPHOTOS-ON=NOT-IN-SHARED-ALBUM_ICLDPHOTOS-OFF=ON-LOCAL-DEVICE-0'
WHEN
1
THEN
'1-SWY-SYNDICATION_CMMASSET-1'
WHEN
2
THEN
'2-ICLDPHOTOS-ON=ASSET-IN-CLOUD-SHARED-ALBUM-2'
WHEN
3
THEN
'3-ICLDPHOTOS-ON=SWY-SYNDICATION-ASSET-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZBUNDLESCOPE
||
''
END
AS
'ZASSET-BUNDLE SCOPE'
,
CASE
ZASSET
.
ZCLOUDISMYASSET
WHEN
0
THEN
'0-NOT_MY_ASSET_IN_SHARED_ALBUM-0'
WHEN
1
THEN
'1-MY_ASSET_IN_SHARED_ALBUM-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZCLOUDISMYASSET
||
''
END
AS
'ZASSET-CLOUD IS MY ASSET'
,
CASE
ZASSET
.
ZCLOUDISDELETABLE
WHEN
0
THEN
'0-NO-0'
WHEN
1
THEN
'1-YES-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZCLOUDISDELETABLE
||
''
END
AS
'ZASSET-CLOUD IS DELETABLE/ASSET'
,
CASE
ZASSET
.
ZCLOUDLOCALSTATE
WHEN
0
THEN
'ICLDPHOTOS ON=ASSET_IN_SHARED-OR-OTHERALBUM/ICLDPHOTOS_OFF=NOT_SYNCED-0'
WHEN
1
THEN
'ICLDPHOTOS ON=ASSET_CAN-BE-OR-HAS-BEEN_SYNCED_WITH_ICLOUD-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZCLOUDLOCALSTATE
||
''
END
AS
'ZASSET-CLOUD_LOCAL_STATE'
,
CASE
ZASSET
.
ZVISIBILITYSTATE
WHEN
0
THEN
'0-VISIBLE-PHOTO-LIBRARY-0'
WHEN
2
THEN
'2-NOT-VISIBLE-PHOTO-LIBRARY-2'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZVISIBILITYSTATE
||
''
END
AS
'ZASSET-VISIBILITY STATE'
,
ZEXTATTR
.
ZCAMERAMAKE
AS
'ZEXTATTR-CAMERA MAKE'
,
ZEXTATTR
.
ZCAMERAMODEL
AS
'ZEXTATTR-CAMERA MODEL'
,
ZEXTATTR
.
ZLENSMODEL
AS
'ZEXTATTR-LENS MODEL'
,
CASE
ZEXTATTR
.
ZFLASHFIRED
WHEN
0
THEN
'0-NO FLASH-0'
WHEN
1
THEN
'1-FLASH FIRED-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZEXTATTR
.
ZFLASHFIRED
||
''
END
AS
'ZEXTATTR-FLASH FIRED'
,
ZEXTATTR
.
ZFOCALLENGTH
AS
'ZEXTATTR-FOCAL LENGHT'
,
ZEXTATTR
.
ZFOCALLENGTHIN35MM
AS
'ZEXTATTR-FOCAL LENTH IN 35MM'
,
ZEXTATTR
.
ZDIGITALZOOMRATIO
AS
'ZEXTATTR-DIGITAL ZOOM RATIO'
,
CASE
ZASSET
.
ZDERIVEDCAMERACAPTUREDEVICE
WHEN
0
THEN
'0-BACK-CAMERA/OTHER-0'
WHEN
1
THEN
'1-FRONT-CAMERA-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZDERIVEDCAMERACAPTUREDEVICE
||
''
END
AS
'ZASSET-DERIVED CAMERA CAPTURE DEVICE'
,
CASE
ZADDASSETATTR
.
ZCAMERACAPTUREDEVICE
WHEN
0
THEN
'0-BACK-CAMERA/OTHER-0'
WHEN
1
THEN
'1-FRONT-CAMERA-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZCAMERACAPTUREDEVICE
||
''
END
AS
'ZADDASSETATTR-CAMERA CAPTURED DEVICE'
,
CASE
ZADDASSETATTR
.
ZIMPORTEDBY
WHEN
0
THEN
'0-CLOUD-OTHER-0'
WHEN
1
THEN
'1-NATIVE-BACK-CAMERA-1'
WHEN
2
THEN
'2-NATIVE-FRONT-CAMERA-2'
WHEN
3
THEN
'3-THIRD-PARTY-APP-3'
WHEN
4
THEN
'4-STILLTESTING-4'
WHEN
5
THEN
'5-PHOTOBOOTH_PL-ASSET-5'
WHEN
6
THEN
'6-THIRD-PARTY-APP-6'
WHEN
7
THEN
'7-ICLOUD_SHARE_LINK-CMMASSET-7'
WHEN
8
THEN
'8-SYSTEM-PACKAGE-APP-8'
WHEN
9
THEN
'9-NATIVE-APP-9'
WHEN
10
THEN
'10-STILLTESTING-10'
WHEN
11
THEN
'11-STILLTESTING-11'
WHEN
12
THEN
'12-SWY_SYNDICATION_PL-12'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZIMPORTEDBY
||
''
END
AS
'ZADDASSETATTR-IMPORTED BY'
,
CASE
ZCLDMAST
.
ZIMPORTEDBY
WHEN
0
THEN
'0-CLOUD-OTHER-0'
WHEN
1
THEN
'1-NATIVE-BACK-CAMERA-1'
WHEN
2
THEN
'2-NATIVE-FRONT-CAMERA-2'
WHEN
3
THEN
'3-THIRD-PARTY-APP-3'
WHEN
4
THEN
'4-STILLTESTING-4'
WHEN
5
THEN
'5-PHOTOBOOTH_PL-ASSET-5'
WHEN
6
THEN
'6-THIRD-PARTY-APP-6'
WHEN
7
THEN
'7-ICLOUD_SHARE_LINK-CMMASSET-7'
WHEN
8
THEN
'8-SYSTEM-PACKAGE-APP-8'
WHEN
9
THEN
'9-NATIVE-APP-9'
WHEN
10
THEN
'10-STILLTESTING-10'
WHEN
11
THEN
'11-STILLTESTING-11'
WHEN
12
THEN
'12-SWY_SYNDICATION_PL-12'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZCLDMAST
.
ZIMPORTEDBY
||
''
END
AS
'ZCLDMAST-IMPORTED BY'
,
ZADDASSETATTR
.
ZIMPORTEDBYBUNDLEIDENTIFIER
AS
'ZADDASSETATTR.IMPORTED BY BUNDLE IDENTIFIER'
,
ZADDASSETATTR
.
ZIMPORTEDBYDISPLAYNAME
AS
'ZADDASSETATTR-IMPORTED BY DISPLAY NAME'
,
ZCLDMAST
.
ZIMPORTEDBYBUNDLEIDENTIFIER
AS
'ZCLDMAST-IMPORTED BY BUNDLE ID'
,
ZCLDMAST
.
ZIMPORTEDBYDISPLAYNAME
AS
'ZCLDMAST-IMPORTED BY DISPLAY NAME'
,
ZASSET
.
ZIMAGEREQUESTHINTS
AS
'ZASSET-IMAGEREQUESTHINTS/HEX-PATH'
,
CASE
ZASSET
.
ZSAVEDASSETTYPE
WHEN
0
THEN
'0-SAVED-VIA-OTHER-SOURCE-0'
WHEN
1
THEN
'1-STILLTESTING-1'
WHEN
2
THEN
'2-STILLTESTING-2'
WHEN
3
THEN
'3-LOCAL-PHOTO-LIBRARY-ASSET-3'
WHEN
4
THEN
'4-PHOTO-CLOUD-SHARING-DATA-ASSET-4'
WHEN
5
THEN
'5-PHOTOBOOTH_PHOTO-LIBRARY-ASSET-5'
WHEN
6
THEN
'6-CLOUD-PHOTO-LIBRARY-ASSET-6'
WHEN
7
THEN
'7-STILLTESTING-7'
WHEN
8
THEN
'8-ICLOUDLINK_CLOUDMASTERMOMENTASSET-8'
WHEN
12
THEN
'12-SWY-SYNDICATION-PL-ASSET/AUTO-DISPLAYED_IN_LPL-12'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZSAVEDASSETTYPE
||
''
END
AS
'ZASSET-SAVED ASSET TYPE-LPL'
,
ZASSET
.
ZDIRECTORY
AS
'ZASSET-DIRECTORY/PATH'
,
ZASSET
.
ZFILENAME
AS
'ZASSET-FILENAME'
,
ZADDASSETATTR
.
ZORIGINALFILENAME
AS
'ZADDASSETATTR-ORIGINAL FILENAME'
,
ZCLDMAST
.
ZORIGINALFILENAME
AS
'ZCLDMAST-ORIG FILENAME'
,
ZADDASSETATTR
.
ZSYNDICATIONIDENTIFIER
AS
'ZADDASSETATTR-SYNDICATION IDENTIFIER'
,
DATETIME
(
ZASSET
.
ZADDEDDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-ADD DATE'
,
CASE
ZADDASSETATTR
.
ZDATECREATEDSOURCE
WHEN
0
THEN
'0-CLOUD-ASSET-0'
WHEN
1
THEN
'1-LOCAL_ASSET_EXIF-1'
WHEN
3
THEN
'3-LOCAL_ASSET_NO_EXIF-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZDATECREATEDSOURCE
||
''
END
AS
'ZADDASSETATTR-DATE CREATED SOURCE'
,
DATETIME
(
ZASSET
.
ZDATECREATED
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-DATE CREATED'
,
DATETIME
(
ZCLDMAST
.
ZCREATIONDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZCLDMAST-CREATION DATE'
,
DATETIME
(
ZINTRESOU
.
ZCLOUDMASTERDATECREATED
+
978307200
,
'UNIXEPOCH'
)
AS
'ZINTRESOU-CLDMST DATE CREATED'
,
ZADDASSETATTR
.
ZTIMEZONENAME
AS
'ZADDASSETATTR-TIME ZONE NAME'
,
ZADDASSETATTR
.
ZTIMEZONEOFFSET
AS
'ZADDASSETATTR-TIME ZONE OFFSET'
,
ZADDASSETATTR
.
ZINFERREDTIMEZONEOFFSET
AS
'ZADDASSETATTR-INFERRED TIME ZONE OFFSET'
,
ZADDASSETATTR
.
ZEXIFTIMESTAMPSTRING
AS
'ZADDASSETATTR-EXIF-STRING'
,
DATETIME
(
ZASSET
.
ZMODIFICATIONDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-MODIFICATION DATE'
,
CASE
ZCLDMAST
.
ZCLOUDLOCALSTATE
WHEN
0
THEN
'0-NOT SYNCED WITH CLOUD-0'
WHEN
1
THEN
'1-PENDING UPLOAD-1'
WHEN
2
THEN
'2-STILLTESTING'
WHEN
3
THEN
'3-SYNCED WITH CLOUD-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZCLDMAST
.
ZCLOUDLOCALSTATE
||
''
END
AS
'ZCLDMAST-CLOUD LOCAL STATE'
,
DATETIME
(
ZCLDMAST
.
ZIMPORTDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZCLDMAST-IMPORT DATE'
,
ZASSET
.
ZIMPORTSESSION
AS
'ZASSET-IMPORT SESSION'
,
ZADDASSETATTR
.
ZIMPORTSESSIONID
AS
'ZADDASSETATTR-IMPORT SESSION ID'
,
DATETIME
(
ZADDASSETATTR
.
ZALTERNATEIMPORTIMAGEDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZADDASSETATTR-ALT IMPORT IMAGE DATE'
,
ZCLDMAST
.
ZIMPORTSESSIONID
AS
'ZCLDMAST-IMPORT SESSION ID'
,
DATETIME
(
ZASSET
.
ZCLOUDBATCHPUBLISHDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-CLOUD BATCH PUBLISH DATE'
,
DATETIME
(
ZASSET
.
ZCLOUDSERVERPUBLISHDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-CLOUD SERVER PUBLISH DATE'
,
ZASSET
.
ZCLOUDDOWNLOADREQUESTS
AS
'ZASSET-CLOUD DOWNLOAD REQUESTS'
,
ZASSET
.
ZCLOUDBATCHID
AS
'ZASSET-CLOUD BATCH ID'
,
DATETIME
(
ZADDASSETATTR
.
ZLASTUPLOADATTEMPTDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZADDASSETATTR-LAST UPLOAD ATTEMPT DATE-SWY'
,
ZADDASSETATTR
.
ZUPLOADATTEMPTS
AS
'ZADDASSETATTR-UPLOAD ATTEMPTS'
,
CASE
ZASSET
.
ZLATITUDE
WHEN
-
180
.
0
THEN
'-180.0'
ELSE
ZASSET
.
ZLATITUDE
END
AS
'ZASSET-LATITUDE'
,
ZEXTATTR
.
ZLATITUDE
AS
'ZEXTATTR-LATITUDE'
,
CASE
ZASSET
.
ZLONGITUDE
WHEN
-
180
.
0
THEN
'-180.0'
ELSE
ZASSET
.
ZLONGITUDE
END
AS
'ZASSET-LONGITUDE'
,
ZEXTATTR
.
ZLONGITUDE
AS
'ZEXTATTR-LONGITUDE'
,
CASE
ZADDASSETATTR
.
ZGPSHORIZONTALACCURACY
WHEN
-
1
.
0
THEN
'-1.0'
ELSE
ZADDASSETATTR
.
ZGPSHORIZONTALACCURACY
END
AS
'ZADDASSETATTR-GPS HORIZONTAL ACCURACY'
,
ZASSET
.
ZLOCATIONDATA
AS
'ZASSET-LOCATION DATA/HEX'
,
ZADDASSETATTR
.
ZREVERSELOCATIONDATA
AS
'ZADDASSETATTR-REVERSE LOCATION DATA/ORIG-ASSET/HEX NSKEYED PLIST'
,
CASE
ZADDASSETATTR
.
ZSHIFTEDLOCATIONISVALID
WHEN
0
THEN
'0-SHIFTED LOCATION NOT VALID-0'
WHEN
1
THEN
'1-SHIFTED LOCATION VALID-1'
END
AS
'ZADDASSETATTR-SHIFTED LOCATION VALID'
,
ZADDASSETATTR
.
ZSHIFTEDLOCATIONDATA
AS
'ZADDASSETATTR-SHIFTED LOCATION DATA'
,
ZADDASSETATTR
.
ZLOCATIONHASH
AS
'ZADDASSETATTR-LOCATION HASH'
,
CASE
AAAZCLDMASTMEDDATA
.
Z_OPT
WHEN
1
THEN
'1-STILLTESTING-CLOUD-1'
WHEN
2
THEN
'2-STILLTESTING-THIS DEVICE-2'
WHEN
3
THEN
'3-STILLTESTING-MUTED-3'
WHEN
4
THEN
'4-STILLTESTING-UNKNOWN-4'
WHEN
5
THEN
'5-STILLTESTING-UNKNOWN-5'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
AAAZCLDMASTMEDDATA
.
Z_OPT
||
''
END
AS
'AAAZCLDMASTMEDDATA-ZOPT'
,
ZADDASSETATTR
.
ZMEDIAMETADATATYPE
AS
'ZADDASSETATTR-MEDIA METADATA TYPE'
,
AAAZCLDMASTMEDDATA
.
ZDATA
AS
'AAAZCLDMASTMEDDATA-DATA/HEX'
,
CASE
CMZCLDMASTMEDDATA
.
Z_OPT
WHEN
1
THEN
'1-STILLTESTING-HAS_CLDMASTASSET-1'
WHEN
2
THEN
'2-STILLTESTING-LOCAL_ASSET-2'
WHEN
3
THEN
'3-STILLTESTING-MUTED-3'
WHEN
4
THEN
'4-STILLTESTING-UNKNOWN-4'
WHEN
5
THEN
'5-STILLTESTING-UNKNOWN-5'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
CMZCLDMASTMEDDATA
.
Z_OPT
||
''
END
AS
'CLDMASTERZCLDMASTMEDDATA-ZOPT'
,
ZCLDMAST
.
ZMEDIAMETADATATYPE
AS
'ZCLDMAST-MEDIA METADATA TYPE'
,
CMZCLDMASTMEDDATA
.
ZDATA
AS
'CMZCLDMASTMEDDATA-DATA/HEX'
,
CASE
ZASSET
.
ZSEARCHINDEXREBUILDSTATE
WHEN
0
THEN
'0-STILLTESTING-0'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZSEARCHINDEXREBUILDSTATE
||
''
END
AS
'ZASSET-SEARCH INDEX REBUILD STATE'
,
CASE
ZASSET
.
ZORIENTATION
WHEN
1
THEN
'1-VIDEO-DEFAULT/ADJUSTMENT/HORIZONTAL-CAMERA-(LEFT)-1'
WHEN
2
THEN
'2-HORIZONTAL-CAMERA-(RIGHT)-2'
WHEN
3
THEN
'3-HORIZONTAL-CAMERA-(RIGHT)-3'
WHEN
4
THEN
'4-HORIZONTAL-CAMERA-(LEFT)-4'
WHEN
5
THEN
'5-VERTICAL-CAMERA-(TOP)-5'
WHEN
6
THEN
'6-VERTICAL-CAMERA-(TOP)-6'
WHEN
7
THEN
'7-VERTICAL-CAMERA-(BOTTOM)-7'
WHEN
8
THEN
'8-VERTICAL-CAMERA-(BOTTOM)-8'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZORIENTATION
||
''
END
AS
'ZASSET-ORIENTATION'
,
CASE
ZADDASSETATTR
.
ZORIGINALORIENTATION
WHEN
1
THEN
'1-VIDEO-DEFAULT/ADJUSTMENT/HORIZONTAL-CAMERA-(LEFT)-1'
WHEN
2
THEN
'2-HORIZONTAL-CAMERA-(RIGHT)-2'
WHEN
3
THEN
'3-HORIZONTAL-CAMERA-(RIGHT)-3'
WHEN
4
THEN
'4-HORIZONTAL-CAMERA-(LEFT)-4'
WHEN
5
THEN
'5-VERTICAL-CAMERA-(TOP)-5'
WHEN
6
THEN
'6-VERTICAL-CAMERA-(TOP)-6'
WHEN
7
THEN
'7-VERTICAL-CAMERA-(BOTTOM)-7'
WHEN
8
THEN
'8-VERTICAL-CAMERA-(BOTTOM)-8'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZORIENTATION
||
''
END
AS
'ZADDASSETATTR-ORIGINAL ORIENTATION'
,
CASE
ZASSET
.
ZKIND
WHEN
0
THEN
'0-PHOTO-0'
WHEN
1
THEN
'1-VIDEO-1'
END
AS
'ZASSET-KIND'
,
CASE
ZASSET
.
ZKINDSUBTYPE
WHEN
0
THEN
'0-STILL-PHOTO-0'
WHEN
2
THEN
'2-LIVE-PHOTO-2'
WHEN
10
THEN
'10-SPRINGBOARD-SCREENSHOT-10'
WHEN
100
THEN
'100-VIDEO-100'
WHEN
101
THEN
'101-SLOW-MO-VIDEO-101'
WHEN
102
THEN
'102-TIME-LAPSE-VIDEO-102'
WHEN
103
THEN
'103-REPLAY_SCREEN_RECORDING-103'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZKINDSUBTYPE
||
''
END
AS
'ZASSET-KIND-SUB-TYPE'
,
CASE
ZADDASSETATTR
.
ZCLOUDKINDSUBTYPE
WHEN
0
THEN
'0-STILL-PHOTO-0'
WHEN
1
THEN
'1-STILLTESTING'
WHEN
2
THEN
'2-LIVE-PHOTO-2'
WHEN
3
THEN
'3-SCREENSHOT-3'
WHEN
10
THEN
'10-SPRINGBOARD-SCREENSHOT-10'
WHEN
100
THEN
'100-VIDEO-100'
WHEN
101
THEN
'101-SLOW-MO-VIDEO-101'
WHEN
102
THEN
'102-TIME-LAPSE-VIDEO-102'
WHEN
103
THEN
'103-REPLAY_SCREEN_RECORDING-103'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZCLOUDKINDSUBTYPE
||
''
END
AS
'ZADDASSETATTR-CLOUD KIND SUB TYPE'
,
CASE
ZASSET
.
ZPLAYBACKSTYLE
WHEN
1
THEN
'1-IMAGE-1'
WHEN
2
THEN
'2-IMAGE-ANIMATED-2'
WHEN
3
THEN
'3-LIVE-PHOTO-3'
WHEN
4
THEN
'4-VIDEO-4'
WHEN
5
THEN
'5-VIDEO-LOOPING-5'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZPLAYBACKSTYLE
||
''
END
AS
'ZASSET-PLAYBACK STYLE'
,
ZASSET
.
ZPLAYBACKVARIATION
AS
'ZASSET-PLAYBACK VARIATION'
,
ZASSET
.
ZDURATION
AS
'ZASSET-VIDEO DURATION'
,
ZEXTATTR
.
ZDURATION
AS
'ZEXTATTR-DURATION'
,
ZASSET
.
ZVIDEOCPDURATIONVALUE
AS
'ZASSET-VIDEO CP DURATION'
,
ZADDASSETATTR
.
ZVIDEOCPDURATIONTIMESCALE
AS
'ZADDASSETATTR-VIDEO CP DURATION TIME SCALE'
,
ZASSET
.
ZVIDEOCPVISIBILITYSTATE
AS
'ZASSET-VIDEO CP VISIBILITY STATE'
,
ZADDASSETATTR
.
ZVIDEOCPDISPLAYVALUE
AS
'ZADDASSETATTR-VIDEO CP DISPLAY VALUE'
,
ZADDASSETATTR
.
ZVIDEOCPDISPLAYTIMESCALE
AS
'ZADDASSETATTR-VIDEO CP DISPLAY TIME SCALE'
,
ZINTRESOU
.
ZASSET
AS
'ZINTRESOU-ASSET=ZASSET.ZPK'
,
ZINTRESOU
.
Z_PK
AS
'ZINTRESOU-ZPK'
,
ZINTRESOU
.
Z_ENT
AS
'ZINTRESOU-ZENT'
,
ZINTRESOU
.
Z_OPT
AS
'ZINTRESOU-ZOPT'
,
CASE
ZINTRESOU
.
ZDATASTORECLASSID
WHEN
0
THEN
'0-LPL-ASSET_CPL-ASSET-0'
WHEN
1
THEN
'1-STILLTESTING-1'
WHEN
2
THEN
'2-PHOTO-CLOUD-SHARING-ASSET-2'
WHEN
3
THEN
'3-SWY_SYNDICATION_ASSET-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZDATASTORECLASSID
||
''
END
AS
'ZINTRESOU-DATASTORE CLASS ID'
,
CASE
ZASSET
.
ZCLOUDPLACEHOLDERKIND
WHEN
0
THEN
'0-LOCAL&CLOUDMASTER ASSET-0'
WHEN
1
THEN
'1-STILLTESTING-1'
WHEN
2
THEN
'2-STILLTESTING-2'
WHEN
3
THEN
'3-JPG-ASSET_ONLY_PHDA/THUMB/V2-3'
WHEN
4
THEN
'4-LPL-JPG-ASSET_CPLASSET-OTHERTYPE-4'
WHEN
5
THEN
'5-ASSET_SYNCED_CPL_2_DEVICE-5'
WHEN
6
THEN
'6-STILLTESTING-6'
WHEN
7
THEN
'7-LPL-POSTER-JPG-ASSET_CPLASSET-MP4-7'
WHEN
8
THEN
'8-LPL-JPG_ASSET_CPLASSET-LIVEPHOTO-MOV-8'
WHEN
9
THEN
'9-CPL_MP4_ASSET_SAVED_2_LPL-9'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZCLOUDPLACEHOLDERKIND
||
''
END
AS
'ZASSET-CLOUD PLACEHOLDER KIND'
,
CASE
ZINTRESOU
.
ZLOCALAVAILABILITY
WHEN
-
1
THEN
'(-1)-IR_ASSET_NOT_AVAIL_LOCALLY(-1)'
WHEN
1
THEN
'1-IR_ASSET_AVAIL_LOCALLY-1'
WHEN
-
32768
THEN
'(-32768)_IR_ASSET-SWY-LINKED_ASSET(-32768)'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZLOCALAVAILABILITY
||
''
END
AS
'ZINTRESOU-LOCAL AVAILABILITY'
,
CASE
ZINTRESOU
.
ZLOCALAVAILABILITYTARGET
WHEN
0
THEN
'0-STILLTESTING-0'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZLOCALAVAILABILITYTARGET
||
''
END
AS
'ZINTRESOU-LOCAL AVAILABILITY TARGET'
,
CASE
ZINTRESOU
.
ZCLOUDLOCALSTATE
WHEN
0
THEN
'0-IR_ASSET_NOT_SYNCED_NO_IR-CLDMASTDATECREATED-0'
WHEN
1
THEN
'1-IR_ASSET_PENING-UPLOAD-1'
WHEN
2
THEN
'2-IR_ASSET_PHOTO_CLOUD_SHARE_ASSET_ON-LOCAL-DEVICE-2'
WHEN
3
THEN
'3-IR_ASSET_SYNCED_ICLOUD-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZCLOUDLOCALSTATE
||
''
END
AS
'ZINTRESOU-CLOUD LOCAL STATE'
,
CASE
ZINTRESOU
.
ZREMOTEAVAILABILITY
WHEN
0
THEN
'0-IR_ASSET-NOT-AVAIL-REMOTELY-0'
WHEN
1
THEN
'1-IR_ASSET_AVAIL-REMOTELY-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZREMOTEAVAILABILITY
||
''
END
AS
'ZINTRESOU-REMOTE AVAILABILITY'
,
CASE
ZINTRESOU
.
ZREMOTEAVAILABILITYTARGET
WHEN
0
THEN
'0-STILLTESTING-0'
WHEN
1
THEN
'1-STILLTESTING-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZREMOTEAVAILABILITYTARGET
||
''
END
AS
'ZINTRESOU-REMOTE AVAILABILITY TARGET'
,
ZINTRESOU
.
ZTRANSIENTCLOUDMASTER
AS
'ZINTRESOU-TRANSIENT CLOUD MASTER'
,
ZINTRESOU
.
ZSIDECARINDEX
AS
'ZINTRESOU-SIDE CAR INDEX'
,
ZINTRESOU
.
ZFILEID
AS
'ZINTRESOU- FILE ID'
,
CASE
ZINTRESOU
.
ZVERSION
WHEN
0
THEN
'0-IR_ASSET_STANDARD-0'
WHEN
1
THEN
'1-STILLTESTING-1'
WHEN
2
THEN
'2-IR_ASSET_ADJUSTMENTS-MUTATION-2'
WHEN
3
THEN
'3-IR_ASSET_NO_IR-CLDMASTDATECREATED-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZVERSION
||
''
END
AS
'ZINTRESOU-VERSION'
,
ZADDASSETATTR
.
ZORIGINALFILESIZE
AS
'ZADDASSETATTR- ORIGINAL-FILE-SIZE'
,
CASE
ZINTRESOU
.
ZRESOURCETYPE
WHEN
0
THEN
'0-PHOTO-0'
WHEN
1
THEN
'1-VIDEO-1'
WHEN
3
THEN
'3-LIVE-PHOTO-3'
WHEN
5
THEN
'5-ADJUSTEMENT-DATA-5'
WHEN
6
THEN
'6-SCREENSHOT-6'
WHEN
9
THEN
'9-ALTERNATEPHOTO-3RDPARTYAPP-STILLTESTING-9'
WHEN
13
THEN
'13-MOVIE-13'
WHEN
14
THEN
'14-WALLPAPER-14'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZRESOURCETYPE
||
''
END
AS
'ZINTRESOU-RESOURCE TYPE'
,
ZINTRESOU
.
ZDATASTOREKEYDATA
AS
'ZINTRESOU-DATASTOREKEYDATA/HEX'
,
CASE
ZINTRESOU
.
ZDATASTORESUBTYPE
WHEN
0
THEN
'0-NO CLOUD INTER RESOURCE-0'
WHEN
1
THEN
'1-MAIN-ASSET-ORIG-SIZE-1'
WHEN
2
THEN
'2-PHOTO-WITH-ADJUSTMENTS-2'
WHEN
3
THEN
'3-JPG-LARGE-THUMB-3'
WHEN
4
THEN
'4-JPG-MED-THUMB-4'
WHEN
5
THEN
'5-JPG-SMALL-THUMB-5'
WHEN
6
THEN
'6-VIDEO-MED-DATA-6'
WHEN
7
THEN
'7-VIDEO-SMALL-DATA-7'
WHEN
8
THEN
'8-MP4-CLOUD-SHARE-8'
WHEN
9
THEN
'9-STILLTESTING'
WHEN
10
THEN
'10-3RDPARTYAPP_THUMB-STILLTESTING-10'
WHEN
11
THEN
'11-STILLTESTING'
WHEN
12
THEN
'12-STILLTESTING'
WHEN
13
THEN
'13-PNG-OPTIMIZED_CPLASSET-13'
WHEN
14
THEN
'14-WALLPAPER-14'
WHEN
15
THEN
'15-HAS-MARKUP-AND-ADJUSTMENTS-15'
WHEN
16
THEN
'16-VIDEO-WITH-ADJUSTMENTS-16'
WHEN
17
THEN
'17-RAW_PHOTO-17_RT'
WHEN
18
THEN
'18-LIVE-PHOTO-VIDEO_OPTIMIZED_CPLASSET-18'
WHEN
19
THEN
'19-LIVE-PHOTO-WITH-ADJUSTMENTS-19'
WHEN
20
THEN
'20-STILLTESTING'
WHEN
21
THEN
'21-MOV-OPTIMIZED_HEVC-4K_VIDEO-21'
WHEN
22
THEN
'22-ADJUST-MUTATION_AAE_ASSET-22'
WHEN
23
THEN
'23-STILLTESTING'
WHEN
24
THEN
'24-STILLTESTING'
WHEN
25
THEN
'25-STILLTESTING'
WHEN
26
THEN
'26-MOV-OPTIMIZED_CPLASSET-26'
WHEN
27
THEN
'27-STILLTESTING'
WHEN
28
THEN
'28-MOV-MED-HDR-DATA-28'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZDATASTORESUBTYPE
||
''
END
AS
'ZINTRESOU-DATASTORE SUB-TYPE'
,
CASE
ZINTRESOU
.
ZCLOUDSOURCETYPE
WHEN
0
THEN
'0-NA-0'
WHEN
1
THEN
'1-MAIN-ASSET-ORIG-SIZE-1'
WHEN
2
THEN
'2-PHOTO-WITH-ADJUSTMENTS-2'
WHEN
3
THEN
'3-JPG-LARGE-THUMB-3'
WHEN
4
THEN
'4-JPG-MED-THUMB-4'
WHEN
5
THEN
'5-JPG-SMALL-THUMB-5'
WHEN
6
THEN
'6-VIDEO-MED-DATA-6'
WHEN
7
THEN
'7-VIDEO-SMALL-DATA-7'
WHEN
8
THEN
'8-MP4-CLOUD-SHARE-8'
WHEN
9
THEN
'9-STILLTESTING'
WHEN
10
THEN
'10-3RDPARTYAPP_THUMB-STILLTESTING-10'
WHEN
11
THEN
'11-STILLTESTING'
WHEN
12
THEN
'12-STILLTESTING'
WHEN
13
THEN
'13-PNG-OPTIMIZED_CPLASSET-13'
WHEN
14
THEN
'14-WALLPAPER-14'
WHEN
15
THEN
'15-HAS-MARKUP-AND-ADJUSTMENTS-15'
WHEN
16
THEN
'16-VIDEO-WITH-ADJUSTMENTS-16'
WHEN
17
THEN
'17-RAW_PHOTO-17_RT'
WHEN
18
THEN
'18-LIVE-PHOTO-VIDEO_OPTIMIZED_CPLASSET-18'
WHEN
19
THEN
'19-LIVE-PHOTO-WITH-ADJUSTMENTS-19'
WHEN
20
THEN
'20-STILLTESTING'
WHEN
21
THEN
'21-MOV-OPTIMIZED_HEVC-4K_VIDEO-21'
WHEN
22
THEN
'22-ADJUST-MUTATION_AAE_ASSET-22'
WHEN
23
THEN
'23-STILLTESTING'
WHEN
24
THEN
'24-STILLTESTING'
WHEN
25
THEN
'25-STILLTESTING'
WHEN
26
THEN
'26-MOV-OPTIMIZED_CPLASSET-26'
WHEN
27
THEN
'27-STILLTESTING'
WHEN
28
THEN
'28-MOV-MED-HDR-DATA-28'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZCLOUDSOURCETYPE
||
''
END
AS
'ZINTRESOU-CLOUD SOURCE TYPE'
,
ZINTRESOU
.
ZDATALENGTH
AS
'ZINTRESOU-DATA LENGTH'
,
CASE
ZINTRESOU
.
ZRECIPEID
WHEN
0
THEN
'0-ORIGFILESIZE_MATCH_DATALENGTH_OR_OPTIMIZED-0'
WHEN
65737
THEN
'65737-FULL-JPG_ORIG-PRORAW_DNG-65737'
WHEN
65739
THEN
'65739-JPG_LARGE_THUMB-65739'
WHEN
65741
THEN
'65741-VARIOUS_ASSET_TYPES-OR-THUMBS-65741'
WHEN
65743
THEN
'65743-RESOUTYPE-PHOTO_5003-OR-5005-JPG_THUMB-65743'
WHEN
65749
THEN
'65749-LOCALVIDEOKEYFRAME-JPG_THUMB-65749'
WHEN
65938
THEN
'65938-FULLSIZERENDER-PHOTO-OR-PLIST-65938'
WHEN
131072
THEN
'131072-FULLSIZERENDER-VIDEO-OR-PLIST-131072'
WHEN
131077
THEN
'131077-MEDIUM-MOV_HEVC-4K-131077'
WHEN
131079
THEN
'131079-MEDIUM-MP4_ADJ-MUTATION_ASSET-131079'
WHEN
131081
THEN
'131081-RESOUTYPE-VIDEO_5003-OR-5005-JPG_THUMB-131081'
WHEN
131272
THEN
'131272-FULLSIZERENDER-VIDEO_LIVEPHOTO_ADJ-MUTATION-131272'
WHEN
131275
THEN
'131275-MEDIUM-MOV_LIVEPHOTO-131275'
WHEN
131277
THEN
'131277-NO-IR-ASSET_LIVEPHOTO-ICLOUD_SYNC_ASSET-131277'
WHEN
131475
THEN
'131475-MEDIUM-HDR-MOV-131475'
WHEN
327683
THEN
'327683-JPG-THUMB_FOR_3RDPARTY-STILLTESTING-327683'
WHEN
327687
THEN
'627687-WALLPAPERCOMPUTERESOURCE-627687'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZRECIPEID
||
''
END
AS
'ZINTRESOU-RECIPE ID'
,
CASE
ZINTRESOU
.
ZCLOUDLASTPREFETCHDATE
WHEN
0
THEN
'0-NA-0'
ELSE
DATETIME
(
ZINTRESOU
.
ZCLOUDLASTPREFETCHDATE
+
978307200
,
'UNIXEPOCH'
)
END
AS
'ZINTRESOU-CLOUD LAST PREFETCH DATE'
,
ZINTRESOU
.
ZCLOUDPREFETCHCOUNT
AS
'ZINTRESOU-CLOUD PREFETCH COUNT'
,
DATETIME
(
ZINTRESOU
.
ZCLOUDLASTONDEMANDDOWNLOADDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZINTRESOU- CLOUD-LAST-ONDEMAND DOWNLOAD-DATE'
,
CASE
ZINTRESOU
.
ZUTICONFORMANCEHINT
WHEN
0
THEN
'0-NA/DOESNT_CONFORM-0'
WHEN
1
THEN
'1-UTTYPEIMAGE-1'
WHEN
2
THEN
'2-UTTYPEPRORAWPHOTO-2'
WHEN
3
THEN
'3-UTTYPEMOVIE-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZUTICONFORMANCEHINT
||
''
END
AS
'ZINTRESOU-UNIFORMTYPEID_UTI_CONFORMANCE_HINT'
,
CASE
ZINTRESOU
.
ZCOMPACTUTI
WHEN
1
THEN
'1-JPEG/THM-1'
WHEN
3
THEN
'3-HEIC-3'
WHEN
6
THEN
'6-PNG-6'
WHEN
7
THEN
'7-STILLTESTING'
WHEN
9
THEN
'9-DNG-9'
WHEN
23
THEN
'23-JPEG/HEIC/QUICKTIME-MOV-23'
WHEN
24
THEN
'24-MPEG4-24'
WHEN
36
THEN
'36-WALLPAPER-36'
WHEN
37
THEN
'37-ADJ/MUTATION_DATA-37'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZCOMPACTUTI
||
''
END
AS
'ZINTRESOU-COMPACT-UTI'
,
ZASSET
.
ZUNIFORMTYPEIDENTIFIER
AS
'ZASSET-UNIFORM TYPE ID'
,
ZASSET
.
ZORIGINALCOLORSPACE
AS
'ZASSET-ORIGINAL COLOR SPACE'
,
ZCLDMAST
.
ZUNIFORMTYPEIDENTIFIER
AS
'ZCLDMAST-UNIFORM_TYPE_ID'
,
CASE
ZCLDMAST
.
ZFULLSIZEJPEGSOURCE
WHEN
0
THEN
'0-CLDMAST-JPEG-SOURCE-VIDEO STILL-TESTING-0'
WHEN
1
THEN
'1-CLDMAST-JPEG-SOURCE-OTHER- STILL-TESTING-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZCLDMAST
.
ZFULLSIZEJPEGSOURCE
||
''
END
AS
'ZCLDMAST-FULL SIZE JPEG SOURCE'
,
ZASSET
.
ZHDRGAIN
AS
'ZASSET-HDR GAIN'
,
CASE
ZASSET
.
ZHDRTYPE
WHEN
0
THEN
'0-NO-HDR-0'
WHEN
3
THEN
'3-HDR_PHOTO-3_RT'
WHEN
4
THEN
'4-NON-HDR_VERSION-4_RT'
WHEN
5
THEN
'5-HEVC_MOVIE-5'
WHEN
6
THEN
'6-PANORAMA-6_RT'
WHEN
10
THEN
'10-HDR-GAIN-10'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZHDRTYPE
||
''
END
AS
'ZASSET-ZHDR_TYPE'
,
ZEXTATTR
.
ZCODEC
AS
'ZEXTATTR-CODEC'
,
ZINTRESOU
.
ZCODECFOURCHARCODENAME
AS
'ZINTRESOU-CODEC FOUR CHAR CODE NAME'
,
ZCLDMAST
.
ZCODECNAME
AS
'ZCLDMAST-CODEC NAME'
,
ZCLDMAST
.
ZVIDEOFRAMERATE
AS
'ZCLDMAST-VIDEO FRAME RATE'
,
ZCLDMAST
.
ZPLACEHOLDERSTATE
AS
'ZCLDMAST-PLACEHOLDER STATE'
,
CASE
ZASSET
.
ZDEPTHTYPE
WHEN
0
THEN
'0-NOT_PORTRAIT-0_RT'
ELSE
'PORTRAIT: '
||
ZASSET
.
ZDEPTHTYPE
||
''
END
AS
'ZASSET-DEPTH_TYPE'
,
ZASSET
.
ZAVALANCHEUUID
AS
'ZASSET-AVALANCHE UUID'
,
CASE
ZASSET
.
ZAVALANCHEPICKTYPE
WHEN
0
THEN
'0-NA/SINGLE_ASSET_BURST_UUID-0_RT'
WHEN
2
THEN
'2-BURST_ASSET_NOT_SELECTED-2_RT'
WHEN
4
THEN
'4-BURST_ASSET_PHOTOSAPP_PICKED_KEYIMAGE-4_RT'
WHEN
8
THEN
'8-BURST_ASSET_SELECTED_FOR_LPL-8_RT'
WHEN
16
THEN
'16-TOP_BURST_ASSET_INSTACK_KEYIMAGE-16_RT'
WHEN
32
THEN
'32-STILLTESTING-32_RT'
WHEN
52
THEN
'52-BURST_ASSET_VISIBLE_LPL-52'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZAVALANCHEPICKTYPE
||
''
END
AS
'ZASSET-AVALANCHE_PICK_TYPE/BURSTASSET'
,
CASE
ZADDASSETATTR
.
ZCLOUDAVALANCHEPICKTYPE
WHEN
0
THEN
'0-NA/SINGLE_ASSET_BURST_UUID-0_RT'
WHEN
2
THEN
'2-BURST_ASSET_NOT_SELECTED-2_RT'
WHEN
4
THEN
'4-BURST_ASSET_PHOTOSAPP_PICKED_KEYIMAGE-4_RT'
WHEN
8
THEN
'8-BURST_ASSET_SELECTED_FOR_LPL-8_RT'
WHEN
16
THEN
'16-TOP_BURST_ASSET_INSTACK_KEYIMAGE-16_RT'
WHEN
32
THEN
'32-STILLTESTING-32_RT'
WHEN
52
THEN
'52-BURST_ASSET_VISIBLE_LPL-52'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZCLOUDAVALANCHEPICKTYPE
||
''
END
AS
'ZADDASSETATTR-CLOUD_AVALANCHE_PICK_TYPE/BURSTASSET'
,
CASE
ZADDASSETATTR
.
ZCLOUDRECOVERYSTATE
WHEN
0
THEN
'0-STILLTESTING'
WHEN
1
THEN
'1-STILLTESTING'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZCLOUDRECOVERYSTATE
||
''
END
AS
'ZADDASSETATTR-CLOUD RECOVERY STATE'
,
ZADDASSETATTR
.
ZCLOUDSTATERECOVERYATTEMPTSCOUNT
AS
'ZADDASSETATTR-CLOUD STATE RECOVERY ATTEMPTS COUNT'
,
ZASSET
.
ZDEFERREDPROCESSINGNEEDED
AS
'ZASSET-DEFERRED PROCESSING NEEDED'
,
ZASSET
.
ZVIDEODEFERREDPROCESSINGNEEDED
AS
'ZASSET-VIDEO DEFERRED PROCESSING NEEDED'
,
ZADDASSETATTR
.
ZDEFERREDPHOTOIDENTIFIER
AS
'ZADDASSETATTR-DEFERRED PHOTO IDENTIFIER'
,
ZADDASSETATTR
.
ZDEFERREDPROCESSINGCANDIDATEOPTIONS
AS
'ZADDASSETATTR-DEFERRED PROCESSING CANDIDATE OPTIONS'
,
CASE
ZASSET
.
ZHASADJUSTMENTS
WHEN
0
THEN
'0-NO-ADJUSTMENTS-0'
WHEN
1
THEN
'1-YES-ADJUSTMENTS-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZHASADJUSTMENTS
||
''
END
AS
'ZASSET-HAS ADJUSTMENTS/CAMERA-EFFECTS-FILTERS'
,
ZUNMADJ
.
ZASSETATTRIBUTES
AS
'ZUNMADJ-ASSET ATTRIBUTES=ZADDASSETATTR.ZPK'
,
ZADDASSETATTR
.
ZUNMANAGEDADJUSTMENT
AS
'ZADDASSETATTR-UNMANADJUST KEY=ZUNMADJ.ZPK'
,
ZUNMADJ
.
Z_PK
AS
'ZUNMADJ-ZPK=ZADDASSETATTR.ZUNMANADJ KEY'
,
ZUNMADJ
.
ZUUID
AS
'ZUNMADJ-UUID'
,
DATETIME
(
ZASSET
.
ZADJUSTMENTTIMESTAMP
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-ADJUSTMENT TIMESTAMP'
,
DATETIME
(
ZUNMADJ
.
ZADJUSTMENTTIMESTAMP
+
978307200
,
'UNIXEPOCH'
)
AS
'ZUNMADJ-ADJUSTMENT TIMESTAMP'
,
ZADDASSETATTR
.
ZEDITORBUNDLEID
AS
'ZADDASSETATTR-EDITOR BUNDLE ID'
,
ZUNMADJ
.
ZEDITORLOCALIZEDNAME
AS
'ZUNMADJ-EDITOR LOCALIZED NAME'
,
ZUNMADJ
.
ZADJUSTMENTFORMATIDENTIFIER
AS
'ZUNMADJ-ADJUSTMENT FORMAT ID'
,
ZADDASSETATTR
.
ZMONTAGE
AS
'ZADDASSETATTR-MONTAGE'
,
CASE
ZUNMADJ
.
ZADJUSTMENTRENDERTYPES
WHEN
0
THEN
'0-STANDARD OR PORTRAIT WITH ERROS-0'
WHEN
1
THEN
'1-STILLTESTING'
WHEN
2
THEN
'2-PORTRAIT-2'
WHEN
3
THEN
'3-STILLTESTING'
WHEN
4
THEN
'4-STILLTESTING'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZUNMADJ
.
ZADJUSTMENTRENDERTYPES
||
''
END
AS
'ZUNMADJ-ADJUSTMENT RENDER TYPES'
,
CASE
ZUNMADJ
.
ZADJUSTMENTFORMATVERSION
WHEN
1
.
0
THEN
'1.0-MARKUP-1.0'
WHEN
1
.
1
THEN
'1.1-SLOW-MO-1.1'
WHEN
1
.
2
THEN
'1.2-STILLTESTING'
WHEN
1
.
3
THEN
'1.3-STILLTESTING'
WHEN
1
.
4
THEN
'1.4-FILTER-1.4'
WHEN
1
.
5
THEN
'1.5-ADJUST-1.5'
WHEN
1
.
6
THEN
'1.6-VIDEO-TRIM-1.6'
WHEN
1
.
7
THEN
'1.7-STILLTESTING'
WHEN
1
.
8
THEN
'1.8-STILLTESTING'
WHEN
1
.
9
THEN
'1.9-STILLTESTING'
WHEN
2
.
0
THEN
'2.0-SCREENSHOTSERVICES-2.0'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZUNMADJ
.
ZADJUSTMENTFORMATVERSION
||
''
END
AS
'ZUNMADJ-ADJUSTMENT FORMAT VERSION'
,
ZUNMADJ
.
ZADJUSTMENTBASEIMAGEFORMAT
AS
'ZUNMADJ-ADJUSTMENT BASE IMAGE FORMAT'
,
CASE
ZASSET
.
ZFAVORITE
WHEN
0
THEN
'0-ASSET NOT FAVORITE-0'
WHEN
1
THEN
'1-ASSET FAVORITE-1'
END
AS
'ZASSET-FAVORITE'
,
CASE
ZASSET
.
ZHIDDEN
WHEN
0
THEN
'0-ASSET NOT HIDDEN-0'
WHEN
1
THEN
'1-ASSET HIDDEN-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZHIDDEN
||
''
END
AS
'ZASSET-HIDDEN'
,
CASE
ZASSET
.
ZTRASHEDSTATE
WHEN
0
THEN
'0-ASSET NOT IN TRASH/RECENTLY DELETED-0'
WHEN
1
THEN
'1-ASSET IN TRASH/RECENTLY DELETED-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZTRASHEDSTATE
||
''
END
AS
'ZASSET-TRASHED STATE/LOCALASSETRECENTLYDELETED'
,
DATETIME
(
ZASSET
.
ZTRASHEDDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-TRASHED DATE'
,
CASE
ZASSET
.
ZDELETEREASON
WHEN
1
THEN
'1-STILLTESTING DELETE-REASON-1'
WHEN
2
THEN
'2-STILLTESTING DELETE-REASON-2'
WHEN
3
THEN
'3-STILLTESTING DELETE-REASON-3'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZDELETEREASON
||
''
END
AS
'ZASSET-DELETE-REASON'
,
CASE
ZASSET
.
ZTRASHEDBYPARTICIPANT
WHEN
1
THEN
'1-ASSET TRASHED/RECENTLY DELETED BY PARTICIPANT-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZTRASHEDBYPARTICIPANT
||
''
END
AS
'ZASSET-TRASHED BY PARTICIPANT'
,
CASE
ZINTRESOU
.
ZTRASHEDSTATE
WHEN
0
THEN
'0-ZINTRESOU-NOT IN TRASH/RECENTLY DELETED-0'
WHEN
1
THEN
'1-ZINTRESOU-IN TRASH/RECENTLY DELETED-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZTRASHEDSTATE
||
''
END
AS
'ZINTRESOU-TRASH STATE'
,
DATETIME
(
ZINTRESOU
.
ZTRASHEDDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZINTRESOU-TRASHED DATE'
,
CASE
ZASSET
.
ZCLOUDDELETESTATE
WHEN
0
THEN
'0-CLOUD ASSET NOT DELETED-0'
WHEN
1
THEN
'1-CLOUD ASSET DELETED-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZCLOUDDELETESTATE
||
''
END
AS
'ZASSET-CLOUD DELETE STATE'
,
CASE
ZINTRESOU
.
ZCLOUDDELETESTATE
WHEN
0
THEN
'0-CLOUD INTRESOU NOT DELETED-0'
WHEN
1
THEN
'1-CLOUD INTRESOU DELETED-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZCLOUDDELETESTATE
||
''
END
AS
'ZINTRESOU-CLOUD DELETE STATE'
,
CASE
ZADDASSETATTR
.
ZPTPTRASHEDSTATE
WHEN
0
THEN
'0-PTP NOT IN TRASH-0'
WHEN
1
THEN
'1-PTP IN TRASH-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZPTPTRASHEDSTATE
||
''
END
AS
'ZADDASSETATTR-PTP TRASHED STATE'
,
CASE
ZINTRESOU
.
ZPTPTRASHEDSTATE
WHEN
0
THEN
'0-PTP INTRESOU NOT IN TRASH-0'
WHEN
1
THEN
'1-PTP INTRESOU IN TRASH-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZINTRESOU
.
ZPTPTRASHEDSTATE
||
''
END
AS
'ZINTRESOU-PTP TRASHED STATE'
,
ZINTRESOU
.
ZCLOUDDELETEASSETUUIDWITHRESOURCETYPE
AS
'ZINTRESOU-CLOUD DELETE ASSET UUID WITH RESOURCE TYPE'
,
DATETIME
(
ZMEDANLYASTATTR
.
ZMEDIAANALYSISTIMESTAMP
+
978307200
,
'UNIXEPOCH'
)
AS
'ZMEDANLYASTATTR-MEDIA ANALYSIS TIMESTAMP'
,
DATETIME
(
ZASSET
.
ZANALYSISSTATEMODIFICATIONDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-ANALYSIS STATE MODIFICAION DATE'
,
ZADDASSETATTR
.
ZPENDINGVIEWCOUNT
AS
'ZADDASSETATTR-PENDING VIEW COUNT'
,
ZADDASSETATTR
.
ZVIEWCOUNT
AS
'ZADDASSETATTR-VIEW COUNT'
,
ZADDASSETATTR
.
ZPENDINGPLAYCOUNT
AS
'ZADDASSETATTR-PENDING PLAY COUNT'
,
ZADDASSETATTR
.
ZPLAYCOUNT
AS
'ZADDASSETATTR-PLAY COUNT'
,
ZADDASSETATTR
.
ZPENDINGSHARECOUNT
AS
'ZADDASSETATTR-PENDING SHARE COUNT'
,
ZADDASSETATTR
.
ZSHARECOUNT
AS
'ZADDASSETATTR-SHARE COUNT'
,
DATETIME
(
ZASSET
.
ZLASTSHAREDDATE
+
978307200
,
'UNIXEPOCH'
)
AS
'ZASSET-LAST SHARED DATE'
,
ZADDASSETATTR
.
ZSHAREORIGINATOR
AS
'ZADDASSETATTR-SHARE ORIGINATOR'
,
CASE
ZASSET
.
ZSYNDICATIONSTATE
WHEN
0
THEN
'0-LOCAL-PL_ASSET_SYNDICATION_STATE_NA-0'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZSYNDICATIONSTATE
||
''
END
AS
'ZASSET-SYNDICATION STATE-LPL'
,
ZADDASSETATTR
.
ZSYNDICATIONHISTORY
AS
'ZADDASSETATTR-SYNDICATION HISTORY'
,
ZMEDANLYASTATTR
.
ZSYNDICATIONPROCESSINGVERSION
AS
'ZMEDANLYASTATTR-SYNDICATION PROCESSING VERSION'
,
CASE
ZMEDANLYASTATTR
.
ZSYNDICATIONPROCESSINGVALUE
WHEN
0
THEN
'0-NA-0'
WHEN
1
THEN
'1-STILLTESTING_WIDE-CAMERA_JPG-1'
WHEN
2
THEN
'2-STILLTESTING_TELEPHOTO_CAMEAR_LENS-2'
WHEN
4
THEN
'4-STILLTESTING_SWY_ASSET_ORIGASSETIMPORT_SYSTEMPACKAGEAPP-4'
WHEN
16
THEN
'16-STILLTESTING-16'
WHEN
1024
THEN
'1024-STILLTESTING_SWY_ASSET_ORIGASSETIMPORT_NATIVECAMERA-1024'
WHEN
2048
THEN
'2048-STILLTESTING-2048'
WHEN
4096
THEN
'4096-STILLTESTING_SWY_ASSET_MANUALLY_SAVED-4096'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZMEDANLYASTATTR
.
ZSYNDICATIONPROCESSINGVALUE
||
''
END
AS
'ZMEDANLYASTATTR-SYNDICATION PROCESSING VALUE'
,
CASE
ZADDASSETATTR
.
ZALLOWEDFORANALYSIS
WHEN
0
THEN
'0-ASSET NOT ALLOWED FOR ANALYSIS-0'
WHEN
1
THEN
'1-ASSET ALLOWED FOR ANALYSIS-1'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZALLOWEDFORANALYSIS
||
''
END
AS
'ZADDASSETATTR-ALLOWED FOR ANALYSIS'
,
ZADDASSETATTR
.
ZSCENEANALYSISVERSION
AS
'ZADDASSETATTR-SCENE ANALYSIS VERSION'
,
CASE
ZADDASSETATTR
.
ZSCENEANALYSISISFROMPREVIEW
WHEN
0
THEN
'0-NO-0'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZSCENEANALYSISISFROMPREVIEW
||
''
END
AS
'ZADDASSETATTR-SCENE ANALYSIS IS FROM PREVIEW'
,
DATETIME
(
ZADDASSETATTR
.
ZSCENEANALYSISTIMESTAMP
+
978307200
,
'UNIXEPOCH'
)
AS
'ZADDASSETATTR-SCENE ANALYSIS TIMESTAMP'
,
CASE
ZASSET
.
ZDUPLICATEASSETVISIBILITYSTATE
WHEN
0
THEN
'NO-DUPLICATES-0'
WHEN
1
THEN
'HAS DUPLICATE-1'
WHEN
2
THEN
'IS A DUPLICATE-2'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZASSET
.
ZDUPLICATEASSETVISIBILITYSTATE
||
''
END
AS
'ZASSET-DUPLICATION ASSET VISIBILITY STATE'
,
CASE
ZADDASSETATTR
.
ZDESTINATIONASSETCOPYSTATE
WHEN
0
THEN
'0-NO COPY-0'
WHEN
1
THEN
'1-HAS A COPY-1'
WHEN
2
THEN
'2-HAS A COPY-2'
ELSE
'UNKNOWN-NEW-VALUE!: '
||
ZADDASSETATTR
.
ZDESTINATIONASSETCOPYSTATE
||
''
END
AS
'ZADDASSETATTR-DESTINATION ASSET COPY STATE'
,
ZSCENEP
.
ZDATA
AS
'ZSCENEP-DATA/HEX NSKEYED PLIST'
,
ZSCENEP
.
ZDUPLICATEMATCHINGDATA
AS
'ZSCENEP-DUPLICATE MATCHING DATA/HEX NSKEYED PLIST'
,
ZSCENEP
.
ZDUPLICATEMATCHINGALTERNATEDATA
AS
'ZSCENEP-DUPLICATE MATCHING ALTERNAT DATA/HEX NSKEYED PLIST'
,
ZADDASSETATTR
.
ZSOURCEASSETFORDUPLICATIONSCOPEIDENTIFIER
AS
'ZADDASSETATTR-SOURCE ASSET FOR DUPLICATION SCOPE ID'
,
ZCLDMAST
.
ZSOURCEMASTERFORDUPLICATIONSCOPEIDENTIFIER
AS
'ZCLDMAST-SOURCE MASTER FOR DUPLICATION SCOPE ID'
,
ZADDASSETATTR
.
ZSOURCEASSETFORDUPLICATIONIDENTIFIER
AS
'ZADDASSETATTR-SOURCE ASSET FOR DUPLICATION ID'
,
ZCLDMAST
.
ZSOURCEMASTERFORDUPLICATIONIDENTIFIER
AS
'ZCLDMAST-SOURCE MASTER FOR DUPLICATION ID'
FROM
ZASSET
ZASSET
LEFT
JOIN
ZADDITIONALASSETATTRIBUTES
ZADDASSETATTR
ON
ZADDASSETATTR
.
Z_PK
=
ZASSET
.
ZADDITIONALATTRIBUTES
LEFT
JOIN
ZEXTENDEDATTRIBUTES
ZEXTATTR
ON
ZEXTATTR
.
Z_PK
=
ZASSET
.
ZEXTENDEDATTRIBUTES
LEFT
JOIN
ZINTERNALRESOURCE
ZINTRESOU
ON
ZINTRESOU
.
ZASSET
=
ZASSET
.
Z_PK
LEFT
JOIN
ZSCENEPRINT
ZSCENEP
ON
ZSCENEP
.
Z_PK
=
ZADDASSETATTR
.
ZSCENEPRINT
LEFT
JOIN
Z_28ASSETS
Z28ASSETS
ON
Z28ASSETS
.
Z_3ASSETS
=
ZASSET
.
Z_PK
LEFT
JOIN
ZGENERICALBUM
ZGENALBUM
ON
ZGENALBUM
.
Z_PK
=
Z28ASSETS
.
Z_28ALBUMS
LEFT
JOIN
ZUNMANAGEDADJUSTMENT
ZUNMADJ
ON
ZADDASSETATTR
.
ZUNMANAGEDADJUSTMENT
=
ZUNMADJ
.
Z_PK
LEFT
JOIN
Z_27ALBUMLISTS
Z27ALBUMLISTS
ON
Z27ALBUMLISTS
.
Z_27ALBUMS
=
ZGENALBUM
.
Z_PK
LEFT
JOIN
ZALBUMLIST
ZALBUMLIST
ON
ZALBUMLIST
.
Z_PK
=
Z27ALBUMLISTS
.
Z_2ALBUMLISTS
LEFT
JOIN
ZGENERICALBUM
PARENTZGENALBUM
ON
PARENTZGENALBUM
.
Z_PK
=
ZGENALBUM
.
ZPARENTFOLDER
LEFT
JOIN
ZCLOUDMASTER
ZCLDMAST
ON
ZASSET
.
ZMASTER
=
ZCLDMAST
.
Z_PK
LEFT
JOIN
ZCLOUDMASTERMEDIAMETADATA
AAAZCLDMASTMEDDATA
ON
AAAZCLDMASTMEDDATA
.
Z_PK
=
ZADDASSETATTR
.
ZMEDIAMETADATA
LEFT
JOIN
ZCLOUDMASTERMEDIAMETADATA
CMZCLDMASTMEDDATA
ON
CMZCLDMASTMEDDATA
.
Z_PK
=
ZCLDMAST
.
ZMEDIAMETADATA
LEFT
JOIN
ZMEDIAANALYSISASSETATTRIBUTES
ZMEDANLYASTATTR
ON
ZASSET
.
ZMEDIAANALYSISATTRIBUTES
=
ZMEDANLYASTATTR
.
Z_PK
LEFT
JOIN
ZSHARE
ZSHARE
ON
ZSHARE
.
Z_PK
=
ZASSET
.
ZMOMENTSHARE
ORDER
BY
ZASSET
.
ZADDEDDATE
使用 Navicat 连接
/var/mobile/Media/PhotoData/Photos.sqlite
数据库, 并执行上述 sql 查询:
将查询结果存储为新的表
Basic
, 以便后续的分析.
在
Basic
表中过滤
ZASSET-FILENAME
字段包含
GIF
的数据, 可以找到题目中提及到的 2 个 GIF 文件. 在其
ZCLDMAST-IMPORTED BY BUNDLE ID
字段可见存储该文件的应用的包名为
com.Yooshr.Infltr
, 在其
ZCLDMAST-IMPORTED BY DISPLAY NAME
字段可见存储该文件的应用的显示名称为
Infltr
:
或者在"图片"的分析结果中查看应用分类:
31 曾经以空投(AirDrop)方式成功传送了文件到另外一个装置, 以下哪一个陈述是正确的
¶
选项
A.传送了一个图片文件
B.传送了两个图片文件
C.传送了一个图片文件及一个文件
D.传送了一个图片文件及两个文件
答案
C
在火眼的搜索标签页中创建新的全局搜索任务, 搜索本题及之后几题中出现的 APP 的包名:
这些包名从上到下分别是:
AirDrop 前端
AirDrop 后端
照片
文档
在搜索结果中看到以下命中:
一共有 2 条命中(GBK 编码和 UTF8 编码各命中 2 次), 都在
/var/mobile/Library/CoreDuet/People/interactionC.db
数据库中, 导出并查看命中的位置, 是
ZINTERACTIONS
表中的
ZTARGETBUNDLEID
字段, 筛选之后可以看到 2 条传输记录:
根据
ZDIRECTION
字段值及
ZSENDER
字段值, 判断
ZDIRECTION
字段值为 1 代表发送, 为 0 代表接收.
但是在检材中没能在其他位置搜索到这 2 个 UUID, 只能根据使用的应用来推断 2 条传输分别传输了文件和图片.
32 原生 APP "相片"中, 有一个图片文件曾经通过空投"AirDrop"方式成功传送, 指出这个图片文件的文件全名
¶
答案
IMG_0083.HEIC
在第 30 题的筛选结果中, 查找分享次数大于 0 的文件, 只有 1 个:
33 承上题, 请写出这个图片文件的开始传送的日期及时间
¶
答案
2025-04-17 09:10:03
见上题图. 这个 SQL 语句查询得到的时间是 UTC 时间, 需要转换到 UTC+8.
34 请指出哪一个多媒体文件同时储存在 APP "文件"(套件识别码: com.apple.DocumentsApp)及 APP "照片"(套件识别码: com.apple.mobileslideshow)中
¶
答案
IMG_0010.MOV
"文件" APP 的存储目录是
/var/mobile/Applications/group.com.apple.FileProvider.LocalStorage/File Provider Storage/
:
"照片" APP 的存储目录是
/var/mobile/Media/DCIM/100APPLE/
:
可以看到 2 个同名文件存在于这两个目录中, 分别是
IMG_0008.HEIC
和
IMG_0010.MOV
. 将这些文件导出并计算哈希, 发现两个目录中的
IMG_0008.HEIC
并不相同, 而
IMG_0010.MOV
是完全相同的:
35 请指出在 APP "照片"中的图片文件"IMG_0079.JPG"是由哪一个 APP 拍摄
¶
答案
Discreet
接第 30 题. 过滤
ZASSET-FILENAME
字段为
IMG_0079.JPG
的记录:
或者在火眼中:
36 承上题, 已知该图片文件是由上述 APP 所拍摄, 并其后储存在 APP "照片"成"IMG_0079.JPG", 请问该图片的原文件名称
¶
答案
DiscreetCameraApp_1744790959352.png
在应用的数据目录中可以看到源文件, 可以通过火眼的"其他应用"功能快速找到该文件:
37 承上题, 请指出原文件的建立时间
¶
答案
2025-04-16 16:09:19
接上题.
38 请指出在 APP "照片"中, 储存多媒体文件"IMG_0014.MOV"与储存"IMG_0016.MOV"之间有没有其他多媒体文件储存到 APP "照片"中
¶
选项
A.有
B.没有
C.有拍摄，但没有储存
D.无法确认
答案
B
数据库中"IMG_0014.MOV"和"IMG_0016.MOV"的
Z_PK
字段值是连续的, 因此这两个文件之间没有数据写入到数据库中.
39 承上题, 以下哪个陈述是正确描述上一题的答案
¶
选项
A.制作多媒体文件"IMG_0015.MOV", 直接储存到隐藏相册中
B.制作多媒体文件"IMG_0015.MOV"时, 直接上传到 iCloud
C.制作多媒体文件"IMG_0014.MOV"时用了缩时摄影
D.制作多媒体文件"IMG_0015.MOV"时名称被更改为"IMG_0016.MOV"
答案
C
A. 即使存储在隐藏相册中, 也应该在
photos.sqlite
数据库中留下记录.
B. iCloud 中的 WhatsApp 应用数据中只有并没有上传"IMG_0015.MOV"文件.
C. 查看视频文件可以发现, 视频确实使用了延时摄影拍摄.
D. 若修改了文件名, 应该可以在
ZCLOUDMASTER
表的
ZORIGINALFILENAME
字段中看到更改前的文件名.
看题目的意思, 应该是使用了延时摄影导致的上一题中文件名不连续的问题. 不过目前我还没有找到相关的信息.
40 APP "照片"中, "IMG_0027.HEIC"的原地理位置信息(WGS84)是
¶
选项
A.(22.2816569, 114.1756115)
B.(22.2826366666667, 114.168503333333)
C.(22.2826216666667, 114.168525)
D.(22.2826216666667, 114.168503333333)
答案
C
接第 35 题. 过滤文件名之后可看到 2 组地理位置信息, 分别是来自于
ZASSET
表和
ZEXTRATTR
表的信息:
对比拍摄时间相近的几张照片之后, 确认
ZEXTATTR
表中存储的地理位置信息为真实的信息:
查看文件的 EXIF 信息也可以看到相同的结果:
41 曾经通过网络浏览器 Safari 下载了多少个图片文件
¶
选项
A.1
B.2
C.3
D.4
答案
B
接上题. 过滤
ZADDASSETATTR-IMPORTED BY DISPLAY NAME
字段值为
Safari
的数据:
42 多媒体文件"IMG_0004.MOV"曾被修改后再储存成另一个文件, 该文件名称是?
¶
选项
A.IMG_0085.mov
B.IMG_0086.mov
C.IMG_0087.mov
D.IMG_0088.mov
答案
A
接上题. 过滤
ZADDASSETATTR-ORIGINAL FILENAME
字段或
ZCLDMAST-ORIG FILENAME
字段值为
IMG_0004.MOV
的数据, 即可在
ZASSET-FILENAME
字段中看到文件另存后的文件名:
43 曾经通过人工智能聊天 APP "POE"查询一个问题, 请列出这个问题的完整句子
¶
答案
What’s that mean
几个包名带
ai
的应用的数据翻完了, 都没找到聊天的记录. 搜了一下
POE ai
在 Apple Store 看到应用的开发商叫
quora
才反应过来哪个是 AI 工具:
也可以通过
Photos.db
中的记录来确定 POE 应用的包名, 并且还能顺便找到用户在 POE 中使用的图片附件:
存储交互记录的数据库是
/var/mobile/Applications/com.quora.app.Experts/Documents/apollo_db.sqlite
, 在其中的
key
字段过滤
Message:
即为用户的交互. 可以看到用户与大模型开始对话的问题是
What’s that mean
:
并且消息还附带了一个附件:
需要注意的是,
key
字段以
PoeMessageShare:
开头的数据应为应用推荐的来自其他用户的问题和响应的回答.
44 承上题, 请指出提问的日期及时间
¶
答案
2025-04-16 13:50:06
接上题. 在
record
字段的 JSON 数据中可以看到
creationTime
时间戳:
45 承上题, 当时使用的是哪一个机器人
¶
答案
Claude-3-Haiku
接上题. 在上述 JSON 记录中可以看到
$reference
中的
Bot
的值
Qm90OjEwMTc=
:
在
key
中过滤可以看到 Bot 的信息, 其中
displayName
为
Claude-3-Haiku
:
46 承上题, 当时的使用者名称是
¶
答案
Duncan
接上题. 在上述 JSON 记录中可以看到
authorNickName
为
human
:
在
key
字段中过滤 JSON 中的
authorUser
(
UG9lVXNlcjoyOTkzNDM5Mzc1
), 可以看到用户的全名为
Duncan
:
不确定这道题到底要填用户的昵称还是全名.
47 请指出即时通讯软件 WeChat 的 WeChat ID
¶
答案
wxid_c9xyspglub7512
在火眼的"微信"分析结果中可以看到:
48 承上题, 这个 WeChat ID 关注了多少个视频号
¶
选项
A.1
B.2
C.3
D.4
答案
A
在火眼的"微信"分析结果中可以看到微信账号缓存了 120 个视频号的信息:
在任意视频号分析结果上右键"跳转至源文件"即可看到保存视频好信息的数据库
/var/mobile/Applications/com.tencent.xin/Documents/5f1d6cc9474fbbc2fb3dc807008543d5/finder/db/finder_main.db
. 在该数据库的
finderContactTable3
表中可以看到视频号的信息, 其中
followState
为
1
代表用户已关注该视频号. 仅 1 条记录为关注的视频号:
49 请指出即时通讯软件 WhatsApp 的 WhatsApp  ID
¶
答案
85254974406@s.whatsapp.net
在火眼的 WhatsApp 分析结果中可以看到:
50 即时通讯软件 WhatsApp 中, 封存了下列哪个聊天群？
¶
选项
A.凤凰VIP会员心得交流群
B.币淘 群组1
C.Sportsmen
D.Titus Wong Manson Finance
答案
A
封存应该指 Archive 功能, 大陆地区一般常翻译成"存档".
在火眼的分析结果中可以看到群组列表:
WhatsApp 的聊天数据存储在
/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ChatStorage.sqlite
数据中, 在任意群组分析结果上右键"跳转到源文件"即可快速定位该文件. 在数据库中的
ZWACHATSESSION
表中可以看到 1 条记录, 其
ARCHIVED
字段的值为
1
(已存档):
51 即时通讯软件 WhatsApp 中, 总共追踪了多少个频道
¶
答案
19
看到频道列表分析结果中一共有 19 条记录:
52 即时通讯软件 WhatsApp 中, 下列哪个是群组"Investors"的管理员
¶
i)
85254974406@s.whatsapp.net
ii)
85260927726@s.whatsapp.net
iii)
85254961408@s.whatsapp.net
选项
A.只有 i)
B.只有 i) 和 ii)
C.只有 ii) 和 iii)
D.以上皆是
答案
B
可以看到该群组除群主之外, 还设置了 1 个管理员:
看选项, 出题人应该是认为群主也属于管理员吧.
53 即时通讯软件 WhatsApp 中, 群组"Investors"的群组 ID
¶
答案
120363417204753192@g.us
见上题.
54 即时通讯软件 WhatsApp 中, 社群名称是什么
¶
答案
We are 3
在社群列表中可以看到:
其实在上题中就可以确认该社群的名称, WhatsApp 的社群可以建立若干个与社群关联的群组, 群组名称形如上题中的
Investors[We are 3]
:
Investor
是群组名称,
We are 3
是关联的社群名称.
55 承上题, 请指出这个社群的群组图案的 SHA256 哈希值
¶
选项
A.B1A3706C574F81A3EE084FB9509997E06349E86D904D1DC10B879D1D5ED83125
B.B8BA258402925E139CAFBBBBBC809EC160B70BB03DBD4D0F3063F58F69D0B956
C.E43ADC646295BC5011577D4E733B6289D31A5E11ACB45285BE1FF530260DF383
D.20E64C78F9926548CEEFB1783991A4AD71A6631F3C86002254342E323A898C6A
答案
A
/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/1744811344-1744811344.jpg
为该社群的头像:
计算 SHA256 哈希:
哈希与任何一个选项都不匹配. 按照创建时间排序之后, 发现 1 个经过处理的内容相同的图片:
56 即时通讯软件 WhatsApp 中, 找出 WhatsApp ID
85254961408@s.whatsapp.net
曾经是在而现在已经不在的群组, 请指出该群组的名称
¶
答案
Sportsmen
在"Sportsmen"群组中可以看到陈民浩被移出群组:
57 即时通讯软件 WhatsApp 中, 总共出现了多少个投票活动
¶
答案
16
在"群聊消息"分析结果中搜索"投票"即可看到有 3 个投票活动:
在"频道消息"分析结果中搜索"投票"可看到有 13 个投票活动:
58 承上题, 总共在多少个投票活动中作出了投票
¶
答案
3
接上题. 通过 SQL 语句在数据库中筛选上述群组的消息:
SQL
SELECT
ZMESSAGETYPE
,
ZMESSAGEINFO
,
ZTEXT
,
ZFROMJID
,
ZTOJID
FROM
ZWAMESSAGE
WHERE
ZTOJID
=
"120363400622997111@g.us"
OR
ZFROMJID
=
"120363400622997111@g.us"
;
对比火眼的分析结果和原始数据库中的
ZWAMESSAGE
表中的内容, 可以定位到 1 条投票消息:
可以看到投票消息的
ZMESSAGETYPE
字段的值为
46
, 以此进行过滤:
可以看到上述的 3 条投票消息的记录.
ZWAMESSAGEINFO
表中存储着消息的详细信息, 该表的
Z_PK
字段与
ZWAMESSAGE
表的
ZMESSAGEINFO
字段相对应, 该表的
ZRECEIPTINFO
中以 Protobuf 的格式保存着详细的消息信息. 通过 SQL 语句可以找到所有投票消息及其对应的 Protobuf:
SQL
SELECT
ZWAMESSAGE
.
ZMESSAGETYPE
,
ZWAMESSAGE
.
ZMESSAGEINFO
,
ZWAMESSAGE
.
ZTEXT
,
ZWAMESSAGE
.
ZFROMJID
,
ZWAMESSAGE
.
ZTOJID
,
ZWAMESSAGEINFO
.
ZRECEIPTINFO
FROM
ZWAMESSAGE
RIGHT
JOIN
ZWAMESSAGEINFO
ON
ZWAMESSAGE
.
ZMESSAGEINFO
=
ZWAMESSAGEINFO
.
Z_PK
WHERE
ZMESSAGETYPE
=
46
;
用 CyberChef 解码 Protobuf 的 16 进制字符串, 可以看到其中包含的投票记录:
但只有群组内的投票保留了投票记录, 频道中的投票记录中仅包含选项和 Reaction 信息.
群组中的 3 次投票按发起的先后顺序排序, 分别有 2, 1, 2 次投票记录.
59 即时通讯软件 WhatsApp 中，群组"IQ COIN 💰💰💰💰"对话内容正在策划哪一种犯罪计划？
¶
选项
A.诈骗
B.抢劫
C.谋杀
D.以上都不对
答案
A
根据群组的聊天记录, 正在策划入侵计算机系统和虚拟货币诈骗的犯罪计划:
60 承上题, 该群组建立者的 WhatsApp ID 是什么
¶
答案
85254974406@s.whatsapp.net
61 承上题, 该群组的建立时间是什么
¶
答案
2025-04-25 16:57:55
这 2 条系统提示是群组创建时的系统提示, 接收到系统提示的时间即为群组的创建时间:
梁燕玲的手机
¶
案情
根据你的分析结果. 三人因感情瓜葛内讧因而发生这次袭击事件. 你怀疑梁燕玲曾到袭击现场, 你将你的发现通知警察.
警察扩大现场搜索范围, 终于在案发现场附近, 发现陈民浩名下的小汽车, 车上发现一部智能手机. 请你以参赛材料
LEUNG_YL_Mobile.zip
回答以下问题.
62 该手机中 iCloud 的注册邮箱是
¶
选项
A.
lingleung1502@gmail.com
B.
lingleung1502@yahoo.com.hk
C.
lingleung1503@gmail.com
D.
lingl1502@gmail.com
答案
A
63 拍摄文件 IMG_0021.HEIC 的相机型号是
¶
选项
A.iPhone SE (3
rd
generation)
B.iPhone SE (2
nd
generation)
C.iPhone 12 mini
D.iPhone XR
答案
A
找到源文件, 查看 EXIF 信息:
64 拍摄文件 IMG_0005.JPG 时的座标(WGS 84)是多少
¶
答案
22.337655, 114.139441
源文件中的 EXIF 信息不包含 GPS 信息, 需要在
Photos.sqlite
中查看:
65 拍摄文件 IMG_0022.JPG 时使用以下哪种方向
¶
选项
A.不旋转
B.旋转180度
C.顺时针90度
D.逆时针90度
答案
D
在照片的 EXIF 信息中可以看到
Orientation
(方向) 为
Right top
, 即手机的右侧边框在顶部, 逆时针旋转了 90 度:
66 文件 IMG_0022.JPG 的创建时间(GMT+08:00)是
¶
答案
2025-05-16 11:33:15
接上题, 在 EXIF 信息中可以看到图片的创建时间为
2025:05:16 11:33:15
.
67 在 WhatsApp 与
85254974406@s.whatsapp.net
聊天对话中, 于 2025-05-16 11:33:39 时的信息所传送的座标(WGS 84)是
¶
答案
22.278848726819984, 114.29062196271781
在 WhatsApp 的好友中可以看到
85254974406@s.whatsapp.net
是冯子超的 WhatsApp ID：
在好友消息中可以看到冯子超发送给梁燕玲的位置消息:
在位置消息中也可以看到这条位置消息:
在火眼的"位置"功能中可以看到这条消息对应的经纬度坐标:
68 在 WhatsApp 与
85254974406@s.whatsapp.net
聊天对话中, 于 2025-05-16 11:33:39 时的信息所传送的座标(WGS 84)所指的餐厅英文名称是
¶
答案
Fai Kee Seafood Restaurant
见上题.
69 在 WhatsApp 中聊天群组 ID 120363401289578356 里, 于 2025-04-29 08:31:02, 机主传送了一个 PDF 文件, 该 PDF 的内容是什么
¶
答案
0xe36D4bCf0132B8Dc7317C2Fb9bfa1845629F6638
在群组列表中可以看到群组信息:
在群聊消息中过滤梁燕玲的 WhatsApp ID 可以快速找到题目中提及的 PDF 文件:
或者在文件传输记录中:
结合群聊消息的上下文可以知道, 钱包地址被隐写在这个 PDF 文件中:
使用 PDF 编辑器编辑文本即可看到被设置为白色的文本:
或者打开文档之后直接 Ctrl+A 全选之后复制也可以得到隐写的文本.
70 在 WhatsApp 中聊天群组 ID 120363401289578356 里, 有多少个参加者
¶
选项
A.2
B.3
C.4
D.5
答案
B
71 于 2025-04-25 17:11:37 时使用 WhatsApp 拨打的手机号码是多少
¶
选项
A.85254962307
B.85254961408
C.85254974406
D.85254993306
答案
C
在 WhatsApp 的通话记录中可以看到向冯子超发起了通话:
WhatsApp 的用户 ID
@
前的部分即为带区号的手机号码.
72 总共有多少个 WhatsApp 的通话记录(包括拨打、接收及未接来电)
¶
选项
A.4
B.5
C.6
D.7
答案
D
见上题.
73 WhatsApp 聊天群组 ID 120363400622997111 的群组名称是
¶
选项
A.Investors
B.Foodies
C.We are 3
D.Happy Sharing within 3
答案
D
见第 69 题图.
74 WhatsApp 聊天群组　Happy Sharing within 3 于　2025-04-17 10:12:34 传送的　WGS 84　座标是多少
¶
选项
A.22.323436345441, 113.276894376508
B.22.326923370361, 114.168403625488
C.21.239876452236, 115.925422314543
D.20.124955642236, 114.168403625488
答案
B
答案中没有完全一致的经纬度, 最接近的是
22.326923370361, 114.168403625488:
对比火眼的分析结果和数据库, 可以判断出来数据库中的第 24 条数据为位置消息的记录:
其
ZMEDIAITEM
字段为 504, 在
ZWAMEDIAITEM
表中过滤
Z_PK
为 504 的数据, 可以看到精确的经纬度信息:
目前还不确定为什么火眼分析出的 GPS 信息会与数据库中存储的值不同.
75 Instagram 的版本是
¶
选项
A.375.2.0.15.82 (722575504)
B.376.1.0.14.56 (722575504)
C.376.1.0.27.82 (722575504)
D.376.0.0.17.23 (722575504)
答案
C
火眼获取到的应用版本号为应用的 CFBundleVersion:
在应用的数据目录中, 存放翻译文件的文件夹
/var/mobile/Applications/com.burbn.instagram/Documents/locales/376.1.0.27.82_722575504
中可以看到应用的详细版本:
在
/var/mobile/Applications/com.burbn.instagram/Library/Preferences/com.burbn.instagram.plist
中也可以看到版本号信息:
76 社交媒体软件 Instagram 的安装时间
¶
答案
2025-04-26 11:50:47
接上题. 安装时间为
2025-04-26T03:50:47Z
, 转换为 UTC+8 为
2025-04-26 11:50:47
:
梁燕玲的 U 盘
¶
案情
跟据你的分析, 警察在香港西贡蕉坑找到一个行李箱, 内藏一名女子尸体, 身上没有任何身份证明文件, 裤袋内搜获一个 U 盘. 根据法医初步检验, 死者头部及颈部有明显瘀伤, 相信曾发生激烈争执, 死因为气管受压导致窒息, 死亡时间相信是在 2025-05-16 09:00 至 10:00. 调查人员初步检查这个U盘, 没有发现可疑资料, 现在交由你进行电子数据鉴定工作.
请参考参赛材料
AP3_LEUNG_YL_USB.E01
, 答以下问题.
启动 WinPE 的方法
该 U 盘是一个 EFI 格式的可启动盘.
使用 FTK Imager 挂载镜像, 使用
BlockDevice/Writable
方式.
使用管理员权限运行 VMWare, 新建一个虚拟机, 选择稍后安装系统.
编辑虚拟机设置, 删除原本配置的磁盘. 添加物理磁盘(FTK Imager 挂载的磁盘).
启动虚拟机即可启动 Win PE.
77 这个 U 盘里有多少个分区
¶
答案
2
在"案件"标签页中查看检材的分区详情:
但是在 FTK Imager 和 XWF 中只能看到 2 个分区:
看后面的题目, 出题人应该是以 2 个分区的结果为准的.
78 这个 U 盘里的分区类型是什么
¶
答案
MBR
在火眼中可以看到每个分区中都有虚拟出来的
$MBR
文件:
或者在 X-Ways Forensics 中查看检材的技术细节报告:
79 以下哪项描述是正确的？
¶
i) U 盘的总容量是 16 GB
ii) 文件系统包括 FAT32, exFAT 和 NTFS
iii) exFAT 分区的容量是 16 GB
iv) 分区标签名是"SanDisk"
选项
A.只有 i) 和 ii)
B.只有 i) 和 iii)
C.只有 ii) 和 iv)
D.以上皆非
答案
D
i) 在检材信息中可以看到源盘大小为 29.25 GB, 应为标称大小 32 GB 的 U 盘:
ii) 参考第 77 题图. 分区格式包括
fat12
,
exfat
及
fat16
.
iii) 参考第 77 题图.
exfat
分区的大小为 27.65 GB.
iv) 参考第 77 题图. 用户自定义了
exfat
格式分区的卷标, 卷标为
TIM
.
综上, 没有任何一项正确.
80 以下哪项描述是正确的？
¶
i) 此 U 盘曾连接到一台名为"PC"的电脑
ii) U 盘内存有一个已加密的压缩文件
iii) 已加密的压缩文件的创建日期是 2025-05-15
选项
A.只有 ii)
B.只有 iii)
C.只有 ii) 和 iii)
D.以上皆是
答案
C
i) 未找到相关日志.
ii) 在卷标
TIM
的分区根目录中看到
Sunny.zip
压缩文件, 为加密文件:
iii) 见上图, 压缩包的创建时间为 2025-05-15.
81 𠄘上题, 该压缩文件的解压密码是多少
¶
答案
54d#e(nm
在
/WEPE/WALLPAPER.JPG
图片中看到密码为
54d#e(nm
:
启动 WinPE 之后, 该图片会被设置为系统桌面.
压缩包的内容为 VeraCrypt, TorBrowser 及 1 个容器文件.
82 以下哪项描述是正确的
¶
i) 这是一个可引导U盘
ii) 有一个分区标签名为"EFI"
iii) 卷标日期为 2025-05-15 (UTC +8)
iv) 有一个分区的总容量小于 500 MB
选项
A.只有 i)
B.只有 i) 和 ii)
C.只有 i), iii) 和 iv)
D.以上皆是
答案
D
i) EFI 分区中有 BOOT.
ii) 存在卷标为 EFI 分区.
iii) 在 EFI 分区中看到火眼虚拟出来的卷标项, 其修改时间为 2025-05-15 21:38:48.
iv) EFI 分区的大小为 349.99 MB.
83 "tammy.txt"文件的内容是什么
¶
答案
due_diligence
在
EFI
分区的
WEPE
目录中可以看到存储的分区映像文件
WEPE64.WIM
:
导出该文件并解压, 将文件作为文件集合挂载, 可以在
WEPE64/Program Files/tammy.txt
找到题目中提及到的文件:
启动 WinPE 之后桌面上的
gogo1x.txt.LNK
即可发现其为指向
tammy.txt
的链接:
84 文件"xcontainer"的加密算法是什么
¶
答案
AES(Twofish)
在
TIM
分区的根目录中有 1 个被删除的
vera_key
文件, 导出后将其作为密钥文件挂载找到的加密容器:
挂载容器后查看其属性:
85 分析文档"xcontainer"的属性. 关于此磁盘镜像, 以下哪项描述是正确的
¶
i) 大小为 4943872 字节
ii) 文件系统是 FAT
iii) 没有嵌入式备份头
iv) 块大小为 128 位
选项
A.只有 i) 和 ii)
B.只有 ii) 和 iv)
C.只有 ii), iii) 和 iv)
D.以上皆是
答案
B
i) 参考上题图. 容器的大小为
4980736 bytes
.
ii) 文件系统为 FAT:
iii) 参考上题图.
Embedded Backup Header
属性为
Yes
.
iv) 参考上题图. 块大小为
128 bits
.
86 WinPE 启动后, 系统会自动将核心映像挂载在哪个盘符
¶
答案
X
启动 WinPE 之后可以看到系统映像被挂载在 X 盘符:
数据目录则会使用下一个空闲的盘符.
87 下列哪些 Windows PE 指令在预设环境下无法执行
¶
i) Powershell
ii) Eventvwr
iii) Hostname
iV) Diskpart
选项
A.只有 i) 和 ii)
B.只有 iii) 和 iv)
C.只有 i), ii) 和 iii)
D.以上皆是
答案
C
启动 WinPE 之后尝试运行题目中的指令即可验证:
88 必须包含哪个文件, 才能启动 Windows PE环境
¶
选项
A.WEPE64.wim
B.install.wim
C.WinPE.log
D.hiberfil.sys
答案
A
根据上述分析,
WEPE64.WIM
为系统的核心映像文件.
89 若要判断一个 U 盘是否为可开机的 Windows PE, 以下哪些文件必须存在
¶
i) WEPE64.wim 或 boot.wim
ii) bootmgr
iii) EFI\Boot\bootx64.efi
iv) hiberfil.sys
选项
A.只有 ii) 和 iv)
B.只有 i), ii) 和 iii)
C.只有 i) 和 iv)
D.以上皆是
答案
B
i)
WEPE64.wim
或
boot.wim
是 WinPE 的核心映像文件, 必须存在.
ii)
bootmgr
是 Windows 启动管理器, 对于传统 BIOS 启动是必须的.
iii)
EFI\Boot\bootx64.efi
是 UEFI 启动文件, 对于 UEFI 启动是必须的.
iv) hiberfil.sys 是 Windows 系统的休眠文件, 与 WinPE 没有直接关系.
90 这个 WinPE U 盘的操作系统基于哪一个 Windows 版本
¶
选项
A.Windows 7
B.Windows 8.1
C.Windows 10 PE
D.Windows 11 PE
答案
C
启动 WinPE 之后在控制面板中可以看到 Windows 版本信息:
91 该 U 盘有一个加密的文件, 该文件所用的加密软件名称是
¶
答案
VeraCrypt
应该是指加密容器吧, 加密软件名称就是 VeraCrypt.
92 请列出与 IQ Coin 有关的虚拟钱包的地址
¶
答案
0x548dafDe4B17d7d3C9485E79B3B5018801C7855E
加载容器之后可以在容器中看到
IQ_1.jpg
文件:
其中的二维码扫描之后可以得到 1 个钱包地址
0x548dafDe4B17d7d3C9485E79B3B5018801C7855E
.
这也是稍后的加密货币截图检材的压缩包解压密码.
98 根据你的信息警察查知这个加密钱包涉及近期一宗巨额诈骗案, 请你查出这个钱包余额额度, 警察将会进行冻结程序. 请指出包含有疑似助记词的文件的 MD5 哈希值
¶
答案
183b8e0c6365fee834479269141a3f91
在容器中还有一个
tmp.txt
文件, 其内容疑似钱包助记词:
虚拟货币截图
¶
案情
根据你综合多项通讯软件的对话记录, 浏览记录及资料分析, 发现冯子超、陈民浩伙同女子梁燕玲共同做了一宗涉及加密货币投资的诈骗案件, 因东窗事发打算携赃而逃. 女子梁燕玲负责处理有关清洗黑钱事项, 警察相信梁燕玲携带同相关材料逃跑, 请你运用电子数据鉴定技巧寻找与加密货币相关的材料, 尽快启动冻结程序.
本部分使用的检材文件是
IQ_Coin_Type_Transactions.zip
, 是有加密的 zip 压缩包. 密码为第 92 题中找到的钱包地址
0x548dafDe4B17d7d3C9485E79B3B5018801C7855E
.
我在做题的时候的习惯是将所有的密码, 明显提及到的重要信息(生日, 纪念日, 钱包地址)等存储在一个 txt 文件中, 当需要爆破时我会使用这个 txt 文件作为字典, 配合弱口令字典及 6 位以下数字掩码进行爆破. 我通过这一方法爆破出了压缩包的密码.
不过感觉出题人安排的题目顺序也算提示吧, 临近的题目中出现的有可能是密码的信息也就是钱包地址和第 83 题 txt 文件中的字符串了.
检材中的图片
IQ_Coin_Transcations_1.jpg
是来自于 BscScan 的网页截图, 原网页
BscScan
. 部分题解还会展示在线环境下进行分析的思路.
这个截图非常恶心, 上面的水印会直接导致 OCR 识别出来很多脏信息, 调了很久识别效果都比较差.
93 承上题, 这个钱包属于哪一种加密货币
¶
答案
BNB
在截图中可以看到智能合约在 BNB 链上:
钱包地址
0x548dafDe4B17d7d3C9485E79B3B5018801C7855E
也出现在了交易记录中:
94 承上题, 这个钱包总共有多少次存入记录
¶
答案
1
在 To 列中共有 1 次转入.
在网页上筛选一下会比较明显:
95 承上题, 存入款项的支账地址是什么
¶
答案
0x6144ACfdf84bbEC6bccB310516A89D4b3ee48c1A
接上题.
在图片上只能看到一部分
0x6144ACfd...b3ee48c1A
.
在 BscScan 中可以看到完整的地址:
0x6144ACfdf84bbEC6bccB310516A89D4b3ee48c1A
96 承上题, 这项交易传送了多少 BEP-20 IQ Coin
¶
答案
1000000000
接上题. 发送了 1,000,000,000 IQ Coin.
97 助记词是由加密货币钱包生成的一系列单词, 帮助用户恢复其私钥. 助记词通常由 12 到 24 个单词组成
¶
选项
A.正确
B.错误
答案
A
BIP-39 助记词可以由 3 - 24 个单词组成, 但小于 12 个单词的助记词熵低且易被爆破攻击. 在 BIP-39 Standalone 中如果试图生成小于 12 个单词的助记词, 则会受到警告:
Mnemonics with less than 12 words have low entropy and may be guessed by an attacker.
