reverse3
It can be seen that Str2 is shown in the figure below,
so look at the function sub_4110BE
to process Str to see what has been done.
You can see that Dst will be transformed by the aAbcdefghijklmn[] array. Let’s see aAbcdefghijklmn[64]
what
base64 is in it.
Scripting
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}
Different flag
At the beginning, there is a memory copy, click in to see: the
prompt message is to move up and down, left and right, maze question, you can know that you will exit when you encounter 1, and finally you need to go to #, which is a maze with 5 horizontally
*1111
01000
01010
00010
1111#
* Is the starting point, # is the end point, the path is 222441144222
flag{222441144222}
SimpleRev
Look at the Decry();
function,
so find the str2 before the change.
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 reverse decryption
jd-gui opens the
java code, very straightforward
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_!}