说明
主要功能:在win10上研究和学习32位arm汇编指令的执行
环境如下
主机环境: windows10
目标模拟器环境:armeabi-v7a
调试环境搭建
1、下载android studio
下载地址:https://developer.android.com/studio?hl=zh-cn
2、安装android studio
直接下一步即可,我把安装位置放到了D盘 `D:\arm\android-studio\bin`
3、配置android studio
3.1 安装完成进入到bin文件夹,打开studio64.exe
,如果提示创建项目,随便创建一个即可,进入到主页,点击设置–>SDK Manager
3.2 配置SDK存放位置,我的改成了D:\arm\AndroidSdk
,安装SDK Tools标签下面的ndk编译器,选好后点击apply等待安装
3.3 创建模拟器
随便选一个,然后下一步
选择 Other Images,下载了Android 4.1的 arm32版本镜像,(其它没有测试)
下一步,打开快速启动,RAM设置为512M,点击完成即可
4、脚本打开模拟器
模拟器存放位置在用户的.android/avd目录
通过命令行打开模拟器 D:\\arm\\AndroidSdk\\emulator\\emulator.exe -avd dev1
5、adb连接测试
6、IDA远程调试
6.1 将IDA7.0下面的dbgsrv中的文件android_server上传到模拟器
命令:adb push android_server /data/user
6.2 登录到模拟器
命令
adb forward tcp:23946 tcp:23946 # 端口映射
adb shell
cd /data/user
chmod 777 android_server
./android_server
6.3 IDA远程连接
c编译环境配置
- 参考官网配置:
https://developer.android.com/ndk/guides/ndk-build?hl=zh-cn
1、新建Android.mk
,内容如下
LOCAL_PATH := $(call my-dir)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := hello
LOCAL_SRC_FILES := hello.c
include $(BUILD_EXECUTABLE)
2、新建Application.mk
,内容如下
APP_ABI := armeabi-v7a
APP_BUILD_SCRIPT := Android.mk
APP_PLATFORM := android-16
APP_OPTIM := debug
3、新建hello.c
,内容如下
#include <stdio.h>
int main()
{
while (1)
{
printf("helloworld\n");
getchar();
}
return 0;
}
4、新建compile.bat
,内容如下
D:\\arm\\AndroidSdk\\ndk\\27.0.11902837\\ndk-build.cmd NDK_PROJECT_PATH=. NDK_APPLICATION_MK=Application.mk
5、成功编译后生成程序
6、拷贝到设备上运行