FCTF题解

flowerdance

638fc31a1b89400d97c6d9c43841cd78.png

32位无壳,拖入ida337c195c301746efaef04191aa3e3bb1.png

是花指令,故需分析汇编代码nop掉无用代码

6a9f6059d49841f0a7706d94a7d44449.png

nop方法为:分析哪段代码是多余的->选定无用指令后按u取消定义->修改为90(edit->Patch program->change byte然后将其改为90)亦可以选择ctrl+n直接nop->按c重新识别为代码。全部花指令修复成功后效果如下

0360cab8d88f4e22b85af6a509285bf1.png

进行加密前后唯一不变的是Buf1[0],故应从0开始。依据伪代码写程序如下fa6a3322ac7e4c78a038aee69e2f6884.png

运行出flagf43812335a634aa19c6bd107352c37c1.png

EzSMC

c3d3d7ffc5964c1cbd3883b53a2a8b52.png

64位,拖入ida64

235c5c60f3ca433c94c9aeb127c98feb.png

发现用SMC加密,故选择本地调试,设下断点调试

fe6697f479ab440a81fe3dc30abf827b.png

1c1a93e3220541e2b7820dfc875491f7.png

按F8进入下一步,这里func函数被隐藏了,我们需要修复,先跟进该函数

修复过程:

1.选定函数再按alt+l直到到下一个函数前(这里是main函数)(也可以先记录下下一个函数地址,然后按g输入地址直接跳到目标点)

2.按u取消选定,然后再从func末尾处按alt+l选定,上划直到到func函数开始的地址

3.按c将其转化为代码,再选定func按p重新识别为函数

进行以上操作后出现如下界面

1877986ac1fa43eda2a3f79a6fe1e423.png

按F5识别为函数

38937f8e85c745b097c2a2c3afa26c65.png

分析可得,每一个数都和输入的数组的每一个数进行了异或,最后比较,故写代码并运行出flag

e44b8753a4e543729a23c2f7229a2076.png

1a1e91338ee84d1b9db17e8e96b0b8e8.png

令人心动的key

查壳

64位无壳,用ida打开

点开encode函数

可以得知flag经过简单的加密后与v4比较,写出代码并运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值