py交易,被混淆的pyc文件
2021-10-30 00:35:28 Author: mp.weixin.qq.com(查看原文) 阅读量:56 收藏

每周五固定节目又来了!今天给大家带来的是第六题<py交易>,本题为re题型

各位看看这个标题,这是什么虎狼之词,差一点就想正了都。还好我是一个心里只有0和1的程序员,立马就把这道题想歪了,这一定是要考pyc文件了!

pyc是一种二进制文件,由py文件经过编译后生成,是一种byte code。py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,由Python的虚拟机来执行。如果不会使用python虚拟环境的这里给出实验室另一个<Python爬虫-scrapy简介与入门>实验做参考,python的虚拟环境可以给多项目开发带来很大的方便,建议有兴趣的都来学习一下。

本题给出的程序是被混淆过的,我们需要对pyc文件进行去混淆处理。混淆就是通过修改co_code 字段中的 opcode 序列,添加一些加载超出范围的变量的指令,再用一些指令去跳过这些会出错的指令,这样可以欺骗像 uncompyle 6 这类反编译的工具,让它误以为指令的序列不合法,但是又不影响真正的Python 虚拟机执行。

反汇编成功得到字节码后对程序进行分析,汇编是解CTF reverse题的基础这句话果然没有骗我,但是也没人告诉我分析出来了还要会一元二次方程啊(泪目)。不过实验指导书给出了两种解题脚本,一种通过一元二次方程的通解公式求解,第二种是爆破flag。还配有讲解视频,所以真的相信我,有手就行。

蓝帽杯的题到这里就告一段落了,下次带上新礼物相见!

下周我们同一时间见!

PC端练习地址:http://mrw.so/5KhfIZ

扫码直达

文章来源: http://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652882361&idx=2&sn=31161d4a080ce480b3dd29f768be1294&chksm=bd59b9748a2e3062e732ea00cae4ae12259ec287cd63dba6bb91a4696e5ce3a81fa7ae2af037#rd
如有侵权请联系:admin#unsafe.sh