文章目錄
- Java-CommonsCollections2TemplatesImpl利用鍊分析
- 完整代碼
Java-CommonsCollections2TemplatesImpl利用鍊分析
我們知道我們之前可以利用
TemplatesImpl
構造出⽆
Transformer數組
的利⽤鍊,那這裡是否可以實作呢,答案是是的,在這裡的
queue
現在開始正文,還是稍微詳細說一下利用過程吧
現在我們的目标就是通過
PriorityQueue
來調用
TemplatesImpl
的
newTransformer
來加載位元組碼
Transformer transformer = new InvokerTransformer("newTransformer", null, null);
通過
readObject
調用
heapify
再調用
siftDown
再調用
siftDownUsingComparator
通過調用
compare
觸發
TransformingComparator
的
compare
方法
通過
InvokerTransformer
利用反射來調用
TemplatesImpl
的
newTransformer
觸發
TemplatesImpl
的
newTransformer
,
調用
getTransletInstance
調用
Classloader
的
defineClass
實作位元組碼調用