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

embedded/2024/9/23 11:54:47/

一、环境搭建

  安装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/embedded/6031.html

相关文章

自定义鼠标软件 SteerMouse最新完整激活版

SteerMouse是一款实用的Mac OS X系统辅助工具&#xff0c;可以帮助用户自定义鼠标和触控板的设置&#xff0c;提高使用效率。它提供了多种功能&#xff0c;如自定义按钮、滚轮和光标速度&#xff0c;以及调整灵敏度等&#xff0c;使用户能够根据自己的需求和习惯进行优化。 Ste…

二维码门楼牌管理应用平台建设:网格化管理的新篇章

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、二维码门楼牌管理应用平台的功能特点三、二维码门楼牌管理应用平台的实际应用四、二维码门楼牌管理应用平台的前景展望 前言 随着信息技术的飞速发展&#xff0c;二维码门楼牌管理应用平台的建设已成为城市网格化管理…

HarmonyOS开发实战:【亲子拼图游戏】

概述 本篇Codelab是基于TS扩展的声明式开发范式编程语言编写的一个分布式益智拼图游戏&#xff0c;可以两台设备同时开启一局拼图游戏&#xff0c;每次点击九宫格内的图片&#xff0c;都会同步更新两台设备的图片位置。效果图如下&#xff1a; 说明&#xff1a; 本示例涉及使…

nginx容器化方案预研

一、概述 目前 nginx迁移升级不方便,且生产环境没有编译环境,导致生产环境nginx版本过旧、目前存在安全漏洞无法升级。运维建议容器化nginx,因此预研了此容器方案 二、镜像制作 基础镜像 cloudservice-alpine-base-v1.tar 2.1 加载基础镜像 docker load -i cloudservic…

MapReduce排序机制(Hadoop)

在MapReduce中&#xff0c;排序的目的是为了方便Reduce阶段的处理&#xff0c;通常是为了将相同键的键值对聚合在一起&#xff0c;以便进行聚合操作或其他处理。 1. Map阶段的局部排序&#xff08;Local Sorting&#xff09;&#xff1a; 对于MapTask&#xff0c;它会将处理的…

uni-app开发微信小程序获取手机号getPhoneNumber:fail no permission 怎么处理?

查看这篇文章《微信小程序&#xff08;bug&#xff09;: 获取手机号报错&#xff1a;getPhoneNumber:fail no permission》https://blog.csdn.net/qq_45796592/article/details/135936262 https://blog.csdn.net/qq_45796592/article/details/135943990

通过Docker安装KingbaseES V9并激活开发License

简单介绍一下在Docker中安装人大金仓&#xff08;KingbaseES V9&#xff09;的过程&#xff0c;以及如何更换默认的License为官方提供的365天有效期的开发License。下面的安装过程都是在WSL2中完成的。 安装 首先&#xff0c;我们可以去KingbaseES的官网&#xff08;https://…

强化网络安全防线,您的等级保护措施到位了吗?

在这个信息化飞速发展的时代&#xff0c;网络安全已经成为我们每个人都需要关注的问题。无论是企业还是个人&#xff0c;我们的工作和生活都越来越依赖于网络。确保网络环境的安全&#xff0c;防止信息泄露和网络攻击&#xff0c;已经成为了一项至关重要的任务。等级保护制度作…