反编译和逆向出现:java.lang.VerifyError(新问题样本)
PS:要转载请注明出处,本人版权所有。
PS: 这个只是基于《我自己》的理解,
如果和你的原则及想法相冲突,请谅解,勿喷。
前置说明
本文作为本人csdn blog的主站的备份。(BlogID=049)
本文发布于 2017-12-22 15:54:49,现用MarkDown+图床做备份更新。blog原图已丢失,使用csdn所存的图进行更新。(BlogID=049)
环境说明
无
前言
某日,遇到一个App,突然想来一发,于是,直接下到这个app的老一点的版本,用某自动脱壳机脱壳后,得到Dex文件。并通过工具(AndroidKiller)生成Smali文件(此文件不完整)
java.lang.VerifyError
首先,把Smali文件放回到我们反编译后的Apk文件目录去,修复相关的类目录。这时候,在通过工具,把整个工程重新编译生成Apk,是可以正常安装的,但是不能够正常打开,并且得到java.lang.VerifyError错误。
经过大量的搜索和整理,得到如下结论。
此错的原因为:由于smali指令序列不符合相关的规范(指令丢失,反编译失败了,或者指令反编译错误,得到了错误的smali指令。对于反编译失败,相关的反编译工具(AndroidKiller)可能会在当前字段出现标注,根据标注解决就好)。
网上现存的不规范的原因:
- 寄存器使用数量和定义个数不一致(用脚本很容易出现此问题)
- 函数体不完整,丢失相关标识符.end method等
java.lang.VerifyError 新问题样本
- 反编译出问题的东西大部分在构造函数,init()方法大部分都出现在缺少return-void
- 当前类继承的interface,父类为java object ,出现 没有调用java object - > init()方法
对于以上问题,其实相关工具会在smali文件里面存在 #disallowed odex opcode错误,直接搜索就可以解决。
后记
无
参考文献
- 无
打赏、订阅、收藏、丢香蕉、硬币,请关注公众号(攻城狮的搬砖之路)
PS: 请尊重原创,不喜勿喷。
PS: 要转载请注明出处,本人版权所有。
PS: 有问题请留言,看到后我会第一时间回复。
反编译和逆向出现:java.lang.VerifyError(新问题样本)的更多相关文章
- java.lang.VerifyError异常
以前遇到过java.lang.VerifyError 原因是jar包冲突 tomcat6自带jsp.jar.servlet.jar所以项目中不用引入 tomcat5不带jsp.jar.servlet. ...
- java.lang.VerifyError: Inconsistent stackmap frames at branch target 81
java项目中有如下代码: @RequestMapping(value = "/getMxList") @ResponseBody public Map<String, Ob ...
- nested exception is java.lang.VerifyError: Expecting a stackmap frame at bra
Caused by: java.lang.VerifyError: Expecting a stackmap frame (2016-05-19 09:56:29) 转载▼ 标签: it 分类: Ja ...
- intellij idea 添加动态 user library(java.lang.VerifyError)【转】
使用IDEA的时候有时要用到eclipse的user library,由于两个IDE导入library的方式不同导致我们找不到导入user library的方法. 查IDEA的官方文档,找到方法如下: ...
- - 反编译 AndroidKiller 逆向 实践案例 MD
目录 目录 反编译 AndroidKiller 逆向 实践案例 MD AndroidKiller 简介 插件升级 基本使用 实践案例 修改清单文件 打印 debug 级别的日志 方式一:直接代理 Lo ...
- Jedis:Exception in thread "main" java.lang.VerifyError: Bad type on operand stack
Exception in thread "main" java.lang.VerifyError: Bad type on operand stackException Detai ...
- hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)
1.HDFS + WEB 项目 报java.lang.VerifyError... 异常 抛异常: Exception in thread "main" java.lang.Ver ...
- jedis:exception is java.lang.VerifyError: Bad type on operand stack
项目中需要用到缓存,经过比较后,选择了redis,客户端使用jedis连接,也使用到了spring提供的spring-data-redis.配置正确后启动tomcat,发现如下异常: ======== ...
- Java反编译利器-Jad, Jode, Java Decompiler等及其IDE插件
转自:http://blog.csdn.net/superbeck/article/details/5189231 对于长年使用Java的程序员,大部分应该都会或多或少的使用到反编译软件.毕竟,不可能 ...
- 9、android开发之java.lang.verifyError(转载)
原文链接: http://www.linuxidc.com/Linux/2012-08/67289.htm 解决方案: 最近在做一个Android开发小项目的时候,遇到java.lang.verify ...
随机推荐
- JAVA入门学习之GUI编程思想——day01
GUI编程 什么是GUI???图形化编程 组件 窗口 弹窗 按钮 文本框 图片 事件 ..... GUI的核心:AWT Swing GUI编程的缺陷: 1.界面不美观 2.需要jre环境 虽然 ...
- 探索C语言中的联合体与枚举:数据多面手的完美组合!
欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 联合体的定义 联合体又叫共用体,它是一种特殊的数据类型,允许您在相同的内存位置存 ...
- 文心一言 VS 讯飞星火 VS chatgpt (198)-- 算法导论14.3 6题
六.用go语言,说明如何来维护一个支持操作MIN-GAP的一些数的动态集Q,使得该操作能给出Q中两个最接近的数之间的差值.例如,Q=(1,5,9,15,18,22),则MIN-GAP返回18-15=3 ...
- NEMU PA 2-1 实验报告
课程地址:https://www.bilibili.com/video/BV1TE411P7tq 一.实验目的 通过PA2-0了解了汇编基础知识和如何去阅读i386手册后,在这个阶段我们就需要: 了解 ...
- NC16562 [NOIP2012]开车旅行
题目链接 题目 题目描述 小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 ...
- NC24263 USACO 2018 Feb G]Directory Traversal
题目链接 题目 题目描述 奶牛Bessie令人惊讶地精通计算机.她在牛棚的电脑里用一组文件夹储存了她所有珍贵的文件,比如: bessie/ folder1/ file1 folder2/ file2 ...
- NVM Feature— Reservation(NVME 学习笔记五)
8.8 Reservations 预订 NVMe的reservation预订功能,用于让两个或多个主机能够协调配合的访问共享namespace.使用这些功能的协议和方式超出了本规格说明书的范围.对这些 ...
- low-code 低代码平台 java 代码自动一键生成工具
low-code low-code 是一款为 java 打造的低代码平台. 开源地址:https://github.com/houbb/low-code 特性 支持基本的增删改查 支持枚举值处理 支持 ...
- Go微服务框架go-kratos实战学习06:配置中心使用-nacos作为配置中心和 file作为配置存储
一.kratos 配置介绍 配置文件的作用就是把一些会变化的配置项单独存放,与程序相剥离. 把配置项进行单独管理. kratos 支持多种形式的配置, 比如 file,环境变量. 还支持一些配置软件, ...
- 迁移mm_wiki数据实践记录
写在前面 虽然我的随笔大部分都是记录在静态博客站点和博客园平台的,但是有一些临时的想法还是使用了wiki来记录. 经过多次试用和对比之后,最终选择了mm-wiki来作为自托管的wiki系统. mm-w ...