Android 5.0 + IDA 6.8 调试经验分享
如今升级快。网上的资料仅仅能做參考。
学到了NDK逆向这一块,昨天为了能让IDA 能动态调试SO,瞎折腾了非常久,这里分享一下我的经验。
工具:
IDA pro 6.8
Android 5.x
IDA 6.8 在看雪吾爱应该都能找到下载地址。
我的手机是三星 on7 Android 5.1系统。
曾经我一直用的是IDA 6.6。群里人说5.0以上的系统要用6.8…
在启动android_server 服务的时候遇到以下这样的情况有可能就是IDA的版本号不正确了。
以下開始正式写,内容可能有些反复。
0x0: 将IDA pro 6.8 文件夹下的\dbgsrv\android_server 上传到手机 /data/local/tmp 文件夹下。
详细命令:
adb push \dbgsrv\android_server /data/local/tmp/android_server // 上传 \dbgsrv\android_server 依据自己实际情况改动
adb shell // 得到Android系统的shell,以下是在Shell中的操作
su //获得Root权限
cd /data/local/tmp
chmod 755 android_server // 改动android_server权限 rwxr-xr-x
./android_server //执行
这个CMD不要关了。
0x1 : 开启port转发
另外打开一个cmd
adb forward tcp:23946 tcp:23946
0x2: 操作IDA
打开IDA ->Debugger->Attach->Remote ARMLinux/Anroid debugger
Hostname 就是Anroid机的主机地址。一般和电脑都在一个局域网吧? 填写Android主机的ip地址。port默认就可以。
完毕后按下 Ok。
按下Ok后会出现一个进程列表,选择你要调试的进程。
附件里有一个So样例,先在Android机上执行起,然后在刷新IDA的进程列表。
进程太多的话,能够用包名keyword搜索。
附加后调试器会停在一个地方,先让程序跑起来吧,由于我们调试的是So模块。
怎样调试XX模块?样例以附件中的Apk为样例
从这里调出模块窗体。
模块非常多。你须要知道你要调试的是什么模块,用搜索功能会方便非常多。
这个就是样例中要调试的模块。用Android Killer分析出来的。
在Module List窗体中双击欲调试的模块。会看到模块的导出函数。
假如要调试 getCoin这个函数。 双击getCoin,就进入了函数的汇编代码界面。
单击红色圆圈中的蓝色原点就能下断点。 我们须要改动这个函数的返回值,来达到改动金钱的目的,所以在 BX LR 这一行下断点。
当IDA停下来后,就能够在寄存器窗体改动R0寄存器的值。
全剧终。
一些小问题的非专业解答:
0x0:
1、手机没有Root
2、执行android_server 前请先su一下
0x1:
IDA 6.8文件夹下,执行idaq.exe
0x2:
。,, 换真机,模拟器不行。
0x3:
版本号不正确。升级IDA,或者在手机上刷一个低版本号的系统。
记住:
一定要Root。一定要Su,一定要改权限
样例下载:http://pan.baidu.com/s/1i3wzetf
參考文章:
怎样使用ida在apk执行前动态调试其so中的函数
http://bbs.pediy.com/showthread.php?
t=178659
一步步搭建ida pro动态调试SO环境。
http://bbs.pediy.com/showthread.php?
t=203080
菜鸟总结so分析。arm 汇编,IDA静态分析
http://www.pd521.com/thread-790-1-1.html
Android 5.0 + IDA 6.8 调试经验分享的更多相关文章
- (转)CMOS Sensor的调试经验分享
CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...
- CMOS Sensor的调试经验分享
转自:http://bbs.52rd.com/forum.php?mod=viewthread&tid=276351 CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一 ...
- CMOS Sensor的调试经验分享【转】
转自:https://blog.csdn.net/yapingmcu/article/details/37817727 转自:http://bbs.52rd.com/forum.php?mod=vie ...
- Android开发网上的一些重要知识点[经验分享]
1. android单实例运行方法 我们都知道Android平台没有任务管理器,而内部App维护者一个Activity history stack来实现窗口显示和销毁,对于常规从快捷方式运行来看都是s ...
- 【Android市场】提交应用的一点经验分享
前言 如果只有一个或者少许的两三个Android市场,本文也没用存在的必要性,本文谨献给同在Android奋战的同仁. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnbl ...
- Android 使用GangSDK创建第三方家族公会系统经验分享
由于需要对之前的游戏加入一个家族系统,想到这块儿可能会有大量的工作需要自己做,就偷了个懒去网上搜罗了一波,有没有类似现成的系统?结果让我惊奇的发现,目前市面上居然真的有类似的服务,虽然是小公司开发的, ...
- Android 关于编译ijkplayer下的so经验分享
前言:公司最近需要做直播方面的技术调研,所以需要去研究播放器相关的技术:刚好本人github上收藏了ijkplayer,之前一直没有研究过,现在刚好clone下来研究研究. 我先在Windows安装c ...
- 调试经验分享-让自己的电脑充当WI-Fi模块,用来抓取连接Wi-Fi模块APP上的通信数据
需求 手头有了厂家的APP和Wi-Fi模块 在已经知道APP是通过TCP连接Wi-Fi模块(8266), 同时也知道了连接的端口号的 情况下如何知道厂家的APP发送给Wi-Fi模块的数据 打开自己的笔 ...
- ddr3调试经验分享(一)——modelsim实现对vivado中的MIG ddr3的仿真
Vivado中的MIG已经集成了modelsim仿真环境,是不是所有IP 都有这个福利呢,不知道哦,没空去验证. 第一步:使用vivado中的MIG IP生成一堆东西 ,这个过程自己百度.或者是ug5 ...
随机推荐
- Selenium2+python自动化39-关于面试的题
前言 最近看到群里有小伙伴贴出一组面试题,最近又是跳槽黄金季节,小编忍不住抽出一点时间总结了下, 回答不妥的地方欢迎各位高手拍砖指点. 一.selenium中如何判断元素是否存在? 首先selen ...
- Java Web应用软件保护方法
1 代码混淆概述目前针对Java源文件方法主要有以下几种方法:本地编译技术.数字水印技术.ClassLoader加密技术以及代码混淆技术.Java本地编译是指将Java应用程序编译成本地应用程序,如W ...
- SpringMVC @RequestBody 接收Json数组对象
@RequestMapping(value="/signIn",method=RequestMethod.POST) public int saveUser(@RequestBod ...
- 分布式消息系统Kafka初步(一) (赞)
终于可以写kafka的文章了,Mina的相关文章我已经做了索引,在我的博客中置顶了,大家可以方便的找到.从这一篇开始分布式消息系统的入门. 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到 ...
- Android之使用XMLPull解析xml(二)
转自:http://www.blogjava.net/sxyx2008/archive/2010/08/04/327885.html 介绍下在Android中极力推荐的xmlpull方式解析xml.x ...
- oracle 日期相减 转载
转自 http://hi.baidu.com/juanjuan_66/blog/item/cf48554c9331fbe6d62afc6a.html oracle日期相减2012-02-10 12 ...
- 卷积神经网络用于视觉识别Convolutional Neural Networks for Visual Recognition
Table of Contents: Architecture Overview ConvNet Layers Convolutional Layer Pooling Layer Normalizat ...
- Python并发编程-Memcached (分布式内存对象缓存系统)
一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的 ...
- 【面试必读】一不注意就做错的五道JavaScript题目
如果不会,可以存在DW中运行试一下哦~ 1.这段代码会输出什么? function Container( properties ) { var objthis = this; for ( var i ...
- 值得收藏的十二条Jquery随身笔记
1.关于页面元素的引用 通过jquery的$()引用元素包括通过id.class.元素名以及元素的层级关系及dom或者xpath条件等方法,且返回的对象为jquery对象(集合对象),不能直接调用do ...