전체 글

중요한 것은 꺾여도 그냥 하는 마음
1. @Configuration - 해당 클래스가 일반적인 자바 클래스가 아닌 설정을 위한 클래스라는 것을 뜻함 - 이를 통해 xml에서 설정한 내용들을 어노테이션으로 추가할 수 있게 됨 2. @ComponentScan 위의 내용이 xml에 작성되어 해당 패키지 내부의 컴포넌트들을 빈 객체로 만들라는 주문이 있었다. 이를 @ComponentScan 어노테이션을 이용하면 아래와 같이 변경이 가능하다.(xml에서 위 구문은 삭제 가능) @ComponentScan({"spring.di.ui","spring.di.entity"}) @Configuration public class NewlecAppConfig{ } 만약 하나의 패키지만을 사용한다면 아래와 같이 사용한다. @ComponentScan("spring...
1. 기본 값 설정을 위한 @Value 어노테이션 @Component public class NewlecExam implements Exam{ @Value("20") private int kor; @Value("20") private int eng; @Value("30") private int math; } 위와 같이 작상된 Component로 객체를 생성하면 해당 필드에 입력한 값이 들어간 상태로 생성된다. 2. 위 명령어는 애플리케이션 컨텍스트에 등록된 빈들의 어노테이션들이 적용될 수 있게 한다. 그리고 어노테이션이 설정된 새로운 빈들을 찾는 스캔도 할 수 있다. 3. 적용 가능한 어노테이션 @Component |------ @Controller ------ |------ @RequestMapping..
1. 어노테이션을 통한 빈 객체 생성 class InlineExamConsole { @Autowired public void setExam(Exam exam){ this.exam=exam; } } -------------------------------------------------- 지금까지는 xml에서 bean 객체를 생성하고 이를 Autowired 어노테이션을 통해 받아왔었다. 하지만 좀 불편하다. xml없이 어노테이션을 이용하여 코드 내부에서 객체를 생성해보자. @Component class InlineExamConsole { @Autowired public void setExam(Exam exam){ this.exam=exam; } } --------------------------------..
1. 기본 형식 public class InlineExamConsole implements ExamConsole { private Exam exam; public InlineExamConsole(){ System.out.println("constructor"); } public InlineExamConsole(Exam exam){ System.out.println("overloaded constructor"); this.exam=exam; } @Override public void setExam(Exam exam){ System.out.println("setter"); this.exam=exam; } @Override public void print(){ System.out.printf("total is..
먼저 @Autowired 어노테이션을 사용하기 위해서는 context 네임스페이스를 xml에 추가해줘야한다.
토비의 스프링5 예제를 따라하다가 책에 쓰여있는 추가할 라이브러리인 com.springsourcejavax.mail-1.4.0.jar 파일을 dependency에 추가해도 java.lang.ClassNotFoundException: com.sun.mail.util.MailLogger 오류가 발생했다. 해결법은 간단했다. Maven Repository에서 JavaMail API jar가 아닌 JavaMail API 또는 JavaMail API (compat) 를 다운로드 받아야 정상적으로 오류없이 동작한다. 아래에 해당 라이브러리들의 주소를 첨부한다. JavaMail API(compat) https://mvnrepository.com/artifact/javax.mail/mail JavaMail API ht..
· War game/LOS
Ⅰ. 문제 Ⅱ. 코드 분석 8: pw를 md5로 암호화하고 있음 10 : 결과로 나온 튜플의 id가 admin이어야 문제 풀이 가능 Ⅲ. 문제 풀이 https://los.rubiya.kr/chall/cobolt_b876ab5595253427d3bc34f1cd8f30db.php?id=admin' and 1=1 --+
· War game/LOS
※ LOS = Lord Of SQL Injection Ⅰ. 문제 (문제를 클릭하면 위와 같은 화면을 볼 수 있는데, 아래 코드들은 해당 페이지의 php코드이다.) Ⅱ. 코드 분석 4 : db연결 5,6 : GET 메소드를 통해 id, pw를 전달 받음 7 : db에 질의 8 : 쿼리문 화면에 출력 9 : db에 질의하여 나온 결과물들 중 가장 위에 있는 튜플 선택 10 : 선택된 튜플에 id가 존재하면 문제 풀이 성공 Ⅲ. 취약점 분석 - GET 방식을 통해 파라미터를 넘기고 있음 - id, pw를 하나의 쿼리문을 사용하여 질의하고 있음 Ⅳ. 풀이방법 - URL을 변경하여 파라미터를 넘겨주되, result에 속하는 튜플이 있을 수 있도록 SQL Injection 공격을 실시한다. https://los.r..
· 리버싱
※ 빅 엔디언(Big Endian) : 데이터를 저장할 때 사람이 보는 방식과 동일하게 앞에서부터 순차적으로 저장 ※ 리틀 엔디언(Little Endian) : 데이터를 저장할 때 역순으로 저장한다. 즉, 저장되는 바이트의 순서가 뒤집어져 있다. 1. 바이트 오더링 예시 BYTEb= 0x12; WORDw= 0x1234; DWORDdw= 0x12345678; charstr[]= "abcde"; - 2바이트 이상의 크기를 가진 자료형을 저장할 때(WORD, DWORD), 위처럼 차이가 발생함을 알 수 있다. - 1바이트 자료형인 BYTE와 문자열인 str은 Endian 형식에 상관없이 동일하다. - 문자열이란 char배열이기 때문에 각 바이트를 하나씩 연속한다고 생각하면 되기 때문에 동일한 순서로 저장된다...
· 리버싱
※ 빌드 : 개발도구를 이용하여 소스코드를 실행파일로 만듦 - 사람이 이해하기 쉬운 고급언어를 기계가 이해하기 쉬운 기계어로 변환하는 과정 ※ 디버거(Debugger) 유틸리티 : 디버거에 탑재된 디스어셈블러 모듈로 기계어를 어셈블리 언어로 변역함 - 디버거를 통해 어떤 실행 파일도 어셈블리 언어로 번역하여 볼 수 있음 - 어셈블리 언어는 CPU에 종속되어 있는데, PC에서 많이 사용되는 Intel x86 계열의 CPU와 모바일 제품에서 많이 사용되는 ARM 계열의 CPU는 서로 어셈블리 명령어의 형태가 다름 1. OllyDbg 기본 화면 1) Code window : 주소에 따른 CPU 명령, 어셈블리코드, 주석을 표시 2) Register window : CPU register 값을 실시간으로 표시하..
째로스
개발일지