[AFCTF 2018]JPython

小祥为了保护自己的代码,修改了部分Python Bytecode指令集,并把这个指令集称之为JPython, JPython只能在他私人定制的环境上才能运行,其他人无法得到这个环境。 现在,小明为了获取小祥代码中的秘密,收集到了三个文件 hash.pyc 可以直接使用Python 2.7运行的脚本 Jhash.pyc 通过hash.pyc转化而成的只能在JPython环境上运行的脚本 Jflag.pyc 藏着小祥最大的秘密,但是只能在JPython的环境运行。 谁能帮助小明得到小祥代码里的秘密呢?

给了三个附件
image.png
将hash.pyc与Jhash.pyc进行对比,得到修改后的opcode

f1 = open(r"hash.pyc", 'rb').read()
f2 = open(r"Jhash.pyc", 'rb').read()
t = {}
for i in range(len(f1)):
    if f1[i] != f2[i]:
        t[f2[i]] = f1[i]
print(t)

{148: 100, 117: 108, 69: 90, 149: 101, 39: 24, 35: 20, 38: 23}
然后用uncompyle6反汇编
image.png
加密过程:base64加密->异或7
写出对应的解密脚本

import base64

enc = "^P]mc@]0emZ7VOZ2_}A}VBwpbQ?5e5>lN4UwSSM>L}A}"
enc = ''.join(chr(ord(c) ^ 7) for c in enc)
print(enc)
print(base64.b64decode(enc))

YWZjdGZ7bj]0QH]5XzFzQEpweV82b29kI3RpTTJ9KzFz
base64应该没有[
可能多替换了一个

print(ord(']') ^ 7)

得到多替换的是90,将得到字典,删去69: 90

f1 = open(r"hash.pyc", 'rb').read()
f2 = open(r"Jhash.pyc", 'rb').read()
t = {}
for i in range(len(f1)):
    if f1[i] != f2[i]:
        t[f2[i]] = f1[i]
print(t)
x = {148: 100, 117: 108, 149: 101, 39: 24, 35: 20, 38: 23}
print(x)
f3 = open(r"Jflag.pyc", 'rb').read().decode('ISO-8859-1')
t3 = f3.translate(x).encode('ISO-8859-1')
open(r"flag.pyc", 'wb').write(t3)

重新uncompyle6反汇编
image.png
得到正确的密文^P]mc@]0emE7VOE2_}A}VBwpbQ?5e5>lN4UwSSM>L}A}
重新写一个解密脚本

import base64

enc = "^P]mc@]0emE7VOE2_}A}VBwpbQ?5e5>lN4UwSSM>L}A}"
enc = ''.join(chr(ord(c) ^ 7) for c in enc)
print(enc)
print(base64.b64decode(enc))

YWZjdGZ7bjB0QHB5XzFzQEpweV82b29kI3RpTTJ9KzFz
b'afctf{n0t@py_1s@Jpy_6ood#tiM2}+1s'

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/669997.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LangChain实战技巧之四:当模型(Model)不支持Tool/Function的解决办法

文心大模型两大主力模型已全面免费,可参考我之前发的文章 AI菜鸟向前飞 — 今日三则AI相关新闻 但是,这些模型原生并不支持Tool/Function Call 如下所示: tool def greeting(name: str):向朋友致欢迎语return f"你好啊, {name}"…

xilinx ip自带XDC只读

检查生成的IP核再目录下显示的文件类型是不是.xcix 如果是的话,重新生成为.xci 再二次编辑即可 或者 将框柱的部分不选择,从新生成

在潮流时尚的绿地新都会,竟然藏了一家神奇的工作室

绿地新都会新开的国学文化工作室有点不一样!拜师终南山汇通中西方文化融合东西方数术更适合中国宝宝体质的新天地 探索人生规律,改善家居环境,强化自身能量 查看人生剧本,观看图卡心理学TAROT 关于创始人妙霏老师 生活环境研究…

AWS 高防和阿里云高防深度对比

随着网络攻击的不断增加,企业对于网络安全的需求也越来越高。在这种情况下,高防护服务成为了企业网络安全的重要组成部分。AWS和阿里云作为全球领先的云计算服务提供商,都提供了高防护服务,但它们之间存在着一些差异。我们九河云一…

WebGL开发三维家装设计

使用WebGL开发三维家装设计软件是一项复杂而有趣的任务,涉及3D建模、渲染、用户交互等多个方面。以下是详细的开发步骤和技术要点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 需求分析 目标用户 家装设计师家装公…

二人订单共享结束制:终身受益的新模式

在当今快速发展的互联网时代,一个创新的商业模式总能引起广泛关注。其中,“二人订单共享结束制”以其独特的魅力,吸引了众多消费者和创业者的目光。这一模式不仅为消费者带来了实惠,更为创业者提供了一个全新的平台。 只需购买一…

机关——用钥匙开对应的门

代码展示 玩家背包代码&#xff08;挂载到玩家身上&#xff09; using System.Collections; using System.Collections.Generic; using UnityEngine; /// <summary> /// 玩家背包脚本&#xff0c;用来记录玩家道具 /// </summary> public class MyBag : MonoBeha…

2.8万字总结:金融核心系统数据库升级路径与场景实践

OceanBase CEO 杨冰 谈及数字化转型&#xff0c;如果说过去还只是头部金融机构带动效应下的“选择题”。那么现在&#xff0c;我相信数字化转型已经成为不论大、中、小型金融机构的“必答题”。 本文为OceanBase最新发布的《万字总结&#xff1a;金融核心系统数据库升级路径…

nssctf刷题总结

首先就是关于"\x00"截断问题&#xff0c;\x00被当做字符串的截止字符&#xff0c;这就很有趣了我们可以把\x00放在我们要发送数据的前面&#xff0c;经过\x00截断&#xff0c;后面的数据就不用读入了。。。。。。嘿嘿&#xff0c;好像听起来没什么用&#xff0c;确实…

CentOS7某天的samba服务搭建操作记录(还没成功)

#CentOS7 yum软件仓库阿里云 samba服务器配置失败 sensors成功了 (花了200元组装H61测试机&#xff0c;75元的主板只有一块能用&#xff0c;垃圾板但又不完全能用&#xff09; 2024.5月的某天记录如下&#xff1a; https://blog.csdn.net/dszgf5717/article/details/53732182 …

数据与结构——哈夫曼树

哈夫曼树的基本概念 哈夫曼树&#xff08;Huffman Tree&#xff09;是一种用于数据压缩的最优二叉树&#xff0c;广泛应用于哈夫曼编码中。其基本概念和构建方法如下&#xff1a; 基本概念 二叉树&#xff1a;哈夫曼树是一种特殊的二叉树。权重&#xff1a;每个节点都有一个…

【vue3 + Echarts 】中国地图省市区下钻,并返回上级

实现效果如果&#xff1a; echarts版本&#xff1a; 地图数据来源&#xff1a;阿里云数据可视化平台 代码 <template><div class"mapWrapper"><a-button type"primary" click"goBack">返回上级</a-button><div…

python编程:实现对数据库中图片文件的查看及比对

当谈到图像查看和管理时,我们往往会使用一些工具软件,比如Windows自带的照片查看器或者第三方工具。那如果你想要一个更加强大和定制化的图像查看器呢?这时候就需要自己动手写一个程序了。 C:\pythoncode\new\ShowSqliteImage.py 这里我们将介绍一个使用Python和wxPython编写…

赛轮集团受邀出席2024国际新能源智能网联汽车创新生态大会

赛轮集团受邀出席2024国际新能源智能网联汽车创新生态大会 5月22日-24日&#xff0c;以“汽车供应链的创新与重构”为主题的2024国际新能源智能网联汽车创新生态大会&#xff08;以下简称CIEV2024&#xff09;在温州瑞安隆重召开。会议期间&#xff0c;CIEV2024高端对话成功召…

Docker(Centos7+)

先确定是否 Centos 7 及以上的版本 查看是否 ping 通外网 linux centos7运行下面的代码&#xff0c;基本上都可以正常安装 # 删除之前的docker残留 yum -y remove docker*yum install -y yum-utilsyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/…

Linux、Windows安装python环境(最新版及历史版本指定版本)-python

目录 一、Linux环境二、windows环境最新版本下载指定版本下载配置VScode开发环境 python 官网地址&#xff1a; https://www.python.org/ 一、Linux环境 以openEuler/CentOS为例 查看可安装python源版本 dnf provides python*默认安装新版本 dnf install -y python3. 进入p…

拼多多商品信息一键抓取:深度解析商品详情接口,Python实战代码来袭!

拼多多的商品详情接口允许开发者通过指定的商品ID获取商品的详细信息&#xff0c;如商品标题、价格、描述、图片等。接口采用HTTP请求方式&#xff0c;支持GET方法&#xff0c;返回格式为JSON。 三、接口调用 要调用拼多多的商品详情接口&#xff0c;你需要遵循以下步骤&…

C++ vector的使用和简单模拟实现(超级详细!!!)

目录 前言 1.STL是什么 2.vector使用 2.1 vector简介 2.2 常用接口函数 1. 构造函数 2.operator[ ]和size&#xff0c;push_back 3. 用迭代器进行访问和修改 4. 范围for遍历 5.修改类型函数 pop_back find insert erase 6. 容量相关函数capacity resize reserve 3.…

【Node】Assertion testing 模块的使用

简言 node:assert 模块提供了一组用于验证不变式的断言函数。 node版本&#xff1a;20.14.0 Assertion testing 测试断言模块 node:assert 模块是一个测试相关的模块。 严格模式和非严格模式 感觉该模块的严格模式和js的严格模式相匹配&#xff0c;非严格模式也是这样的。…

掘金AI 商战 宝典 进阶班:如何用AI绘画设计(实战实操 现学现用 玩赚超值)

课程内容 10-第十讲用AI做网站设计 11-第十一讲用AI做艺术字 12-第十二讲用AI做室内设计(上) 13-第十三讲用AI做室内设计(下) 14-第十四讲用AI抠图与修图 15-第十五讲用AI修复模糊照片 16-第十六讲用AI自动做PPT(上) 17-第十七讲用AI自动做PPT(下) 18-第十八讲用AI做文…