在ES PLUS系列计算器上实现“编程”——(七)编程的原理

前言

就前文看起来,似乎我讲的东西根本没用。ROM是只读的,根本就没法写自己的程序,说那么多有什么用吗?非也。通过一个叫ROP的神奇东西,我们可以劫持程序执行方向,同样可以达到“编程”的目的。
建议先了解C语言再来看这一节。

ROP

简介

ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,可以用来绕过程序代码不可写入的限制,实现编程的目的。
具体来讲,因为程序将函数调用后返回的地址存储在栈中(详见前文),因此,如果我们能够操纵栈中的值,就可以间接控制程序的执行顺序。这种操作叫做ROP,它在黑客圈子中被广泛运用,可以让程序执行黑客想要的功能,达到攻击的目的。

具体运用

程序在正常运作的时候,当然不会自己把栈搞乱,造成程序运行出错。但是有些程序bug,会造成所谓栈溢出的现象,使用户的输入覆盖掉栈的某些部分。这样,只要我们合理构造输入的字符串,就能控制程序的走向,以达到目的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。