android逆向6
来源:互联网 发布:茄子换机软件 编辑:程序博客网 时间:2024/06/04 19:09
在上篇文章中,我们介绍了如何利用IDA Pro来动态调试so文件。在移动安全领域有攻就有防,为了防止apk中的so文件被动态调试,开发者往往会使用一些反调试手段来干扰黑客的动态调试。
其中最常见的就是在so文件中检测TracerPid值,详情请见这篇博客:爱加密脱壳
本文以2015阿里巴巴移动安全大赛中的第二道题为例,IDA Pro版本为6.5 。
这里只介绍如何通过在JNI_Onload下断点避开反调试,而具体的解题步骤请看鬼哥的教程:MSC阿里比赛第二题详解
(0)先将libcrackme.so拖入到IDA Pro中进行静态分析,在JNI_Onload函数上下断点,如图1所示:
图1 静态分析libcrackme.so文件 在JNI_Onload函数处下断点
(1) 执行android_server,如图2所示:
图2 执行android_server
另外再开一个命令提示符,输入以下命令,执行端口转发,如图3所示:
图3 执行端口转发
(2) 在debug模式下启动apk,即使用am命令启动apk并进行调试。如图4所示:
图4 使用am命令启动apk
(3)IDA进行附加进程
回到之前静态分析libcrackme.so的IDA界面单击Debugger -> Process options 配置调试信息,这里只需配置hostname为localhost,其余的保持默认设置即可。如图5所示:
图5 配置process options
单击Debugger -> Attach to process进行附加进程的操作,如图6所示:
图6 附加进程
(4)打开DDMS,查看jdb对应的调试端口。如图7所示:
图7 打开DDMS查看jdb的调试端口
(5)打开命令提示符,输入以下命令,进行jdb调试。如图8所示:
图8 使用jdb进行调试
(6)回到之前静态分析libcrackme.so的IDA界面 执行F9命令。在接下来弹出的对话框中,一律点击“cancel”按钮,待弹出图9所示的对话框后,选择same按钮。
图9 ida提示程序所调试的so文件是否与当前静态分析的so文件一样
(7)然后继续运行程序就会触发之前在JNI_Onload处所下的断点,如图10所示:
图10 JNI_Onload函数断点触发成功
- android逆向6
- Android逆向
- Android 逆向
- android逆向
- [Android逆向]-Android逆向基础
- Android逆向基础笔记—初识逆向
- Android逆向基础笔记—初识逆向
- android逆向APK
- Android逆向心得
- Android 资源文件逆向
- Android逆向分析必备
- Android apk逆向实战
- 【android】apk逆向
- Android逆向学习小结
- Android逆向相关网站
- Android apk逆向实战
- Android的逆向分析
- 对抗Android逆向
- 数据结构和算法系列13 五大查找之哈希查找
- Tomcat启动报The APR based Apache Tomcat Native library ...解决办法
- hdu2768 Cat vs. Dog--最大匹配数
- java基础之集合
- POJ 2503 动态建树
- android逆向6
- 关于JVM与DVM,这些你可能不知道
- Arrays.binarySearch(二分法检索)
- 棋子翻转---- 美团2016研发工程师在线编程题
- ERROR: must be superuser to COPY to or from a file
- app审核被拒
- golang 通过gin框架获取未知的参数
- android逆向7
- 用Parcelable接口传递Bitmap