思考题
破解test.exe程序,尝试通过其他方法绕过密码验证逻辑,至少采用2种破解方式方法,并提交破解后的程序
方法一:
将printf错误信息置为NOP,并将验证错误后跳转回while起始的JMP,改为跳转到验证成功的语句处。这样在password验证错误后,可以不输出错误信息,并且仍可以运行验证正确的语句。(附:jmp.exe)
修改后的程序流程图:
方法二:
将valid_flag与0作比较,改为与-1作比较。只要输入数值比真正的password小,就可以通过验证。(附:judgesmaller.exe)
修改后的程序流程图: