- [ CyberSec ]ASC Track week-1. Basic Exploit Flow 실습 끄적끄적2025-01-24 16:25:17보호되어 있는 글입니다.
- [ Develop. ]백준 2164번 - 카드2 (C/C++)2025-01-24 00:09:36시간 초과가 발생한 이유와 함께 어떻게 풀이했는지 적어보려고 한다. 입력첫째 줄에 정수 N(1 ≤ N ≤ 500,000)이 주어진다.출력첫째 줄에 남게 되는 카드의 번호를 출력한다.자료구조 문제인데 아직 자구를 배우지를 않아서 queue 대신 vector을 사용하다가 시간 초과가 발생했다. // 1. vec.erase(vec.begin()); // 2. vec.push_back(vec.front()); vec.erase(vec.begin()); 벡터 요소로 확인해봤을 때 문제에서 요구하는 핵심 형식은 다음과 같을 것이다. 1. N이라는 정수를 입력받는다. (이때 N은 500000만큼의 숫자가 될 수도 있다.) 2. 첫 ..
- [ Windows🪟 ]WinAFL Fuzzing - Target OFFSET을 구해보자2025-01-22 18:44:15공식 홈페이지에 공개된 C++ 소스코드 분석을 통해 XPDF 타겟 함수가 xpdf 모듈의 PDFDoc.cc 파일과 관련되어있다는 점을 알게 되었고, 해당 소스파일의 여러 함수에 breakpoint를 걸고 xpdf에서 계속 pdf를 여는 과정을 반복하여 다음과 같이 후보가 추려졌다. 🎯 PDFDoc.cc 후보군 PDF 파일을 로드하는 생성자 내부에 진입하는 것에 성공했다. PDFDoc.cc 소스코드 분석하는 과정file = fopen(fileName1->getCString(), fopenReadMode);file = _wfopen(fileNameU, wfopenReadMode);이 부분은 PDF 파일을 여는 함수였는데, 실제로 타겟으로는 적합하지 않았다.그 이유 ⇒ XPDF 프로그램 내에서는..
- [ Develop. ]백준 1439번 - 뒤집기 (C/C++)2025-01-20 17:49:01무리 없이 풀었던 문제지만 뭔가..뭔가.. 내가 기존에 작성한 코드보다 더 나은 방법이 있을 것 같다.그래서 다른 코드를 참고해보면서 개선점을 적어보기록 했다.그리디 알고리즘을 이용한 문제다. 입력첫째 줄에 문자열 S가 주어진다. S의 길이는 100만보다 작다.출력첫째 줄에 다솜이가 해야하는 행동의 최소 횟수를 출력한다. 쉽게 말해서 연속되는 숫자는 한꺼번에 뒤집을 수 있다는 가정 하에,다솜이가 뒤집는 카운트의 최소 수는? 을 구하는 문제이다.(이때 주의해야할 점은 0을 뒤집었을 때, 1을 뒤집었을 때 전체에 대한 가장 최소의 수를 찾는 것이다.) #include #include #include #include using namespace std;int sum0 = 0;int sum..
- [ Develop. ]백준 10773번 - 제로 (C/C++)2025-01-18 16:48:18이전에 풀었던 문제와 제목이 비슷해보여서 친근해서 선택했다.이번에도 0을 찾아내는 문제다. 입력첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000)이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다.정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할 수 있다.출력재민이가 최종적으로 적어 낸 수의 합을 출력한다. 최종적으로 적어낸 수의 합은 231-1보다 작거나 같은 정수이다. 예를들어 4를 입력하면 총 4개의 숫자를 입력받게 되는데,이때 원소에 0이 포함되어 있다면 그 앞 가장 최근의 원소를 지우거나 카운트되지 않도록 해야 한다.(이때 그 앞의 원소도 ..