apk crack writeup - 2017全国大学生信息安全竞赛信安技能赛初赛

本文介绍了在2017年全国大学生信息安全竞赛中,对apk进行逆向分析的过程。通过反汇编获取smali代码和Java代码,并利用工具解析NDK伪代码。在MainActivity的check方法中发现了复杂的逻辑,涉及字符串转换和判断。通过调试C代码,找到了输入字符串必须以字符串截止符结束的关键点,并揭示了正确答案为'clo5er',以此得出flag。
摘要由CSDN通过智能技术生成

Apk crack Writeup

0x01 反汇编

安卓逆向,首先使用工具得到smali代码和Java代码,一开始用的是Java Decomplier去看的,结果这软件解析的时候有问题,要用别的工具。得到源代码:P_ichunqiu.class、simple.class、wick.class,再使用IDA得到NDK的伪代码:libP_jni.so


0x02 寻找和分析MainActivity

MainActivity应该不难寻找,本题改了个类名,没有用正常的类名。

简单分析得知是通过Simple类的check方法进行校验的,而两个setText的话,看起来貌似是set的空串,但是运行的知是有failed显示的,所以推测在wick.show的时候设置了字符串内容,转到wick可以发现:

的确是加载了库文件,,调用了库中的a函数,而且还存在if,于是对该库进行分析。

 

0x03 分析libP_jni

简单观察可知,该库的功能仅仅为加载成功和失败时候的两个提示字符串,分别为“success”和“failed”,并无其他价值,故忽略。说明关键点在Java代码中。这个迷惑的还真是666。

 <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值