逗比逆向之路.day1

python的EXE逆向

潜心修炼,从基础开始

这是一道python的逆向题

题目内容比较简单,但过程值得记录


解题流程

1.惯例查壳

在这里插入图片描述
64位程序,无壳

2.运行程序

在这里插入图片描述
让输入用户名密码

3.IDA反汇编

在这里插入图片描述
查看字符串,发现大量py开头的字符串,确定是python封装的exe

4.python 解封装

在这里插入图片描述
利用pyinstxtractor.py脚本对文件进行解封装

5.还原PYC

利用16进制编辑器,和struct文件,为AnhengRe文件还原
在这里插入图片描述
使用插入时粘贴,将struct比AnhengRE多的文件头,粘贴过来

6.反编译pyc

在这里插入图片描述
保存文件,并将其添加扩展名,pyc
然后利用python的类uncompyle6 库将pyc反编译为py
在这里插入图片描述

7.看代码
# uncompyle6 version 3.7.4
# Python bytecode 3.6 (3379)
# Decompiled from: Python 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]
# Embedded file name: AnhengRe.py
# Compiled at: 2017-06-17 19:57:18
# Size of source mod 2**32: 272 bytes
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)
# okay decompiling AnhengRE.pyc

8.获得答案

两种解法

  • 第一种:运行程序按规定输入
    在这里插入图片描述
st3 = '51e'
st2 = '9f1ff1e8b5b91110'
st1 = 'c4e21c11a2412'
print('flag{' + st3[:1] + st1 + st2 + st3[-2:] + '}')

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值