python_crackme(2019安恒杯1月月赛)

(拿安恒杯1月月赛的题目she来讲)首先,你会拿到一个由python编译的exe文件,使用pyinstxtractor.py脚本(下载地址:https://sourceforge.net/projects/pyinstallerextractor/
)反编译exe文件

image.png

得到一个文件夹里面有一大堆东西

image.png

用010editor打开与exe文件同名的二进制文件

image.png

添加上python3.6的.pyc文件的文件头(即前12字节)然后再加上后缀名.pyc

image.png

再在线反编译一下(反编译地址:https://tool.lu/pyc/)即可得到python源码:

#!/usr/bin/env python
# encoding: utf-8
# 如果觉得不错,可以推荐给你的朋友!http://tool.lu/pyc
import os
n1 = input('Tell me your name?')
n2 = input('Tell me your pasw')
n11 = chr(ord(n1[0]) + 12)
s = ''
st3 = '51e'
st2 = '9f1ff1e8b5b91110'
st1 = 'c4e21c11a2412'
st0 = 'wrong'
if n11 + 'AnHeng' == n2:
    for i in range(0, 4):
        s += st1[3 - i]

    print('Congratulations')
    ts = st2[0] + st3 + st2[1] + s
    print('flag{' + st3[:1] + st1 + st2 + st3[-2:] + '}')
    os.system('pause')
else:
    print('no,' + st0)
import os
n1 = input('Tell me your name?')
n2 = input('Tell me your pasw')
n11 = chr(ord(n1[0]) + 12)
s = ''
st3 = '51e'
st2 = '9f1ff1e8b5b91110'
st1 = 'c4e21c11a2412'
st0 = 'wrong'
if n11 + 'AnHeng' == n2:
    for i in range(0, 4):
        s += st1[3 - i]

    print('Congratulations')
    ts = st2[0] + st3 + st2[1] + s
    print('flag{' + st3[:1] + st1 + st2 + st3[-2:] + '}')
    os.system('pause')
else:
    print('no,' + st0)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天有点咸🐟想做一只没有梦想的搬运工 十六进制编辑器 十六进制编辑器(二进制文件编辑器或字节编辑器)是一种允许操纵...
    Honny_Boo阅读 7,224评论 0 7
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,150评论 1 3
  • 本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入...
    小小不懂11阅读 8,731评论 2 30
  • 你说喜欢看什么 我说你选的都喜欢 人真的是矛盾的动物 喜欢你就什么都可以 喜欢你就喜欢你喜欢的一切 喜欢改变你不喜...
    爱粉阅读 2,999评论 3 11
  • 2019年1月1日,深圳 诶、又吵架了…… 天气怎么样忘记了,现在是3号, 他回老家了,我一个人在家,码下这些字。...
    内心狭隘阅读 891评论 0 0