系统: Mac OSX

调试环境:IDA7.0,  adb

手机环境:红米手机 android 4.4.4

前提条件:

  红米手机root之路:https://www.cnblogs.com/dzqdzq/p/11100720.html

第一步:

先将 android_sever拷贝到手机:

1,具体执行步骤:

➜  dbgsrv adb push android_server /system/bin/
adb: error: failed to copy 'android_server' to '/system/bin/android_server': remote Read-only file system
android_server: files pushed. 60.8 MB/s ( bytes in .002s)
➜ dbgsrv adb push android_server /system/
android_server: file pushed. 5.0 MB/s ( bytes in .112s)

出现错误:remote Read-only file system

解决方案:

adb shell 进入手机控制台, 然后执行

|root@HM2014812:/system/bin # mount -o rw,remount /system
root@HM2014812:/system/bin #
adb push 完成之后,重新回到只读:mount -o ro,remount /system
第二步:
将待apk包安装包安装到手机上。
从网上下载apk包之后, 需要apktool d gongjianchuanshuo.apk
会得到一个目录,修改这个目录下的AndroidManifest.xml文件。 新增android:debuggable="true"
然后重新打包:apktool b gongjianchuanshuo -o gongjianchuanshuo-debug.apk
第三步:

➜  Downloads adb install gongjianchuanshuo-debug.apk

gongjianchuanshuo-debug.apk: 1 file pushed. 5.5 MB/s (131559208 bytes in 22.771s)

pkg: /data/local/tmp/gongjianchuanshuo-debug.apk

Failure [INSTALL_FAILED_OLDER_SDK]

出现了一个乌龙:INSTALL_FAILED_OLDER_SDK。   
待调试的安装包需要的SDK版本比本机要高,于是回到第二步,重新修改AndroidManifest.xml文件
新增: <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="28"/>
再重新打包。 然后重新执行第三步。

第四步:

➜  Downloads adb install gongjianchuanshuo-debug.apk

gongjianchuanshuo-debug.apk: 1 file pushed. 5.3 MB/s (131559929 bytes in 23.741s)

pkg: /data/local/tmp/gongjianchuanshuo-debug.apk

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

错误的意思是:没有签名。 得需要重新签名一下

第五步:重新签名
keytool -genkey -alias debug.keystore -keyalg RSA -validity  -keystore debug.keystore
jarsigner -verbose -keystore debug.keystore -signedjar gongjianchuanshuo-debug_signed.apk gongjianchuanshuo-debug.apk debug.keystore

ida 调试android之路的更多相关文章

  1. ida 调试 android fork

    在使用ida 调试android native代码时经常会碰见fork子进程的情况出现,而运行一个 android_server只能对一个进程进行调试或者attach,而ida 默认端口是23946, ...

  2. IDA 调试 Android 方法及简单的脱壳实现

    IDA 调试 Android 方法及简单的脱壳实现 标签: android原创逆向调试dalvik 2016-05-24 14:24 9286人阅读 评论(3) 收藏 举报 分类: 原创(25) An ...

  3. IDA 调试 Android

    最近都在学一些反编译安卓相关的东西,其实网上有很多教程关于用 IDA 调试 Android 的过程,主要记录一下我遇到的坑 首先 Android手机要是root过的 还要注意的一点是apk中的 And ...

  4. 【转】IDA 调试 Android

    最近都在学一些反编译安卓相关的东西,其实网上有很多教程关于用 IDA 调试 Android 的过程,主要记录一下我遇到的坑 首先 Android手机要是root过的 还要注意的一点是apk中的 And ...

  5. IDA调试android so文件.init_array和JNI_OnLoad

    我们知道so文件在被加载的时候会首先执行.init_array中的函数,然后再执行JNI_OnLoad()函数.JNI_Onload()函数因为有符号表所以非常容易找到,但是.init_array里的 ...

  6. IDA调试android so的.init_array数组

    参考: http://www.itdadao.com/articles/c15a190757p0.html 一. 为什么要调试init_array init_array的用途 1. 一些全局变量的初始 ...

  7. ida调试 android so

    C:\Documents and Settings\Administrator>adb shellshell@htc_v2_dtg:/ $ susushell@htc_v2_dtg:/ # cd ...

  8. IDA动态调试Android的DEX文件

    Android程序的dex文件的动态调试确实是个大问题,网上也有一些教程但是不是特别的详细,今天用到了IDA动态调试Android的DEX文件,特此记录一下. IDA 6.6新添加了对dex文件的调试 ...

  9. Android动态方式破解apk进阶篇(IDA调试so源码)

    一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...

随机推荐

  1. pip命令报错“no perl script found in input”

    windows10,命令行下使用pip命令时报错,python运行成功,且环境变量已经设置,可能是更新了新版本pip所导致 解决方案: 一.使用pip.exe+命令可解决这个问题 二.进行python ...

  2. Spring MVC基于注解@Controller和@RequestMapping开发的一个例子

    1.创建web项目 2.在springmvc的配置文件中指定注解驱动,配置扫描器 在 Spring MVC 中使用扫描机制找到应用中所有基于注解的控制器类,所以,为了让控制器类被 Spring MVC ...

  3. eatwhatApp开发实战(七)

    之前我们为app添加了读取本地数据的功能和删除的功能.本次我们来将listview上item项的触控修改为item项上单一控件的触控事件.用item项上的button来实现删除数据. 先上布局: &l ...

  4. 关于做好ASO工作的十点有效建议

    导语: 互联网上关于如何做好ASO的内容多种多样,鱼目混珠.有从数据分析角度的方法论:有从运营工具角度的方法论:也有从实践角度看如何做好的. 本文将“对症下药”,从影响ASO的十大因素出发,整理出一份 ...

  5. return break 和continue在for循环中的不同作用

    平时自己经常在函数里见到return,在switch语句中使用break,而continue则用的不多. 其实这三者都能在for循环中发挥不同的作用,让代码更加灵活. 先说return return是 ...

  6. 二、【Python】机器学习-监督学习

    关键词 分类(Classification) 回归(Regression) 泛化(Generalize) 过拟合(Overfitting) 欠拟合(Underfitting) 2.1 分类与回归 监督 ...

  7. 高性能可扩展mysql 笔记(三)Hash分区、RANGE分区、LIST分区

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.MySQL分区表操作 1.定义:数据库表分区是数据库基本设计规范之一,分区表在物理上表现为多个文件, ...

  8. (Java实现) 洛谷 P1051 谁拿了最多奖学金

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上 ...

  9. Java实现 LeetCode 665 非递减数列(暴力)

    665. 非递减数列 给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列. 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 < ...

  10. Java实现 蓝桥杯 历届试题 斐波那契

    试题 历届试题 斐波那契 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 斐波那契数列大家都非常熟悉.它的定义是: f(x) = 1 - (x=1,2) f(x) = f(x-1) ...