(标题前标*的我们不能肯定,官方答案还没出来,但应该是对的)
1、检材数据开始提取是今年什么时候?(答案格式:04-12 13:26)
09-11 17:21
2、嫌疑人手机SD卡存储空间一共多少GB?(答案格式: 22.5)
24.32
3、嫌疑人手机设备名称是?(答案格式:adfer)
sailfish
4、嫌疑人手机IMEI是?(答案格式:3843487568726387)
352531082716257
5、嫌疑人手机通讯录数据存放在那个数据库文件中?(答案格式:call.db)
contacts.db
*6、嫌疑人手机一共使用过多少个应用?(答案格式:22)
99
(我们填的100,错了)
将应用日志导出、筛选、去重
7、测试apk的包名是?(答案格式:con.tencent.com)测试apk的包名是?(答案格式:con.tencent.com)
com.example.myapplication
*8、测试apk的签名算法是?(答案格式:AES250)
SHA256withRSA
(我们填的SHA256,错了)
9、测试apk的主入口是?(答案格式:com.tmp.mainactivity)
com.example.myapplication.MainActivity
10、测试apk一共申请了几个权限?(答案格式:7)
3
11、测试apk对Calllog.txt文件内的数据进行了什么加密?(答案格式:DES)
Base64
12、10086对嫌疑人拨打过几次电话?(答案格式:5)
2
13、测试apk对短信记录进行了几次加密?(答案格式:5)
2
14、测试apk对短信记录进行加密的秘钥是?(答案格式:slkdjlfslskdnln)
bGlqdWJkeWhmdXJp
逆向题,现场学一波,之前蓝帽杯的培训也侧重了这方面,无论是ctf的讲解还是取证的讲解。
jadx反编译一下(本来想着拿GDA hook一下,但想到模拟器中没有短信应用,作罢。)
做上面的题的时候扫见了这两个东西,很不对劲,都下载了下来,上面那个题base64解密出来了,没用到这个txt,在做这个题的时候题目说短信,去网上了解到SMS和短信有关
联系前后文发现刚好是利用了Getkey()这个方法获得密钥然后encryptData()加密,分析encryptData()见是AES加密而且AES加密有密钥,百分之九十九就是这个SMS.txt了,现在只要分析分析Getkey()这个函数就好了
跳转方法的时候只能跳转到这了,看见native,众所周知,
Java开发中会碰到声明为 native的方法,如:public native int hashCode(); 这是一个native方法。为什么存在native方法呢?Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能。
那现在就得分析一波装着c语言代码的lib文件夹中的so文件了(解压apk之后就能找到了)
IDA搜索一波
双击跳转
再双击跳转
现在显示的就是汇编语言的Getkey()方法了,按Tab键进行代码美化,分析美化后的伪代码
啊,,好难,,,感觉要长脑子了,根本看不懂,但是能隐约看出来是对first进行了转换操作
而且在前面的时候也见了一段奇怪的字符串
看不懂怎么转化的,直接就是交给gpt处理一下
好!信你!直接就是拿Base64转化一下
好!再去AES解密一下,成功!(tips:AES的密钥是固定16位的,这个解密网站在粘贴的时候直接截取了前16位,各位同学解密的时候注意一下)
15、嫌疑人在2021年登录支付宝的验证码是?(答案格式:3464)
9250
这次的半决赛相对来说简单一些,没有服务器只有手机和apk分析,赛前培训也很侧重逆向的分析,做题的时候因为格式的问题纠结了好久QAQ
楼前飘战队,冲冲冲!
帮白大大宣传一手:
队长博客:白云飞._-CSDN博客