【re】BUUCTF Java逆向解密

题目:BUUCTF Java逆向解密


没壳,是java文件(大概)
ida打开看不懂,找了网页上的java反编译
Decompiler.com
没用过java啊…暂且用sublime打开
还好还挺好懂的

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 ^ 32;Resultlist.add(result);}int[] KEY = new int[]{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(KEY[j]);}//KEYList和KEY的元素完全相同,就是一个是ArrayList<Integer>一个是int数组(?System.out.println("Result:");if (Resultlist.equals(KEYList)) {//Resultlist和KEYList相同System.out.println("Congratulations!");} else {System.err.println("Error!");}}
}

唯一有的说的就是那句

int result = arr[i] + 64 ^ 32;

注意加优先级比异或高,逆推得到

arr[i] = (result ^ 32) - 64

写代码!

int a[] = {180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65};for (int i = 0; i < sizeof(a) / sizeof(int); i++)cout << char((a[i] ^ 32) - 64); 

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Spring MVC】Spring MVC如何处理跨域请求(CORS)

文章目录 1. Spring MVC如何处理跨域请求呢2. Spring MVC处理CORS的几个组件2.1. CorsFilter2.2. CrossOrigin 前言&#xff1a;请了解什么是CORS&#xff08;跨域&#xff09; 参考&#xff1a;https://gitee.com/firefish985/article-list/tree/master/Spring/Spring Web MVC…

Java开发需要的网络基础知识,搞清楚计算机网络底层原理

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; 前言 计算机基础是…

手机基带芯片往事

手机基带芯片往事 手机基带芯片往事-虎嗅网 5G手机芯片简史-虎嗅网

Oracle拉链表

目录 -- 准备一个拉链表 -- 2.将所有的数据 同步到拉链表中 TEST_TARGET中 --3. 源表的数据发生了变化 --4. 将新增和修改的数据同步到拉链表 -- 开链的过程 -- 判断源表和目标表的数据,不同数据插入 --5. 修改拉链表中失效的时间和状态(将原本的开链时间,改为当前时间)-- …

怎样提高外贸业务销售能力

怎样提高外贸业务销售能力 一、市场分析与研究1. 了解目标市场&#xff1a;2. 收集客户信息&#xff1a; 二、产品知识和差异化竞争1. 熟悉产品&#xff1a;2. 差异化竞争&#xff1a; 三、制定销售策略和计划1. 制定销售计划&#xff1a;2. 销售策略&#xff1a; 四、谈判技巧…

【插件】页面引导库driver.js:

文章目录 一、效果图:二、实现思路:三、实现代码:【1】Driver.js 的技术特性【2】安装依赖【3】代码实现【4】 配置相关参数 一、效果图: 二、实现思路: 【官网】https://driverjs.com/docs/installation 【npm】https://www.npmjs.com/package/driver.js 【案例】改造driver.j…

HAProxy Data Plane API 实现对 haproxy 的配置管理

文章目录 前言一、安装1. 下载HAProxy Data Plane API2. 创建 Data Plane API 配置文件 /etc/haproxy/dataplaneapi.hcl3. 修改haproxy的配置文件 二、简单使用1. 查询请求2. 提交修改请求 总结 前言 我们平时对 haproxy 配置的修改&#xff0c;往往是 SSH 连接进去节点&#…

C++之std::function类模板定义函数对象应用总结(二百三十八)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

C#流Stream与IO详解(4)——如何更快的读写文件

【前言】 在我们追求更快读写速度时&#xff0c;通常都是为了读写二进制文件&#xff0c;而不是文本文件&#xff0c;所以这里只说FileStream、BinaryReader、BinaryWriter的使用。 从前文的源码解读中能看到使用BinaryReader和BinaryWriter进行IO读写时本质还是调用了FileSt…

如何使用canvas实现一个下雪的动效

下面是一个使用Canvas实现下雪动效的代码示例&#xff1a; <!DOCTYPE html> <html> <head><title>下雪特效</title><style>body {margin: 0;padding: 0;}canvas {display: block;background: black;}</style> </head> <bo…

.NET的键盘Hook管理类,用于禁用键盘输入和切换

一、MyHook帮助类 此类需要编写指定屏蔽的按键&#xff0c;灵活性差。 using System; using System.Runtime.InteropServices; using System.Diagnostics; using System.Windows.Forms; using Microsoft.Win32;namespace MyHookClass {/// <summary>/// 类一/// </su…

一文详解JDK8常用10个更新特性

今日一语&#xff1a;当你发现编程的规律就是世界的规律时&#xff0c;你就是一名真正的程序员 1 Lambda(蓝布达)表达式 编译后会产生一个$XXXImpl1的编译文件&#xff0c;与匿名内部类相似&#xff0c;但不等同于匿名内部类。 其原理是将方法作为参数进行传递&#xff0c; JV…

【深入浅出设计模式--命令模式】

深入浅出设计模式--命令模式 一、背景二、问题三、解决方案四、试用场景总结五、后记 一、背景 命令模式是一种行为设计模式&#xff0c;它可以将用户的命令请求转化为一个包含有相关参数信息的对象&#xff0c;命令的发送者不需要知道接收者是如何处理这条命令&#xff0c;多个…

php文件上传功能(文件上传)

实现文件上传是Web开发中常用的功能之一&#xff0c;而PHP也是支持文件上传的。那么&#xff0c;下面我们就来介绍一下常用的PHP实现文件上传的方法。 使用HTML表单实现文件上传 HTML表单是Web开发中最基本的元素之一&#xff0c;它可以接收用户输入的数据&#xff0c;并通过…

Python 笔记03(多线程)

一 打开命令行&#xff0c;查看本机IP windows r 命令行输入&#xff1a;cmd ipconfig 然后查看IPv4的地址&#xff1a;192.168.1*6.1 ipconfig 二 函数式多进程 from multiprocessing import Process import os, timedef func(name):print(进程的ID&#xff1a;, os.g…

大数据时代,数据治理

一、大数据时代还需要数据治理吗&#xff1f; 数据平台发展过程中随处可见的数据问题 大数据不是凭空而来&#xff0c;1981年第一个数据仓库诞生&#xff0c;到现在已经有了近40年的历史&#xff0c;相对数据仓库来说我还是个年轻人。而国内企业数据平台的建设大概从90年代末…

Docker 自动化部署(保姆级教程)

Docker 自动化部署 1. jenkins 介绍1.1 参考链接&#xff1a;1.2 jenkins 概述1.3 jenkins部署项目的流程 2. jenkins 安装2.1 基于docker 镜像2.2 启动 jenkins 后端服务2.3 登录 jenkins 服务后端 3. jenkins自动化部署开始3.1 下载需要的插件3.2 创建任务3.2.1 描述3.2.2 配…

使用bash脚本编译Qt工程

最近在搭建Qt工程的编译服务器&#xff0c;需要通过shell脚本执行工程的编译过程&#xff0c;写在这里&#xff0c;总结最近的工作。 1. 构建过程 以Windows为例&#xff0c;在QtCreator中左侧选择“项目”便可以看到编译的指令和参数&#xff0c;这些操作也会在我们点击“构建…

git管理常用命令

1、下载代码 git clone 地址2、软件代码提交 1、查看工程中被修改的文件&#xff1a;git status 2.将不需要提交的文件回退&#xff1a;git check <文件路径> 3.更新工程到最新&#xff1a;git pull 4.将本地代码添加到暂存区&#xff1a;git add <将要提交的文件路…

CAN总线数据链路层

CAN报文帧种类: 数据帧:用于发送节点向接收节点传送数据,是使用最多的帧类型远程帧:用于接收节点向某个发送节点请求数据错误帧:用于当某节点检测出错误时向其他节点通知错误的帧过载帧:用于接收节点向发送节点通知自身接收能力的帧帧间隔:将数据帧或远程帧与前面的帧分…