攻防世界 逆向 Guess-the-Number

攻防世界 逆向 Guess-the-Number

(原创)
原题如下:
攻防世界 逆向 Guess-the-Number_第1张图片
下载文件,是一个jar包,解压一下得到一个class文件。
攻防世界 逆向 Guess-the-Number_第2张图片
这个地方要用到一个反编译插件jadclipse,得到guess.class文件的源代码如下(全部)。

import java.io.PrintStream;
import java.math.BigInteger;

public class guess
{

    public guess()
    {
    }

    static String XOR(String _str_one, String _str_two)
    {
        BigInteger i1 = new BigInteger(_str_one, 16);
        BigInteger i2 = new BigInteger(_str_two, 16);
        BigInteger res = i1.xor(i2);
        String result = res.toString(16);
        return result;
    }

    public static void main(String args[])
    {
        int guess_number = 0;
        int my_num = 0x14d8f707;
        int my_number = 0x5c214f6c;
        int flag = 0x149b861a;
        if(args.length > 0)
        {
            try
            {
                guess_number = Integer.parseInt(args[0]);
                if(my_number / 5 == guess_number)
                {
                    String str_one = "4b64ca12ace755516c178f72d05d7061";
                    String str_two = "ecd44646cfe5994ebeb35bf922e25dba";
                    my_num += flag;
                    String answer = XOR(str_one, str_two);
                    System.out.println((new StringBuilder("your flag is: ")).append(answer).toString());
                } else
                {
                    System.err.println("wrong guess!");
                    System.exit(1);
                }
            }
            catch(NumberFormatException e)
            {
                System.err.println("please enter an integer \nexample: java -jar guess 12");
                System.exit(1);
            }
        } else
        {
            System.err.println("wrong guess!");
            int num = 0xf4240;
            num++;
            System.exit(1);
        }
    }
}

想要得到flag,必须要运行的是try中的部分。
我对代码做了如下修改:
攻防世界 逆向 Guess-the-Number_第3张图片
将if-else语句去掉,之后为了使(my_number / 5 == guess_number)条件成立,我将变量my_number和guess_number均改为0。
直接运行,得到运行结果:
your flag is: a7b08c546302cc1fd2a4d48bf2bf2ddb

你可能感兴趣的:(逆向)