0x01 修改int的值
用字符串末尾的null字符,覆盖判断逻辑返回的int的值。
最后成功如图:
0x02 覆盖返回地址的值
这里是跳转到了错误的0x61616161
直接跳转到输出密码正确的地址。
0x03 执行我们的代码
修改返回地址的值,跳转到我们定义的代码处(此处代码可执行)
原理如图,前提条件是修改了buffer的大小 用于存放我们的代码
用字符串末尾的null字符,覆盖判断逻辑返回的int的值。
最后成功如图:
这里是跳转到了错误的0x61616161
直接跳转到输出密码正确的地址。
修改返回地址的值,跳转到我们定义的代码处(此处代码可执行)
原理如图,前提条件是修改了buffer的大小 用于存放我们的代码