使用jeb转换java语言_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转换java语言_JEB 无源码调试 以dvm smali字节码方式,Demo尝试相关推荐
- JEB 无源码调试 以dvm smali字节码方式,Demo尝试
关于调试器看不到进程,无法attach的问题,网上也有很多教程,基本是修改ro.debugable =1 ,ro.secure = 0 让adbd有root权限 attach到其他进程,涉及到要修改 ...
- Java反射机制01_反射的概念以及获取字节码信息 的四种方式
Java反射机制01-反射的概念以及获取字节码信息 的四种方式 一.反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象, 都能够调用它的任意 ...
- 什么是java源码文件,什么是字节码文件,初程序的编译和运行
java源文件就是源代码文件,是指我们编写好的代码文件,即 当我们开始运行的时候系统会执行javac命令先把java源文件编译成字节码文件即: 这里科普一下java为什么会有字节码文件. 字节码产生的 ...
- C语言会生成字节码文件吗,什么是字节码文件?
字节码文件是经过编译器预处理过的一种文件,是JAVA的执行文件存在形式, Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行.解释是通过Ja ...
- JVM与字节码——2进制流字节码解析
为什么80%的码农都做不了架构师?>>> 字节码解析 结构 本位将详细介绍字节码的2进制结构和JVM解析2进制流的规范.规范对字节码有非常严格的结构要求,其结构可以用一个JSO ...
- 美团热修复Robust源码庖丁解牛(第一篇字节码插桩)
如果你想对java编译后的class文件做一些手脚的话,市面上有供你选择的asm.javassist.aspectJ(aop面向切面编程)等等,一般修改class文件的用途有你想统计一些东西,例如ap ...
- python 字节码_简单入门python字节码混淆
前言 我就是小菜鸡本鸡了,不是很会写东西,请各位大佬多多见谅.本文基于python2.7,因为python3并不是很懂. python文件如果要发布的话,有时候还是难免想保护一下自己的源码,有些人就直 ...
- 【Java基础】HashMap扩容 | CopyOnWriteArrayList 的底层原理 | 字节码 | Java 异常体系
1. HashMap的扩容机制 JDK 1.7 扩容是针对数组进行扩容,链表是不需要进行扩容的.扩容时先生成原来数组两倍大小的新数组,在把原来老数组上的链表上的元素转移过去.具体在转移链表中元素的步骤 ...
- java 必须存在默认构造器_Java默认构造方法在字节码的实现
方法在程序的重要性不言而喻,了解方法在字节码中的表达能够使我们开发做到更加心中有数. 再看class文件结构 上一步已经分析完了class文件中的字段(field_info)的表达,接下来就是方法数( ...
- java中j 和 j啥区别_从字节码层次分析++j和j++的区别
一.缘起 最近看到个面试题: int j = 0; for(int i = 0; i <100; i++) j = j++; System.out.println(j); 输出结果是0,如果换成 ...
最新文章
- Django-C002-深入模型,到底有多深
- Win2K下关联进程/端口之代码初步分析
- AB1601定时器1注意事项
- 面向过程和面向对象编程的优缺点
- 51Node 01组成的N的倍数
- Kafka:那我走?这个新一代消息中间件,彻底火了!
- 如何复制图文消息封面图片?正文没显示
- C#LeetCode刷题之#111-二叉树的最小深度​​​​​​​(Minimum Depth of Binary Tree)
- 天猫双11:1日到11日0点45分 382个品牌成交额超过1亿元
- Zabbix 系统监控(二)Linux 系统监控
- HDU 4054 Hexadecimal View
- plsql删除历史记录(重新打开文件)
- 解决ssh_exchange_identification:read connection reset by peer 原因
- linux开机启动界面异常,Linux 界面不能启动的解决
- 患上糖尿病,为什么要做OCT眼底照相检查?
- Python-自学爬虫篇
- matlab如何就导数,Matlab微分和导数
- Python 爬虫、抓包
- 平衡二叉树的左旋右旋详解 看不懂你打我
- Centos7 内存插槽信息