安装包是7.apk,要求获取flag

描述

 题目来源:2018看雪CTF团队赛第五题交响曲 题目:安装包是7.apk,要求获取flag 知识点:JEB使用、Python脚本  解题过程:该APK未加壳,没有native函数,纯java实现,主要通过分析java的算法,判断输入是否正确。   如下是该APK算法部分的核心代码,密码主要是年月日+m数组某成员组成的字符串,经过如下a函数运算处理,如果最终运算结果等于34,则验证成功。

Flag

Flag

  下面主要通过解读java代码,可以使用python编写破解代码,但对我而言C比较熟练,所以利用C写出破解代码,如下是破解代码的核心,其中函数名和变量名与原java函数中保持一致,且逻辑与上面java实现也保持了一致,如下代码最终将会把密码打印出来。

Flag

  核心代码部分中a_func/d_func/e_func/f_func/g_func/h_func函数实现如下所示。

Flag

Flag

Flag

  编译运行用C写的破解代码,得到如下密码,即“1995020305to07”,经手机验证正确。

Flag

责任编辑:xj

原文标题:逆向基础题七:获取Flag

文章出处:【微信公众号:Linux逆向】欢迎添加关注!文章转载请注明出处。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分