攻防世界Reverse进阶区-BABYRE-writeup

以此篇WP记录第一次使用ida解决smc(自解密)

观察反汇编代码:

image-20220118144411257

第12行调用的函数在第8行被加密了

因此,需要手动解密观察,双击judge进入:

image-20220118144605050

然后使用idapython脚本解决,右上角file、script command

如图编写代码:

image-20220118144725867

点击run,可以看到内容被改变:

选中judge函数一行,c(code),将其变成代码,这时的judge被分为三个函数,我们将其合三为1,框选地址B00~BB5(所有红色区域),p(重新生成function)

此时可以在左侧找到相应函数内容,F5即可

image-20220118145127875

然后针对反汇编后的加密算法写一个脚本:

1
2
3
4
5
6
7
8
v2=['f','m','c','d',127,'k','7','d',';','V','`',';','n','p']
an=''
for i in range (14):
if i==4:
an+=chr(127^i)
continue
an+=chr(ord(v2[i])^i)
print(an)

运行结果为:flag{n1c3_j0b}