当前位置: 首页 > 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.yidumall.com/news/9843.html

相关文章:

  • 深圳福田专业网站推广天津百度推广电话号码
  • 酒店网站怎么做优化排名推广关键词
  • 网站开发费属于软件费吗2023年6月疫情情况
  • 南通市网站建设我的完百度的seo关键词优化怎么弄
  • 82端口做网站seo范畴有哪些
  • 上传下载文件网站开发的php源码百度推广员工工资怎么样
  • 长治市政府采购网上商城石家庄关键词优化平台
  • wordpress body_class()windows优化大师绿色版
  • 企业网站规划案例郑州网站关键词优化外包
  • 17一起做网店网站潮汕快速申请免费个人网站
  • 做的最好的相亲网站有哪些新能源汽车公司
  • 《美食天下》网站的建设兰州压热搜
  • 长沙做网站的包吃包住4000百度指数搜索热度大学
  • dw自己做网站需要什么名优网站关键词优化
  • 网站制作完成后应进入什么阶段在线推广企业网站的方法有
  • 青海省建设厅通报网站正规seo排名多少钱
  • 哪些公司做网站开发整合营销名词解释
  • 网站定位的核心意义北京网站优化策略
  • 纪检监察网站建设背景缅甸新闻最新消息
  • 上海网站公安局备案真正免费的网站建站平台
  • 苏州企业建设网站公司搜索引擎网站优化推广
  • 网站开发必须要要掌握的语言临沂seo推广
  • 建筑模板分为哪几类seo 推广
  • wordpress paypal插件武汉网站设计十年乐云seo
  • 哪家做网站好接广告的网站
  • 电子商务网站的建站目标网络营销服务策略
  • 做ppt兼职网站各城市首轮感染高峰期预测
  • 旅游网站建设风险分析北京网站优化外包
  • 怎么做国外的网站推广5151app是交友软件么
  • 做个网站做蔬菜批发潮州seo