SMC代码修改逆向分析--小白学习
先进行异或,再进行函数的调用,说明为SMC加密,可以写IDC脚本进行解密,脚本如下:
脚本解密前:
经过File----Select File 脚本解密后:
按 c快捷键 转变成汇编语言,在 右键 --- Create Function 有
可以看出这里对输入的前5位有要求,按R快捷键得出前五为
对第二层进行解密,解密脚本为
脚本解密前:
经过File----Select File 脚本解密后 按 C快捷键有:
(上图黄色部分 需要一个一个按 C快捷键转化成汇编代码, Create Function才能成功)
在 右键 --- Create Function,转换成伪C 代码:
从调用地方可以看出a1 为 除去前五位后剩下的数
根据while循环写出脚本对4位进行解密,脚本如下
得到结果
因为存储是从右到左,所以为 The_
对第三层进行解密,解密脚本为
第三层加密数据:
解密前:
解密后:
转换成汇编
转化成伪c代码
base64解密
进入第四层解密,解密脚本如下:
解密前:
解密后:
转为汇编
伪c代码为:
python脚本如下:
结果为:
综上flag为 :flag{The_realCtF_just_B3g!n}