CTF-SMC 逆向练习

"本文详细介绍了SMC代码加密的逆向分析过程,通过逐层解密,展示了如何使用IDC脚本、汇编语言和Python脚本来逐步揭示加密算法。最终揭示flag:flag{The_realCtF_just_B3g!n}
摘要由CSDN通过智能技术生成

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}

   参考:S​​​​​​MC代码自修改逆向分析(仅针对汇编语言分析)_Y1seco的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值