검색
다른 검색어로 검색을 시도하시기 바랍니다.
bcel api doc
http://bcel.sourceforge.net/docs/
패키지위치만 조금 다름.
감안해서 볼것.
140804 추가
http://www.massapi.com/package/org/apache/bcel/package-summary.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 메소드 추가하기 (0) | 2014.08.01 |
BCEL 메소드 추가하기
적용에 앞서
이클립스의 경우 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 에 접속해보자.
많은 호스팅업체들이 보안상의 이유로 외부sql 의 접근을 차단하는 경우가 많다.
나는 호스팅케이알에서 호스팅을 받아 사용중인데, 여기선 ssh접속해서 mysql 을 실행하란다.
그런 귀찮은짓을 왜 하겠는가 ..
SqlYog 에는 ssh 터널링 기능이 있다. 이것을 이용해보자.
스샷은 생략.
일단 기본적으로 만들던 방식으로 만들어보자.
new
호스트적고
유저네임적고
패스워드적고
포트번호적고 ....
열심히 적고 테스트 연결을 해보면,
역시나 안됀다.
그럼 이제 작업을 해보자.
메뉴에 SSH탭이 있다.
여기서 Use SSH Tunneling 을 체크한다.
그리고 본인의 호스트 정보를 쭈욱 적어준다. 패스워드는 리멤버 시켜주면 편하다.
그리고 다시 MySql 탭으로 돌아와
호스트를 127.0.0.1 로 바꿔준다.
localhost 로 해도 되는가 의문이 들수있는데 (저는 안돼더라구요 한번 해보세요)
그다음 테스트 커넥션을 누르면
성공메시지가 나온다.
저장하고 접속해보시면 아주 잘됩니다.
도전해보세요!