SSCTF2016 | WP re1-e7e4ad1a.apk

参考文章:https://blog.csdn.net/wmh_100200/article/details/72847878

前言

难度不大,刷题

内容

首先使用androidkiller打开,jeb查看源码
SSCTF2016 | WP re1-e7e4ad1a.apk
SSCTF2016 | WP re1-e7e4ad1a.apk
SSCTF2016 | WP re1-e7e4ad1a.apk
SSCTF2016 | WP re1-e7e4ad1a.apk

SSCTF2016 | WP re1-e7e4ad1a.apk
a类中主要进行了des加密。
可以看到关键的位置,其中&&前面是进行了编号的判断,&&后面进行了密码的判断,其中Seclreg.d(this.a)是我们输入的密码。getpl是native层的函数,所以接下来分析so库。
以32位ida打开。
SSCTF2016 | WP re1-e7e4ad1a.apk
可以看到主要是getpl函数,进去之后可以看到很长一段代码,里面是具体的加密算法以及判断的流程,结合java层的代码,可以猜测这里进行了des加密,但是我们不需要考虑它是如何进行加密的。因为我们从后往前看,可以看到如下代码段
SSCTF2016 | WP re1-e7e4ad1a.apk
v16就是我们输入的密码,程序中未进行任何的加密,它仅仅是将v17进行了des加密,同时可以看出flag的长度位39位,现在整个apk基本上分析完了,使用ida动态调试so,在关键位置下断
SSCTF2016 | WP re1-e7e4ad1a.apk
绕过长度的检测,在内存中可以看到v17的值,该值即为flag
SSCTF2016 | WP re1-e7e4ad1a.apk
tips:由于apk进行了混淆,增加了阅读代码的难度,可以手动的改写变量名,使用n键

总结

真的不难o