JEB 无源码调试 以dvm smali字节码方式,Demo尝试
关于调试器看不到进程,无法attach的问题,网上也有很多教程,基本是修改ro.debugable =1 ,ro.secure = 0 让adbd有root权限 attach到其他进程,涉及到要修改boot.img并刷包,可以在网上其他地方找找看相关资料
1.手机上运行apk
2.电脑上用jeb打开对应apk
3.用jeb debuger attach 到对应进程
4.转换到 bytecode 界面,Ctrl + B 在 目标位置下断点

按tab转换为java代码

断点在java代码展示界面无法下,只有在 bytecode 界面可以
5.手机端触发断点事件

6.
支持很多jdwp的协议,这部分是很强大的功能,比如IDEA的 调试环境中支持的 动态计算表达式,估计是通过使用jdwp提供的类似 call的方式来办到的,可以动态调用方法,set/get 成员属性,查看某class的成员变量和方法等,可以方便在调试过程中,临时动态id修改一些boolean的值,进入某些雪藏已久的分支。
在jeb的 termial 中输入 help 回车,可以看到基于jdwp的调试命令,有些jeb界面上没提供的功能可以通过这种 命令行的方式来实现

比如这里我们试一下动态查看 v1寄存器中的值
输入 help get 查看 get 命令的用法

按F6运行到函数返回前 停住

看 textView 对象的属性

。。。

值已经被修改
我们把值改为 ABCD 试试, 尝试调用 setText("ABCD")

匿名内部类对外部final变量的引用
用 call 指令

修改成功了
JEB也可以分析 .so 文件
右键,点解析


找到stringFromJNI 按下 tab(怕是用了IDA的库)

可惜我这边没有办法调试 native 汇编代码。。。
JEB用来无源码smali调试比较方便,可以按TAB转为java代码查看,并且可以添加自定义注释
JEB 无源码调试 以dvm smali字节码方式,Demo尝试的更多相关文章
- JVM 字节码指令手册 - 查看 Java 字节码
JVM 字节码指令手册 - 查看 Java 字节码 jdk 进行的编译生成的 .class 是 16 进制数据文件,不利于学习分析.通过下命令 javap -c Demo.class > Dem ...
- 曹工说Spring Boot源码(26)-- 学习字节码也太难了,实在不能忍受了,写了个小小的字节码执行引擎
曹工说Spring Boot源码(26)-- 学习字节码也太难了,实在不能忍受了,写了个小小的字节码执行引擎 写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean De ...
- idea字节码插件JClassLib——阅读JVM字节码
idea字节码插件JClassLib--阅读JVM字节码 生成字节码文件并查看 查看字节码文件的方式:javac 文件名.java 即可生成.class文件,但是这种方式不方便 java:是运行字节码 ...
- 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一)
1 前言 这是SpringBoot2.1源码分析专题的第一篇文章,主要讲如何来搭建我们的源码阅读调试环境.如果有经验的小伙伴们可以略过此篇文章. 2 环境安装要求 IntelliJ IDEA JDK1 ...
- lua源码学习篇四:字节码指令
在llimits.h文件中定义了指令的类型.其实就是32个字节. typedef lu_int32 Instruction; 上节说到变量最终会存入proto的数组k中,返回的索引放在expdesc ...
- 谁还没遇上过NoClassDefFoundError咋地——浅谈字节码生成与热部署
谁还没遇上过NoClassDefFoundError咋地--浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错误通常非 ...
- 《深入理解Java虚拟机》-----第8章 虚拟机字节码执行引擎——Java高级开发必须懂的
概述 执行引擎是Java虚拟机最核心的组成部分之一.“虚拟机”是一个相对于“物理机”的概念 ,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器.硬件.指令集和操作系统层面上的,而 ...
- Java 动态字节码技术
对 Debug 的好奇 初学 Java 时,我对 IDEA 的 Debug 非常好奇,不止是它能查看断点的上下文环境,更神奇的是我可以在断点处使用它的 Evaluate 功能直接执行某些命令,进行一些 ...
- 学会阅读Java字节码
1.Class文件基础 (1)文件格式 Class文件的结构不像XML等描述语言那样松散自由.由于它没有任何分隔符号, 所以,以上数据项无论是顺序还是数量都是被严格限定的.哪个字节代表什么 ...
随机推荐
- bundle 的生成和使用
一.bundle 的生成 1.打开XCode,创建iOS版用的bundle资源包,有两种方式:第一种直接将工作,open in finder.在目录中直接新建文件夹,文件夹以bundle格式.文件夹 ...
- maven与ecplise的整合
Maven 概念: Maven 使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Maven 除了以程序构建能力为特色之外,还提供高级项目管理工 ...
- [TimLinux] myblog 首页创建
1. 设计 2. 结构 3. 实现 templates/common/layout.html: <!DOCTYPE html> <html lang="zh"&g ...
- CF296C Greg and Array 查分数组
题目链接:http://codeforces.com/problemset/problem/296/C 题意:给你n.m.k,表示n个数a[i],m个对数的操作,k个对操作的操作.m个操作:数a[l] ...
- CF579 - A Raisinng bacteria
You are a lover of bacteria. You want to raise some bacteria in a box. Initially, the box is empty. ...
- 视频发布 2019 中国.NET 开发者峰会
2019 年,注定会是 .NET Core 社区发展的关键一年,诸多重大事件在这一年发生!正如大家所期待的那样,刷新中国 .NET 社区的年度盛会--2019 中国 .NET 开发者峰会(.NET C ...
- Linux(CentOS)安装SQL Server
1.下载Microsoft SQL Server Red Hat 存储库配置文件 curl -o /etc/yum.repos.d/mssql-server.repo https://packages ...
- 如果你不了解Java的JVM,那真的很难进BAT一线大厂!
前言 对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug.同时,JVM也是面试环节的中重灾区.我们不能为了面试而面试,但是学习会这些核心知识你必定会成为面试 ...
- pythpn爬虫--来一波美女,备好纸巾了!
关于图片名称的中央乱码问题 import requests from lxml import etree url = 'http://pic.netbian.com/4kmeinv/index_%d. ...
- fineuploader php服务端
新版本的fineuploader项目中已经没有现成的php server端,需要额外使用composer进行安装,折腾好久才下下来,在此分享出来给大家. 下载地址: http://files.cnbl ...