这道题麻烦了我几天,因为一个反调试的点没看到,所以一直没做出来,虽然原理还不懂,但可以先记下来,以后学多了再说
(这道题用户名已知)
ida分析,是一个建立了一个表然后与用户名进行错杂的变化,最后再用表里的值与密码进行一些运算得到结果,由此我们倒着看
最后一个函数是实现的目的,密码变成dbappsec
倒数第二个有点小坑,就是用户名与变化后的密码运算,这里是检测是否有调试,有的话就异或,没有的话就是和,所以会有两个结果,我们可以一个一个算
这一个就是最恶心的地方了,上下两个if都是反调试,把他们的jz jnz变成jmp就行,然后buffet_list表里面才是我们想要的值,这边我们可以在动调的时候吧表的8个值给确定出来,因为用户名已知,一定是不变的
BUUCTF Crackme
最新推荐文章于 2024-08-01 09:06:28 发布
本文记录了作者解决BUUCTF Crackme挑战的过程,涉及反调试技术,通过IDA分析,发现程序使用一个表与用户名进行混淆处理,再与密码运算。通过分析,找到关键点在于反调试的判断,通过修改跳转指令,获取正确密码。最后,作者提供了解题的Python代码,尽管疑惑为何使用调试路径,但强调理解题目逻辑的重要性。
摘要由CSDN通过智能技术生成