본문 바로가기

분류 전체보기

(312)
정규화 표현식 • 정규식(Regex) 정규식은 특정 검색 패턴에 대한 하나 이상의 일치 항목을 검색하여 텍스트에서 저오를 추출하는데 사용된다. Ex) ^ and $ The : The가 들어있는 모든 문자열을 매칭 ^The : The로 시작하는 모든 문자열을 매칭 end$ : end로 끝나는 문자열을 매칭 ^The end$ : The end와 정확하게 일치하는 문자열을 매칭 Ex) *+? and {} abc* : ab 그리고 0개 이상의 c를 포함한 문자열과 매칭 abc+ : ab 그리고 1개 이상의 c를 포함한 문자열과 매칭 abc? " ab 그리고 0개 또는 1개의 c를 포함한 문자열과 매칭 abc{2} : ab 그리고 2개의 c를 포함한 문자열과 매칭 abc{2.} : ab 그리고 2개 이상의 c를 포함한 문자열과..
파이썬 기초 문법 • 변수(variable) - 변수를 사용하여 데이터를 저장하고 처리한다. - 변수는 데이터를 저장하기 위한 메모리 공간이며, 프로그램에서는 이 변수에 할당된 값에 따라 다른 연산을 수행할 수 있다. - 변수 이름은 숫자로 시작할 수 없으며, 예약어로 지정된 단어는 변수 이름으로 사용할 수 없다. - 파이썬은 동적 타이핑을 지원하는 프로그래밍 언어이다.(변수를 선언할 때 해당 변수에 어떤 데이터 타입을 저장할 것인지 미리 정하지 않고, 변수가 실제로 사용될 때 그때서야 변수의 데이터 타입을 결정하는 방식이다. • 문자열(string) - 문자열은 " " 혹은 ' ' 로 묶인 문자의 시퀀스이다. -> 문자열의 인덱싱, 슬라이싱, 메서드, 포맷팅 - split()과 join()은 문자열을 분리하고 합치는 함..
strcpy 구현 • strcpy 정의 char *strcpy( char* strDestination, const char* strSource ) strcpy() 함수는 null byte를 포함하는 strSource 문자열을 strDestination 버퍼에 복사를 합니다. * strDestination 버퍼에 strSource 문자열을 복사하기 위해서는 충분한 사이즈가 있어야한다.(strSource 문자열 사이즈 안에 null byte가 없으면, strDestination 문자열에도 null byte가 추가 되지 않아 정상적인 문자열 처리가 불가능하다.) • strcpy 구현 #define _CRT_SECURE_NO_WARNINGS #include #include char my_strcpy(char* str1, char..
int 배열과 char 배열의 차이점 • int 배열 int 배열은 정수형 데이터를 사용할 때 사용이 가능하며, 보통 4바이트 크기를 가진다. 실습 #define _CRT_SEUCRE_NO_WARNINGS #include int main() { //int 배열 int num[9] = { 1,2,3,4,5,6,7,8,9 }; char str[] = "Hello world"; for (int j = 0 ; i < sizeof(num)/sizeof(int); j++){ printf("%x\n",&num[j]); } for (int i = 0; i < sizeof(str)/sizeof(char); i++) { printf("%x\n", &str[i]); } } - int 배열 메모리 확인 -char 배열 메모리 확인 int 배열의 시작 주소와 끝 ..
Windows C 최적화 • 최적화 컴파일러 최적화 기능은 소스코드를 기계어로 변환할 때 코드를 더 빠르게 실행하고 메모리를 효율적으로 사용하기 위함이다. - 코드 최적화 /O 옵션 ⇒ 최대 속도 또는 최소 크기에 대한 코드를 만드는데 도움이 되는 옵션이다. 여러 옵션들이 있지만, Visual Studio 프로그램에서 할 수 있는 최적화 옵션에 대해서만 작성을 하였다. > /Od 옵션은 최적화를 사용하지 않도록 설정하여 컴파일 속도를 조정하고 디버깅을 간소화한다. > /O1 옵션은 최소 크기 코드를 생성하는 최적화의 조합을 설정한다. > /O2 옵션은 최대 속도를 위해 코드를 최적화하는 최적화의 조합을 설정한다. > /Ox 옵션은 속도에 중점을 둔 여러 최적화를 선택하는 조합 옵션이다. • 최적화 예시 코드 #define _CR..
Run-Time Packer • Packer Packer의 사용목적은 PE 파일의 크기 감소를 통해 네트워크 전송에도 용이하고 보관하기도 좋다. 또한 파일 내부의 코드와 리소스 등을 감출 수 있어 압축된 데이터는 알아보기 힘든 형태의 Binary로 저장되어 내부 내용을 감춰준다. • Protector PE 프로텍터란 PE 파일을 리버싱으로 부터 보호하기 위한 유틸리티이다. -> 리버싱을 막기 위한 다양한 기법(Anti - Debugging, Anti-Emulating, Code obfuscating, Garbage Code 등)이 추가된다. -> 압축된 PE 팡일의 크기는 원본 PE보다 커지는 경향이 있으며 디버깅하기 어렵다. 사용목적으로는 크래킹 방지 & 코드 및 리소스 보호의 목적이다. -> 크래킹에 민감한 보안 프로그램들이 프..
PE Format • PE Format 정의 PE(Portalbe Executable)는 Winodws 운영체제에서 사용되는 실행파일 형식을 의미한다. Windows 운영체제의 가장 핵심적인 부분은 Process, Memory, DLL 등이다. PE의 종류 - 실행 파일 계열 : EXE, SCR - 라이브러리 계열 : DLL, OCX - 드라이버 계열 : SYS - 오브젝트 파일 계열 : OBJ • VA & RVA VA(Virtual Address)는 프로세스 가상 메모리의 절대주소를 말한다. RVA(Relative Virtual Address)는 어느 기준 위치(base address) 에서부터의 상대주소를 말한다. VA와 RVA 관계는 RVA + base address = VA • DOS Header 구조체에서 가장 ..
Report pcap test 보호되어 있는 글입니다.