先赋值权限
C:\Users>adb shell
2|root@generic:/ # cd /data/local/tmp
root@generic:/data/local/tmp # ls
as
user
user1
root@generic:/data/local/tmp # chmod 777 user
root@generic:/data/local/tmp # chmod 777 user1
root@generic:/data/local/tmp # chmod 777 as
root@generic:/data/local/tmp # ./as
IDA Android 32-bit remote debug server(ST) v1.22. Hex-Rays (c) 2004-2017
Listening on 0.0.0.0:23946...
=========================================================
[1] Accepting connection from 127.0.0.1...
转发端口:
C:\Users>adb forward tcp:23946 tcp:23946
打开IDA加载进程后不是直接进入.text而是进入.linker
linker:B6F26A40 _start
linker:B6F26A40 MOV R0, SP
linker:B6F26A44 MOV R1, #0
linker:B6F26A48 BLX unk_B6F28BC0
linker:B6F26A4C MOV PC, R0
linker:B6F26A4C ; ------------------------------------------------------
然后通过 Ctrl+s 查看所有的段,找到.text段双击会显示“_Command "JumpSegment" failed_”,后来发现其他很多的段双击都是这样
环境:
IDA6.8/7.0(试了两个版本)
ndk17-20(试了4个版本)
Android模拟器 (试了很多个不同的版本。。)
JNI里边就一个.c文件和Android.mk、Application.mk
关键代码:
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := user
LOCAL_SRC_FILES := userinfo.c
include $(BUILD_EXECUTABLE)
Application.mk
APP_ABI := x86 armeabi-v7a
大概就是这样了。。。
有没有大神帮帮忙,困惑两天了。。谢谢!!!
下边附图
++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++
试了很多方法了。。
不同版本的ndk编译后的user有时候还会出现“error: only position independent executables (PIE) are supported.”
这个搜到的说是AndroidServer第17个字节02修改为03、安卓换成5.0以下版本就行了(但我发现字节本来就是03,而且也根本不行。。)
求。。大神指点一下。。谢谢!
已解决。。
最后还是ndk版本问题
换为ndk-10就行了!!!