python写的一个简单的ctf
本帖最后由 wmsuper 于 2018-12-1 12:19 编辑flag以“@52pojie.cn"结尾。题目来源于某个ctf,稍微改了一下,最先做出来有500CB的奖励,希望大家喜欢。
enjoy it {:301_978:}
链接:https://pan.baidu.com/s/1qClRQhH4pNSHc7YrjbNnwQ {:17_1083:} 不懂python,没法愉快的玩耍了 看来是。 import struct
import sys
import base64
import zlib
code = []
pc = 0
def exec_instruction(a, b, c):
global code
code -= code
code &= 4294967295L
ret = False
if code & 2147483648L != 0 or code == 0:
ret = True
if c != 0:
return ret
else:
return False
def exec_vm(entry, size):
global pc
pc = entry
while pc + 3 <= size:
if exec_instruction(code, code, code):
if code == -1:
return
pc = code
else:
pc += 3
if code == 1:
sys.stdout.write(chr(code))
code = 0
code = 0
if code == 1:
c = sys.stdin.read(1)
code = ord(c)
code = 0
def main():
code_base64 = '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'
bin_code = zlib.decompress(base64.b64decode(code_base64))
for i in range(0, len(bin_code), 4):
code.append(struct.unpack('I', bin_code))
back_code = code
exec_vm(1123, len(code))
if __name__ == '__main__':
main()
源代码,flag弄不出来,水平有限 学会了,谢谢楼主 onmiuncai 发表于 2018-12-1 14:38
不懂python,没法愉快的玩耍了 看来是。
c版的,密钥和算法一样的,希望大佬玩得开心:https://pan.baidu.com/s/1efeTLJ_ME-0bSMdTAlJ-ug 呃,刚学会hello Word lvcaolhx 发表于 2018-12-1 14:40
import struct
import sys
import base64
老哥,这源码咋弄得啊?,我照网上先转pyc,结果转了一大堆,也不知道是哪个 guidao 发表于 2018-12-2 00:39
老哥,这源码咋弄得啊?,我照网上先转pyc,结果转了一大堆,也不知道是哪个
用pyinstxtractor.py生成py4py.exe_extracted文件夹,里面有py4py没后缀名的这个 这个零基础怎么学,难不难啊 不错不错