[GXYCTF2019]simple CPP

本文通过使用PE工具检查程序壳并结合IDA动态调试方法,详细介绍了如何解析一个经过加密的flag值。通过分析代码和使用Z3求解器,逐步揭示了加密过程,并最终还原出正确的flag值。

照例利用PE查壳

然后用相应的ida打开程序,找到主函数

 这里做了注释,通过动态调试就可以知道我们的值被传到了memory,这是是flag

这是第一次加密,就是将flag与Dst进行异或

 然后进行了字节叠加,传入v15;

 

然后再传入B数组(为了看起来方便做了更改) ,

我们再把变量进行梳理就很好理解他最后一次加密是怎么回事的了 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值