- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一、使用AndroidStudio搭建NDK环境二、使用IDAPro调试原生程序.PDF
一、使用Android Studio 搭建NDK 环境
在Android Studio 2.2 以前的版本需要手动配置NDK 环境,项目中需要手动添加
和修改,显得略微繁琐。而在Android Studio 2.2 以后,在创建项目时,可以勾选
Include C++ support 可选框,剩下的由程序自动构建项目,坐享其成。
在搭建NDK 环境,本文不再赘述,可以参考下边两篇知乎的文章:
·《Android Studio 第一个NDK 例子》
/p/3e9f3055d7a6
·《Android Studio 2.2 更方便地创建JNI 项目-CMake》
/p/4eefb16d83e3
二、使用IDA Pro 调试原生程序
源代码请转至文章最后一部分 (第五部分)
1.首先创建一个Android 原生程序,这需要在一个Android 工程的基础上创建,
(可以用Android Studio 创建一个 Empty Activity )。如图,我在一个名为
HelloWorld 的工程的根目录下,创建一个j ni 文件夹,里边有两个文件,而libs
是由后边ndk-build 命令生成的:
·Android.mk (源码参见最后)
ndk-build 使用Android.mk 和Application.mk 作为脚本文件,其中,
Application.mk 文件是可选的。Android.mk 文件是工程的编译脚本,告知编译
系统关于源文件的一些信息,描述了编译原生程序所需的编译选项、头文件、
源文件等等。Application.mk 文件用来描述原生程序本身使用到的一些特性,如
原生程序支持的ARM 硬件指令集、STL 支持等。
·whileCycle.c (源码参见最后)
包含两个子函数的C 程序,内容是while 循环结构语句。用于生成Android 原生
可执行程序。
2.进入命令行,cd 进入j ni 目录,输入
ndk-build
在libs 里边生成适应于不同平台的原生可执行程序
3.此处我采用夜神安卓模拟器,将 armeabi 文件夹中的 whileCycle 拷贝入
/mnt/shared/Other ,还有IDA Pro 中的android_server 和android_server_nonpie 也
拷贝入同一目录下,其中 nonpie 版本用于 Android 4.4 及以下,pie 版本用于
Android 5.0 (L)及以上的版本。
4.在命令行下执行以下命令
adb shell
加上可执行权限
chmod 755 /mnt/shared/Other/whileCycle
chmod 755 /mnt/shared/Other/android_server
chmod 755 /mnt/shared/Other/android_server_nonpie
根据Android 版本的情况启动android_server ,此处启动的是nonpie 版本
/mnt/shared/Other/android_server_nonpie
由图可知,程序提示调试服务器已经启动,并且监听了23946 端口。
打开另一个命令窗口,执行以下命令进行端口转发
adb forward tcp:23946 tcp:23946
5.执行后,启动IDA Pro ,点击菜单栏 “Debugger-Run-Remote
ArmLinux/Android debugger ”,打开调试程序对话框。根据可执行文件的路径,
在Application 栏和Directory 栏输入相应的信息,在Hostname 栏输入localhost
或者,Port 自动选择为23946,如下图所示。
6.设置完成后,点击OK ,则进入调试界面
三、使用IDA Pro 调试Android 原生动态链接库
1.编写 Android 程序javac2.apk (源码请参见第五部分),要求其实现如下功能:
点击 “Change
您可能关注的文档
- PLR系列可编程线性直流电源.PDF
- PLUTO安全PLC功能块说明.PDF
- PMF710T2微机备用电源自投装置.PDF
- PMX用户编程指南-中国结算.PDF
- PRGS430多功能离线编程器使用说明.PDF
- PROFINET应用中使用过程中断的注意事项.PDF
- ProposalofScopeofWorkfor-香港花卉展览2018.PDF
- PSCeasy人多潜能干细胞培养基(ESiPS).doc
- PTAS003使用WindRiverSimics虚拟平台加速-Firmware-Intel.PDF
- PTK八防区主机键盘安装指南.doc
- 一、标识-中国教育科学研究院.doc
- 一个基于共享内存的GPU资源调度器的设计与实现-科研信息化技术.PDF
- 一个量子程序设计环境-中国科学信息科学.PDF
- 一种基于HTTP长连接的自适应流媒体传输系统.PDF
- 一种基于Smith预估器的温度控制系统-自动化仪表.PDF
- 一种基于VFD多核系统的硬实时任务节能调度算法-NSFC.PDF
- 一种用于GPU异构集群的高性能FFT方法-北京大学高能效计算与应用.PDF
- 一种高精度无源电阻发生器-IndexCopernicus.PDF
- 一般性授权发行新股份与购回股份之建议及建议重选之董事股东周年.PDF
- 一般的旋转曲面方程第四节椭球面第五节双曲面第六节抛物面第七节.ppt
最近下载
- 食品配送流程(学校食材配送项目).pdf VIP
- 2025新大纲普通话命题说话50篇范文.pdf VIP
- 2.2 无人驾驶汽车的工作过程(教学课件)-六年级信息科技下册同步备课系列(清华版2024).pptx VIP
- T_FJAASS 003—2024(柑橘类果园碳汇计量监测技术规程).pdf VIP
- 2024BIM机电建模标准.docx VIP
- 高中英语外研版(2019)必修第一册《Unit 1》教学设计说课讲解课件.pptx VIP
- 较完整的六西格玛案例.ppt VIP
- (2025秋新版)教科版三年级上册科学全册教案(教学设计)(1) .pdf
- 空间分析--空间点数据分析.ppt VIP
- 高性能变压吸附PSA.doc VIP
原创力文档


文档评论(0)