点击上方蓝字关注我,每天进步一点点

大家都知道我们在逆向分析的时候,很多时候主要在分析逻辑。网络抓包、数据来源流向分析、页面逻辑跳转分析、动态调试等。由于很多代码都会混淆,很多时候我们直接通过代码可能看不出逻辑走向,所以我们就会选择断点来进行调试。

C层一般会使用IDA进行调试分析,Java层常常就会需要对Smali代码进行调试分析。

工具准备

我这边是使用的Android studio + smaliidea(as插件) 配合调试

smaliidea最新下载地址;smaliidea 网上有很多提供的下载的文件都比较小,不是真正的smaliidea插件,所以在as安装的时候会失败。

开始实践

工具准备好了,接下来就开始怎么调试呢。首先反编译一个apk,把AndroidManifest.xml在application节点添加一句android:debugable="true" 表示apk 可以调试。改好之后,用apktool 回编译好。反编译参考我的另一片文章-反编译-替换APP的首页

安装插件

apk准备好之后就该配置as了。先安装smaliidea插件

安装完后重启as

把smali文件作为source目录。

配置as

创建Remote调试器

我看好多通过monitor 查看要调试应用的进程。我这边捣鼓半天monitor也不好用,一直白屏,果断放弃,

不就是看要调试应用的pid吗,用命令行也可以

adb shell ps | grep com.zzx.demo
u0_a359      22189   626 4460076  36324 0

上面22189就是我要调试应用的pid

然后执行调试adb 命令

adb shell am start -D -n com.zzx.demo/.MainActivityStarting: Intent { cmp=com.zzx.demo/.MainActivity }

进行端口映射

adb forward tcp:port_A jdwp:pid    //其中,port_A 为添加 remote 调试时指定的端口号,pid 即为第二步中获得对应调试进程的 pid

比如我的就需要执行:

adb forward tcp:5005 jdwp:22189

5005就是我上面remote 配置的端口号,22189是我要调试应用的pid

接下来在as中选中调试的应用,就可以进入调试状态
使用 run -> attach debugger to Android Process 选项,根据提示选择待调试进程即可。正确操作时,移动设备上的 waiting for debugger 对话框会消失。

成功截图:

 通过上述方法启动调试之后,即可进行正常的调试过程。常见的方案是在经过分析所得的可能执行路径上事先设置断点,之后在移动设备上进行对应的 app 操作,若分析正确,则 app 会执行对应的流程,从而触发断点,从而可以进行进一步的分析。 

总结:

好多东西看别人写的文章挺简单,轮到自己试的时候,各种坑,只有经历过才知道,所以能动手走一趟尽量动手,会遇到你想不到的坑,哈哈哈

点个在看你最好看

vc2010中开始执行不调试灰的_反编译动态调试smali全过程相关推荐

  1. 阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用

    阿里Java诊断工具 arthas - 生产环境反编译动态修改程序调试应用 一.arthas 上篇文章我们借助arthas监测线上系统的运行信息.排查程序运行缓慢问题,尽管这样已经非常好了,但是还是会 ...

  2. [Android]转-Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!

    原文地址 一.前言: 大家好,今天给大家分享一下Android中的拿来主 义,我们时常会碰到一个自己觉得很漂亮很帅气的应用(apk),所以我们会尝试用WinRAR等之类工具查看,而一般的应用程序打包后 ...

  3. Android 中的拿来主义(编译,反编译,AXMLPrinter2,smali,baksmali)!

    一.前言: 大家好,今天给大家分享一下Android中的拿来主 义,我们时常会碰到一个自己觉得很漂亮很帅气的应用(apk),所以我们会尝试用WinRAR等之类工具查看,而一般的应用程序打包后的目录通常 ...

  4. vc2010中开始执行不调试灰的_消防水炮调试,客户看到调试流程一刹那就满意

    消防水炮产品适合在大空间场所使用,很多的用户都已经非常熟悉了.但是在一次调试验收的过程中,消防水炮喷水灭火一刹那在场的都惊呆了.2020年4月16日,疫情还没有过去,接到上饶市一个汽车配件生产厂需要调 ...

  5. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )

    文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...

  6. arm ida 伪代码 安卓 符号表_使用IDA动态调试及ARM指令学习笔记

    本文介绍如何用IDA进行动态调试及部分ARM指令的学习. 环境:已root的安卓手机一部,IDA pro 6.8,win7系统. 下载样本app,并已确认可调试(debuggable = true), ...

  7. android ida多线程调试,C/C++知识点之ida动态调试.so 动态加载(必须真机)

    本文主要向大家介绍了C/C++知识点之ida动态调试.so 动态加载(必须真机),通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助. 第一步连接安卓手机 查看设备 localhost: ...

  8. 『贝壳找房APP』反编译到底有多简单--反编译和调试实践

    最近,在朋友圈看到有人发贝壳找房在Appstore上的下载排行榜,已进入前三.于是,我在应用宝上下载了贝壳release apk. 点击此处下载贝壳找房Apk 点击此处下载反编译debug包 Apk存 ...

  9. wxapkg反编译后的数据_反编译微信小程序

    首先声明:本文章仅供学习之用,不可它用. 一.前言 看到人家上线的小程序的效果,纯靠推测,部分效果在绞尽脑汁后能做出大致的实现,但是有些细节,费劲全力都没能做出来.很想一窥源码?查看究竟?看看大厂的前 ...

最新文章

  1. php event loop,理解javascript中的事件循环(Event Loop)
  2. irq4中断子程序c语言写法,AVR汇编程序参考
  3. 微服务系列:MicroProfile和Apache TomEE
  4. 现代 CMake 简明教程(一)- CMake 基础
  5. 随想录(中断中真的不能上下文切换吗)
  6. Pyspider爬虫实例:1号店医药电商
  7. coin collector(一道测试题)
  8. web页面防盗链功能使用--request.getHeader(Referer)
  9. 善用win7中的资源监视器
  10. Spring Boot+Vue+阿里云OOS实现图片上传
  11. Javascript实现图片轮播效果。
  12. 【优化理论】 共轭梯度下降算法实现
  13. 2021全球程序员收入报告!字节高级码农年薪274万元排第5
  14. 浅析网购中的客户对商品的评论
  15. 【转载】常备JS操作
  16. lenovo服务器换系统重装系统_thinkserver服务器怎么重装系统?
  17. 服务器配置公网ftp服务端(软件和python代码两种方法)
  18. Jmeter笔记(Ⅲ) Jmeter的非GUI操作
  19. 坚持到底—兄弟连IT教育
  20. 卫星通信放大器系统市场现状研究分析与发展前景预测报告

热门文章

  1. 【C语言数据结构】单链表
  2. 经典shell面试题整理
  3. 04——确定对象使用前被初始化
  4. 遍历页面上所有的textBox
  5. css 中 border 断线解决,简单实用
  6. Win7备份的取消与磁盘空间恢复
  7. 我国人工智能专利申请量去年超3万件,广东领先
  8. 谷歌量子计算突破引爆学界,作者亲自回应质疑,国内专家点评
  9. 人民日报钟声:以和平合作守护世界安全
  10. send(),recv()函数详解