2024年龙信
挂载VC的密码:MjAyNOm+meS/oeadrw==
手机取证
1.
Android 设备在通过 ADB 连接时,通常会要求用户授权连接,会要求用户确认设备授权,并将该设备的公钥保存在 adb_keys文件中
寻找到data/misc/adb/adb_keys下面有中有两个,故连接过两个设备。
2.
在便签里面找到了下周五考试的内容,用开始的时间进行推测,刚好是8月23日考试。
我看了其他的wp,它说这里可以使用时间戳
3.
用火眼看,在设备信息里面,
蓝牙MAC地址:
48:87:59:76:21:0f
蓝牙设备通过独特的地址和名称进行交互,名称通常在代码中定义,如EEG_20230902。MAC地址是48bit的固定地址,每个芯片出厂时已设定。UUID用于标识不同的服务和特征,基础UUID由SIG定义或供应商自定,主服务UUID和特征UUID则用于区分不同任务。
4.
看了大神的wp,说要使用火眼的恢复
但是,观察到了特征不符里面的压缩文件里面有6个
5.
寻找另一个手机号,一开始我是观察WiFi连接记录里面的,直接错了。
看到wp说,先要寻找密码然后打开apk进行分析,才能找到。
在浏览器里面找到了filecompress的记录,
那么使用雷电分析FileCompress,这里需要运用jadx反编译
搜寻password,然后去弄mm.txt
6.
没有什么头绪,在聊天记录里面看到了。猜测为密码结果真对了!
7。
分析手机检材,接上题,请确认该成员的对应的最高代理人是谁(不考虑总部)?[标准格式:张三]
分析手机检材,请确认在该组织中,最高层级的层次是多少?(从总部开始算第一级)[标准格式:10]
分析手机检材,请问第二层级(从总部开始算第一级)人员最多的人是多少人?[标准格式:100]
分析手机检材,机主共开启了几款APP应用分身?[标准格式:3]
这几个题目都没有什么思路,在比赛的时候,
之后wp里面说,要使用TrueCrypt进行挂载,但是用VC挂载不行,
TrueCrypt 允许你创建一个加密的文件“保险库”,在那里你可以存储任何类型的敏感信息(文本、音频、视频、图像、PDF 等)。
只要你有正确的口令,TrueCrypt 就可以解密保险库,并在任何运行 TrueCrypt 的电脑上提供读写权限。这是一项有用的技术,它基本上提供了一个虚拟的、可移动的、完全加密的驱动器(除了文件以外),你可以在其中安全地存储你的数据。
12.
用龙信看,
即使通讯软件:微信和默往
13.
不是微信的话,就是默往了。
14.删除的聊天记录
这个是利用龙信的软件来做的,发现只删除了一条。
15.
这里要找的是app的应用包,一开始我们在微信里面看到了一个滴滴滴.apk猜测是恶意apk
在apk分析里面找到了,
16、查看预留的座机号码,用雷电分析一下邮箱看看
找到了这个
这个解密的密钥
w0和x0一起看,大概是先是base64解密在使用aes解密,就得到了。
答案: 40085222666
17 gmail的邮箱
跟上面的问题在差不多的位置,
18.恶意偷取数据的邮箱
找到这个并同样解密即可
19.邮箱密码:
同样解密即可
20.恶意函数接受的地址:为a
总结一下:
主要利用火眼证据分析和雷电app智能分析,对两个软件要比较熟悉,做题时要细心观察,
有些题目的连贯性很强,做出一点就能做出很多了,关于邮箱、密码等的回答,通常要密码进行加密,要注意一些奇怪的字符和代码的阅读,更要注意不要踩坑。
计算机取证
1.
用火眼仿真,不要重置密码,有些隐藏的信息就看不到了, 先打开pycharm看看,但是打开它花了好几分钟,好慢啊!!!
直接就看到了key=65B2564BG89F16G9
2.
根据刚刚的加密脚本写一个解密脚本。
因为知道了key和iv就很简单了。
数据量比较大,所以我们要等一会,如果用记事本打不开就导入数据库(使用Navicat)进行操作
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpaddef aes_decrypt(encrypted_data, key, iv):cipher = AES.new(key, AES.MODE_CBC, iv)decrypted_data = cipher.decrypt(encrypted_data)unpadded_data = unpad(decrypted_data, AES.block_size)return unpadded_data.decode()key = b'65B2564BG89F16G9'
iv = b'83E6CBEF547944CF'encrypted_file = "E:\Python\encrypted\encrypted_data.txt"
decrypted_file = "E:\Python\encrypted\decrypted_data.txt"with open(encrypted_file, "r") as f_in, open(decrypted_file, "w") as f_out:for line in f_in:parts = line.strip().split(',')index = parts[0]f_out.write(index + ",")decrypted_parts = []for encrypted_part_hex in parts[1:]:encrypted_part = bytes.fromhex(encrypted_part_hex)decrypted_part = aes_decrypt(encrypted_part, key, iv)decrypted_parts.append(decrypted_part)f_out.write(",".join(decrypted_parts) + "\n")print("解密完成。")
根据身份证来查找手机号码,15075547510
3.查重操作,直接弄一个脚本吧!
脚本编写的思路很简单:利用集合的唯一性,去重的同时并计数,注意去除换行符、空格和空行,身份证号码一般是唯一的。
这个脚本的话,要求为全部为utf-8编码,如果出现错误,另存为时改一下编码方式就可以了。
# 导入必要的库
import os file_path = 'E:/Python/encrypted/哈哈.txt' if not os.path.exists(file_path): print(f"文件 {file_path} 不存在!")
else: unique_ids = set() all_ids = [] # 读取 with open(file_path, 'r', encoding='utf-8') as file: for line in file: id_number = line.strip() # 去除行尾的换行符和空格 all_ids.append(id_number) # 将身份证号码添加到集合中,集合会自动去重 unique_ids.add(id_number) # 计算 duplicate_count = len(all_ids) - len(unique_ids) print(f"重复的身份证号码数量是: {duplicate_count}")
4.身份证的17为单数位男性,双数为女性,
上脚本就行了。
运行结果为5001185
def count_male_id_cards(file_path):male_count = 0with open(file_path, 'r') as file:for line in file:id_card = line.strip()if len(id_card) == 18: # 确保是18位身份证号码if int(id_card[16]) % 2 == 1: # 第17位是奇数male_count += 1return male_count# 使用示例
file_path = 'encrypted_data.txt'
male_count = count_male_id_cards(file_path)
print(f'男性的身份证数据条数: {male_count}')
5.
“VPN”的版本号
6.订阅的版本号,
7.压缩包的密码:
该压缩文件在回收站里面,
直接在密码管理器里面含有,
8.压缩包的MD5值
我一开始用
但是不是这个,查询了一下资料可以知道了,
一、时间戳的影响
- 文件时间戳:zip命令在打包文件时,可能会将文件的时间戳(包括修改时间、访问时间和创建时间等)包含在压缩包中。即使文件内容没有改变,时间戳的差异也可能导致生成的压缩包的MD5值不同。
- 压缩包时间戳:此外,压缩包本身也有时间戳信息,如压缩包的创建时间和最后修改时间。这些时间戳信息在重新打包时可能会发生变化,从而影响MD5值。
二、元数据和属性的差异
- 文件权限和属性:zip命令可能会包含文件的元数据和属性,如文件权限、访问控制列表等。这些元数据和属性的差异也可能导致生成的压缩包的MD5值不同。
- 额外字段:zip文件格式允许在压缩包中包含额外的字段(extra fields),这些字段可能包含有关文件的各种信息,如扩展时间戳字段(Extended Timestamp Extra Field)等。如果在打包时包含了这些额外字段,而在重新打包时未包含或包含的方式不同,也可能导致MD5值的变化。
三、压缩算法和选项的差异
- 压缩算法:zip命令使用的压缩算法可能会引入一些额外的元数据或元信息,这些信息可能与文件内容相关但不直接影响文件的实际内容。因此,即使文件内容相同,压缩算法的差异(如压缩级别、压缩方法等)也可能导致生成的压缩包的MD5值不同。
- 压缩选项:使用zip命令时,可以指定不同的压缩选项和参数。这些选项和参数的不同组合可能会导致生成的压缩包的MD5值不同。例如,使用-X或--no-extra参数可以避免将extra fields打包进去,从而避免某些非确定性数据(如访问时间戳、用户名等)对MD5值的影响。
四、解压和重新打包过程中的变化
- 解压过程中的变化:在解压过程中,如果解压工具对文件进行了某些处理(如修改文件权限、时间戳等),则重新打包后的压缩包MD5值可能会发生变化。
- 重新打包过程中的变化:在重新打包时,如果打包工具、打包选项或文件顺序等发生了变化,也可能导致生成的压缩包MD5值不同。
由于时间戳、元数据和属性、压缩算法和选项以及解压和重新打包过程中的变化等多种因素导致的。为了获得一致的MD5值,可以在打包前对文件进行预处理(如设置统一的时间戳、权限和属性等),并使用相同的压缩工具和选项进行打包。
相关文章:

2024年龙信
挂载VC的密码:MjAyNOmmeS/oeadrw 手机取证 1. Android 设备在通过 ADB 连接时,通常会要求用户授权连接,会要求用户确认设备授权,并将该设备的公钥保存在 adb_keys文件中 寻找到data/misc/adb/adb_keys下面有中有两个,…...

PyCharm配置Flask开发环境
文章目录 一、步骤1.安装虚拟环境2.创建虚拟环境文件夹3.安装虚拟环境目录4.进入虚拟环境5.active命令 激活6.安装Flask7.在Pycharm中配置Flask环境 总结 一、步骤 1.安装虚拟环境 代码如下(示例): pip install virtualenv 或者 pip insta…...

【人工智能-初级】第2章 机器学习入门:从线性回归开始
文章目录 一、什么是线性回归?二、线性回归的基本概念2.1 一元线性回归2.2 多元线性回归 三、如何进行线性回归建模?四、用Python实现线性回归4.1 导入必要的库4.2 创建虚拟数据集4.3 数据可视化4.4 拆分训练集和测试集4.5 训练线性回归模型4.6 查看模型…...

SPOOLing技术详解,结合实际场景让你了解什么是假脱机技术。
SPOOLing技术 在手工操作阶段,主机直接从I/O设备获取数据,但是由于设备速度很慢,主机速度很快。人机速度矛盾明显,主机需要浪费很多时间来等待设备。 什么是脱机技术,脱机技术可以解决什么问题? 所谓脱…...

基于SSM汽车零部件加工系统的设计
管理员账户功能包括:系统首页,个人中心,员工管理,经理管理,零件材料管理,产品类型管理,产品信息管理,产品出库管理,产品入库管理 员工账号功能包括:系统首页…...

改进 JavaScript 条件语句,探索可以替代 if...else 的 7 种方式!
当优化 JavaScript 代码时,条件语句是一个经常需要思考和改进的关键部分。if...else 结构虽然是我们常用的条件语句之一,但当代码逻辑变得复杂,if...else 结构可能会导致代码冗长、难以维护和理解。因此,了解并掌握优化 if...else…...

全新子比主题7.9.2开心版 子比主题最新版源码
内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 wordpress zibll子比主题7.9.2开心版 修复评论弹授权 可做付费下载站 含wordpress搭建视频教程zibll子比主题安装视频教程支付配置视频教程,视频都是语音讲解,…...

Kafka之消费者组与消费者
消费者(Consumer)在Kafka的体系结构中是用来负责订阅Kafka中的主题(Topic),并从订阅的主题中拉取消息后进行处理。 与其他消息中间件不同,Kafka引入一个逻辑概念——消费组(Consumer Group&…...

Damn-Vulnerable-Drone:一款针对无人机安全研究与分析的靶机工具
关于Damn-Vulnerable-Drone Damn-Vulnerable-Drone是一款针对无人机安全研究与分析的靶机工具,广大研究人员可以利用该环境工具轻松学习、研究和分析针对无人机安全态势。 Damn Vulnerable Drone 基于流行的 ArduPilot/MAVLink 架构,其中故意留下了各种…...

项目模块三:Socket模块
一、模块设计 1、套接字编程常用头文件展示 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <fcntl.h> 2、成员函数设计 (1…...

Unity-Shader-语义
1、从程序传给顶点函数: POSITION:顶点坐标(模型空间下) NORMAL:法线向量(模型空间下) TANGENT:切线向量(模型空间下) TEXCOORD0~n:纹理坐标 …...

MFC工控项目实例二十四模拟量校正值输入
承接专栏《MFC工控项目实例二十三模拟量输入设置界面》 对模拟量输入的零点校正值及满量程对应的电压值进行输入。 1、在SenSet.h文件中添加代码 #include "BtnST.h" #include "ShadeButtonST.h"/ // SenSet dialogclass SenSet : public CDialog { // Co…...

analysis-ik分词器
analysis-ik分词器 1、安装离线在线 2、使用配置拓展词典 3、测试ik_smartik_max_word 1、安装 离线 使用离线安装下载地址https://release.infinilabs.com/analysis-ik/stable/找到对应es版本的ik分词器、下载zip后放到/elasticsearch/plugins/ik文件夹下。重启es即可生效 …...

开源的、基于内存的键值存储数据库redis详细介绍
目录 一、Redis的概述 1、概述 2、特点 (1)基本特性 (2)数据结构 (3)运行环境 二、Redis的重要作用 1、缓存 2、会话存储 3、消息队列 4、计数器 5、分布式锁 6、排行榜 7、实时数据处理 三、…...

三种容器 std::vector、std::map、std::unordered_set 的对比分析
目录 1.添加元素 1.1 std::vector 1.2 std::map 1.3 std::unordered_set 2. 查找元素 2.1 std::vector 2.2 std::map 2.3 std::unordered_set 3. 遍历容器 3.1 std::vector 使用范围基for循环(range-based for loop) 使用迭代器: 3.2 std::map 3.3 std::unord…...

Nuxt3 SSR 服务端渲染部署 PM2 全流程(Nest.js 同理)
项目打包 我们以 Nuxt3 项目为例子: 项目打包 执行 npm run build , 生成的 .output 文件夹就是部署产物(目前不支持中文路径)执行 npm run preview 可以本地预览效果 方式一:使用 Node 部署 需要服务器安装 Nod…...

如何轻松使用pip安装Git仓库中的私有Python模块(使用pip和Git仓库发布和安装私有Python模块)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 Git模块 📒📝 Git仓库要求🔖 项目目录结构🔖 文件说明📝 编写setup.py📝 配置MANIFEST.in📝 推送代码到Git仓库📝 使用pip安装模块🔖 使用用户名和密码🔖 使用Personal Access Token (PAT)🔖 示例📝 更…...

写 R 包教程
R R 包开发 | 保姆级教程-CSDN博客 https://www.prestevez.com/post/r-package-tutorial/ 1、加载开发所需 R 包 library(usethis) library(devtools) library(roxygen2) 2、在当前工作路径创建 R 包 usethis::create_package("myRpkg") # 在当前路径创建 my…...

【java】数组(超详细总结)
目录 一.一维数组的定义 1.创建数组 2.初始化数组 二.数组的使用 1.访问数组 2.遍历数组 3.修改数据内容 三.有关数组方法的使用 1.toString 2. copyOf 四.查找数组中的元素 1.顺序查找 2.二分查找binarySearch 五.数组排序 1.冒泡排序 2.排序方法sort 六.数组逆置…...

@KafkaListener注解
KafkaListener(topics "${xxxx}", containerFactory "xxx") public void consume(String message) {service.save(xx); }在 Spring Boot 中,使用 KafkaListener 注解消费 Kafka 消息时,如果 service.save(cleanWikiSource) 抛出异…...

2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)
2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025) 2025 International Conference on Advances in Computer Vision Research and Applications 重要信息 2025年3月28-30日 南京 一轮截稿日期:2024年11月30日 EI检索稳定 早投稿,早审稿&a…...

第二代GPT-SoVITS V2:让声音克隆变得简单
随着人工智能技术的飞速发展,AI声音克隆已经成为一种趋势,广泛应用于各个领域。为了满足更多用户的需求,第二代GPT-SoVITS V2应运而生,它由RVC变声器创始人“花儿不哭”与AI音色转换技术Sovits开发者Rcell联合开发,是一…...

基于x86_64汇编语言简单教程6: 变量,常量,与运算
目录 变量 为未初始化的数据分配存储空间 多重初始化 常量 equ指令 %assign 指令 %define指令 算数指令 inc 自增指令 dec指令 ADD和SUB指令 imul/mul和idiv/div 实践:我们来写一个简单的一位数加法器 NASM逻辑指令 AND 指令 …...

Vue-router 路由守卫执行流程图
vue-router 路由守卫执行的流程图(个人理解) 图1 - 图2...

ES6 中函数参数的默认值
概述: ES 允许给函数的参数赋初始值; 代码示例及相关说明: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>函数参数默认值</title> </head> <body> <script&g…...
Redis知识应用索引指南
Redis,全称为Remote Dictionary Server,是一个开源的高性能键值对数据库。它以其卓越的性能、丰富的数据结构和灵活的持久化机制,在现代应用中扮演着至关重要的角色 1 什么是redis Redis是一个使用ANSI C语言编写的开源、跨平台的键值存储系…...

ES6扩展运算符
1.介绍: ... 扩展运算符能将数组转换为逗号分隔的参数序列; 扩展运算符(spread)也是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的 参数序列,对数组进…...

【树莓派 5B】Python 版本切换
【树莓派 5B】Python 版本切换 前言整体思路具体步骤常见问题Python 无法建立与 Python3 的软连接 前言 本文基于树莓派5B 32-bit 树莓派OS,以 Python-3.11.2 降级到 3.9.2 为例,总结了在树莓派上切换 Python 版本的步骤,帮助大家轻松完成 P…...

windows C++-有效使用PPL(五)
如果可能,避免错误共享 当在不同处理器上运行的多个并发任务写入位于同一高速缓存行上的变量时,会发生错误共享。 当一个任务写入一个变量时,这两个变量的缓存行将会失效。 每当缓存行失效时,每个处理器必须重新加载缓存行。 因此…...

【排序】——1.冒泡排序法(含优化)
冒泡排序 1.原理 左边大于右边交换一趟排下来最大的交换到右边来(接下来所以文章用升序举例) 从左到右,相邻元素进行比较。 每次比较一轮,就会找到序列中最大的一个(最小的一个——降序)。这个数就会从序列的最右边冒出来。 以…...