这个题题目名字是junkcode,给人的第一反应是要去除花指令 ~ ~ ~
其实做题的过程和花指令并没有半毛钱关系,只是干扰了IDA的使用,从而无法进行静态分析而已
因为重点思路总是习惯性的放在了去花上,导致了其实很简单的算法,没有跟踪到数据的起始和目标节点,浪费了很多分析时间。
首先运行,看到error in open flag.
打开IDA,静态分析
这就是花指令的作用,看起来心烦,不知道程序在干什么。于是OD来动态调试
根据字符串提示以及exit的退出,我们猜测,程序需要读取名为flag的内容,从而与flag.enc的内容进行运算后的比对。
于是在当前目录下新建个flag文件,写入任意字符,成功绕过检验。得知我们需要填入的就是flag
于是,跟随着一堆花指令,我们看到了这个
memset告诉我们,已经开始了初始化,所以很快要开始进行计算和验证判断了
看到了这个,一个=,马上想到base64加密