当前位置:   article > 正文

pwn - 零基础ROP之Android ARM 32位篇(新修订)

pwn - 零基础ROP之Android ARM 32位篇(新修订)

一、环境搭建

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

r10e

二、Pwn代码编译

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

  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<unistd.h>
  4. #include<string.h>
  5. void callsystem()
  6. {
  7. write(STDOUT_FILENO, "Flag:XY2024\n", 13);
  8. write(STDOUT_FILENO, "call shell...\n", 13);
  9. system("/system/bin/sh");
  10. }
  11. void vulnerable_function() {
  12. int i = 128;
  13. char buf[i];
  14. read(STDIN_FILENO, buf, 256);
  15. }
  16. int main(int argc, char** argv) {
  17. char buf[128] = {0};
  18. if (argc==2&&strcmp("passwd",argv[1])==0)
  19. callsystem();
  20. snprintf(buf, 128, "vulnerable_function=%p\n", vulnerable_function);
  21. write(STDOUT_FILENO, buf, strlen(buf));
  22. write(STDOUT_FILENO, "Hello, World\n", 13);
  23. vulnerable_function();
  24. }

新建Android.mk,内容如下:

  1. LOCAL_PATH := $(call my-dir)
  2. include $(CLEAR_VARS)
  3. LOCAL_MODULE := level6
  4. LOCAL_SRC_FILES := main.cpp
  5. LOCAL_LDLIBS := -llog
  6. LOCAL_CFLAGS += -fno-stack-protector
  7. include $(BUILD_EXECUTABLE)

新建Application.mk,内容如下:

  1. APP_ABI := armeabi-v7a
  2. APP_STL := c++_static
  3. APP_CFLAGS += -fno-stack-protector
  4. APP_PLATFORM := android-21

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

d:\android-ndk-r10e\ndk-build NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk APP_BUIL
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/445118
推荐阅读
相关标签
  

闽ICP备14008679号