题目来源:2018看雪CTF团队赛第五题交响曲 题目:安装包是7.apk,要求获取flag 知识点:JEB使用、Python脚本 解题过程:该APK未加壳,没有native函数,纯java实现,主要通过分析java的算法,判断输入是否正确。 如下是该APK算法部分的核心代码,密码主要是年月日+m数组某成员组成的字符串,经过如下a函数运算处理,如果最终运算结果等于34,则验证成功。
下面主要通过解读java代码,可以使用python编写破解代码,但对我而言C比较熟练,所以利用C写出破解代码,如下是破解代码的核心,其中函数名和变量名与原java函数中保持一致,且逻辑与上面java实现也保持了一致,如下代码最终将会把密码打印出来。
核心代码部分中a_func/d_func/e_func/f_func/g_func/h_func函数实现如下所示。
编译运行用C写的破解代码,得到如下密码,即“1995020305to07”,经手机验证正确。
责任编辑:xj
原文标题:逆向基础题七:获取Flag
文章出处:【微信公众号:Linux逆向】欢迎添加关注!文章转载请注明出处。
全部0条评论
快来发表一下你的评论吧 !