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_!}