2024盘古石取证比赛(IPA+人工智能)

ipa · 浏览次数 : 0

小编点评

## 杂项内容总结 **1. 异态计算机检材分析** - 1 + 41 个换脸视频。 - 426. 分析义言的计算机检材,换脸AI程序默认换脸视频文件名是:[答案格式:test.mp4][★★☆☆☆] - 15总结人工智能部分分为声音模型和AI换脸,在火眼中如果找到对应路径,在虚拟机中可以较容易找到答案。 **2. 异态计算机检材分析** - 分析义言的计算机检材,换脸AI程序默认换脸图片的文件名称:[答案格式:abc.abc][★★☆☆☆] **3. Realm 数据库** - Realm 数据库用于存储人工智能模型信息。 - Realm studio 用于管理和访问 Realm 数据库。 **4. 异态计算机检材分析** - 问题:根据视频路径去虚拟机里找fc3d6cb14c0d4e52adcf8717f2740b5c.jpeg8。 - 答案:在 Realm 数据库中可以找到对应路径的图片。 **5. 异态计算机检材分析** - 问题:如何还原换脸视频? - 答案:需要考虑反编译,反混淆,修改文件头进行修复。

正文

题目列表

IPA部分

1. 分析毛雪柳的手机检材,记账 APP 存储记账信息的数据库文件名称是: [ 答案格式:tmp.db ,区分大小写 ][ ★★★★☆ ]

通过icost软件可以定位raealm数据库
image

default.realm

2. 分析毛雪柳的手机检材,记账APP中,2月份总收入金额是多少:[答案格式:1234][★★★★★]

下载realm studio打开数据库
https://github.com/realm/realm-studio?tab=readme-ov-file
使用Realm Studio查看,过滤器:type=1 and timestamp >= 1706716800000 and timestamp <= 1709222400000(含义:类型为收入+2~3月)
image

11957

3. 分析毛雪柳的手机检材,手机中团队内部使用的即时通讯软件中,团队老板的邮箱账号是:[答案格式:abc@abc.com][★★★☆☆]

服务器顺下来就知道,也不用看数据库
gxyt@163.com

4. 接上题,该内部即时通讯软件中,毛雪柳和老板的私聊频道中,老板加入私聊频道的时间是:[答案格式:2024-01-01-04-05-06][★★★☆☆]

知道通讯软件是mattermost,之前有导出过数据库
image
image
image

ctool转换
https://ctool.dev/tool.html#/tool/time/timestamp
image

2024-04-24-11-59-28

5. 接上题,该私聊频道中,老板最后一次发送聊天内容的时间是:[答案格式:2024-01-01-04-05-06][★★★☆☆]

image

2024-04-25-10-24-50

人工智能部分

1. 分析义言的计算机检材,一共训练了多少个声音模型:[答案格式:123][★★☆☆☆]

火眼分析yiyan计算机发现有4个GPT声音模型
image
每一个模型都有一个train.log
image
进入虚拟机也可以看到对应文件
image

4

2. 分析义言的计算机检材,声音模型voice2,一共训练了多少条声音素材:[答案格式:123][★★☆☆☆]

文件路径:PC.001/分区11/GPT-SoVITS-beta0217/logs/voice2/3-bert
image

17

3. 分析义言的计算机检材,声音模型voice3,一共训练了多少轮:[答案格式:123][★★★☆☆]

查看train.log
image

8

4. 分析义言的计算机检材,声音克隆工具推理生成语音界面的监听端口是:[答案格式:1234][★★★★☆]

查找GPT-SoVITS-beta0217的配置文件
image
image

9874

5. 分析义言的计算机检材,电脑中视频文件有几个被换过脸:[答案格式:10][★★★★★]

非常有意思,这题又遇到逆向了(上次是bitlocker)
1.在输出文件里只能看到一个视频被换过脸
image
2.另外的视频通过wncrypt.exe加密过,要对该软件进行反编译和反混淆,了解具体加密算法后,自行编写脚本对加密文件解密
image
导出文件,用pyinstxtractor进行反编译,获得encrypt.exe_extracted文件夹
image
image
对应加密方式在z.pyc文件里,要转化为py文件。但是文件改名为z.pyc后有点问题,不能直接转换,要用WinHex修改文件头后,再放入在线网站(https://www.lddgo.net/string/pyc-compile-decompile) 或者工具(uncompyle6/pycdc)反编译
image
可以看到文件头有缺失,进行python版本补全
image

找到对应版本后转字节,再放入文件头中

转文件头代码
MAGIC_NUMBER = (3413).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little')  # For import.c

反编译结果

反编译后的代码

# -*- coding: utf8 -*-
#! /usr/bin/env  3.8.0 (3413)
#coding=utf-8
#source path: z.py
#Compiled at: 1970-01-01 00:00:00
#Powered by BugScaner
#http://tools.bugscaner.com/
#如果觉得不错,请分享给你朋友使用吧!
import os
 
def xor_process(O0OOO0O0000O000O0, O0OOOOO0OOOO00000):
    try:
        with open(O0OOO0O0000O000O0, 'rb') as (O0000O0O0000O000O):
            O0O0OOO0OOO00OOOO = O0000O0O0000O000O.read()
        O00000O00OOOO0O00 = os.path.splitext(os.path.basename(O0OOO0O0000O000O0))[0]
        O0000O0OOO00OO000 = bytearray()
        for OOO0O0000OOOO0O0O in range(len(O0O0OOO0OOO00OOOO)):
            O0000O0OOO00OO000.append(O0O0OOO0OOO00OOOO[OOO0O0000OOOO0O0O] ^ ord(O00000O00OOOO0O00[OOO0O0000OOOO0O0O % len(O00000O00OOOO0O00)]))
        else:
            O00000O00OO0OOO0O = os.path.join(O0OOOOO0OOOO00000, f"{O00000O00OOOO0O00}-cn{os.path.splitext(O0OOO0O0000O000O0)[1]}")
            with open(O00000O00OO0OOO0O, 'wb') as (OO00000O000O00OO0):
                OO00000O000O00OO0.write(O0000O0OOO00OO000)
            print(f"文件 {O0OOO0O0000O000O0} 处理成功!")
 
    except Exception as OOO0000OOO0O0O0O0:
        try:
            print(f"处理文件 {O0OOO0O0000O000O0} 出错:{OOO0000OOO0O0O0O0}")
        finally:
            OOO0000OOO0O0O0O0 = None
            del OOO0000OOO0O0O0O0
 
 
if __name__ == '__main__':
    folder_path = input('请输入要处理的文件夹路径:')
    output_folder = input('请输入要保存处理结果的文件夹路径:')
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    for root, _, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            xor_process(file_path, output_folder)

把混淆的代码简单处理一下,xor加密

反混淆代码

def xor_process(file_path, output_folder):
    try:
        with open(file_path, 'rb') as (fr):
            file_data = fr.read()
        file_name = os.path.splitext(os.path.basename(file_path))[0]
        #file_name = file_name.replace('-cn','')
        xor_data = bytearray()
        for i in range(len(file_data)):
            xor_data.append(file_data[i] ^ ord(file_name[i % len(file_name)]))
        else:
            output_file = os.path.join(output_folder, f"{file_name}-cn{os.path.splitext(file_path)[1]}")
            with open(output_file, 'wb') as (fw):
                fw.write(xor_data)
            print(f"文件 {file_path} 处理成功!")
 
    except Exception as e:
        try:
            print(f"处理文件 {file_path} 出错:{e}")
        finally:
            e = None
            del e

然后解密之后就有对应的解密版本了仿真进去 把里面的解密一下

对应解密代码
import os
 
def xor_decrypt(file_path, output_folder):
    try:
        # 读取加密文件内容
        with open(file_path, 'rb') as file:
            encrypted_data = file.read()
        
        # 从文件名中移除 '-cn' 并作为解密密钥
        filename = os.path.splitext(os.path.basename(file_path))[0].replace('-cn', '')
        
        # 初始化解密数据缓存
        decrypted_data = bytearray()
        
        # 对数据进行逐字节解密
        for index in range(len(encrypted_data)):
            decrypted_data.append(encrypted_data[index] ^ ord(filename[index % len(filename)]))
        
        # 构建解密后文件的输出路径
        output_file_path = os.path.join(output_folder, f"{filename}{os.path.splitext(file_path)[1]}")
        
        # 写入解密数据到新文件
        with open(output_file_path, 'wb') as output_file:
            output_file.write(decrypted_data)
        
        print(f"文件 {file_path} 解密成功!")
    
    except Exception as e:
        print(f"处理文件 {file_path} 出错:{e}")
 
if __name__ == '__main__':
    # 获取用户输入
    folder_path = input('请输入要解密的文件夹路径:')
    output_folder = input('请输入要保存解密结果的文件夹路径:')
    
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)
    
    # 遍历文件夹并解密文件
    for root, _, files in os.walk(folder_path):
        for file in files:
            file_path = os.path.join(root, file)
            xor_decrypt(file_path, output_folder)

参考文章
https://blog.csdn.net/m0_73393932/article/details/130161331
https://blog.csdn.net/Zheng__Huang/article/details/112380221
https://blog.csdn.net/qq_63585949/article/details/126706526

pyinstxtractor下载
https://sourceforge.net/projects/pyinstallerextractor/

最后发现一共 1 + 41 个换脸后的视频.

42

6. 分析义言的计算机检材,换脸AI程序默认换脸视频文件名是:[答案格式:test.mp4][★★☆☆☆]

image

target-1080p.mp4

7. 分析义言的计算机检材,换脸AI程序默认换脸图片的文件名称:[答案格式:abc.abc][★★☆☆☆]

根据视频路径去虚拟机里找
image

fc3d6cb14c0d4e52adcf8717f2740b5c.jpeg

8. 分析义言的计算机检材,换脸AI程序模型文件数量是多少个:[答案格式:10][★★☆☆☆]

同样在上述路径下
image

15

总结

人工智能部分
分为声音模型和AI换脸,在火眼中如果找到对应路径,在虚拟机中可以较容易找到答案,主要考察信息检索能力。难点在于第五题的逆向分析,要考虑如何还原换脸视频。这题感觉和ctf比赛的逆向题目流程一模一样——反编译,反混淆,修改文件头进行修复……
IPA部分
IPA这些题目和手机取证差不多,都是在数据库里找信息。第三题可以通过其他题目找到的信息回答。主要学习了realm数据库的查找,以及realm studio的安装和使用。

又是收获满满的一天!

与2024盘古石取证比赛(IPA+人工智能)相似的内容:

2024盘古石取证比赛(IPA+人工智能)

前言 题目列表 IPA部分 1. 分析毛雪柳的手机检材,记账 APP 存储记账信息的数据库文件名称是: [ 答案格式:tmp.db ,区分大小写 ][ ★★★★☆ ] 通过icost软件可以定位raealm数据库 default.realm 2. 分析毛雪柳的手机检材,记账APP中,2月份总收入金额

【重磅】华为云盘古大模型5.0,正式发布!

2024年6月21日,在华为开发者大会2024(HDC 2024)上,华为常务董事、华为云CEO张平安正式发布盘古大模型5.0,在全系列、多模态、强思维三个方面全新升级;张平安还分享了盘古大模型在自动驾驶、工业设计、建筑设计、具身智能、媒体生产和应用、高铁、钢铁、气象等领域的丰富创新应用和落地实践,

解锁HDC 2024之旅:从购票到报名,全程攻略

本文分享自华为云社区《解锁HDC 2024之旅:从购票到报名,全程攻略》,作者:华为云社区精选。 Hi,代码界的小伙伴们,集结号已经吹响了!华为开发者大会(HDC 2024)——这场汇聚了HarmonyOS NEXT鸿蒙星河版、盘古大模型5.0等创新火花与智慧碰撞的盛宴,将于6月21日至23日在东莞

第一作者解读|我们这篇Nature Communication背后的故事

2024年7月16日,大暑将至,立秋不远。我们基于Python的转录组学全分析框架的文章——"OmicVerse: a framework for bridging and deepening insights across bulk and single-cell sequencing"——正式在

2024 Selenium10个替代品

随着自动化测试需求的不断增长,Selenium作为广泛使用的自动化测试工具,虽然功能强大,但也存在一些限制和挑战。在2024年, 越来越多的替代工具涌现,它们提供了更高效、更易用的解决方案。那么,哪些替代品值得我们关注呢? 在自动化测试领域,除了Selenium,还有哪些工具能够满足我们的需求,并且

【2024最新】4000字搞懂sora!一张脑图贯穿!

话不多说,上图! 下面就是对sora的具体阐释: Sora是OpenAI推出的一款革命性的视频生成模型,能够根据文本指令、静态图像或视频生成长达60秒的完整视频。这一模型基于扩散式模型和自注意力深度学习机制,通过将视频片段转换为静态图像并去除噪音以达到清晰效果。 核心技术与功能 技术架构: Sora

Microsoft宣布将在开发人员会议上专注于.NET Aspire

2024年7月15日微软宣布,其开发执行团队将在下个月的开发者大会上聚焦于使用 .NET Aspire 的云原生开发,以及结合人工智能的“现代 SQL”在 Microsoft Fabric 中的应用。微软的 Visual Studio LIVE! 2024 大会不仅是一个会议,而是创新、学习和社区庆

ECMA标准ECMAScript(JavaScript的一个标准)和C#

2024 年 6 月 26 日,第 127 届 ECMA 大会正式批准了 ECMAScript 2024 语言规范,这意味着它现在正式成为最新 ECMAScript 标准。ECMAScript是ECMA标准中最著名的编程语言标准,它定义了JavaScript语言的核心特性。C#语言则是由ECMA国际

2024 年 Visual Studio 实用插件集合

前言 在软件开发领域,选择正确的工具可以极大地提升开发效率和质量。 Visual Studio作为微软推出的强大集成开发环境(IDE),通过安装合适的插件,可以进一步增强其功能,满足开发者多样化的需求。 以下是2024年最新最全的Visual Studio实用插件推荐,旨在帮助开发者优化开发流程,提

2024已过半,还没试过在vue3中使用ioc容器吗?

Zova 是一款支持 IOC 容器的 Vue3 框架。有了 IOC 容器的加持,定义响应式状态不再需要ref/reactive,也不再需要ref.value