首页
社区
课程
招聘
[原创]第一题AliCrackme,用Python提取png中的密码
发表于: 2015-1-23 20:34 2601

[原创]第一题AliCrackme,用Python提取png中的密码

2015-1-23 20:34
2601
确实是练手题,拿JEB直接就看到验证过程:


映射表和密码都在logo.png里,直接拿Python处理了:
1
2
3
4
5
6
7
8
9
def getTableFromPic():
    with open("logo.png", "rb") as f:
        f.seek(89473)
        return f.read(768)
 
def getPwdFromPic():
    with open("logo.png", "rb") as f:
        f.seek(91265)
        return f.read(18)


接着还原 bytesToAliSmsCode 函数,其实就是data的低8位查表,但因为输入是byte[],导致这里只能用ascii码:
1
2
3
4
5
6
def bytesToAliSmsCode(table, data):
    result = ""
    for i in range(len(data)):
        index = ord(data[i]) & 255
        result += charAt(table, index)
    return result


查看密码的输出为: 义弓么丸广之

然后写个根据字符逆向查表的函数,循环对pwd的字符查结果,最后转成字符串就是密码:
1
2
3
4
5
6
7
8
9
10
def reverseAliSmsCode(table, uchar):
    return table.index(uchar)
 
def crack(table, pwd):
    result = ""
    for i in range(len(pwd)/3):
        uchar = charAt(pwd, i)
        target_byte = reverseAliSmsCode(table, uchar)
        result += chr(target_byte)
    return result  


附件中是完整python脚本和logo.png

[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册