2014-08-29 2 views
2

나는 악의적 인 이메일에있는 항아리를 발견 했으므로 이것에 대한 콜백을 관찰하지 않았으며 더 자세히 살펴보기로 결정했습니다. 먼저 jd-gui를 사용하려고 시도했지만 아래에 이런 유형의 구조가 있습니다.바이트 코드가있는 eclipse로 외부 jar를 어떻게 디버그합니까?

Name of Jar.jar 
(default package) 
    Main.class 
META_INF 
plugins 
    Server.class 
ID - Used as part of Server.class it appears 
MANIFEST.MF 40KB Resource File I believe 

Main.class가

public class Main extends ClassLoader 
{ 
} 

Server.class

package plugins; 

import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.net.Socket; 
import java.util.Properties; 

public abstract class Server 
{ 
public static Properties config; 
public Socket socket; 
public ObjectOutputStream out; 
public ObjectInputStream in; 

public abstract void onLine(); 

public abstract void offLine(); 

public abstract String getId(); 

}

자세히 나는 crowdstrike 기사를 통해 온 몇 가지 조사를하는 설정하는 방법 이클립스 설치를 검사하는 바이트 코드 수준의 외부 jar 파일, 특히 난독 화 된 경우 되려고. http://www.crowdstrike.com/blog/native-java-bytecode-debugging-without-source-code/

바이트 코드 비주얼 라이저를 사용하면 하나가 무엇인지 더 많이 볼 수 있었지만 여전히 디버깅 할 수 없었습니다.

대신이 디버깅 할 수있는의 발췌문 Main.class가의 바이트 코드 시각화를 통해

 /* class file format version 50.0 (java 1.6) */ 

public class Main extends java.lang.ClassLoader { 

    /* compiled from y */ 

    java.io.ByteArrayOutputStream iIiIiiiIii; 

    private final java.util.HashMap<java.lang.String, java.lang.Class> iIiiIIIIiI; 

    private final java.util.HashMap<java.lang.String, byte[]> ALLATORIxDEMOxASAASDmaDASDriASDASDDASDASDASDADQWDQWlloQWDasdasdasdsd; 

    private void IIiIiIIIII(java.util.jar.JarInputStream arg0) throws java.io.IOException { 
     /* L100 */ 
     0 getstatic 1;   /* java.lang.System.out */ 
     3 ldc_w 284;    /* "\u0018-\u001a+\u001c)\u001e'\u0010/" */ 
     6 invokestatic 260;  /* java.lang.String Main.ALLATORIxDEMOxASAASDmaDASDriASDASDDASDASDASDADQWDQWlloQWDasdasdasdsd(java.lang.String arg0) */ 
     9 invokevirtual 2;  /* void println(java.lang.String arg0) */ 
     /* L653 */ 
     12 getstatic 1;   /* java.lang.System.out */ 
     15 ldc_w 284;    /* "\u0018-\u001a+\u001c)\u001e'\u0010/" */ 
     18 invokestatic 260;  /* java.lang.String Main.ALLATORIxDEMOxASAASDmaDASDriASDASDDASDASDASDADQWDQWlloQWDasdasdasdsd(java.lang.String arg0) */ 
     21 invokevirtual 2;  /* void println(java.lang.String arg0) */ 

, 나는 "주요 유형"문제를 그만 둘.

선택 주요 유형을

사람이 관심이 있다면, 나는 것입니다 전자 메일 당신에게 샘플이 포함되어 있지 않습니다. 나는 자바 초보자이기 때문에 디버깅을 제대로 수행하는 방법에 대한 통찰력은 매우 높이 평가된다.

답변

0

당신이 또한 디버그 바이트 코드에 허용 IDE 플러그인을 제공 http://jd.benow.ca/ 볼 수 있습니다

관련 문제