ctf_Android

神秘版本

2017-06-07  本文已影响0人  _String_

题目描述:安全人员在应用市场发现一个版本信息异常的应用,要求试图找出该异常。
app下载地址:https://pan.baidu.com/s/1jIGB7xk
解题:
下载应用通过dex2jar反编译该应用,通过JD-JUI查看代码发现versioncode及versionname字段,如下图:

image.png

查找key判断位置如下图,

image.png

读取用户输入内容,判断是否等于 versionname每个字符异或versioncode,因此通过反向计算得到正确key计算代码如下:

#!/usr/bin/env python
#auth :free
#time :2017.6.7
def useKey():
    versionName = 'X<cP[?PHNB<P?aj'
    flagKey = ""
    versionCode = 15
    for i in range(0,len(versionName)):
        rst=ord(list(versionName)[i])^versionCode
        flagKey=flagKey+chr(rst)

    print flagKey


if __name__ == '__main__':
    useKey()
上一篇下一篇

猜你喜欢

热点阅读