【re】BUUCTF Java逆向解密

news/2024/5/19 21:26:19 标签: java, re, 逆向工程, CTF

题目:BUUCTF Java逆向解密


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

re>ref="/tags/JAVA.html" title=java>java">import ref="/tags/JAVA.html" title=java>java.util.ArrayList; import ref="/tags/JAVA.html" title=java>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!"); } } } re>

唯一有的说的就是那句

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

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

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

写代码!

re>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); re>

在这里插入图片描述

reeSkill">

http://www.niftyadmin.cn/n/5049245.html

相关文章

带大家走进熊猫烧香蠕虫病毒

病毒结构 含有病毒体的文件被运行后&#xff0c;病毒将自身拷贝至系统目录&#xff0c;同时修改注册表将自身设置为开机启动项&#xff0c;并遍历各个驱动器&#xff0c;将自身写入磁盘根目录下&#xff0c;增加一个Autorun.inf文件&#xff0c;使得用户打开该盘时激活病毒体。…

Anconda环境中python默认不是该环境下的python

&#xff08;我的操作环境是Unbuntu&#xff0c;不知道windows中是否适用&#xff09; 最近遇到一个比较困扰的问题&#xff0c;Anconda中自己环境下使用python和pip时&#xff0c;默认使用的不是该环境下的python和pip&#xff0c;以至于每次跑程序我都需要在python前加一长串…

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

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

python运算函数

简 python输入输出函数input() :用户用于读取键盘输入的函数&#xff0c;返回值为“string”类型 运算函数abs(x) &#xff1a;x的绝对值int(x) &#xff1a;将x转换成整型(截掉小数部分)float(x):浮点数divmod(x,y):返回&#xff08;x//y,x%y&#xff09;complex(re,im):返回一…

macOS使用官方安装包安装python

新手程序员可能想知道如何在 Mac 上正确安装 Python&#xff0c;这里介绍在 macOS 上安装 Python 的方法。 操作步骤 1.从 Python 官方网站 (python.org) 下载最新的 Python 版本. 单击 macOS 链接并选择最新的 Python 版本。 2.下载完成后&#xff0c;双击包开始安装Python…

进阶Linux服务器命令

1. 查询空间占用内存 du -h --max-depth1 /opt sortdu (disk usage)&#xff0c;含义为显示磁盘空间的使用情况&#xff0c;用于查看当前目录的大小 -h 以K&#xff0c;M&#xff0c;G为单位&#xff0c;提高信息的可读性 /opt是文件路径 2. 查看linux内存使用情况 free mto…

aisr接入指引

文章目录 aisr接入指引1. 导入依赖2. 添加配置3. 自行添加http接口api模板 4.加入业务逻辑处理类5.主方法启动6.公共APIpush消息到队列推送消息到rocketmq aisr接入指引 包括自动读配置,建立redis队列,mq对象,还有redis队列的异步多进程处理. 1. 导入依赖 pip install aisrfwk…

代码随想录day61|215. 数组中的第K个最大元素72. 编辑距离

215. 数组中的第K个最大元素 sort()函数底层就是快排&#xff0c;优化比自己写要好 class Solution:def findKthLargest(self, nums: List[int], k: int) -> int:#用快排&#xff0c;首先找到基准数&#xff0c;将所有小的放到左边&#xff0c;大的移到右边#递归左数组&…