-
-
[讨论]ndk编译的arm程序,程序空间怎么在0xb6f5b000这样的高地址,地址比libc还要后
-
发表于:
2017-3-20 22:07
2685
-
[讨论]ndk编译的arm程序,程序空间怎么在0xb6f5b000这样的高地址,地址比libc还要后
2017.3.21 11:19 更新
我的疑问源于内存的布局一般是下面这样的
程序的text,data,bss段等 都快要接近栈了,地址比libc还要后

-----------------------------------------------------------------------------------------------------------
我是跟着蒸米哥那个rop学习的时候遇到的,我没直接用蒸米的程序,而是自己编译一下
学习链接:cdbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6G2L8%4W2#2L8W2)9J5k6i4c8S2L8X3N6K6j5$3q4F1i4K6u0W2j5$3&6Q4x3V1k6K6N6r3q4@1K9h3y4Q4x3V1k6V1M7X3!0H3M7#2)9J5c8Y4m8S2M7r3g2J5M7#2)9J5k6o6p5I4x3K6V1H3i4K6u0W2K9s2c8E0L8l9`.`.
编译环境:
使用安卓6.0sdk,ndk r10b
编译过程:
1.创建项目
android create project -n level6 -p level6 -t android-23 -k com.test.level6 -a MyActivity
2.之后在项目根目录建立jni文件夹
将.c和Android.mk和Application.mk放进去
3.回到项目根目录执行ndk-build
那两个文件内容如下
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := level6
LOCAL_SRC_FILES := level6.c
include $(BUILD_EXECUTABLE)
Application.mk(关闭gs)
APP_ABI := armeabi
APP_CFLAGS += -fno-stack-protector
如下图,而且每次运行的地址还会变, 这算是PIE咯

当然假如用蒸米哥的程序就不会了

[培训]科锐逆向工程师培训第53期2025年7月8日开班!