题目补完计划 No.2-2
手打的计算机和手机
1. 请综合分析计算机和手机检材,计算机最近一次登录的账户名是
admin 
2. 请综合分析计算机和手机检材,计算机最近一次插入的USB存储设备串号是


3. 请综合分析计算机和手机检材,谢弘的房间号是()室
201 找到不对的文件 
4. 请综合分析计算机和手机检材,曹锦芳的手机号后四位是
2k的压缩包是伪加密,解压就搜到了 

5. 请综合分析计算机和手机检材,找到全部4份快递相关的公民信息文档,按姓名+电话+地址去重后共有多少条?
3、4都没加密,直接合并计算 合并发现最后只有4997项 
6. 请综合分析计算机和手机检材,统计检材内共有几份购票平台相关的公民信息文档
大小反常,猜测是vc容器
这里有vc密码
密码是5thGoldenEyesCup 
7. 请综合分析计算机和手机检材,樊海锋登记的邮箱账号是于上题文件中找到

8. 请综合分析计算机和手机检材,统计购票平台相关的文档,去重后共有多少条身份证号为上海的公民信息?
用excel分列后删除重复值 
一共56人
9. 请分析手机检材,2022年11月7日,嫌疑人发送了几条短信?
3 
10. 请分析手机检材,其中保存了多少条公民住房信息?
12 
张智、吴涵、陈剑、关星、常见、俞辉遥、章衡、郭何、范宏伟、张三、李四、王武
apk
备忘录
1. 目标手机备忘录中记录了一串字符串,从中得到答案。


2. 在反编译出的文件中,正确答案在哪个文件里?
activity_main.xml
easyapk
1. 本 App 中 SharedPreferences 配置文件的名称(包括后缀)是什么?
myprefs.xml 
2. 上述配置文件的绝对路径(包括文件名)是什么?
/data/data/com.hl.easyapk/shared_prefs/myprefs.xml
3. 程序中要验证输入的答案需要调用了几次 MD5?
首先注意到sha类里的encrypt函数是要调用md5的
程序启动时会调用五个函数
分别看五个函数 



所以启动的时候就调用了5次 接着点击按钮之后又调用1次
总共是6次
verify
1. 压缩包是什么格式?
7z 
2. AES 的 Key。
en1是aes
发现用en2进行了key的生成
en2的密钥是thisiskey en2的算法,没学逆向也不太懂,搜了一下是rc4算法 然后用cyberchef能解开
所以aes的key是thisisyouraeskey
2. 除了 AES 还使用了什么算法?
rc4
2. 上题算法的 key 是什么?
thisiskey
easyjni
1. 数据库密钥。
先把数据库复制到模拟器里
然后用frida跟踪就行,我这里不知道为啥没跟踪到
直接做的话可以看代码
Encrypt函数跳转到xxtea加密
最终密码是66d6ad256b0b03143e5571276bcebfc756a8fc0f7322b31ee8a8a2e992cbce37 然后用db browser打开 
2. 账号的长度为多少?
这里加载了easzjni libarary,我们找so文件看看
把mianactivity一个一个点过去
然后看到诡异的代码
疑似加密 然后最后返回result,有个函数,从这里出发
实在看不懂,交给ai,发现是个base64
然后回来,发现还对字符串做了替换处理 官方的解密脚本
import base64
base64_chars = list("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=")
a = base64_chars[3]
base64_chars[3] = base64_chars[6]
base64_chars[6] = a
a = base64_chars[7]
base64_chars[7] = base64_chars[9]
base64_chars[9] = a
a = base64_chars[20]
base64_chars[20] = base64_chars[21]
base64_chars[21] = a
a = base64_chars[26]
base64_chars[26] = base64_chars[1]
base64_chars[1] = a
a = base64_chars[30]
base64_chars[30] = base64_chars[39]
base64_chars[39] = a
a = base64_chars[2]
base64_chars[2] = base64_chars[48]
base64_chars[48] = a
s1 = "".join(i for i in base64_chars)
s2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='
data = "MXpjNjRjMzVyYl4zLmACMF8CXi1hMl9jXldbieFIRG91RJFJ"
result = list(base64.b64decode(data.translate(str.maketrans(s1, s2)).encode('utf-8')))
pLen = len(result) - 11
for j in range(0, pLen-1, 2):
i = result[j]
result[j] = result[j+1]
result[j+1] = i
for i in range(0, int(pLen/2)):
j = result[i]
result[i] = result[pLen-1-i]
result[pLen-1-i] = j
for i in range(pLen, pLen+11):
result[i] = result[i] - 15
for i in range(pLen):
result[i] = result[i] + 3
aa = "".join(chr(i) for i in result)
print(aa[-11:] + aa[:-11])
答案是11
3. 程序中 kk().getBytes() 得到的值是什么?
MzI5MWRiYjY4MDQzOTQ3MzFhODUyYWYzZ jk3MDIxYTE=
calc
so 文件中算法得到的结果最终是与哪个地址的数据进行比较?(答案格式为 16 进制数 如:0x123456)
过于硬核了,我真不会(哭 看看出题思路吧
感觉如果到了线下,有时间限制,最后的结果还是复杂apk让ai跑,人分析感觉还是很费劲
Agent 来踢馆
计算机、手机这一部分相对来说比较简单,不过手机取证部分agent卡在ocr上了,感觉还是要对应接入个识图工具 逆向肯定是ai的强项,不必多说,不过jni这道题还是有点卡住了
目前Agent的前端可用性还是不强,知识库逻辑也不行,包括提示词固化也有问题,打算请神上手帮助重构(什
到时候做好了和师傅们分享下制作经验
这一套题还剩服务器取证,需要重组raid,有点复杂,加上今天事情比较多,明天再做O(∩_∩)O~~