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

bcel api doc

Study/BCI&BCEL&ASM 상구너(sanguneo) 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 메소드 추가하기  (0) 2014.08.01

BCEL 메소드 추가하기

Study/BCI&BCEL&ASM 상구너(sanguneo) 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

sqlyog로 호스팅업체의 mysql 에 접속해보자.

Study/DB 상구너(sanguneo) 2014. 7. 16. 11:27

많은 호스팅업체들이 보안상의 이유로 외부sql 의 접근을 차단하는 경우가 많다.

나는 호스팅케이알에서 호스팅을 받아 사용중인데, 여기선 ssh접속해서 mysql 을 실행하란다.

그런 귀찮은짓을 왜 하겠는가 ..


SqlYog 에는 ssh 터널링 기능이 있다. 이것을 이용해보자.


스샷은 생략.

일단 기본적으로 만들던 방식으로 만들어보자.


new

호스트적고

유저네임적고

패스워드적고

포트번호적고 ....


열심히 적고 테스트 연결을 해보면,

역시나 안됀다.


그럼 이제 작업을 해보자.


메뉴에 SSH탭이 있다.

여기서 Use SSH Tunneling 을 체크한다.

그리고 본인의 호스트 정보를 쭈욱 적어준다. 패스워드는 리멤버 시켜주면 편하다.


그리고 다시 MySql 탭으로 돌아와

호스트를 127.0.0.1 로 바꿔준다.

localhost 로 해도 되는가 의문이 들수있는데 (저는 안돼더라구요 한번 해보세요)


그다음 테스트 커넥션을 누르면

성공메시지가 나온다.






저장하고 접속해보시면 아주 잘됩니다.


도전해보세요!