时隔许久详细的复现一下~
这个题目也挺有意思的,刺激学了一遍pyc233
题目提供了一份opcode.txt、elf二进制程序a和一个密文cipher.txt
opcode打开来可以发现是pyc的解析
虽然有code,但是试着用python解析了一下发现有点复杂
读opcode是不可能的,这辈子都不可能的
本来读起来就麻烦,缺少符号信息就更恐怖了,更别说还有lambda和join等等骚方法了
思路转为根据一些关键词来搜索,试图找到该文件的生成方法和逆转换方法。毕竟只要能得到pyc就能通过uncompyle的工具还原出源码
搜了一下找到了几乎完全一样的脚本
然后拿一个正常的pyc打了一份解析出来,对照发现除了code的disassembly以外什么都不缺,这也就意味着根据上述信息是可以还原出pyc的
比赛的时候是手动搞的,懒得写脚本操作了,本来都不熟悉再出什么bug调起来更慢2333
pyc整体是4字节版本标识