Java逆向基礎之初識javaagent

來源:互聯網
上載者:User

標籤:javajavaagent初識

首先說一下javaagent是什麼

javaagent是一種能夠在不影響正常編譯的情況下,修改位元組碼。

在逆向中javaagent可以完成對類的攔截和增強。

看一個例子

在Eclipse建立如下MyAgent結構的項目

MyAgent.java檔案內容

package com.vvvtimes.demo.agent;import java.lang.instrument.Instrumentation;public class MyAgent {    public static void premain(String agentOps, Instrumentation inst) {        System.out.println("=========premain參數個數為2方法執行========,My agentOps = [" + agentOps + "].");        System.out.println(agentOps);    }    public static void premain(String agentOps) {        System.out.println("=========premain參數個數為1方法執行========,My agentOps = [" + agentOps + "].");        System.out.println(agentOps);    }}

MANIFEST.MF檔案內容

Manifest-Version: 1.0Premain-Class: com.vvvtimes.demo.agent.MyAgentCan-Redefine-Classes: true

注意:這裡的Premain-Class必須指向premain方法所在的類

在Eclipse匯出jar的時候需要手動指定這個檔案

我們將匯出的jar命名為MyAgent.jar

再建立一個名為MyProgram的工程

代碼如下

package com.vvvtimes.demo;public class MyProgram {public static void main(String[] args) {System.out.println("=========main方法執行========");}}

匯出可運行jar,命名為MyProgram.jar

將這兩個jar放到同一目錄(我是放到案頭)

cd切換到該目錄後執行

java -javaagent:MyAgent.jar=helloworld -jar MyProgram.jar

運行結果如下

C:\Users\admin\Desktop>java -javaagent:MyAgent.jar=helloworld -jar MyProgram.jar=========premain參數個數為2方法執行========,My agentOps = [helloworld].helloworld=========main方法執行========

可以看到main方法執行前執行了premain方法裡的兩個輸出語句

javaagent參數選項

java -javaagent:agentjar 檔案的位置 [= 傳入 premain 的參數 ] -jar 要啟動並執行jar檔案


Java逆向基礎之初識javaagent

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.