SimpleRev
首先查壳,64位无壳

IDA里打开

看见了个Decry()函数,点进去,可以看到这个src和v9很明显是不正常的,然后选中src和v9,按H将其转换成十六进制,下面是转换完的


这里涉及到了一个大端序和小端序的概念
再接着选中二者,按R

根据上面的Join函数,src和v9应该是翻转过来的
双击key3可以看到

接下来是主要的部分,上面的key是ADSFKNDCLS

我这里将关键的部分复制了,然后改了改,写了个c脚本

运行完的结果

提交flag
Java逆向解密
首先拿到文件,看一下,是个java 文件,涉及到Java逆向,使用jadk

打开如下

然后就是读代码,然后破解它了
下面是一些能用到的jvav知识(初学者):
ArrayList 类是一个可以动态修改的数组
java里,Integer 相当于C里的int
for-each 循环通常用于遍历数组和集合,它的使用规则比普通的 for 循环还要简单,不需要初始变量,不需要条件,不需要下标来自增或者自减。来看一下语法:
for(元素类型 元素 : 数组或集合){
// 要执行的代码
}
valueOf() 方法用于返回给定参数的原生 Number 对象值,参数可以是原生数据类型, String等。
该方法是静态方法。该方法可以接收两个参数一个是字符串,一个是基数。主要有以下使用方式:
static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf(String s, int radix)
实例
publicclass Test{
publicstaticvoid main(String args[]){
Integer x =Integer.valueOf(9);
Double c =Double.valueOf(5);
Float a =Float.valueOf("80");
Integer b =Integer.valueOf("444",16); // 使用 16 进制
System.out.println(x);
System.out.println(c);
System.out.println(a);
System.out.println(b);
}
}
编译以上程序,输出结果为:
9
5.0
80.0
1092
下面是解释完

看了别人的WP,好像我下载的文件和别人不一样,不一样在第21行,具体我也不知


flag{This_is_the_flag_!}
写脚本的时候需要注意一下:
在python里,{}类对象为字典,而字典并非可迭代对象,无法进行迭代操作,而且使用除字典外使用{}本就是错误的。