攻防世界 Guess-the-Number


title: 攻防世界 Guess-the-Number
date: 2021年8月9日 09点54分
tags: 攻防世界
categories: 攻防世界

这是一道后缀名为class的文件,之前学过一点java,知道这是.java,是源程序,而.class是.java编译之后的产物,又叫字节码文件。

第一次反编译java的,之前没有工具,百度一波之后,下载了反编译工具 jd—gui。

然后看题。

在这里插入图片描述

猜个数字?

在这里插入图片描述

1、PE查看

在这里插入图片描述

2、jd gui打开guess.class

在这里插入图片描述

(1)分析

分析代码,发现XOR是一个方法(函数),将_str_one 和 _str_two用这个方法(函数),通过一定的算法得到answer,我们可以看到下面有一句输出,your flag is: ,我们可以推测,这个answer就是我们的flag。通过代码,写一个java脚本。

(2)写java脚本

在这里插入图片描述

首先把不必要的信息剔除,先将这个方法(函数),原封不动的写出来,然后在主main函数中,写出两个字符串,在用answer接受结果,调用XOR,把两个参数传进去,然后输出answer,便是得到了flag。

在这里插入图片描述

your flag is: a7b08c546302cc1fd2a4d48bf2bf2ddb

(3)还有一个文件

在这里插入图片描述

可以看到,还有一个文件是MANIFEST.MF

百度一手,如下

可以通过记事本或者Editplus等文本编辑器打开,就可以分析里面的内容了。

MANIFEST.MF:这个 manifest 文件定义了与扩展和包相关的数据。

通过notepad++打开。

在这里插入图片描述

(4)总结

这个题,难度不是很大,代码分析也是很简单,主要是知道class文件的反编译方法和工具。下次再次遇见class文件,能明白一些。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值