fwunpack.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:binaryanalysis 作者: armijnhemel 项目源码 文件源码
def searchUnpackKnownAr(filename, tempdir=None, scanenv={}, debug=False):
    ## first check if the file actually could be a valid ar file
    arfile = open(filename, 'rb')
    arfile.seek(0)
    arheader = arfile.read(7)
    arfile.close()
    if arheader != fsmagic.fsmagic['ar']:
        return ([], [], [], {})

    ## then try unpacking it.
    res = searchUnpackAr(filename, tempdir, [], {'ar': [0]}, scanenv, debug)
    (diroffsets, blacklist, newtags, hints) = res

    failed = False
    ## there were results, so check if they were successful
    if diroffsets != []:
        if len(diroffsets) != 1:
            failed = True
        else:
            (dirpath, startoffset, endoffset) = diroffsets[0]
            if startoffset != 0 or endoffset != os.stat(filename).st_size:
                failed = True

        if failed:
            for i in diroffsets:
                (dirpath, startoffset, endoffset) = i
                try:
                    shutil.rmtree(dirpath)
                except:
                    pass
            return ([], [], [], {})
        else:
            return (diroffsets, blacklist, newtags, hints)
    return ([], [], [], {})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号