본문 바로가기

분류 전체보기

(312)
[필수 개념] 중복된 요소 제거 방법 과 unique() ∙ map // map 함수를 사용해 중복된 요소 제거 #include #include #include using namespace std; map mp; int main() { vector v{1, 1, 2, 2, 3, 3}; for (int i : v){ if(mp[i]){ continue; } else{ mp[i] = 1; } } vector ret; for (auto it : mp){ ret.push_back(it.first); } for (int i : ret) cout
[필수 개념] Split ∙ split() - 코딩테스트에서는 문자열을 split() 하는 로직이 많이 등장 - split 함수는 다른 프로그래밍 언어에서도 특정 문자열을 기준으로 쪼개어서 배열화시키는 함수라의 의미 - C++에서는 STL에서 지원하지 않아 만들어야 함 // split() 함수 // o(n)의 시간복잡도 가짐 #include #include #include using namespace std; vector split(string input, string delimiter){ vector ret; long long pos = 0; string token = ""; // while문이 중요하다 // input에서 delimiter를 찾는다. 못 찾을 때까지는 루프 반복 while ((pos = input.find(d..
[필수 개념] 순열 / 조합 ∙ 순열 - 순서와 상관 O 뽑는다면 -> 순열 ex) 문제에서 순서를 재배치하여....~한 순서의 경우 max 값 // 순열 #include #include #include using namespace std; int main() { int a[] = {1, 2, 3}; sort(a,a+3); do{ for(int i : a) cout
[필수 개념] 재귀함수 ∙ 재귀함수 - 재귀함수(Recursion)는 정의 단계에서 자신을 재참조하는 함수 - 전달되는 상태인 매개변수가 달라질 뿐 똑같은 일을 하는 함수 - 큰 문제를 작은 부분문제로 나눠서 풀 때 사용 ∙ 주의사항 - 반드시 기저사례를 써야한다. (종료조건) - 사이클이 있다면 쓰면 안된다. ex) f(a)가 f(b)를 호출한 뒤 f(b)가 다시 f(a)를 호출하는 것 - 반복문으로 될 거 같으면 반복문으로 사용한다. (함수호출에 대한 코스트) ∙ 예시 - 팩토리얼 n! : 그 이전의 항을 모두 곱하는 것. 곱한다는 행위의 반복? - 피보나치 : 점화식 : f(n - 1) + f(n - 2) 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89.... // 팩토리얼, 피보나치 #includ..
OpenAI 사용방법 • 환경 설정 - Visul Studio code 다운로드 (https://code.visualstudio.com/) - node.js 다운로드 (https://nodejs.org/ko) - React 에플리케이션 만들기 (npm init vite) npm install 을 한 다음 npm run dev 로 서버를 열수가 있다. 호스트 및 포트를 따로 설정을 할 수 있다. React의 main.jsx에서 root 아이디를 찾아서 실행을 시켜준다. • OpenAI KEY 설정 - vite 환경 변수 설정 1. env 파일 생성 OpenAI API key 값을 .env파일에 작성해준다. - GPT API 연동 import { useState } from 'react' // gpt.js 파일을 만들어 호춯을 ..
MDM main.go 서버와 모든 핸들러를 실행시키기 위한 곳 //HTTPS서버를 시작하고 TLS인증서 및 키를 사용하여 443포트에서 HTTPS요청을 처리 fmt.Println("HTTPS server listening on port 443") err = http.ListenAndServeTLS(":443", "./certs/dev_cert_mdmwindows_com_cert.pem", "./certs/dev_cert_mdmwindows_com.key", globalHandler(r)) if err != nil { panic(err) } • 실행 순서 - h2_bundle.go 클라이언트에서 오는 응답값을 확인을 한 후, discovery쪽에서 출력을 해준다. - discovery.go => 여기 부분은 응답..
API 리다이렉션을 활용한 언패킹 방해 기법 우회 PEview툴을 사용해 임포트 테이블을 확인해준다. 오늘 우리가 알아야하는 곳은 GetProcAddress이다. * GetProcAddress는 함수를 불러온다. -> Func의 address을 불러온다 프로그램을 올리디버거에 올리면 패킹이 되어있어 alert 경고창이 출력이 된다. PUSHAD가 바로 있는거 보면 PUSHAD로 밀어 넣고 분석이 끝난 뒤에 POPAD할 것이다. F8로 PUSHAD해준 다음 ESP 스택의 위치로 가서 브레이크 포인트를 걸어준다. F9을 눌러서 실행시켜주면 우리가 걸었던 하드웨어 브레이크 포인트거가 걸린다. CALL EAX에 들어가서 보면 PUSH EB가 원래 보여야한다....뭐지,..하여튼 여기는 함수의 프로로그를 나타내는 구간이기에 플러그인으로 덤프를 떠준다,.! 이제 ..
홈페이지 구축 (Flask) 보호되어 있는 글입니다.