当前位置: 首页 > news >正文

BUUCTF 逆向工程(reverse)之Java逆向解密

程序员小张不小心弄丢了加密文件用的秘钥,已知还好小张曾经编写了一个秘钥验证算法,聪明的你能帮小张找到秘钥吗? 注意:得到的 flag 请包上 flag{} 提交

下载好题目后,发现它是个以.class为后缀的。所以用JD-GUI打开这个文件。就可以看到Java代码

import java.util.ArrayList;
import java.util.Scanner;public class Reverse {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("Please input the flag );String str = s.next();System.out.println("Your input is );System.out.println(str);char[] stringArr = str.toCharArray();Encrypt(stringArr);}public static void Encrypt(char[] arr) {ArrayList<Integer> Resultlist = new ArrayList<>();for (int i = 0; i < arr.length; i++) {int result = arr[i] + 64 ^ 0x20;Resultlist.add(Integer.valueOf(result));} int[] KEY = { 180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65 };ArrayList<Integer> KEYList = new ArrayList<>();for (int j = 0; j < KEY.length; j++)KEYList.add(Integer.valueOf(KEY[j])); System.out.println("Result:");if (Resultlist.equals(KEYList)) {System.out.println("Congratulations);} else {System.err.println("Error);} }
}

这里有两步,第一步:是在主函数main上输入flag,再调用Encrypt来进行加密

public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("Please input the flag );String str = s.next();System.out.println("Your input is );System.out.println(str);char[] stringArr = str.toCharArray();Encrypt(stringArr);}

第二步就是通过逆向Encrypt函数来获取flag

public static void Encrypt(char[] arr) {ArrayList<Integer> Resultlist = new ArrayList<>();for (int i = 0; i < arr.length; i++) {int result = arr[i] + 64 ^ 0x20;Resultlist.add(Integer.valueOf(result));} int[] KEY = { 180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65 };ArrayList<Integer> KEYList = new ArrayList<>();for (int j = 0; j < KEY.length; j++)KEYList.add(Integer.valueOf(KEY[j])); System.out.println("Result:");if (Resultlist.equals(KEYList)) {System.out.println("Congratulations);} else {System.err.println("Error);} }

这题很好理解,就是输入的每个字符都加上64 ^ 0x20

for (int i = 0; i < arr.length; i++) int result = arr[i] + 64 ^ 0x20;

然后再和KEY进行比较,相等就是我们要求的flag了

if (Resultlist.equals(KEYList)) System.out.println("Congratulations);

这里放上Python3的求解代码:

key = [ 180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65 ]
flag = ""for i in range(0,len(key)):for x in range(0,1024):     # 这里通过暴力破解来获取flagtemp = x + 64 ^ 0x20    # 每个字符都加上固定的64 ^ 0x20if temp == key[i]:      # 如果相等就表示这是我们要的flag字符flag = flag + chr(x)break
print("flag{"+flag+"}")

运行上面的代码为:flag{This_is_the_flag_!}
在这里插入图片描述

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

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

用 Python 进行游戏开发

1. pgzero python在各个领域都有着丰富的第三方库,pygame是python在游戏领域的应用库,可以用来开发各种不同的游戏。但是对于初学者来说,还是存在一定的门槛。 而今天要和大家分享的pgzero(pygame zero)是在pygame基础上做了进一步的封装,使得设计一款游戏十分的方便,…...

C语言之重定向和文件(更新中)

一、C程序中要包含stdio.h头文件才可以直接使用putchar()、getchar()函数、printf()函数&#xff0c;scanf()函数&#xff0c;它们都是C语言标准I/O包的成员。 二、ANSI C 和后续的C标准都规定输入是缓冲的。缓冲区的大小取决于系统&#xff0c;常见大小512字节和4096字节。 缓…...

链表 + 数组模拟链表

链表的指针实现 1.指针 #include<iostream> using namespace std; int main(){int a 5;int *p; // int 型的指针double *q; //double 型的指针p &a;// cout << p 指向 acout << *p << endl; //间接输出 areturn 0; }2.申请动态内存&#xff08…...

第一次动手构建 Linux 内核(未完待续)

目录背景机器参数参考链接操作流程步骤1&#xff1a;下载 Linux 内核源码步骤 2&#xff1a;解压源码步骤 3&#xff1a;下载所需软件包步骤 4&#xff1a;内核配置步骤 5&#xff1a;开始构建&#xff01;未完待续背景 这两天读《UNIX传奇&#xff1a;历史与回忆》这本书&…...

Spring学习:工厂方法创建 Bean

目录通过调用静态工厂方法创建 Bean通过调用实例工厂方法创建 Bean通过调用静态工厂方法创建 Bean 调用静态工厂方法创建 Bean是将对象创建的过程封装到静态方法中。当客户端需要对象时, 只需要简单地调用静态方法, 而不同关心创建对象的细节。 要声明通过静态方法创建的 Bean:…...

2021年Java开发爆款推荐!docker部署tomcat

一.java基础面试知识点 java中和equals和hashCode的区别 int、char、long各占多少字节数 int与integer的区别 探探对java多态的理解 String、StringBuffer、StringBuilder区别 什么是内部类&#xff1f;内部类的作用 抽象类和接口区别 抽象类的意义 抽象类与接口的应用…...

阿里P8大牛亲自讲解!java静态变量和实例变量

Redis主从复制 概念 Redis的主从复制概念和MySQL的主从复制大概类似。一台主机master&#xff0c;一台从机slaver。master主机数据更新后根据配置和策略&#xff0c;自动同步到slaver从机&#xff0c;Master以写为主&#xff0c;Slave以读为主。 主要用途 读写分离&#xff1…...

品牌应该如何把握抖音电商的红利:深度拆解花西子如何通过抖音电商一年销售1亿+

最近抖音电商正在逐渐起势&#xff0c;前一阵子老赵去参加了抖音的电商大会和千川大会&#xff0c;从这两个会的火爆程度我们就可以看出&#xff0c;越来越多的品牌正在涌向抖音电商平台&#xff0c;并且越来越重视这个平台。抖音电商将是品牌们的新战场&#xff0c;这个平台让…...

Layui快速入门(2021.06.15)

第一步&#xff1a;下载layui文件 第二步&#xff1a;新建项目&#xff0c;导入下载的文件夹 第三步&#xff1a;参考文档开发 1.layui入门html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>la…...

Mysql异常之Communications link failure

前天线上出现数据数据抖动&#xff0c;收到大量异常告警&#xff0c;都要疯了&#xff0c;数据库出现大量异常&#xff0c;肯定第一件事就是看下数据库监控数据&#xff0c;发现有一个从分片执行时间有一个50多秒的操作&#xff0c;这里肯定有问题了&#xff0c;第一时间找了db…...

储备未完待续

储备 如何精准熬一人份的粥 如何快速晾凉一碗粥 3M手套和钢铁侠 洗手盆三件套 三种门锁、两个门锁 制作书签的一种方法 摩托车和汽车的排气筒 变形金刚和巴巴爸爸 横向冲击和纵向冲击 我和图书馆 影响我的三本书 曲黎敏、亨利我们会追上你的、穷理查历书...

如何成为一个成功的 Java 开发人员?

【此文章转自乐字节】 如果你是一名成功的Java程序员&#xff0c;那么在任何公司中的Java开发人员中&#xff0c;你都有机会获取一席之地。 前言 在当今时代&#xff0c;有很多编程语言可能会塑造我们的未来。然而&#xff0c;当我们开始学习编程时&#xff0c;我们总是从C语…...

代理和负载均衡的详细说明是什么

对客户端提供的代理服务&#xff0c;在客户端无法直接访问服务端的情况下&#xff0c;星池StarPool通过配置代理服务器的方式访问服务端。在整个过程中&#xff0c;客户端请求首先发送到代理服务器&#xff0c;代理服务器再将请求发送到服务端后将结果返回给客户端。从服务端角…...

使用DNSObserver检测DNS安全漏洞

关于DNSObserver DNSObserver是个功能强大的DNS服务&#xff0c;该工具使用Go语言开发&#xff0c;可以帮助广大研究人员轻松检测各种类型的盲注漏洞。它可以监控渗透测试人员所搭建服务器的带外DNS交互信息&#xff0c;并通过Slack发送查询通知。DNSObserver可以帮助我们寻找的…...

整理了 34 个 Python 自动化办公库

本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,希望能够对大家有所帮助。 Python Excel自动化库 // 1.xlwings 库 官网: https://www.xlwings.org/ 特点:xlwings 是开源且免费的,预装了 Anaconda 和 WinPython,可…...

为什么自己干了这么多活,最后功劳都是别人的?

【本文只针对IT行业技术岗】 一、粉丝留言 自己每天加班到10点&#xff0c;有时候都到凌晨&#xff0c;周6基本全勤&#xff0c;公司项目忙的时候周日还去加班&#xff0c; 做过的项目无数&#xff0c;很多项目都给公司带来了丰厚的利润。 年底年终奖比别人少了一个月&…...

pytest(10)-参数化详解

先看如下情况&#xff0c;即为了测试一个函数&#xff0c;列举了三个测试用例&#xff0c;每个用例其实就是参数不同而已 在test_example.py 文件中编写如下代码&#xff1a; def add(a,b):return (ab)def test_1():assert add(3,5)8def test_2():assert add(2,4)7def test_3(…...

防(反)浏览器指纹技术之指纹浏览器揭秘

什么是指纹浏览器? 首先&#xff0c;这个指纹并不是上班打卡的指纹&#xff0c;也不是你家指纹锁的指纹&#xff01; 这里指的浏览器指纹是指通过浏览器的各种信息&#xff0c;如系统字体、屏幕分辨率、浏览器语言、时区等等&#xff0c;无需 cookie 等技术&#xff0c;就能…...

2021全球暑期量子学习日程汇总,谷歌量子夏季研讨会正在报名中

今日小暑&#xff0c;虽酷热&#xff0c;但学习热忱不减&#xff0c;尤其是在各个科技巨头和高等院校接连发布了量子暑期班的招募通告后&#xff0c;大家可以妥善安排&#xff0c;“错峰出行”。 近日&#xff0c;谷歌也发布了暑期会议相关通告&#xff0c;其量子夏季研讨会 (…...

STM32使用STM32CubeMX配置引脚中断

前言 嵌入式系统中&#xff0c;外部中断&#xff0c;是一个比较常见的功能。中断的灵活使用&#xff0c;大大增强了系统的实时性。使用STM32 最新的HAL库&#xff0c;如何配置一个引脚中断呢&#xff1f; 配置中断 可以借助STM32提供的可视化软件&#xff1a;STM32CubeMX&#…...

整理了 34 个 Python 自动化办公库

本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,希望能够对大家有所帮助。 Python Excel自动化库 // 1.xlwings 库 官网: https://www.xlwings.org/ 特点:xlwings 是开源且免费的,预装了 Anaconda 和 WinPython,可…...

FOXIT PDF SDK 8.1 ALL Crack

Foxit PDF SDK&#xff08;Windows版&#xff09; 提供三种库&#xff1a;C库、C#&#xff08;.NET&#xff09;库、和Java库&#xff0c;Ω578867473在客户端和服务端环境下均可运行&#xff08;32位和64位系统&#xff09;。 查看PDF 我们的核心API针对桌面和移动平台进行了优…...

wimform 继承窗体卡顿解决

get { const int CS_NOCLOSE 0x200; CreateParams cp base.CreateParams; cp.ClassStyle cp.ClassStyle | CS_NOCLOSE; if (!DesignMode) { cp.ExStyle...

【DDD架构】

DDD&#xff08;domain driven design&#xff09;领域驱动设计模型 一、DP(domain primitive) 1、什么是DP dp是一种基本类型&#xff0c;包括type&#xff08;数据类型&#xff09;和class&#xff08;类&#xff09;。 public class PhoneNumber {private final String …...

从入门到放弃:Markdown中的LaTeX使用教程

LaTeX CSDN不支持显示的语法我已用 标注显示 基本语法 展现形式 在正文中的LaTeX公式用$...$定义行内公式&#xff0c;$$...$$单独居中显示 希腊字母 显示命令显示命令α\alphaβ\betaγ\gammaδ\deltaε\epsilonζ\zetaη\etaθ\thetaι\iotaκ\kappaλ\lambdaμ\muν\…...

2021-2027全球与中国PVC医药包装(单片制药包装)市场现状及未来发展趋势

报告摘要 本文研究全球及中国市场PVC医药包装&#xff08;单片制药包装&#xff09;现状及未来发展趋势&#xff0c;侧重分析全球及中国市场的主要企业&#xff0c;同时对比北美、欧洲、中国、日本、东南亚、印度等地区的现状及未来发展趋势。 2020年全球PVC医药包装&#xff…...

前端类库开发最佳实践

Yarn Lerna Rollup 示例项目 Yarn 通过使用 Yarn 的工作区功能&#xff0c;让 Yarn 根据就依赖关系帮助你分析所有子项目的公共依赖&#xff0c;让所有的子项目的公共依赖只会被下载和安装一次。 Lerna 通过 Lerna 可以将一系列相互耦合比较大、又相互独立的库进行管理&…...

用 Python 进行游戏开发

1. pgzero python在各个领域都有着丰富的第三方库,pygame是python在游戏领域的应用库,可以用来开发各种不同的游戏。但是对于初学者来说,还是存在一定的门槛。 而今天要和大家分享的pgzero(pygame zero)是在pygame基础上做了进一步的封装,使得设计一款游戏十分的方便,…...

用 Python 进行 OCR 图像识别

数据采集就怕遇到图片,只能看不能复制怎么办。手动将文字提取出来,要耗费很大的工作量。 例如下图,某楼盘的一房一价表,怎么样发现单价低位的房子?光凭肉眼很难发现吧,能否让计算机进行文字的识别,然后再对这些数值型信息进行数据分析? 首先把图片中的单价提取出来, …...

数据结构与算法常用总结

数据结构1.常用数据结构及其原理1.1 数组1.2 链表1.3 队列1.4 栈1.5 哈希表1.6 二叉树2.常见数据结构面试题2.1数组和链表的区别2.2 排序算法2.3 栈结构与队列的区别1.常用数据结构及其原理 1.1 数组 每一个数组元素的位置由数字编号&#xff0c;称为下标或者索引(index)。大根…...

dbc2000 注册机|dbc2000 注册码注册机下载

点击下载来源&#xff1a;dbc2000 注册机 dbc2000 注册机是同名源程序软件的注册机软件&#xff0c;该源程序软件是一款应用于数据库搭建以及数据写入的数据库架设工具&#xff0c;它拥有强大的数据写入功能&#xff0c;在作为应用程序使用时&#xff0c;它不仅可以充当数据属性…...

秋招面经第八弹:网易二面-数据开发工程师

秋招第八弹&#xff1a;网易二面-数据开发工程师 写在最前&#xff1a;秋招以来一直在冲&#xff0c;因为事情比较多&#xff0c;对于笔试面试一直没有复盘&#xff0c;现在靠仅存的记忆把面试的一些问题记录下来&#xff0c;尽可能记录出能回忆到的问题&#xff0c;但可能记的…...

安卓课程格子APP

https://download.csdn.net/download/weixin_57836618/73810452 功能演示&#xff1a; 查看所有课程 点击主页面空白处即可添加课程 添加课程之后查看课程 查看双周课程 查看单周课程 6.查看课程详情...

强化学习——格子世界

强化学习——格子世界 项目源码地址&#xff1a;https://gitee.com/infiniteStars/machine-learning-experiment 1. 实验内容 2. 实验代码 import numpy as np import matplotlib.pyplot as plt from matplotlib.table import Table from xml.dom.minidom import Document #手…...

华为机试 - 跳格子游戏

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 地上共有N个格子&#xff0c;你需要跳完地上所有的格子&#xff0c;但是格子间是有强依赖关系的&#xff0c;跳完前一个格子后&#xff0c;后续的格子才会被开启&#xff0c;格子间的依赖关系由多组st…...

php 爬课程表信息,Ruby爬取教务系统生成课程表

我为什么要虐自己最近觉得课程格子广告越来越多&#xff0c;乱七八糟的东西越来越多&#xff0c;完全失去了一开始的存在价值&#xff0c;并且没有电脑端app&#xff0c;想查看课程必须拿出手机&#xff0c;而我使用电脑频率要比手机高&#xff0c;所以才有了折腾的动力。于是我…...

android 课程表 ui,UICollectionViewLayout实现课程表布局

因为项目中有课程表的相关模块&#xff0c;第一时间想到用UICollectionView。然而后期的需求越来越复杂&#xff0c;每个格子需要展示的内容越来越多&#xff0c;所以不得不寻找合适的解决方案。最后发现自定义UICollectionViewLayout可以实现我的需求。先放效果图&#xff1a;…...

Android自定义View课程表,Android 自定义View课程表表格

自己闲下来时间写的一个课表控件使用的自定义LinearLayout 里面View都是用代码实现的 最终效果如下图 写的可能有问题希望多多指点创建一个自定义LinearLayout 控件用来装载课程的信息和课程的周数 和节数大概的布局三这样的根据上面的看来觉得总体布局我分了两个 上面的星期是…...

java课程设计设计_java课程设计

1. 团队课程设计博客链接https://www.cnblogs.com/choco1ate/p/12172223.html2.本组课题及本人任务本组课题&#xff1a;泡泡堂(炸弹人)游戏本人任务&#xff1a;Box类(游戏地图中的每个方格)Bomb类(游戏过程中的)游戏玩家输赢信息的文件储存3.需求分析Box类&#xff1a;该类为…...

《课程格子》的一个笔试题目

题目如下&#xff0c;感觉很适合喜欢琢磨的程序员&#xff0c;也是考验你编码风格的时候。 Lets make a tower defense game&#xff08;塔防游戏):1. You have 1 tower, with H health and D dps(damage per second).2. There are n attackers, each with h_i health and d_i …...

Android仿照超级课程表 or 课程格子 一键提取课表功能(方正系统)

参考文章http://blog.csdn.net/sbsujjbcy ,本文仿照‘ 安卓弟 提供的android 项目实战——打造超级课程表一键提取课表功能文章&#xff0c;对他的代码进行了修改和补充&#xff0c;为什么要修改呢&#xff1f;原因是安卓弟的那个源码版本过于老旧&#xff0c;很多方法已经过…...

疯狂的程序员 41-50

&#xff08;41&#xff09; 网吧 绝影想了想&#xff0c;还是摇了摇头&#xff0c;这反而让周总更加充满了疑惑。 日子一天一天过去&#xff0c;DAP的进展是越发困难&#xff0c;周总和绝影对这个CASE彼此都是心照不宣。直到有一天&#xff0c;周总极其神秘地把绝影叫进办公室…...

上海创蓝253董事长_从世界记忆大师到互联网百强企业CEO:创蓝253钛牛哥的传奇之路...

7月27日&#xff0c;中国互联网协会、工业和信息化部信息中心在厦门召开2018年中国互联网企业100强发布会暨百强企业论坛&#xff0c;联合发布了“2018年中国互联网企业百强”榜单。值得关注的是&#xff0c;阿里、腾讯、百度、京东、网易依然稳居前五&#xff0c;但阿里巴巴集…...

34岁程序员面试谈薪资35K被砍5K,网友:这么降不如在家睡觉。。。

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐点击领取全栈资料&#xff1a;全栈资料互联网就业市场的“35岁现象”已经成为了不少打工人的难言之隐&#xff0c;近日&#xff0c;有网友在职场论坛脉脉上发帖称&#xff0c;34岁的程序员面试时谈薪资被砍5K&#xff0c;引…...

34岁程序员面试谈薪被砍5K,网友:这么谈...

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]点击领取全栈资料&#xff1a;全栈资料互联网就业市场的“35岁现象”已经成为了不少打工人的难言之隐&#xff0c;近日&#xff0c;有网友在职场论坛脉脉上发帖称&#xff0c;34岁的程序员面试时谈薪资被砍5K&#xff0c;引…...

34 岁程序员面试谈薪资被砍 5K,网友: “IT码农”的难言之隐!

点击上方“Java精选”&#xff0c;选择“设为星标”别问别人为什么&#xff0c;多问自己凭什么&#xff01;下方留言必回&#xff0c;有问必答&#xff01;每天 08:00 更新文章&#xff0c;每天进步一点点...互联网就业市场的“35岁现象”已经成为了不少打工人的难言之隐&#…...

34岁程序员面试谈薪资被砍5K,网友:这么降不如在家睡觉

互联网就业市场的“35岁现象”已经成为了不少打工人的难言之隐&#xff0c;近日&#xff0c;有网友在职场论坛脉脉上发帖称&#xff0c;34岁的程序员面试时谈薪资被砍5K&#xff0c;引发网友热议。 有不少人认为虽然竞争激烈&#xff0c;但是不能为此就降低自己的标准&#xff…...

做好cpc广告的五部攻略 你就能日出百单

五部功法&#xff0c;练就亚马逊出单王&#xff01; 五部功法不娴熟&#xff0c;活该成为零单侠&#xff01; 不知道有没有人跟我一样&#xff0c;做了一年多的亚马逊&#xff0c;每天的出单量一直平平&#xff0c; 从来没有达到过十位数。Listing也优化了&#xff0c;图片也调…...

使用宝塔面板一键部署调查问卷系统

卷王调查问卷系统是目前最强大的开源调查问卷系统&#xff0c;下面介绍如何使用宝塔面板快速部署。 首先进入卷王调查问卷系统的最新版本发布页面&#xff0c;点击下载最新的版本&#xff0c; surveyking-h2-vx.x.x.jar 登录宝塔面板&#xff0c;安装 java 插件 将下载的 jar …...

Java问卷调查系统

...