일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터베이스
- 안드로이드
- 웹 개발
- ORM
- 장고
- db
- 웹
- java
- Python
- bytecode
- 스프링부트
- 파이썬
- 자바
- 보안
- python3
- 자료구조
- Spring
- HTTP
- BCI
- 스프링
- rabbitmq
- 개발
- 파이썬3
- 디자인 패턴
- Spring Boot
- mysql
- 스프링 부트
- django
- JPA
- node.js
- Today
- Total
목록보안 (10)
semtax의 개발 일지
1. 자바 클래스 구조 1-1. 자바 클래스 전체 구조 컴파일된 자바 클래스의 개략적인 구조는 아래와 같이 구성되어있다. 클래스 메타정보 버전, 식별자 등 소스파일 이름 상속관련 정보들 클래스 접근자에 대한 정보 클래스 내에 선언된 필드들의 목록 메서드와 생성자들의 목록 어노테이션 정보 상수 목록들(Constant Pool) 바이트 코드 내부 클래스 정보 그림으로 나타내면 아래와 같다. 1-2. Internal Name 컴파일된 클래스에서, 클래스 이름들은 소스코드와는 다르게 내부적으로 "java/lang/String"과 같은식으로 사용이 된다. 이를 Internal Name이라고 부른다. 참고로, 자바의 Class 클래스를 이용해서 해당 이름을 얻어올 수 있다. 1-3. 타입 및 메서드 명명 규칙 컴파..
1. ASM을 어디에다 쓰는가? 난독화 도구 제작등에도 사용 됨. JIT만들때도 활용이 가능 함. 그 외 기존 class 파일의 바이트 코드 패치를 할때 사용 됨. AspectJ 같은데서도 쓰인다고 함 2. ASM 라이브러리의 전체적인 구조 2-1. 전체 구성 Tree Based API와 Event Based API를 제공함 Tree Based API는 Top-Down으로 자바 바이트 코드를 파싱하여 생성된 AST를 순회하는 방식으로 동작 Event Based API는 순차적으로 바이트코드를 읽어들어서 특정 구문이 발견되었을때(Ex: 클래스 정의, 변수선언 등) 해당 구문이 발생하면 이벤트 핸들러가 실행되는 방식임 2-2. 주요 모듈 org.objectweb.asm : 이벤트 based API를 제공 o..