1. SecretDB
一个sqlite数据库,直接查看发现flag表只剩一条记录:
看样子前41个记录应该是被删了,每个记录包含了一个sort和一个message两个值。
根据SQLite3数据库文件结构解析,可以对文件中的记录进行解读:
因为记录的格式固定,很容易根据04 00 01
找到其他被删掉的记录:
因为后面跟的type是0F,可以算出是长度为1的字符串类型,此时可以根据04 00 01 0F
序列找出部分flag的sort和message记录,但是找完之后发现和实际flag差很多,就直接以0F
作为目标进行搜索,找出0F后面跟着的所有sort和message:
排除掉一些明显不不是字符的message后得到如下flag:
有一位死活还原不出来了 就硬猜吧 最后得出flag:flag{f6291bf0-923c-4ba6-82d7-ffabba4e8f0b}
2. f or r
根据探究Windows 10 累积更新与系统文件变化可以得知当windows想要更新一个文件时,会携带两个差分文件f和r,在更新一个文件时,windows会先将当前版本的文件用当前版本的r回退到RTM版本,然后用RTM版本的文件用f更新到最新版。
而差分文件是使用ApplyDeltaB函数来对一个文件进行更改,在github上有现成的python脚本可以调用此函数。
因此我们要做的就是找出我们系统中的curl,回退到RTM版本,然后进行更新。
找到当前版本的curl和对应的补丁:
回退和更新,如果提示Error Code 13那就是文件校验没通过,应用差分文件失败,应该重新检查自己的输入文件是否符合差分文件的要求:
然后拖进IDA里搜索flag发现和version绑在一起:
因此通过--version
命令查看flag: