[NISACTF 2022]ezpython
查壳:
(后来发现:但凡有这玩意的都和解包有关)
32位,运行,发现让我们输入一个key,进IDA:
把能找的都找了,愣是没发现什么,除了一个类似base64的编码,实在没办法,去看了大佬的文章,说是py下的exe的解包,跟据大佬们的思路来了一波,果然出来了。
开始吧,首先是将该运行文件与pyinstxtractor放一起(这里就不提供了,github上有,搜一下就行了):
接着打开cmd,输入以下代码:
python pyinstxtractor.py ez_python.exe
得到如下文件,进去发现有经典的.pyc文件,不说了,反编译吧:
我这里只反编译src就好,不知道为啥他们要修复(学识疏浅了)
得到文件,进入:
得到一堆东西,而且发现flag,交吧交吧,你会发现,它是错的。那么只能去看if语句了,它都给条件了,那么我们直接复制粘贴输出,看看是不是正确的答案:
flag = 'IAMrG1EOPkM5NRI1cChQDxEcGDZMURptPzgHJHUiN0ASDgUYUB4LGQMUGAtLCQcJJywcFmddNno/PBtQbiMWNxsGLiFuLwpiFlkyP084Ng0lKj8GUBMXcwEXPTJrRDMdNwMiHVkCBFklHgIAWQwgCz8YQhp6E1xUHgUELxMtSh0xXzxBEisbUyYGOx1DBBZWPg1CXFkvJEcxO0ADeBwzChIOQkdwXQRpQCJHCQsaFE4CIjMDcwswTBw4BS9mLVMLLDs8HVgeQkscGBEBFSpQFQQgPTVRAUpvHyAiV1oPE0kyADpDbF8AbyErBjNkPh9PHiY7O1ZaGBADMB0PEVwdCxI+MCcXARZiPhwfH1IfKitGOF42FV8FTxwqPzBPAVUUOAEKAHEEP2QZGjQVV1oIS0QBJgBDLx1jEAsWKGk5Nw03MVgmWSE4Qy5LEghoHDY+OQ9dXE44Th0='
key = 'this is key'
print(decrypt1(base64.b64decode(decrypt2(flag, decrypt2('AAAAAAAAAAAfFwwRSAIWWQ==', key)))))