【移动安全】Android App Smail代码动态跟踪调试方法

1、反编译可调试模式的smail代码

D:\software\android\ApkTool\dump\apktool>java -jar apktool.jar d -d b11842d4126d
72df16c1c1870c819c37.apk -o out
I: Using Apktool 2.0.0-RC3 on b11842d4126d72df16c1c1870c819c37.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\topsec\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
Cleaning up unclosed ZipFile for archive C:\Users\topsec\apktool\framework\1.apk

I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...

2、在输出的out文件夹中,用文本编辑工具打开AndroidManifest.xml,在application节点中设置属性android:debuggable=”true”

D:\software\android\ApkTool\dump\apktool>java -jar apktool.jar b -d out -o debug
.apk
I: Using Apktool 2.0.0-RC3 on out
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
Warning: AndroidManifest.xml already defines debuggable (in http://schemas.andro
id.com/apk/res/android); using existing value in manifest.
I: Copying libs...
I: Building apk file...
I: Copying unknown files/dir...
Cleaning up unclosed ZipFile for archive C:\Users\topsec\AppData\Local\Temp\APKT
OOL5083930743852064505.tmp

D:\software\android\ApkTool\dump\apktool>cd D:\software\android\ApkTool\dump\apk
tool

3、使用签名工具对debug.apk文件进行签名,签名后安装

D:\software\android\ApkTool\dump\apktool>adb install -r debug.apk
1726 KB/s (14505061 bytes in 8.203s)
        pkg: /data/local/tmp/debug.apk
success

D:\software\android\ApkTool\dump\apktool>

4、启动软件等待调试

5、下面开始设置Eclipse实时调试的环境,进入第1步产生的OUT文件夹,把里面的BUILD和DIST文件夹删除,这是APKTOOL编译APK时产生的。

6、启动ECLIPSE,构建JAVA项目

1) File -> New -> Project -> Java Project -> Next

2) Project Name随便起,Use default location选项去掉,Location选择out文件夹,然后Next

3) 把smali文件夹设为Source Folder,然后Finish

7、ddms中查看要调试进程端口,然后找到我们要下断点的smail代码设置断点

8、选择eclipse下run->debug configurations->new一个新配置选择端口,点击debug开始调试

9.手机中操作开始收报发包跟踪即可,同时抓包查看详细信息,调试跟踪找到加解密算法实现数据还原。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-31 05:29:25

【移动安全】Android App Smail代码动态跟踪调试方法的相关文章

微信Android SDK示例代码及运行方法

最近在研究微信SDK,无奈网上好使的教程太少,对于程序员来说最好的东西,一个是微信的开发文档,一个是微信SDK的范例代码.无奈文档小白很难看懂,范例代码又没有详细的解释,导致我折腾了好多天,现在有点眉目了,先记下来. 1.申请应用AppKey 微信的SDK要求应用的包名.签名的MD5.AppID严格对应,所以没有申请的应用是肯定无法使用的.申请了的应用如果这三个对不上,是无法使用的. ·包名,是应用建立时候的名称,你可以在AndroidManifest.xml文件的package项中找到 ·签名

android 动态库死机调试方法 .

原地址:http://blog.csdn.net/andyhuabing/article/details/7074979 这两种方法都不是我发明了,都是网上一些高手公共出来的调试方法,无奈找不到出处的地方了,所以就在此总结一下,以方便android下的调试: 简要说明: android系统中调试Java非常容易,一般遇到错误都在logcat中打印出错时函数的调用关系,而C库中出错时只看到一些二进制信息,使用gdbserver调试环境搭建又比较复杂. 方法一:下在介绍一个简单的调试库的方法,当然需

BGFX 渲染引擎中着色器代码的调试方法

在实时渲染的图形开发中,着色器代码(Shader)越来越复杂,于是单纯的靠经验和不断试错的开发和调试方法早已不能满足实际需求.使用调试工具进行调试,成为开发中重要的方法.Bgfx 是一款跨平台.抽象封装了众多主流图形 API 的优秀渲染引擎.作为示例,本文在 Windows 平台上演示使用 Microsoft Visual Studio* 和 RenderDoc 对 Bgfx 中的 DX11 着色器代码进行调试.了解详情 原文地址:https://www.cnblogs.com/IDZPRC/p

【加密解密】Android App so动态库调试分析

调试so手机需要root权限,同时开启调试模式. 1.上传android_server到/data/local/tmp adb push android_server /data/local/tmp 2.root权限执行./android_server,结果如下 [email protected]:/data/local/tmp # ./android_server ./android_server IDA Android 32-bit remote debug server(ST) v1.17

【转】微信Android SDK示例代码及运行方法

原文网址:http://blog.csdn.net/icyfox_bupt/article/details/23742217 最近在研究微信SDK,无奈网上好使的教程太少,对于程序员来说最好的东西,一个是微信的开发文档,一个是微信SDK的范例代码.无奈文档小白很难看懂,范例代码又没有详细的解释,导致我折腾了好多天,现在有点眉目了,先记下来. 转载请注明来自:http://blog.csdn.net/icyfox_bupt/article/details/23742217 1.申请应用AppKey

android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?

在用Eclipse编写Android app时,有时调试时没有问题,但一经打包签名,运行就出现闪退,还报错说找不到某某类.一开始以为是混淆导致的,后来我没有混淆竟然也还是这个问题.无奈只得网上寻找解决方案,最终还是有人解决了的,方法也很简单,只需按照下面几步来就可以了: 1.找到Project -> Build Automatically,取消它关闭自动编译2.然后Clean一下3.最后在手动Build一下 然后你再打包签名,这样就可以正常运行了.

一看就懂的Android APP开发入门教程

一看就懂的Android APP开发入门教程 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的

Android APP 调试过程中遇到的问题。

调试过过程中APP安装完启动后有的时候会异常退出,报这个错误.有的时候可以直接启动.查找不到原因.网上说把commit方法替换成commitAllowingStateLoss() 也无效. Android APP 调试过程中遇到的问题. >> android 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/android/1010000007192169/AndroidAPP调试过程中遇到的问题.html

android app两种调试方法

方法一: 1.使用apktool的-d选项反编译apk文件 java  -jar  apktool.jar  d  -d  target.apk  -o  output 2.在AndroidManifest的application节点中添加 android:debuggable="true" 3.在入口点的类的onCreate中添加如下代码等待调试 invoke-static{}, Landroid/os/Debug;->waitForDebugger()V 4.回编译apk j