1. android.os.Debug类提供了isDebuggerConnected()用于检测是否有调试器链接;
  2. AndroidManifest的application节点中加入android:debuggable="false"是程序不可被调试;
      验证方法--检测是否可以被调试:
               if( getApplicationInfo().flags&=ApplicationInfo.FLAG_DEBUGGABLE!=0){
                         System.out.println("debug");
                         android.os.Process.killProcess(android.os.Process.myPid());
               }


用apk2.0.jar:
  1. 反编译  java -jar apktool-2.0.0.jar d -d test.apk -o test.debug,本机可以用apktool d -d lan.apk -o test.debug
  2. 找到Activity的onCreate()方法:  invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V
    1. 添加invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
  3. 回编: java -jar apktool-2.0.0.jar b -d test.debug -o test.debug.apk,本机可使用apktool b -d test.debug -o test.debug.apk
  4. 签名
  5. 安装
NetBeans7.4:
  1. 删除test.debug目录下的build目录
  2. 打开Netbeans,选择““文件”-“新建项目”-“基于现有源代码的java项目”
  3. 在“项目文件夹处”选择test.debug目录
  4. 在“源包文件夹”出选择test.debug.smali目录
  5. 点击完成,项目创建完毕
调试:
  1. 在模拟器中运行重新打包的test.apk,test.apk会处于挂起状态
  2. 在netbeans中找到入口activity的oncreate函数,在刚才invoke-static {}, Landroid/os/Debug;->waitForDebugger()V,下一行断点
  3. 在netbeans中,选择“调试”-“连接调试器”
    1. 调试器:JPDA

      连接器:SocketAttach

      传输:dt_socket

      主机:127.0.0.1

      端口:8700--通过DDMS查看调试端口

      超时:[可不填]

链接:http://www.colordancer.net/blog/2013/09/16/apktool-2-0-netbeans-7-3-%E8%B0%83%E8%AF%95apk/

apk动态调试的更多相关文章

  1. apk逆向 - smali动态调试

    author: Dlive date: 2016/10/6 0x00 前言 ​ 之前有人问过smali的动态调试方法,其实网上已经有很多文章讲这些内容,但是为了方便大家学习,我还是写一下让大家少走点坑 ...

  2. Android动态方式破解apk前奏篇(Eclipse动态调试smail源码)

    一.前言 今天我们开始apk破解的另外一种方式:动态代码调试破解,之前其实已经在一篇文章中说到如何破解apk了: Android中使用静态方式破解Apk  主要采用的是静态方式,步骤也很简单,首先使用 ...

  3. 利用IDA6.6进行apk dex代码动态调试

    网上公开IDA6.6已经有一段时间,这个版本有个好处就是可以动态调试java代码.正好现在需要动态调试,所以顺便练习一下. 根据android的官方文档,如果要调试一个apk里面的dex代码,必须满足 ...

  4. Android Studio 动态调试 apk 反编译出的 smali 代码

    在信安大赛的准备过程中,主要通过 Android Studio 动态调试 apk 反编译出来的 smali 代码的方式来对我们分析的执行流程进行验证.该技巧的主要流程在此记录.以下过程使用 Andro ...

  5. apktool + eclipse 动态调试APK

    用了会AndBug,尽管挺强大的可是作为习惯了OD.EDB作为动态调试工具的人,自然有些不习惯,于是乎寻求新的动态调试解决方式.但大多数都是NetBeans + apktool.想着还得多下一个IDE ...

  6. Android APK程序的smali动态调试

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/71250622 一.Apktool的下载和安装 Apktool是Android逆向分 ...

  7. Eclipse+APKTool动态调试APK

    1. 所需工具 Eclipse. Apktool v2.0.6. 安卓SDK工具. 2. 重编译APK apktool d -d -o test test.apk 此时当前test目录下就是apkto ...

  8. 安卓动态调试七种武器之离别钩 – Hooking(下)

    0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也可以创造出属于自己的调试 ...

  9. 安卓动态调试七种武器之孔雀翎 – Ida Pro

    安卓动态调试七种武器之孔雀翎 – Ida Pro 作者:蒸米@阿里聚安全 0x00 序 随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的.另外工具是死的,人是 ...

随机推荐

  1. 线程池原理讲解——ThreadPoolExecutor

    [这是前几天的存货,留着没发表,今天又复习一遍,润化了部分内容,继续干] 说线程池前,先简单回顾一下线程的状态吧: 1.线程状态转换 线程的五种状态,及其转换关系: 2.线程创建方式 三种:两个接口一 ...

  2. codeforces 11B Jumping Jack

    Jack is working on his jumping skills recently. Currently he's located at point zero of the number l ...

  3. /usr/lib/nvidia-384/libEGL.so.1 is not a symbolic link

    记得要将384改为自己系统对应的a. sudo mv /usr/lib/nvidia-384/libEGL.so.1 /usr/lib/nvidia-384/libEGL.so.1.org sudo ...

  4. short URL 短网址实现原理剖析

    short URL 短网址实现原理剖析 意义,简短便于分享,避免出现超长 URL 的字符长度限制问题 原理分析, 使用 HashMap 存储对应的映射关系 (长度不超过7的字符串,由大小写字母加数字共 ...

  5. React PureComponent All In One

    React PureComponent All In One import React, { // useState, // useEffect, // Component, PureComponen ...

  6. GraphQL API In Action

    GraphQL API In Action GraphQL API express $ yarn add express express-graphql graphql # OR $ npm i -S ...

  7. style element & web components

    style element & web components style.textContent style.setContent bug style.textContent const st ...

  8. Python module all in one

    Python module all in one Python Modules https://docs.python.org/3/tutorial/modules.html Fibonacc # F ...

  9. 什么是NGK算力挖矿?怎么使用USDN购买算力?

    NGK公链项目即将正式上线,NGK项目中重要生态NGK算力挖矿也将启动,正式开启DPOSS挖矿.因为具有低能耗,低搭建费用,高收益等特点,可以想象如果正式上线必将引起行业瞩目. NGK算力挖矿项目为N ...

  10. .Net Core 3.1浏览器后端服务(三) Swagger引入与应用

    一.前言 前后端分离的软件开发方式已逐步成为互联网项目开发的业界标准,前后端分离带来了诸多好处的同时,也带来了一些弊端. 接口文档的维护就是其中之一,起初前后端约定文档规范,开发的很愉快,随着时间推移 ...