一个由PROGUARD与FASTJSON引起的血案

2024-06-08 18:18

本文主要是介绍一个由PROGUARD与FASTJSON引起的血案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个由PROGUARD与FASTJSON引起的血案

更多内容请看这里:
https://ahangchen.gitbooks.io/windy-afternoon/content/

更新微信sdk导致ComposeData中的内部类ComposeDataSender方法被混淆

根本原因,fastjson使用姿势不对。

问题描述:

一个发件人列表里,应当呈现的数据(这里命名为ComposeData)为空

(1)业务逻辑层

获取发件人列表时,如果Composedata超时,会从网络重新拉取Json格式的ComposeData,拉取后利用FastJson的toString()方法,将ComposeData写入DB。

混淆情况下,toString()生成的json字符串会缺少alias字段。

定位问题到FastJson的toString()。

(2)FastJson层

FastJson执行JSON类的toString()方法时,

对普通的Object对象(这里是ComposeDataSender),会将这个对象当做JavaBean对象处理,

在JavaBeanSerializer中,找到这个对象的getter方法,

来确定要生成的Json格式数据中,K-V的值。

在JavaBeanSerializer中打l

这篇关于一个由PROGUARD与FASTJSON引起的血案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1042939

相关文章

概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)

概率DP: 利用动态规划去解决 概率 期望 的题目。 概率DP 求概率(采用顺推) 从 初始状态推向结果,同一般的DP类似,只是经历了概率论知识的包装。 老题: 添加链接描述 题意: 袋子里有w只白鼠,b只黑鼠,A和B轮流从袋子里抓,谁先抓到白色谁就赢。A每次随机抓一只,B每次随机 抓完一只后 会有另外一只随机老鼠跑出来。如果两个人都没有抓到白色,那么B赢。A先抓,问A赢得概率。 w b 均在

UTON HACK 4.0 黑客马拉松大赛在马来西亚引起巨大反响

自第四届UTON HACK黑客马拉松大赛开启报名以来,吸引了全世界范围内区块链技术精英的广泛参与,在东南亚地区特别是马来西亚引起了巨大反响。 近日,马来西亚主流媒体Delight Media Malaysia对本次黑客马拉松大赛的协办单位马来西亚何氏全球总商会、UM公司进行了专访。 前排左一起是何致呈、何德成、何伟贤、尼克及马克。 (Delight Media Malaysia摄) 马来

android 6.0的DozeMode低功耗模式 及 引起的进程保活问题

一、问题的来源         由于Android的开放特性,加上国内app开发者的觉悟普遍不高的情况下,越来越多的app开始利用安卓的系统特性甚至可以称为漏洞,故意让app退出后仍然占用大量的硬件资源。   越来越多的应用会在后台运行时“假死”,即不进入真正的Sleep,而是不断在后台轮询搜集用户行为或者保持某些长链接来保障数据的实时性。而Android系统自身并未出台对应的策略来约束或者限制

DMA引起数组越界

今遇到了内存越界问题,很隐蔽   EXTERN  __IO uint16_t RegularConvData_Tab[2*3]; 定义的DMA搬运工的buffer大小为6   实际上当时红线标注,改为了12,导致后续的变量被赋值 只要此值小于定义的buffer的大小就可以了   这个越界是非常不注意的问题,编译器不报错

com.alibaba.fastjson.JSONArray循环引用导致{“$ref“:“$[0]“}

发一个库存~ 在for循环中将对象add到.JSONArray中,arr.toJSONString(),输出的结果如下: [{"sex":"男","age":"10","name":"张三"},{"$ref":"$[0]"},{"$ref":"$[0]"}] 最终发现 这是个JSONArray的问题; 验证逻辑: 在for循环外声明对象JSONArray arr,和JSONObjec

坑——fastjson将字符串转到带枚举的java对象

fastjson将不同的字符串转换成带枚举的java对象时,不同的字符串值转换成java对象的结果不同; 测试用fastjson版本: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.83</version> </dependency>  测试用的jav

Qt编译报错,新增加宏定义引起

qmake 用于生成 makefile。qmake 会扫描你的头文件,寻找 Q_OBJECT 宏以便 moc 处理。由于你的 Q_OBJECT 宏是后来添加上的,不重新运行 qmake 的话无法让 moc 知道新增加的宏,也就没办法处理,所以会出错。 Qt 5 的话,不知道你用的什么编译器,需要编译器支持才行,并且需要在 pro 文件中添加 CONFIG += c++11 Qt 5 的指针语法

Android ObjectOutputStream Serializable引发的血案

遇到一个问题 安装后第二次进app,闪退重现步骤[前置条件]打包分支:dev_7.13手机:vivo NEX 8.1.0[步骤]安装三星app----同意用户协议进入书城---连续点击back退出app---再次进入三星阅读[结果]出现闪退(必现)[期望]能正常进入书城附件 查看了日志,没有crash 相关的信息。那么我就相信,应该是自己程序里面的杀死了进程。 根据日志,果然是

minifyEnabled属性 和ProGuard配置文件

在Android的build.gradle文件中,release配置块主要用于配置应用程序的发布版本。你提供的两个release配置块中,主要区别在于minifyEnabled的值和使用的ProGuard配置文件。 1. minifyEnabled属性 minifyEnabled false: 当minifyEnabled设置为false时,代码压缩和混淆不会被启用。这意味着在构建发布版本时

JSON处理库 -- Fastjson

文章目录 一、json格式1.1 用途1.2 语法1.3 常见格式 二、fastjson常用类2.1 JSONObject2.2 JSONArray 三、序列化和反序列化3.1 默认序列化与反序列化3.2 序列化的扩展3.3 自定义序列化SerializeFilter3.4 @JSONField 注解3.5 复习Jackson 一、json格式 1.1 用途 一种轻量