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尝试相关推荐
- java中字节码_聊聊Java的字节码
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 巴山楚水凄凉地,二十三年弃置身. 怀旧空吟闻笛赋,到乡翻似烂柯人. 沉舟侧畔千帆过,病树前头万 ...
- 美团热修复Robust源码庖丁解牛(第一篇字节码插桩)
如果你想对java编译后的class文件做一些手脚的话,市面上有供你选择的asm.javassist.aspectJ(aop面向切面编程)等等,一般修改class文件的用途有你想统计一些东西,例如ap ...
- JVM与字节码——2进制流字节码解析
为什么80%的码农都做不了架构师?>>> 字节码解析 结构 本位将详细介绍字节码的2进制结构和JVM解析2进制流的规范.规范对字节码有非常严格的结构要求,其结构可以用一个JSO ...
- python 字节码_简单入门python字节码混淆
前言 我就是小菜鸡本鸡了,不是很会写东西,请各位大佬多多见谅.本文基于python2.7,因为python3并不是很懂. python文件如果要发布的话,有时候还是难免想保护一下自己的源码,有些人就直 ...
- 【网上的都不靠谱?还是得改源码】用Javasisst的字节码插桩技术,彻底解决Gson转Map时,Int变成double问题...
一.探究原由 首先申明一下,我们要解决的问题有两个: Json串转Map时,int变double问题 Json串转对象时,对象属性中的Map,int变double问题 然后,我们来了解一下,Gson实 ...
- java 虚拟机 字节码,JAVA虚拟机:虚拟机字节码执行引擎
"虚拟机"是一个相对"物理机"的概念,这两种机器都有代码执行能力. 物理机的执行引擎是直接建立在处理器.硬件.指令集和操作系统层面上的. 虚拟机的执行引擎由自己 ...
- 什么是java源码文件,什么是字节码文件,初程序的编译和运行
java源文件就是源代码文件,是指我们编写好的代码文件,即 当我们开始运行的时候系统会执行javac命令先把java源文件编译成字节码文件即: 这里科普一下java为什么会有字节码文件. 字节码产生的 ...
- C语言会生成字节码文件吗,什么是字节码文件?
字节码文件是经过编译器预处理过的一种文件,是JAVA的执行文件存在形式, Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行.解释是通过Ja ...
- java自带的字节码技术_读懂字节码-还原JAVA源码
已知有两个类: public class Father extends GrandFather { public String name = "father"; public vo ...
最新文章
- 机器学习数据预处理之缺失值:后向填充
- 南京邮电大学网络攻防训练平台(NCTF)-异性相吸-Writeup
- APP启动引导页的制作,用ViewPager实现翻页动画
- 《Java 7程序设计入门经典》一3.7 for循环
- mail发送的内容显示为附件的解决办法
- torch.nn.Module()
- LeetCode 771. 宝石与石头
- react全局方法_前端面试题 ---react
- Memcached如何实现高性能批量删除
- 编写程序销毁一个单链表
- python返回对象_函数返回一个对象-python
- 找回foxmail下的邮箱密码
- 一些成功又不失趣味的网络营销案例
- WhatsApp群发系统-SendWS拓客系统功能后台介绍(五):WhatsApp筛号群发,群发超链
- ODL开发【SDN控制器-下】【C4-04】
- 利用Tween让动画更平滑(补间动画)
- 我靠海外抖音搬运视频赚到了人生第一桶金:这个风口行业,真的很赚钱
- 墨干V1.1.0: 新一代结构化编辑器的雏形
- 1 2 3 转换成一百二十三,十万位以内的转换
- XAMPP mysql无法启动
热门文章
- WordPress 三个必须的安全措施
- 人工智障学习笔记——机器学习(12)LDA降维
- LeetCode 496. Next Greater Element I
- 【今日CV 视觉论文速览】 Part2 19 Feb 2019
- leetcode算法—无重复字符的最长子串 Longest Substring Without Repeating Characters
- php 一句话木马、后门
- Nginx学习之十四-GDB调试Nginx初试
- 【C++基础学习】const限定修饰符详解
- selenium-入门与安装-0223
- jquery-模态框的显示与消失操作