일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring
- #심플즈 크랙미
- #크랙미4번
- 리버싱
- #크랙미 5번
- GraphQL
- #abex크랙미4번
- #abex크랙미
- java
- #보안이슈
- #크랙미3번
- #심플즈
- #abex
- #크랙미 10번
- #크랙미
- Easy
- springframework
- #고클린
- #크랙미2번
- #보안뉴스
- leetcode
- #파밍
- #리버싱
- #크랙미 9번
- java8
- Today
- Total
목록분류 전체보기 (120)
Halo World
| 컴파일러 - 원시 프로그램, 고급언어로 작성된 문장을 처리하여 기계어 또는 컴퓨터가 사용할 수 있는 코드(목적 프로그램)으로 번역해주는 프로그램 - 프로그램 전체를 한꺼번에 번역 후 실행 - 목적 프로그램 생성으로 메모리 사용 - 컴파일러에 의해 번역된 프로그램은 언제든지 실행될 수 있는 실행 가능한 프로그램 - 번역 속도 느림 - 실행 속도 빠름 - 디스크에 저장됨 - 특정 시스템에서 번역된 실행파일이 다른 시스템에서는 실행되지 않는다 - 사용 예 : C, 포트란 | 인터프리터 - 고급 언어로 작성된 명령문을 한번에 한 줄씩 번역하고 실행하는 프로그램 - 메모리 사용하지 않음 - 주요 스크립트 언어에서 대부분 사용 (웹이 작동하는 방식이 전형적인 인터프리터 기법) - 목적 프로그램 생성하지 않음 -..
| 반정규화(=역정규화)란? 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법. 즉, 데이터를 중복하여 성능을 향상시키는 기법 | 데이터 무결성에 위배될 수 있는 반정규화를 수행하는 이유 - 데이터를 조회할 때 디스크 I/O량이 많아 성능이 저하되는 경우 - 경로가 너무 멀어 조인으로 인한 성능저하가 예상되는 경우 - 칼럼을 계산하여 읽을 때, 성능 저하가 예상되는 경우 | 반정규화의 적용 방법 및 절차 - 데이터의 무결성이 깨질 가능성이 많으므로 데이터의 무결성을 보장할 수 있는 방법을 고려한 후에 적용 참조 http://geniusjo.tistory.com/108http://eehoeskrap.tistory.co..
| 정규화란? 릴레이션을 연관성이 있는 속성들로만 구성되도록 분해해서, 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어나가는 과정으로 정규화의 기본 목표는 관련이 없는 함수 종속성은 별개의 릴레이션으로 표현하는 것 * 이상현상 1) 삽입 이상 : 릴레이션에 새 데이터를 삽입하기 위해 원치 않는 불필요한 데이터도 함께 삽입해야 하는 문제 2) 갱신 이상 : 릴레이션의 중복된 튜플들 중 일부만 수정하여 데이터가 불일치하게 되는 모순이 발생하는 것 3) 삭제 이상 : 릴레이션에서 튜플을 삭제하면 꼭 필요한 데이터까지 함께 삭제하여 데이터가 손실되는 연쇄 삭제 현상 | 제 1정규형(1NF) 릴레이션에 속한 모든 속성의 도메인이 원자 값으로만 구성되어있으면 제 1정규형에 속함 * 원자 값 : 더이상 분해되지..
| 모델1 : JSP 파일내에서 뷰와 컨트롤러 모두 실행되어지는 구조 [모델1의 구조] > 장점 - 단순한 페이지 흐름으로 인한 개발기간 단축 - 초보자도 쉽게 배울 수 있음 - 중소형 프로젝트에 적합 > 단점 - 웹 어플리케이션이 복잡해질수록 유지보수가 어려움 - 디자이너와 개발자간의 활발한 의사소통이 필요함 | 모델2 : 컨트롤러를 통해 비즈니스 로직과 뷰가 분리된 형태 JSP에서는 뷰를 담당하고, 자바 클래스에서 비즈니스 로직을 담당. 뷰는 어떠한 처리로직도 포함하지 않음. [모델2의 구조] > 장점 - 비즈니스 로직과 뷰의 분리로 유지보수와 확장이 용이 - 개발자와 디자이너의 작업이 분리되어 분업이 편리함 - 중, 대형 프로젝트에 적합 > 단점 - 초기 구조설계에 많은 시간이 필요하므로 개발기간이..
| 디자인 패턴 소프트웨어의 개발 방법을 공식화한 것 MVC 패턴, 싱글톤 패턴 등이 이에 속함 | MVC 패턴 Model, View, Controller의 약자로 어플리케이션을 세가지 역할로 구분 > Controller - 클라이언트의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 컴포넌트를 호출하는 역할 - 클라이언트 요청에 대해 모데과 뷰를 결정하여 전달 - 모델에 명령을 보냄으로써 모델의 상태를 변경하 수 있고(예 : 워드 프로세서에서 문서를 편집), 관련된 뷰에 명령을 보냄으로써 모델의 표시 방법을 바꿀수 있다(예 : 문서를 스크롤하는 것). > Model - 데이터 저장소와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다루는 역할 - 모델의 상태에 변화가 있을 때 컨..
| TCP - TCP는 UDP와 달리 연결-지향 전송프로토콜로써 물리적 연결이 아닌 가상적 연결을 이용하여 통신 - 신뢰성 있는 서비스를 제공 - 패킷을 '세그먼트'라고 부름 - 세그먼트는 20~60 바이트의 헤더와 응용 프로그램으로부터 온 데이터로 구성 - 헤더는 선택항목이 없다면 20바이트이며, 선택항목이 있다면 60바이트까지임 | TCP 연결 - 연결 설정, 데이터 전송 및 연결 종료의 3단계를 필요로하고 이를 3-way handshaking(세 방향 핸드셰이크)라고 부른다. > 3단계 연결 절차 1) 클라이언트는 SYN 플래그만 설정되어있는 첫 번째 세그먼트인 SYN 세그먼트를 전송 * 세그먼트는 순서번호들의 동기화를 위한 것 (이때, SYN 세그먼트는 데이터를 운반할 수 없으나 순서번호 1개를 ..
심플즈 크랙미 14번 문제는 Key 값이 154C-6505-D2ADD0F3-A223-2870 일때 Name은 무엇인가 힌트 : Name은 두자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) 이다. 지금까지는 주로 키 값을 찾는 문제였다면 이번 문제는 키에 맞는 Name 값을 찾는 문제이다. 지금까지 포스팅하며 풀었던 크랙미 문제 중에서 가장 어려웠던 것 같다.. 첫 실행시 화면이다. 예시로 위와 같이 입력해 보았다. 키 값이 틀려 성공메시지가 뜨지 않는다. F8로 실행시켜서 성공메시지가 있는 곳으로 가보았다. 위쪽에 하나씩 브레이트 포인트를 걸며 실행시켜보면 위 사진의 브레이크 포인트 부분을 지나면 키 값이 생성되는 것을 알 수 있다. 내가 입력한 halowo..
크랙미 13번 문제입니다. 심플즈 사이트가 안들어가지는 관계로 그냥 성공메시지를 띄우는 것을 목표로 하겠습니다. 실행화면 입니다. aaaa를 입력하고 Check를 눌러보았지만 아무런 일도 일어나지 않았습니다. F8을 몇번 눌러보니 본 함수로 들어와 지는군요. 문자열 보기를 이용해 성공메시지가 있는 곳으로 갔습니다. 저 긴 문자열과 다 비교를 한 후, 성공메시지쪽으로 가는 JMP문에 브레이크 포인트를 건 후 실행해 보았습니다. Key 값으로는 aaaa를 입력하였습니다. 보면 아래쪽에 EAX와 다른 값을 비교한 후, 같지 않으면 성공메시지를 뛰어넘는 것을 알 수 있습니다. 현재 EAX에 들어있는 값을 보았는데요. 그냥 0으로 되어있네요. 왜 0이 들어가 있을까요? 파일을 다시 실행시키고 이번에는 1111을 ..
올리디버거 1.10버전 설치 및 기본 설정 방법입니다. 먼저 올리디버거를 다운받아 주세요! 여기 있습니다. 아니면 구글에 검색해보시면 많이 나옵니다! 설치를 했으면 압축을 풀고 실행시켜 줍니다. 기본 실행 화면입니다! 여기서 Options -> Appearance -> Directories 를 클릭합니다. 여기서 본인의 컴퓨터에 UDD 폴더와 Plugin이 있는 경로로 바꾸어주세요! 아까 압축 푼 폴더에 있습니다. 다음으로 Options -> Debugging options -> Events 로 가서 [Entry point of main module]을 클릭해줍니다. 올리디버거로 파일을 실행했을 때 시작위치를 설정해주는 과정입니다! 그리고 JMP문이 나올 경우 화살표로 편하게 보기 위해 설정을 해줍니다...
이번엔 12번 문제 풀이입니다! 파일을 실행시키면 위와 같은 메시지창이 3개 뜨는데요. 마지막 메시지 창을 보시면 NAG NAG위에 REMOVE ME라고 되어있습니다. 저 메시지 창을 지우면 될 것 같습니다! F8로 실행시키다 보면 위와 같은 화면이 나오는데요. 그냥 메시지 창을 3개 띄우고 종료하는 프로그램 입니다. 그중 NAG NAG 메시지 창은 제일 아래 쪽에 있네요. 마지막 메시지 창을 띄우지 않으려면 마지막 메시지박스의 CALL로 MessageBoxA 함수를 호출하는 부분을 ExitProcess함수를 호출하도록 바꾸어 주면 됩니다. ExitProcess함수의 주소인 00101046을 입력해 주면 완성입니다. 지금은 왜 때문인지 사이트가 열리지 않지만, 원래 심플즈 사이트에는 저 3번째 메시지 박..