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

http://code.google.com/p/android-apktool/wiki/SmaliDebugging

找到apktool的官网,看到有能够实现动态调试。

能够在反编译和回编的时候通过设置參数给目标APK中的manifest文件里增加android:debuggable="true",,同一时候为了结合Eclipse。之后也会自己主动把.smali后缀改为了.java。这样就能够用来调试了。

当然,别忘了回编后还须要签名等。于是自己写了个简易的脚本:

'''
Created on 2014-5-28 @author: Xbalien
'''
import os
import sys
import subprocess class APKdebugger(object):
def unpackaging(self, apk_path):
print 'Start Unpackaging...'
subprocess.call(['apktool_2.0.0b9.jar','d','-d',apk_path],shell=True) def packaging(self, file_path):
print 'Start Packaging...'
subprocess.call(['apktool_2.0.0b9.jar','b','-d',file_path],shell=True) def signer(self, unsigned_path):
print 'Start Signing...'
signer_comm=['jarsigner','-verbose','-keystore','key','-digestalg','SHA1','-sigalg', 'MD5withRSA' ,'-signedjar','signed.apk']
signer_comm += [unsigned_path,'key']
p = subprocess.Popen(signer_comm,stdin=subprocess.PIPE,stdout = subprocess.PIPE, stderr = subprocess.PIPE, shell = True)
p.communicate(input='key123456')
p.wait() def zipalign(self, outapk_path):
subprocess.call(['zipalign','-v','4','signed.apk',outapk_path],shell=True) if __name__ == '__main__':
if len(sys.argv) >1:
print 'Start Create APKdebugger...'
apk_path = sys.argv[1]
file_path = apk_path[:-4]
unsigned_path = './'+file_path+'/dist/'+apk_path
outapk_path = file_path+'//'+apk_path
apk_debugger = APKdebugger()
apk_debugger.unpackaging(apk_path)
apk_debugger.packaging(file_path)
apk_debugger.signer(unsigned_path)
apk_debugger.zipalign(outapk_path)
else: print 'useage:main.py apk_name'

脚本处理好之后。apk也就生成了。之后将其安装到手机上。点击执行。这时候能够通过DDMS查看

这时候打开Eclipse,新建javaproject。增加源码(反编译代码smali文件夹)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWGJhbGllbjI5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

之后我们能够打开个文件下断点

接着设置调试配置文件,选定远程调试以及相应port就可以開始调试

之后点击debug。这时候能够在手机上開始了点击。到对应断点的时候就断下来了

之后就能够愉悦的单步调试了

apktool + eclipse 动态调试APK的更多相关文章

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

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

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

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

  3. Eclipse+APKTool动态调试APK

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

  4. ida 动态调试apk

    1,启动 android_x86_server 2 adb forward tcp:23946 tcp:23946 调试应用命令:adb shell am start -D -n com.droidh ...

  5. apktool动态破解apk

    那么今天我们就用另外一种方式来破解apk:动态方式,关于动态方式其实很广义的,因为动态方式相对于静态方式来说,难度大一点,但是他比静态方式高效点,能够针对更过的破解范围.当然动态方式很多,所以这里就分 ...

  6. 反编译与调试APK

    0×01前言 这年头,apk全都是加密啊,加壳啊,反调试啊,小伙伴们表示已经不能愉快的玩耍了.静态分析越来越不靠谱了,apktool.ApkIDE.jd GUI.dex2jar等已经无法满足大家的需求 ...

  7. Android studio动态调试

    Reference:  http://cstsinghua.github.io/2016/06/13/Android%20studio%E5%8A%A8%E6%80%81%E8%B0%83%E8%AF ...

  8. apk逆向 - smali动态调试

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

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

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

随机推荐

  1. Flask获取post提交数据

    完成示例 # flask 代码 from flask import Flask,request ... @app.route('/get_tasks',methods=["POST" ...

  2. Django自定义User模型和登录验证

    用户表已存在(与其他App共用),不能再使用Django内置的User模型和默认的登录认证.但是还想使用Django的认证框架(真的很方便啊). 两个步骤: 1)自定义Use模型,为了区分系统的Use ...

  3. idea中git分支的使用

    转载自 https://blog.csdn.net/qq_34745957/article/details/80288065 工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下: 假设小组中有 ...

  4. Linq技巧2——限制返回数据中的继承类型

    假如有像下面这样的一个模型, 怎样在查询时仅仅需要的Cars呢? 这样的几个继承关系的实体中,查询时Where 条件可以加入OfType<SubType>(),你可以这样来写: var o ...

  5. http client transfer

    背景 在平时工作中我偶尔会写一些脚本监控HTTP接口的健康状况,基本上都是发送HTTP GET或HTTP POST请求,然后检测响应内容.但一直用的是WebClient和HttpWebRequest, ...

  6. javascript script load related【转】

    先来看这行代码: <script src = "allMyClientSideCode.js"></script> 这有点儿……不怎么样.“这该放在哪儿?” ...

  7. scanf()总结--从网上收来的,感觉很好,用来提醒自己,c语言真是博大精深!!【转】

    转自:http://www.cnblogs.com/xiaocai905767378/archive/2011/06/01/2067526.html scanf杂谈          不得不说C语言真 ...

  8. JavaScript奇技淫巧44招(2)

    JavaScript是一个绝冠全球的编程语言,可用于Web开发.移动应用开发(PhoneGap.Appcelerator).服务器端开发(Node.js和Wakanda)等等.JavaScript还是 ...

  9. win7 32 c++环境

    http://jingyan.baidu.com/article/455a99509c76d8a1662778f6.html 首先我们先来到这个网址下载MinGW的下载程序,百度搜索官网即可.下载之后 ...

  10. Mac环境下安装运行splash

    http://blog.csdn.net/chenhy8208/article/details/69391097 最近需要使用scrapy爬虫做一些开发,用到了splash.我本机是mac环境,跳着看 ...