两张图是ROP的汇编程序
功能:
循环,读两次按键,根据ki ko 计算出一个byte的数据
从0xe9e0开始写入(不断自增)
0xe9e0地址之后一段的内容开机不会清除
由于我使用的是strcpy来循环,所以当代码中有 0x00就会出错
可以看到hex e0 e9部分是不断自增的,所以增了几次到hex 00 e9 之后程序就寄了(这个问题可以通过修改strcpy到memcpy来修复)
不过这只是给大家提供的可能的思路
以下是rop chain的16进制代码
Hex Dump:
a8 21 31 30 30 d2 48 f7 30 30 a8 21 31 30 32 d2 48 f7 30 30 e6 8f 31 30 e4 30 b6 19 31 30 8a 20 32 30 30 30 31 d2 dc 3a 31 30 7a b8 31 30 12 23 31 30 e4 5e 31 30 30 30 a8 21 31 30 e0 e9 d2 03 32 30 1a 9a 30 30 6c d0 30 30 bc d1 22 8f 30 30 30 30 30 30 e2 30 31 30 22 d5 80 d1 30 30 30 30 c8 03 32 30 72 0d 32 30 1a d5 34 2d 31 30
size:
112
模式: 160an
直接放模拟器里就能运行