一.最喜欢的逆向题
拿到附件,先查壳,没有壳,64bit的
那么直接丢到ida里分析,分析结束找到main函数,直接得到伪代码
然后点到sub_140001070函数里看看,一堆flag,不知道哪个正确,那就按照要求输入吧
拿到flag
二.DO YOU KNOW SWDD?
拿到附件,解压缩,先跑一下看看回显,没什么,就是让我们输入flag,然后判断正确,查壳,没有壳,
直接丢到ida32里分析,分析结束,找到main函数,顺利得到伪代码,
然后进入sub_411186函数查看具体加密内容,可是却是爆红的, Tab键查看汇编,
一堆数据,SMC?,我们再看sub_41127B函数,顺着找,可以看到有一个异或,
现在确定了,就是SMC,那就动态调试跑一下,断点直接下在sub_411186函数处,
然后F7步入,就可以看到汇编函数了,按P申明为函数,
很明显,凯撒加密,写个脚本跑一下就出来了,
enc = "S_VYFO_CGNN_GRKD_KLYED_IYE"
dec = ""
for i in range(len(enc)):
if 'A' <= enc[i] <= 'Z':
for j in range(65, 90):
if ((j - 65 + 10) % 26) + 65 == ord(enc[i]):
dec += chr(j)
else:
dec += enc[i]
print(dec)
H&NCTF{I_LOVE_SWDD_WHAT_ABOUT_YOU}
三.hnwanna
下载好附件,这是一个游戏题,先打开玩了一下,
根本不可能跳过去,老实分析吧,在i_wanna_Data\Managed,找到Assembly-CSharp.dll,然后用ILSpy 打开,
找到一个a函数,凯撒加密,然后有找到加密字符串,
跑一下就出来了。
a = "justaeasyunitygame"
b = ""
for char in a:
b += chr((((ord(char) - 97) + 5) % 26) + 97)
print(b)
H&NCTF{ozxyfjfxdzsnydlfrj}
四.childmaze
下载好附件,根据题目,很显然这是一个迷宫题,题目提示也说了,说小心撞墙。(可正是因为这些提示,来错误的引导我们进入错误的方向)然后照旧先用exeinfope查壳,
可以看到没有壳。然后我们可以先跑一下,
跑下来呢,出现几个一样的迷宫,并且如果你按数字1,2,3...的话,会出现相应个数个的迷宫,然后就随便输入一些字符,就提示你撞墙了。然后就丢到ida里分析吧,分析结束,顺利找到main函数,得到伪代码,可是一看,几千行,什么鬼,然后也通过查找字符串,想找到最后做判断的地方,找是找到了,可是很离谱,没什么用,试了这些东西后,又想起来既然给了迷宫,那么我们是不是可以通过直接走迷宫的方式来试一试呢,然后就开始了尝试,可是发现,这压根走不通,所谓的asdw,不是一步一步的走,按一次走两步,根本不可能走的到$,就说明这题似乎和迷宫无关了。还是得返回到伪代码中去找,终于,找到了一个非常可疑的字符串,
然后再去找哪里处理了这个字符串,
果不其然,这里有个异或操作,然后写个脚本一跑,就是flag了,
enc = "H'L@PC}Ci625`hG2]3bZK4{1~"
dec = ""
for i in range(len(enc)):
dec += chr(ord(enc[i]) ^ (i % 7))
print(dec)
H&NCTF{Ch411enG3_0f_M4z3}