【NSSCTF逆向】【2023题目】《easyAPK》《math》
总览
easyapk 安卓逆向 java加密扩展 AES base58
math elf 五元一次方程 算法逆向
题目 easyAPK
解法
第一次做有关安卓逆向的题目,没有工具没有思路,就结合别的师傅的wp来做题吧。
下载下来是一个apk,尝试了一些模拟器,没能成功,拿出以前的手机安装看看。
出来的是一个登录界面。
那大概就是需要账号和密码了,需要反编译apk了。
。
从别的师傅那里学的,安卓逆向需要一个叫做jadx的程序。详细的教程如下
https://blog.csdn.net/gqv2009/article/details/127323557
将jadx弄好之后,打开设这样的界面
等于说右边是一些资源,节点啥的。
别的师傅讲这里可以通过xml找到主函数的界面。我这里是一个个一个点进去查看的
这个login意思不就是登录嘛,感觉比较可疑,点进去还真是。
那就仔细看一下这个
可以看到账号和密码分别就是str1和str2。
其中str1就是admin
str2还经过了一些加密操作,具体是什么操作
可以看到这里的str2是通过plaintext传进来的。
而plaintext里面调用了下面的一个函数,是加密函数。里面那个java扩展加密是AES/CBC/PKCS5Padding
关于这个的知识如下
https://blog.csdn.net/wangmx1993328/article/details/106170060
其中iv是偏移量,密文是上面的base64加密后的东西(decode不是解密,相当于是取这个字符串吧),然后还有一个是key
我直接全文搜索了
找到了两处,结合wp锁定了一处
ok,上解密
到这里我们就有了密码了
登录进去是这样
我也不太晓得是什么算法,就上这个网站
https://gchq.github.io/CyberChef/
里面打开hex和magic 相当于自己识别看看
得到flag了
总结
- 安卓逆向工具jadx的使用
- java加密扩展
- AES CBC padding的方法
- base58
题目math
解法
下载下来是一个elf文件,放到linux执行看看
大概是一个输入字符串然后处理再判断的题目。
直接上ida64
从strings入手,找到关键字符串
关键信息在红框里面。
可以看到关键的加密里面有个savedregs
但是在上面我们输入的其实是v8,这里变成了savedregs,点进去看是待运算的,根据这个名字就是输入的字符串
也可以看到这里是五元一次方程,就按照下面写法(借鉴别人的wp)
出flag
总结
- elf文件
- 五元一次方程写法