reverse3-不一样的flag-SimpleRev-Java逆向解密

reverse3

在这里插入图片描述
可知Str2为下图所示
在这里插入图片描述
故而查看函数sub_4110BE 对Str进行处理看看做了什么处理
在这里插入图片描述
可以看到后面Dst会经过aAbcdefghijklmn[]数组的变换,我们看看aAbcdefghijklmn[64]里有什么
在这里插入图片描述
base64

编写脚本

import base64

str2='e3nifIH9b_C@n@dH'
x=''
for i in range(0, len(str2)):
    x+=chr(ord(str2[i])-i)
x=base64.b64decode(x)
x = x.decode('ASCII')  #将字符处理成ASCII码形式
print(x)

flag{i_l0ve_you}

不一样的flag

在这里插入图片描述
开头有一个内存拷贝,点进去看下:
在这里插入图片描述
在这里插入图片描述
提示信息是让上下左右移动,迷宫题,可知是遇到1则退出,最终需要走到#,是一个横向是5的迷宫

*1111

01000

01010

00010

1111#

*为起点,#为终点,所路径为222441144222

flag{222441144222}

SimpleRev

在这里插入图片描述
Decry();函数
在这里插入图片描述
所以求出改变前的str2就可以了

text = 'killshadow'
key = 'adsfkndcls'
d = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
str2 = ''
for i in range(len(text)):
    for v1 in d:
        if ord(text[i]) == (ord(v1) - 39 - ord(key[i % len(text)]) + 97) % 26 + 97:
            str2 += v1
print(str2)

flag{KLDQCUDFZO}

Java逆向解密

jd-gui打开
在这里插入图片描述
java代码,很直白

key = [180, 136, 137, 147, 191, 137, 147, 191, 148, 136, 133, 191, 134, 140, 129, 135, 191, 65]
flag = ''
for i in range(len(key)):
     flag+=chr(key[i]-64^0x20)
print(flag)

flag{This_is_the_flag_!}

猜你喜欢

转载自blog.csdn.net/AlienEowynWan/article/details/113762499
今日推荐