其他分享
首页 > 其他分享> > BSides San Francisco CTF 2017 : pinlock-150

BSides San Francisco CTF 2017 : pinlock-150

作者:互联网

了解应用的概况(View)

Screenshot_2018-08-21-14-37-33-228_pinlock.ctf.pi.png

用jadx打开apk文件观察源码

目录.PNG

找到程序的入口进行分析

if(pinFromDB.equalsIgnoreCase(hashOfEnteredPin){}
窃喜,我只要使下面两个相等就能得到flag?

观察DatabaseUtilities


于是乎就打开数据库,得到

pinDB:d8531a519b3d4dfebece0259f90b466a23efc57b
从上面可以知道得到的数据是经过处理的,


跳到CryptoUtilities

用工具计算出pin值:

打开程序输入pin:

两个方法:

修改Smali对应的寄存器值


1.把DatebaseUtilities.smali中的 const-string v1, "SELECT entry FROM secretsDBv1"改成:  const-string v1, “SELECT entry FROM secretsDBv2” 
2. 把SecretDisplay.smali中的const-string v7, “v1”,改成 const-string v7, “v2”

修改完成之后在输入前面得到的pin值,就得到了flag

解法2

得到pin    ->    了解到secretsDBv1secretsDBv2分别对应得过程,然后修改smali代码;认真看了CryptoUtilities类会发现数据通过这个类处理之后才会得到①中得flag,那么我们可以写一段类似于这个功能得代码(简化

得到flag

总结

题目链接

标签:150,Francisco,const,San,pin,v1,flag,得到,string
来源: https://blog.csdn.net/weixin_42052758/article/details/101156197