当前位置: 首页 > news >正文

网站公司简介模板引流软件

网站公司简介模板,引流软件,做网站怎样收费的,织梦印刷公司网站源码经过proguard混淆过后,发生异常时堆栈也进行了混淆,那么如果获取的原始的堆栈呢?我们下面来看下 使用proguard 根据mapping文件直接解析 import proguard.obfuscate.MappingReader; import proguard.retrace.FrameInfo; import proguard.re…

在这里插入图片描述
经过proguard混淆过后,发生异常时堆栈也进行了混淆,那么如果获取的原始的堆栈呢?我们下面来看下

使用proguard 根据mapping文件直接解析

import proguard.obfuscate.MappingReader;
import proguard.retrace.FrameInfo;
import proguard.retrace.FramePattern;
import proguard.retrace.FrameRemapper;
import proguard.retrace.ReTrace;import java.io.File;
import java.io.IOException;public class SymbolAnalysis {public static void main(String[] args) throws IOException {final FramePattern pattern = new FramePattern(ReTrace.REGULAR_EXPRESSION, false);final FrameRemapper frameRemapper = new FrameRemapper();MappingReader mappingReader = new MappingReader(new File("proguard/target/proguard_map.txt"));mappingReader.pump(frameRemapper);String crashStack = "Caused by: java.lang.RuntimeException: test exception\n" +"        at com.example.proguard.b.b.<init>(User.java:25) ~[classes!/:0.0.1]\n" +"        at com.example.proguard.ProguardApplication.run(ProguardApplication.java:22) [classes!/:0.0.1]\n" +"        at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:804) [spring-boot-2.4.2.jar!/:2.4.2]\n" +"        ... 13 common frames omitted\n";final String[] stackList = crashStack.split("\n");for (String stack : stackList) {FrameInfo frameInfo = pattern.parse(stack);if (frameInfo == null) {System.out.println(stack);continue;}for (FrameInfo retracedFrame : frameRemapper.transform(frameInfo)) {String retraceStack = pattern.format(stack, retracedFrame);System.out.println(retraceStack);}}}
}

运行结果如下,可以看到堆栈已经还原为了之前的源代码

在这里插入图片描述

proguard 是如何解析的呢

通过魔改proguard.obfuscate.MappingReader 这个类,我们加入写打印日志,分别是下面带有箭头的地方添加日志输出

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

然后我们修改下解析方法中我们自定义的CustomizeMappingReader,如下:

在这里插入图片描述
通过运行,我们可以得到如下结果:

在这里插入图片描述
通过分析我们可以发现:

  • class : 分为两个部分,混淆之后的类的全限定名及原始类的全限定名
  • field: 分为三部分,分别是混淆之后的类的全限定名、混淆之后的字段名称、以及字段信息
  • method: 分为三部分,分别是混淆之后的类的全限定名、混淆之后的方法名称、以及方法信息

根据这个结构,我们可以猜测到如果是方法解析,首先根据混淆之后的类的全限定名找到原始类的全限定名,然后根据混淆之后的方法名称以及方法信息找到原始的方法

在这里插入图片描述

http://www.hrbkazy.com/news/43997.html

相关文章:

  • 银川网站建设联系电话郑州网站网页设计
  • wordpress网站使用教程营销方法有哪些
  • dw做网站背景图片设置铺平北京外包seo公司
  • 做h5网站设计百度推广登陆
  • wordpress 如何维护黑帽seo培训
  • 怎么做app网站ui原型徐州网站优化
  • 成考做那个网站的题比较好广告营销留电话网站
  • 个体户营业执照科研做企业网站吗推广搜索引擎
  • web网站开发的好书软件推广的渠道是哪里找的
  • 注册网站送金币东莞今天新增加的情况
  • 电子商务网站建设与维护实训题库网页制作基础教程
  • 星巴克网站开发票吗网址搜索引擎入口
  • 商务网站建设有哪几个步骤网站的优化seo
  • 网站安全评估怎么做天津网站优化软件
  • 开设赌场罪 网站开发四平网络推广
  • 专业旅游网站建设seo建站优化推广
  • 做网站需要多少钱 百度网络营销有什么特点
  • 深圳品牌网站设计公司seo工资服务
  • 邯郸做淘宝网站免费b站动漫推广网站2023
  • 天津武清做网站tjniuseo排名软件怎么做
  • 做网站需要什么基础爱战网关键词查询网站
  • html 购物网站长春网络推广优化
  • 承接设计网站建设sem推广优化
  • 杭州网站建设 网络服务友情链接出售平台
  • 建个网站在哪备案如何做网站seo
  • 用老域名做网站还是新域名网络广告有哪些形式
  • 环保网站模板全国疫情高中低风险区一览表
  • 月付商城网站建站seo优化运营专员
  • wordpress苹果客户端二十条优化
  • 如何登录网站空间推广网络营销外包公司