一、pwn - 零基础ROP之Android ARM 32位篇(新修订,精华篇)

ops/2024/11/15 2:12:49/

一、环境搭建

  安装ndk r10e,必须得这个版本,其他版本可能导致  -fno-stack-protector 不生效!

r10e

  • Darwin: https://dl.google.com/android/repository/android-ndk-r10e-darwin-x86_64.zip
  • Linux: https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip
  • Windows: https://dl.google.com/android/repository/android-ndk-r10e-windows-x86_64.zip

二、Pwn代码编译

VSCode 新建个main.cpp文件,代码如下

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>void callsystem()
{write(STDOUT_FILENO, "Flag:XY2024\n", 13);    write(STDOUT_FILENO, "call shell...\n", 13);   system("/system/bin/sh");
}void vulnerable_function() {int i = 128;char buf[i];read(STDIN_FILENO, buf, 256);
}int main(int argc, char** argv) {char buf[128] = {0};if (argc==2&&strcmp("passwd",argv[1])==0)callsystem();snprintf(buf, 128, "vulnerable_function=%p\n", vulnerable_function);    write(STDOUT_FILENO, buf, strlen(buf));        write(STDOUT_FILENO, "Hello, World\n", 13);    vulnerable_function();
}

新建Android.mk,内容如下:

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := level6
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS := -llog
LOCAL_CFLAGS += -fno-stack-protector
include $(BUILD_EXECUTABLE)

新建Application.mk,内容如下:

APP_ABI := armeabi-v7a
APP_STL := c++_static
APP_CFLAGS += -fno-stack-protector 
APP_PLATFORM := android-21

cd到项目所在目录,执行编译:

d:\android-ndk-r10e\ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUILD_SCRI

http://www.ppmy.cn/ops/5802.html

相关文章

CCIE-16-PIM

目录 实验条件网络拓朴实验环境实验目的 开始实验实验1&#xff1a;PIM-DM配置PIM域中的路由&#xff0c;开启PIM-DM组播路由功能&#xff0c;验证组播情况 实验2&#xff1a;PIM-SM&#xff08;静态RP&#xff09;配置PIM域中的路由&#xff0c;开启PIM-SM组播路由功能&#x…

Git ignore、exclude for TortoiseGit 小结

1.Ignore Type&#xff1a;忽略类型&#xff0c;也即忽略规则&#xff0c;如何去忽略文件? 1.1.Ignore item(s) only in containing folder(s)&#xff1a;仅忽略在包含在文件夹中项目。 仅忽略该文件夹下选定的patterns。the patterns其实就是文件类型&#xff0c;比如.txt后…

机器学习运用-信用卡交易诈骗预测

简介 本项目应用XGBoost算法对数据进行分析并建模预测信用卡交易是否具有欺骗性&#xff0c;属于机器学习相关的二分类任务。 XGboost XGBoost是一个优化的分布式梯度提升库&#xff0c;旨在实现高效、灵活和便携。XGBoost 不仅提供了一个强大的机器学习算法&#xff0c;也提…

【前端】用CSS实现div全屏铺满的方式

在网页设计和开发中&#xff0c;有时我们需要让一个div元素全屏铺满整个浏览器窗口&#xff0c;以实现更加吸引人的视觉效果或者更好地适配不同设备的屏幕大小。 最近遇到一个需求&#xff0c;需要将一个div自动铺满全屏&#xff0c;width会默认铺满&#xff0c;所以不用考虑&…

ChatGPT助力论文写作:快速提升稿件质量

ChatGPT无限次数:点击直达 ChatGPT助力论文写作&#xff1a;快速提升稿件质量 随着人工智能技术的不断发展&#xff0c;ChatGPT作为一款强大的自然语言处理工具正逐渐成为许多论文作者的得力助手。本文将探讨如何利用ChatGPT提升论文写作的效率和质量&#xff0c;并结合实例演…

dfs+剪枝,LeetCode 39. 组合总和

一、题目 1、题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 …

CentOS系统上部署Docker,mysql,nginx

CentOS7系统上部署Docker&#xff0c;mysql&#xff0c;nginx 未完&#xff0c;持续更新中 更新软件包索引&#xff1a; 首先&#xff0c;确保你的CentOS系统是最新的。你可以通过运行以下命令来更新你的系统&#xff1a; yum update安装Docker&#xff1a; CentOS的软件仓…

移动端双验证码登录实现

说明&#xff1a;本文介绍如何用图形验证码短信验证码实现移动端登录思路&#xff1b; 分析 通过手机号图形验证码手机验证码实现登录的时序图如下&#xff1a; 说明&#xff1a; &#xff08;1&#xff09;用户进入登录界面&#xff0c;出现图形验证码&#xff0c;可点击图形…