0
ASM ByteCode 라이브러리를 사용하여 HttpUrlConnection IC를 만들 때 요청 헤더 (UUID)를 추가하십시오. 아래 코드는 내 코드입니다. - 출력을 얻는 중 ===> 이것은 Http CONNECT Method!입니다. 그러나 헤더를 추가하는 방법을 모른다.HttpURLConnection을 사용하는 ASM 바이트 코드
package com.eg.agent;
import org.objectweb.asm.MethodVisitor;
import org.objectweb.asm.Opcodes;
public class EgHttpMethodVisitorAdapter extends MethodVisitor {
private String methodName;
private String className;
private String description;
public EgHttpMethodVisitorAdapter(MethodVisitor mv , String methodName , String description , String className) {
super(Opcodes.ASM4, mv);
this.methodName = methodName;
this.className = className;
this.description = description;
}
public void visitCode() {
super.visitCode();
System.out.println("\t [HTTP URL CONNECTION - Method Name]"+methodName +" Class NAME: "+className + " DESC :"+description);
boolean isConnect = false;
if(methodName.equals("connect") && description.equals("()V"))
isConnect = true;
if(isConnect) {
mv.visitFieldInsn(Opcodes.GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
mv.visitLdcInsn (" ====> This is Http CONNECT Method!");
mv.visitMethodInsn(Opcodes.INVOKEVIRTUAL, "java/io/PrintStream","println", "(Ljava/lang/String;)V");
}
}
public void visitMaxs(int maxStack, int maxLocals) {
super.visitMaxs(maxStack + 4, maxLocals);
}
}
안녕하세요 유진 Kuleshov는 :) –
가 나 한테 감사하지 마세요 ... 당신의 도움을 주셔서 감사합니다. 그냥 대답을 수락하십시오. –