javaagent參數實現jvm級別代理

       昨天發現idea需要重新激活才能使用,一直使用激活碼激活實在蛋疼,分分鐘又要換碼,遂打算換破解包方式永久激活(激活方式)。

對破解包的原理來了點興趣,研究了一下,發現是使用的jvm虛擬機aop代理的技術。今天講講java虛擬機的配置啓動參數“-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.1.2\bin\jetbrains-agent.jar”的原理。

       Agent是java5以後引進來的,我們可以使用Agent技術構建一個獨立於應用程序的代理程序(即爲Agent),用來協助監測、運行甚至替換其他JVM上的程序,使用它可以實現虛擬機級別的AOP功能。

      Agent分爲兩種,一種是在主程序之前運行的Agent,一種是在主程序之後運行的Agent(前者的升級版,1.6以後提供)。

     如何使用就不詳細展開了,實際上需要編寫一個代理包,然後運行在主程序之上,或者獨立運行、連接植入主程序。熱部署,實時監控,究其原理,其實都是利用jvm的attach來對運行中的代碼進行重新編寫實現的。



 
發佈了11 篇原創文章 · 獲贊 7 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章