검색
다른 검색어로 검색을 시도하시기 바랍니다.
신발사야하는데..?
정말 이게 몇달짼지 모르겠다.
신발사야지 사야지 사야지... 하고 벌써 네달은 족히 넘어갔다.
그만큼 눈에 차는 신발도 없고 보다보면 아쉬울때가 많다.
그렇다고 또 고르면 음....비싸...
그냥 가을신발부터 좀 봐놔야겠다.
인도네시아에서 선물받은 운동화는 생고무라 밑창도 안닳아서 오래신고있다 생각했는데 밑창만 안닳앗지 아주 거지신발 다됐다.
사계절용에 발편하고 이쁜 싼신발 어디 없을까?
'Day by day > Diary' 카테고리의 다른 글
29살 백수여자의 질문.. (1) | 2018.05.04 |
---|---|
지금 알고 있는걸, 그때도 알았더라면... (0) | 2014.08.10 |
예비군 동미참훈련.. 관동교장 (0) | 2014.07.21 |
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 |