天命:这条题难度一般,但是比较特别
天命:找入口全靠经验
拿到题目的文件,居然是一个.re文件
把我看懵逼了,问了一下AI,我自己也没看懂
那就扔进IDA64位逆向吧
老规矩,找到主函数,看逻辑
吃经验的地方来了,逆向出来的代码非常的奇怪,只能看到大概逻辑
能看出来else的判断是成功的,输出Nice!
就是sub_4006FD这个函数要返回false才可以
点进去看一下,发现是一个循环+判断
这里的关键点是这个变量:a1,就是外面的放入函数里面的变量:s
其实我也没判断出来a1就是flag
我一直当成C语言的程序来玩了,以为会有一个getchar之类的函数来输入
大意了,这里变量:a1 就是 flag
只要循环没有触发 return 1
就可以返回0,外面main主函数就能触发else判断,输出Nice!
关键:目标就是让第11行等于1
其实没啥技术含量,只是寻找这个入口比较需要经验,
我其实一开始就能判断到的,
但是伪代码过于奇怪,
我不太很确定。