昨晚看剧4点钟才睡,忘记今早有解题活动了,没拿到首杀奖励好过分,本人不才,浅浅追个码。
首先拖进exeinfo查壳,32位无壳很好,非常适合我等新手宝宝的体质。
接着我们尝试运行程序,随便输入一串字符,探测返回结果。
接着我们拖入OD,右键智能查找拖到最上方,可以看到出题人很贴心地为我们留下了提示,密码采用凯撒密码加密。
找到错误提示“Error, please try again”,双击此处
中文搜索引擎, 条目 18
地址=00D52290
反汇编=mov edx,【2024春.00D7A9F8
文本字符串=Error, please try again
不难发现错误提示上方有一个je相等跳,我们尝试在00D5228E处下断点,运行程序
00D5228E |. /74 22 je short 【2024春.00D522B2
寄存器中出现了我输入的假码,并且je相等跳并未实现,F8单步,程序在00D522A5处跑起来了并弹出错误提示
所以我们重新载入程序,将此处je相等跳改为jmp强制跳
运行起来后发现程序报错发生变化,Error变成了Wrong
所以我们需要重复以上操作,并找到第二个报错位置,发现有一个jnz不相等跳跳转到此,我们将其nop掉
继续分析,将je改为jmp,避免edx被赋值为Wrong,运行程序
程序爆破成功了,接下来的任务是找出正确密码,重复以上操作,在被nop掉的上方cmp比较处下断点
出题人意识到这是初级题,于是很贴心地将程序解密后的明文放在了寄存器里告诉我们新年快乐
fl@g{H@ppy_N3w_e@r!2o24!Fighting!!!}
完结撒花,有任何不正确的地方欢迎大家指出,共同交流一起进步