首页
社区
课程
招聘
[原创]南邮ctf逆向py交易
发表于: 2019-2-18 13:54 4520

[原创]南邮ctf逆向py交易

2019-2-18 13:54
4520
这个题是python字节码文件,需要将字节码文件转换为对应的源代码
使用这个网站对pyc文件进行逆向操作:https://tool.lu/pyc/
逆向后的python代码如下:
#!/usr/bin/env python
# encoding: utf-8
# 如果觉得不错,可以推荐给你的朋友!http://tool.lu/pyc
import base64

def encode(message):
    s = ''
    for i in message:
        x = ord(i) ^ 32
        x = x + 16
        s += chr(x)
    
    return base64.b64encode(s)

correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
    print 'correct'
else:
    print 'wrong'

思路还是比较简单,就是将输入的flag经过encode()函数之后要等于correct,这里主要对encode()函数进行逆向操作。
b='XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
a=base64.b64decode(b)
for i in a:
	j=i-16
	j=j^32
	print(chr(j),end='')
答案:nctf{d3c0mpil1n9_PyC}



#!/usr/bin/env python
# encoding: utf-8
# 如果觉得不错,可以推荐给你的朋友!http://tool.lu/pyc
import base64

def encode(message):
    s = ''
    for i in message:
        x = ord(i) ^ 32
        x = x + 16
        s += chr(x)
    
    return base64.b64encode(s)

correct = 'XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
flag = ''
print 'Input flag:'
flag = raw_input()
if encode(flag) == correct:
    print 'correct'
else:
    print 'wrong'

思路还是比较简单,就是将输入的flag经过encode()函数之后要等于correct,这里主要对encode()函数进行逆向操作。
b='XlNkVmtUI1MgXWBZXCFeKY+AaXNt'
a=base64.b64decode(b)
for i in a:
	j=i-16
	j=j^32
	print(chr(j),end='')
答案:nctf{d3c0mpil1n9_PyC}

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//