전체 글 130

Wireshark 필터

eth.addr == 00:30:f9:00:00:01 출발지나 목적지 MAC 주소로 검색 eth.src == 00:30:f9:00:00:01 출발지 MAC주소 검색 eth.dst == 00:30:f9:00:00:01 목적지 MAC주소 검색 ip.addr == 10.1.0.1 출발지나 목적지 IP주소로 검색 ip.src == 10.1.0.1 출발지 IP주소로 검색 tcp.port == 1470 TCP 출발지나 목적지 포트 번호로 검색 tcp.dstport == 1470 TCP 포트 목적지 포트 번호로 검색 tcp.srcport == 1470 TCP 포트 출발지 포트 번호로 검색 udp.port == 2000 UDP 출발지나 포트 목적지 포트 번호로 검색 udp.dstport == 2000 UDP 포트 목적..

AAA 인증

aaa authentication login VTY_AUTH group tacacs+ local : aaa VTY 인증은 tacacs 인증 서버에서 먼저 처리하고 안되면 local로 처리 aaa authentication login CON_AUTH local : aaa console에 대한 인증은 local로 처리한다. aaa authorization exec VTY_PRI group tacacs+ local : aaa vty에 대한 권한은 tacacs 인증 서버에서 먼저 처리하고 안되면 local로 한다. aaa authorization commands 15 VTY_PRI group tacacs+ local : aaa vty에 대한 관리자 명령어 권한에서 tacacs 인증 서버에서 먼저 처리하고 안되면..

Inline 함수, 매크로 함수

- 매크로(define) - 여러 번 사용하게 될 상수를 문자로 표현하여 변경 시에 편리하게 사용할 수 있도록 하는 것 - 이러한 매크로 상수는 컴파일 전에 전처리기에 의해 숫자로 치환됩니다. #define [이름] [숫자] - 매크로 사용 예시 MAX_LEN이란 매크로를 사용하지 않고 20으로 채웠을 경우 데이터의 양이 변경되어 25까지 계산한다면 하나씩 변경해야 하지만 매크로를 사용하면 하나만 변경하면 전체가 변경되어 사용하기 편리합니다. - 매크로(define) 함수 - 매크로를 이용하여 함수의 역할을 대신하는 것입니다. - 파라미터를 받을 수 있으며 반환할 수 있다. - #define은 치환을 하므로 함수와 다르게 예상하는 결과 값과 다른 경우가 존재한다. - #define은 전처리기 영역에서 단..

Programming/C++ 2018.09.10

Spring AOP - @Aspect 구현

이번에 @Aspect를 이용한 AOP를 설정 aopEx2/src/main/java/com/aopEx2/LogAop.java @Pointcut을 사용하지 않아도 됩니다. @Before 어노테이션을 보면 속성에 바로 범위를 지정했습니다. 같은 방법으로 @Around에 속성을 지정해도 되고, Pointcut을 지정해주는 메서드를 생성해도 됩니다. 이전에 xml 파일에서 설정했던 것과 다르게 JAVA 파일에서 어노테이션을 이용해서 설정을 했지만, xml 파일에서 추가해야 될 것이 있습니다. aopEx2/src/main/resources/applicationCtx.xml 를 명시하면 @Aspect 어노테이션이 있는 클래스를 찾아서 자동으로 aspect로 만든다. 그 아래에는 bean 객체를 생성했고, 이전에 사용..

Programming/Spring 2018.06.16

Spring AOP - XML 기반으로 구현

- AOP(Aspect Orieted Programming) : 관점 지향 프로그래밍 프로그래밍을 하다보면 공통적인 기능이 많이 발생합니다. 이러한 공통 기능은 상속을 통해서 모든 모듈에 적용을 할 수 있지만 몇 가지 문제가 있습니다. 먼저 Java에서는 다중 상속이 가능하지 않기 때문에 한계가 있으며, 기능을 구현하는 부분에 핵심 기능 코드와 공통 기능 코드가 섞여 있어서 효율이 떨어지게 됩니다. 이러한 문제점 때문에 핵심 기능과 공통 기능을 분리하며, 공통 기능을 필요로 하는 핵심 기능들에서 사용하는 방식의 AOP가 등장을 하게 되었습니다. - AOP 관련 용어 * Aspect : 공통 기능 * Advice : Aspect의 기능 자체 Aspect를 공통 기능이라 크게 묶었으면 Advice는 그 안의..

Programming/Spring 2018.06.13

Spring DI Java를 이용한 설정

이전에 xml 파일을 이용하여 DI를 설정했습니다. 이번에는 Java를 이용해서 DI를 설정하겠습니다. xml 파일에서 setter()와 생성자를 통해 설정을 했습니다. 이번에는 Java를 이용해 setter()와 생성자를 사용하겠습니다. MyCats 클래스에서도 마찬가지로 변수와 setter()를 추가했습니다. 결과를 출력해주는 메서드가 있는 Cats.java 파일도 수정합니다. 이제 setter()와 생성자를 사용해서 Java에서 Bean(객페)를 생성하겠습니다. ApplicaitonContext.java 파일 생성 후 작성 Java 파일에서는 어노테이션을 이용해서 객체를 생성합니다. @Configuration - "이 클래스는 Spring 설정에 사용되는 클래스입니다."라고 명시해주는 어노테이션 @..

Programming/Spring 2018.06.13

Spring DI 생성자를 이용해서 의존성을 주입

이전에는 DI 방법 중 setter()를 이용해서 정리했습니다. 이번에는 생성자를 이용해서 의존성을 주입시키는 방법에 대해 알아보겠습니다. 이전 setter 방법과 다르게 MyCats에 setter가 없고 생성자를 이용해서 name, age, hobbys를 인자로 받아 필드에 있는 name, age, hobbys를 초기화했으며, Cats에서도 마찬가지로 myCats를 인수로 받아와서 필드의 myCats 값을 초기화를 했습니다. MainClass에서는 이전과 같은 방법으로(getBean) 객체를 얻어와서 사용합니다. 얻어온 객체를 보시면 catsInfo라는 객체를 얻어온 것으로 되어 있습니다. applicationContext.xml에서 catsInfo 객체를 확인해보겠습니다. 생성한 첫 번째 객체를 보시..

Programming/Spring 2018.06.13

Spring DI(Dependecy Injection)

- DI(Dependecy Injection) DI는 의존성 주입이라 합니다. 객체를 직접 생성하는 것이 아니라 외부에서 생성한 후 주입을 하는 방법입니다. A라는 객체에서 B, C라는 객체를 이용할 때 두 가지 방법이 있습니다. 첫 번째 방법은 A 객체가 B와 C 객체를 new 생성자를 통해서 생성하는 방법이고 두 번째 방법은 외부에서 생성된 객체를 setter()나 생성자를 통해서 사용하는 방법입니다. 첫 번째 방법을 보시면 MainClass는 Cats를 의존하고 있으며, MainClass에서 직접 Cats 클래스를 생성해서 사용합니다. 두 번째 방법의 그림을 보시면 A 객체에서 직접 생성하지 않고, 외부에서 생성된 객체를 setter(), 생성자를 이용해서 사용합니다. spring에서 사용하는 DI..

Programming/Spring 2018.06.13

ARP Spoofing

- ARP Spooging 실습 - cain을 이용한 모의해킹 ▲ cain & abel 실행 ▲ 스니핑 시작 ▲ Sniffer 탭을 누른다. ▲ + 버튼을 클릭한다. ▲ 바로 OK를 누릅니다. ▲ OK를 누르면 자동으로 현재 동일 네트워망에 연결된 기기들을 스캔합니다. ▲ 스캔이 끝났으면 ARP탭을 누릅니다. ▲ + 버튼을 누른다. ▲ 왼쪽에는 상대방의 아이피, 오른쪽에는 공유기의 게이트웨이 ( 보통 끝이 1로 끝난다) ▲ 스푸핑 버튼을 클릭합니다. ▲ 위와같이 뜬다면 스푸핑에 성공 ▲ 보고자하는 주소를 선택하고 오른쪽 클릭 -> View를 누릅니다. ▲ 파일들이 나오는데 열어서 보면 갖가지 정보가 담겨있다. 타인이 로그인한 네이버 아이디의 쿠키값이 있네요. 복사한다. 자신의 아이디로 로그인 ▲ 쿡시툴바..

network 보안 2018.06.06

입출력 개요에 대한 두 번째 정리

- 표준 입력 객체 cin cin은 Console Input의 약어로 "콘솔 입력"을 의미합니다. cout처럼 객체로 존재하며, C의 scanf()라 생각하면 됩니다. 하지만 scanf()보다 더 사용하기 편리합니다. - 기본 입력 cin은 cout과 방향이 반대입니다. 입니다. cout은 scanf()와 다르게 &를 붙일 필요가 없습니다. cout의 내부에서 &를 이용합니다. 출력 결과를 보면 출력된 것 같은데 오른쪽에 있는 출력 결과는 이상이 있습니다. iNum에 "205-11+60"을 입력했더니 다르게 출력이 되었습니다. 문제는 간단합니다. cin이 내부적으로 사용하는 입력 버퍼에서 문제가 생겼기 때문입니다. cin은 int를 int로 인식하기 때문에 숫자가 아닌 값은 받아들이지 않습니다. 그래서 ..

Programming/C++ 2018.06.06