[WUSTCTF2020] funnyre wp

博客介绍了在WUSTCTF2020挑战中,面对一个无壳程序,通过IDA64分析汇编找到main函数,处理混淆代码的过程。文章提到程序包含大量变量和运算,暗示需要使用符号执行来解决。最终,博主分享了使用angr工具的解题经验,并给出了Flag:flag{1dc20f6e3d497d15cef47d9a66d6f1af}。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载附件。无壳,直接ida64打开。发现没有main()函数。感觉应该是用了混淆。

从上往下查看汇编代码发现了main()函数的位置。在这里插入图片描述
继续向下看。在这里插入图片描述
上图红圈里的jz和jnz一看就有毛病!红框中没有标红的地方也是一样。在这里插入图片描述
这里的代码应该都是像这样的格式。先声明地址,然后一个xor语句,一个add语句,一个cmp语句,一个jnz语句,最后再来一个xor语句。

把上面红框中的语句改成这种格式,直接nop掉这些多余的语句。下面大概还有4,5处这样的地方。在这里插入图片描述
弄完这么的清爽!在这里插入图片描述
到最后这里有个判断语句。对比v7unk_4025C0这里就是进行结果判断。

整个程序定义了300多个变量,进行了1000多行的运算。明显不是让人直接算的。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值