【re】 watevrCTF2019_Repyc

本文介绍了在watevrCTF2019中遇到的一个涉及Python pyc文件的逆向工程挑战。通过uncompyle工具将pyc反编译为py源码,发现在Python3中存在非ASCII字符。分析发现代码定义了一个包含大量if语句和运算符的函数,疑似虚拟机代码。作者进行了代码简化,以便于阅读和分析。通过对虚拟机的逐条指令解析,揭示了其功能——输入值经过异或和减法操作后与特定字符串比较,决定是否输出授权信息。最后,作者讨论了逆向此类编码处理的难点。
摘要由CSDN通过智能技术生成

这题给了个pyc。先用uncompyle反编译成py。

uncompyle6 3nohtyp.pyc >>sss.py

打开,然后惊了。

# uncompyle6 version 3.6.0
# Python bytecode 3.6 (3379)
# Decompiled from: Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
# [GCC 9.2.0]
# Embedded file name: circ.py
# Compiled at: 2019-12-14 02:29:55
# Size of source mod 2**32: 5146 bytes= 0= ~* ~佤
俴 =+def():= 佤
    굿 = 佤
    괠 = [] *** (*)= [] * 100= []
    while[][] != '듃':=[][].lower()=[][:]
        #print(괠 )
        #print(궓 )
        if== '뉃':[[]] =[[]] +[[]]
        elif== '렀':[[]] =[[]] ^[[]]
        elif== '렳':[[]] =[[]] -[[]]
        elif== '냃':[[]] =[[]] *[[]]
        elif== '뢯':[[]] =[[]] /[[]]
        elif== '륇':[[]] =[[]] &[[]]
        elif== '맳':[[]] =[[]] |[[]]
        elif== '괡':[[]] =[[]]
        elif== '뫇':[[]] =[[]]
        elif== '꼖':[[]] =[]
        elif== '뫻':[[]] =[[]]
        elif== '딓':[[]] =[[]]
        elif== '댒':[[]] =elif== '묇':[[]] =elif== '묟':[[]] = input([[]])
        elif== '꽺':[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值