▶이동
  • 상구너 닷컴 블로그를 방문하신 여러분을 환영합니다 :)
  • 스팸 정책에 의해 일부 덧글·방명록차단될 수 있습니다.

BCEL 그나마 나은 참고자료..

Study/BCI&BCEL&ASM 상구너(smokingbird) 2014. 8. 4. 16:20


영어 꼬부랑 글씨

http://www.smfsupport.com/support/java/bcel-tutorial!/


그래도 여기만한거 없음 ... ㅠㅠ 보기 너무 어렵다 ...


추가 140808

https://www.moparscape.org/smf/index.php?topic=216985.0


추가 140813

http://www.geekyarticles.com/2011/08/manipulating-java-class-files-with-bcel.html



추가 140821

http://sourcecodebrowser.com/bcel/5.2/index.html

(클래스다이어그램까지 자세하게 설명됨 물론 영어)


http://www.geekyarticles.com/2011/09/implementing-aspect-oriented.html

자바 에이전트 사용에대한 설명이 있다.

'Study > BCI&BCEL&ASM' 카테고리의 다른 글

bcel 6 다운로드  (0) 2015.01.12
BCI 기술과 BCEL  (0) 2015.01.12
ASM 으로 바이트코드 변경하기.  (0) 2014.08.21
BCEL 그나마 나은 참고자료..  (0) 2014.08.04
bcel api doc  (0) 2014.08.01
BCEL 메소드 추가하기  (0) 2014.08.01
0 0
  • 공지사항
    중요한 개인정보필요한 경우가 아닌 경우 적지 마시고, 적으셨다면 비밀글 설정을 꼭 해주시기 바랍니다.
    스팸 필터 정책에 의해 영문만으로 작성된 글이나 무의미한 내용의 글은 등록이 되지 않을 수도 있습니다.
  • bcel api doc

    Study/BCI&BCEL&ASM 상구너(smokingbird) 2014. 8. 1. 16:11

    http://bcel.sourceforge.net/docs/

    패키지위치만 조금 다름. 

    감안해서 볼것.


    140804 추가

    http://www.massapi.com/package/org/apache/bcel/package-summary.html


    위에거보다 훨씬 괜찮음.


    http://commons.apache.org/proper/commons-bcel/apidocs/

    'Study > BCI&BCEL&ASM' 카테고리의 다른 글

    bcel 6 다운로드  (0) 2015.01.12
    BCI 기술과 BCEL  (0) 2015.01.12
    ASM 으로 바이트코드 변경하기.  (0) 2014.08.21
    BCEL 그나마 나은 참고자료..  (0) 2014.08.04
    bcel api doc  (0) 2014.08.01
    BCEL 메소드 추가하기  (0) 2014.08.01
    0 0
  • 공지사항
    중요한 개인정보필요한 경우가 아닌 경우 적지 마시고, 적으셨다면 비밀글 설정을 꼭 해주시기 바랍니다.
    스팸 필터 정책에 의해 영문만으로 작성된 글이나 무의미한 내용의 글은 등록이 되지 않을 수도 있습니다.
  • BCEL 메소드 추가하기

    Study/BCI&BCEL&ASM 상구너(smokingbird) 2014. 8. 1. 15:57

    적용에 앞서 

    이클립스의 경우 bcel 라이브러리 추가.

    한차례 javac 후 arg를 추가하여 실행


    최종확인은 터미널, 콘솔에서


    Test.java

    public class Test {}


    AddMain.java

    import java.io.IOException;

    import org.apache.bcel.classfile.*;

    import org.apache.bcel.generic.*;

    import org.apache.bcel.*;


    public class AddMain {


        static public void main(String args[]) {

            String className = (args.length >= 1) ? args[0] : "";

            JavaClass mod = null;

            try {

                mod = Repository.lookupClass(className);

            }

            catch (Exception e) {

                System.err.println("Could not get class " + className);

            }


            ClassGen modClass = new ClassGen(mod);

            ConstantPoolGen cp = modClass.getConstantPool();


            InstructionList il = new InstructionList();


            il.append(new GETSTATIC(cp.addFieldref("java.lang.System","out","Ljava/io/PrintStream;")));

            il.append(new PUSH(cp, "헐대박 쩔어"));

            il.append(new INVOKEVIRTUAL(cp.addMethodref("java.io.PrintStream","println","(Ljava/lang/String;)V")));

            il.append(new GETSTATIC(cp.addFieldref("java.lang.System","out","Ljava/io/PrintStream;")));

            il.append(new PUSH(cp, "ㅋㅋ"));

            il.append(new INVOKEVIRTUAL(cp.addMethodref("java.io.PrintStream","println","(Ljava/lang/String;)V")));

            il.append(new RETURN());


            MethodGen methodGen = new MethodGen(Constants.ACC_PUBLIC|Constants.ACC_STATIC,Type.VOID,new Type[]{new ArrayType(Type.STRING, 1)},new String[]{"args"}, "omgg", className, il, cp);


            methodGen.setMaxLocals();

            methodGen.setMaxStack();


            modClass.addMethod(methodGen.getMethod());

            modClass.update();


            try {

                JavaClass newClass = modClass.getJavaClass();

                String className2 = className.replace(".","/");

                newClass.dump(className2 + ".class");

                System.out.println("Class " + className + " modified");

            }

            catch (IOException e) {

                e.printStackTrace();

            }

        }

    }

    'Study > BCI&BCEL&ASM' 카테고리의 다른 글

    bcel 6 다운로드  (0) 2015.01.12
    BCI 기술과 BCEL  (0) 2015.01.12
    ASM 으로 바이트코드 변경하기.  (0) 2014.08.21
    BCEL 그나마 나은 참고자료..  (0) 2014.08.04
    bcel api doc  (0) 2014.08.01
    BCEL 메소드 추가하기  (0) 2014.08.01
    0 0
  • 공지사항
    중요한 개인정보필요한 경우가 아닌 경우 적지 마시고, 적으셨다면 비밀글 설정을 꼭 해주시기 바랍니다.
    스팸 필터 정책에 의해 영문만으로 작성된 글이나 무의미한 내용의 글은 등록이 되지 않을 수도 있습니다.
  • 12