검색
다른 검색어로 검색을 시도하시기 바랍니다.
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 |
예비군 동미참훈련.. 관동교장
1일차.
줄을 오른쪽에서 세번째 정도 줄에 섰더니 3분대가 되어버림..
더움,
점심시간엔 그냥 식당안에서 에어컨 쐴것..
걍 열심히 하는척만 하기.
2일차.
예비군 어느날이건 빠른입소 = 빠른퇴소.
1분대(기수분대) 가 조기퇴소할확률은 70% 이상인듯,
수류탄은 쎄게 던질것, 총은 그냥 걸쳐놓고할것,
밥은 굳이 안사도 배가 별로 안고픔( 밖에서 초코바 하나 사가서 먹었더니 괜찮은걸까..)
3일차
비와서 실내교육만 했다. 점심시간엔 비가그쳐서 피엑스가서 피자랑 햄사먹었다. 사람 졸라많더라.
관동교장 예비군연대? 대대? 장 새끼는 그렇게 인사를 받고싶은가보다. 우수분대선발한다고 비오는데도 졸라열심히 훈련참여했는데 퇴소식을 해야겠단다.
왠만하면 다른지역애들은 잘도 가던데 참 유도리라는게 실종된 종자다.
현역병은 모르겠지만 군인새끼들 욕하는 이유가 따로있는게 아니다.
취소 현역병새끼들도 다 똑같다 필증하나 끊어주면서 전화받으면서 미루고 아... 군바리새끼들..
'Day by day > Diary' 카테고리의 다른 글
29살 백수여자의 질문.. (1) | 2018.05.04 |
---|---|
지금 알고 있는걸, 그때도 알았더라면... (0) | 2014.08.10 |
신발사야하는데..? (0) | 2014.08.03 |
sqlyog로 호스팅업체의 mysql 에 접속해보자.
많은 호스팅업체들이 보안상의 이유로 외부sql 의 접근을 차단하는 경우가 많다.
나는 호스팅케이알에서 호스팅을 받아 사용중인데, 여기선 ssh접속해서 mysql 을 실행하란다.
그런 귀찮은짓을 왜 하겠는가 ..
SqlYog 에는 ssh 터널링 기능이 있다. 이것을 이용해보자.
스샷은 생략.
일단 기본적으로 만들던 방식으로 만들어보자.
new
호스트적고
유저네임적고
패스워드적고
포트번호적고 ....
열심히 적고 테스트 연결을 해보면,
역시나 안됀다.
그럼 이제 작업을 해보자.
메뉴에 SSH탭이 있다.
여기서 Use SSH Tunneling 을 체크한다.
그리고 본인의 호스트 정보를 쭈욱 적어준다. 패스워드는 리멤버 시켜주면 편하다.
그리고 다시 MySql 탭으로 돌아와
호스트를 127.0.0.1 로 바꿔준다.
localhost 로 해도 되는가 의문이 들수있는데 (저는 안돼더라구요 한번 해보세요)
그다음 테스트 커넥션을 누르면
성공메시지가 나온다.
저장하고 접속해보시면 아주 잘됩니다.
도전해보세요!
InKrKamus 가 곧 돌아옵니다.
블로그 해킹이나, 많은 업무를 딛고 일어섭니다.
그동안 열리지도않은 사이트 열심히 찾아와주신분들께 죄송하고 고맙습니다.
'사실 가장 큰 문제는 ... 소스파일 분실 이었지요 ....'
우선 가장 최근버전 파일을 첨부합니다. fi는 인도네시아분들을 위한거란거 알고계시죠?
아마도 사전파일 업데이트는 많지 않을거같습니다.
몇가지 문제를 수정해 곧 돌아오겠습니다.
.
앞으로 목표는 사용자 참여형(?) 사전으로 만들 생각입니다. 웹버전 사전으로도 제작하고 단어 새 단어 등록요청 기능도 집어넣을 생각입니다.
많은 분들이 요청하신 기능도 조금씩 추가해볼 생각입니다. 물론 모바일용으로는 먼 미래에 제작 할 생각이지만 당장 요청은 하셔도 그럴 여건이 못됩니다. 죄송합니다...
필명은 smokignbird 와 함께 상구너라는 필명도 함께 쓸 예정입니다. 사실 상구너라는 필명으로 완전히 바꾸었었는데.. 여전히 그렇게 불러주시는 분들도 계시고..
ps. 퍼가실땐 댓글 .. 이라고 말씀 드려도,, 퍼갈분들은 다 퍼가시더라구요, 배포는 환영입니다. 출처만 정확히 밝혀주세요.
pps.바이러스 토탈검사결과는 굳이 안올리겠습니다.
ppps. xp로 개발했었지만 이제 xp는 논외로하고 개발하겠습니다. 색조절 무지 힘들었는데 ㅠ
다시한번 기다려주신 분들께 감사드리고,
앞으로 잦지는 않지만 꾸준히 업데이트 하겠습니다.
InKrKamus 개발자 상구너 올림.