type
status
date
slug
summary
tags
category
icon
password
退役选手偶尔来看看题~虽然说本次比赛的大部分题和鸿蒙关系也不是强相关,但是可以看出主办方也在努力举办这种比较有新意的比赛了,还是要支持一下。
Ea5y_RSA
鸿蒙os下的加密系统。可以解压之后把源码丢给gemini,它的代码分析功能可以大致帮助定位关键文件。这样做可以找到两个关键文件:
Index.ets:
RsaUtil.ets:
实际上就是泄露了私钥文件的部分比特,那么打法也很简单,就是解析一下已知信息然后构造一下copper啥的。
解析代码:
显然就是d的128比特未知,转成一个p高位就行,比特完全够,这里找的网上的一个代码,需要小改一下,k是可以直接计算的不用爆破。
最后解rsa即可。
Weak_random
明文pad是前置pad,flag长度为32,这相当于给了第一组16字节的明文。并且生成key的伪随机数生成器seed空间很小,可以直接爆破。通过爆破key并且来解密第一组明文异或iv的值,再异或明文得到可能的iv。然后对整个密文解密,通过哈希值校验。代码让ai写就行:
Small Message For (SM4) Encryption
给了key^iv的值,key的生成是通过重复small message来获取的,应该比较短,所以可以爆破获得可能的key,再异或一下得到iv,然后直接对整个密文解密,用flag头校验。
Simple LLL
鸿蒙app,先改为zip后缀解压,然后用jadx-dev-all反汇编看大致的代码,加密逻辑在:
梳理一下加密逻辑:
可以把 看作一个整体t,那么这就是个agcd范式。造个格子解出p1,然后模p1解出t,再按照三个字符爆破就行(解dlp也可)。
我是Zima,欢迎找我交流~
- Author:ZimaBlue
- URL:https://www.zimablue.life/article/OpenHarmonyCTF
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!