flowerdance
32位无壳,拖入ida
是花指令,故需分析汇编代码nop掉无用代码
nop方法为:分析哪段代码是多余的->选定无用指令后按u取消定义->修改为90(edit->Patch program->change byte然后将其改为90)亦可以选择ctrl+n直接nop->按c重新识别为代码。全部花指令修复成功后效果如下
进行加密前后唯一不变的是Buf1[0],故应从0开始。依据伪代码写程序如下
运行出flag
EzSMC
64位,拖入ida64
发现用SMC加密,故选择本地调试,设下断点调试
按F8进入下一步,这里func函数被隐藏了,我们需要修复,先跟进该函数
修复过程:
1.选定函数再按alt+l直到到下一个函数前(这里是main函数)(也可以先记录下下一个函数地址,然后按g输入地址直接跳到目标点)
2.按u取消选定,然后再从func末尾处按alt+l选定,上划直到到func函数开始的地址
3.按c将其转化为代码,再选定func按p重新识别为函数
进行以上操作后出现如下界面
按F5识别为函数
分析可得,每一个数都和输入的数组的每一个数进行了异或,最后比较,故写代码并运行出flag
令人心动的key
查壳
64位无壳,用ida打开
点开encode函数
可以得知flag经过简单的加密后与v4比较,写出代码并运行