전체 글

전체 글

    ABOUT ME

    https://weak-bearberry-773.notion.site/k11n-9e93fe175dcf428ba787b403416edc34 k11n | Notion Profile ── weak-bearberry-773.notion.site

    백준#1417 국회의원 선거 in Python

    1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 이 문제를 풀기 위한 자료구조로 우선순위 큐가 적합하다는 것을 깨닫는 순간 빠르게 풀리는 문제다. 필자는 그걸 깨닫지 못해 여러 시행착오와 반례 선정을 거쳐 꽤 오랜 시간이 걸렸다... 후보가 1명일 경우, 바로 0을 프린트하고 종료한다. 후보가 2명 이상일 경우, 0번 인덱스(1번 후보)의 값을 target 변수에 저장해 따로 떼어두었다. └ 이 자체가 필수적인 의미를 갖지는 않지만, 메모리를 고려하지 않는 내 작은 코드에서는 이 라인을 없애는 순간..

    백준#2075 N번째 큰 수 in Python

    2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 이 문제의 핵심은 입력으로 주어지는 수를 모두 배열에 때려 박아서 정렬하는 것보다 더 효율적인 방법이 무엇인지 고민하는 것이다. 여기서, 'N번째 큰 수'란, 'N개의 수들 중 가장 작은 수'라는 것을 깨닫고 나면 문제가 쉽게 풀린다. 문제 예시처럼 N=5라고 가정할 때, 최대 크기가 5인 리스트를 만들었다. └ 크기가 5보다 작으면 일단 숫자를 넣고, 그 외의 경우에는 (크기가 5인 경우) 다음 행위를 실행한다. 리스트의 크기가 5일 때 새로운 숫자를 만나면 최소값과..

    안녕하세요, 블로그 주인 강정윤입니다.

    요새 글을 많이 못 올렸습니다. 대학교 2학년 때, 배운 내용을 기록하고자 하는 마음에 시작한 블로그입니다. 처음 보안과 디지털 포렌식을 공부하면서 같이 키워온 것들이라, 지금 보니 글 카테고리도 중구난방하고 내용도 아쉬운 것들이 많네요. 그 뒤로 K-Shield Jr., BoB 그리고 인턴 사원으로서의 시절도 함께 보냈는데, 특히 인턴 때 공부용으로 적은 글들을 아직도 많이 찾아주시는 것 같습니다. 블로그 방문해주시는 모든 분들께 정말 감사합니다. 2021년 BoB 입과 즈음, 사실 상 2022년 BoB 수료와 대학원 진학부터는 블로그 글을 거의 못 썼습니다. 그 사이에도 참 많은 일들이 있었는데 기술 관련 내용이 아니더라도 일상을 기록할 걸 하는 후회도 듭니다. 전 2023년 2월에 고대 정보보호대학..

    Mobile Security Framework (MobSF) Windows 환경 구축 (정적 분석, 동적 분석)

    Mobile Security Framework (MobSF) Windows 환경 구축 (정적 분석, 동적 분석)

    [공식 문서] https://mobsf.github.io/docs/#/ [Req.] - Git - Python 3.8 ~ 3.9 - JDK 8+ - MS Visual C++ Build Tools - OpenSSL (excutable) - wkhtmltopdf (add env PATH) 환경 구축 콘솔에서 설치하고자 하는 경로로 이동하고 아래 명령어를 따라치기만 하면 된다. git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git cd Mobile-Security-Framework-MobSF setup.bat 나 같은 경우, wkhtmltopdf 패키지도 미리 설치되어 있어 requirement를 다 만족시켰다고 생각했는데 OpenSSL..

    디지털포렌식전문가 2급 합격 후기 + 공부방법 정리

    디지털포렌식전문가 2급 합격 후기 + 공부방법 정리

    루팅 글에 이어 오~랜만에 블로그 글 쓰네요. 작년 말에 디지털포렌식 전문가 2급에 합격했습니다. 디지털포렌식 전문가 2급(디포전)은 한국포렌식학회와 KISA에서 공동 발급하는 국가공인 민간 자격증입니다! 아주 예전에 SQLD 대비용 PDF를 공유드리고 나서 많은 분들이 시험에 도움이되었다는 댓글을 남겨주셨어요. 지금 들어가서 다시 보니까 누적 조회수가 무려 10,000회!! (💕) 오랜만에 합격한 자격증인 만큼 이번 자격증도 제가 어떻게 공부했는지에 대한 간단한 시험 후기를 남겨보려고 합니다. 디지털포렌식 전문가 2급... 너무 기니까 디포전이라고 쓸게요 ㅎ 자격증 선택 이유 국내에서 디지털 포렌식과 관련해 운영되고 있는 자격증은 디포전이 유일합니다. 디포전은 1급, 2급 총 2개의 급수가 있는데 1급..

    Galaxy S9+ (Android 10) 루팅 with Magisk

    Galaxy S9+ (Android 10) 루팅 with Magisk

    루팅을 좀 해보려고 했는데 보는 블로그마다 방법이 조금씩 다르고 최근 글도 없거니와 무엇보다 실패해버려서 성공했던 방법을 아래 서술합니다! OEM 잠금 해제 및 USB 디버깅이 완료되었다는 전제하에 시작합니다. 1. 순정 펌웨어 다운로드 받기 SAMMOBILE 사이트에 들어가서, 루팅하고자 하는 휴대폰 모델과 통신사에 맞는 펌웨어를 다운로드 받습니다. Download Samsung Galaxy S9+ SM-G9650 firmware Download the latest Samsung firmware for Galaxy S9+ with model code SM-G9650. Check out our free download or super fast premium options. www.sammobile.com..

    (review)Android Password Managers and Vault Applications: Data Storage Security Issues Identification

    (review)Android Password Managers and Vault Applications: Data Storage Security Issues Identification

    2022년 6월 Journal of Information Security and Applications (JISA)에 발표된 'Android Password Managers and Vault Applications: Data Storage Security Issues Identification'이라는 제목의 논문입니다. Introduction 이 논문을 언급하기 전 먼저 다른 논문을 소개드리겠습니다. 2021년에 같은 저자들이 ICAI에 'Android Password Managers and Vault Applications: Comparative Security Analysis'이라는 논문을 냈었는데요, 해당 논문에서는 PM/VA에 맡겨진 데이터가 노출될 수 있는 보안 위협을 지적하면서 4개의 인기 있..

    [CS/보안 기초] (1) 쿠키(cookie)와 세션(session)의 차이

    [CS/보안 기초] (1) 쿠키(cookie)와 세션(session)의 차이

    오늘부터 가볍게 면접 준비도 할 겸 헷갈리는 개념도 바로 잡을 겸 이 글을 보는 다른 학생들에게 도움도 될 겸! CS/보안 기초 개념을 정리할까 한다. 쿠키와 세션을 이해하려면, 먼저 쿠키와 세션이 쓰이는 프로토콜인 http에 대해 이해해야 한다. HTTP HTTP는 클라이언트-서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들어 클라이언트(웹 브라우저)가 특정 웹 페이지에 접속할 경우 HTTP를 통해 해당 웹 페이지의 그림 정보 등을 서버에 요청하고, 서버는 이 요청에 응답하여 필요한 정보를 클라이언트에 전달하는 식이다. HTTP는 다음 두 가지 특징을 지닌다. Connectionless (비연결성) Stateless (무상태성) 두 성질의 차이를 쉽게 이해하려면 ..

    [N0Named Forensic] [B] 유출된 자료 거래 사건 1

    [N0Named Forensic] [B] 유출된 자료 거래 사건 1

    FTK로 열어 SOFTWARE를 내보내고 REGA로 열 생각이다. USB 연결 흔적이 저장되어 있는 레지스트리 경로 HKLM\SOFTWARE\Microsoft\Windows Portable Devices\Devices 를 들어가보면, 2개의 키가 존재한다. 플래그 형식에도 2개의 USB가 쓰인 것 같으니 맞는 것 같다. 키 경로 이름 자체에 모든 정보가 포함되어 있다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices\WPDBUSENUMROOT#UMB#2&37C186B&0&STORAGE#VOLUME#_??_USBSTOR#DISK&VEN_SANDISK&PROD_ULTRA&REV_1.00#4C531001431019122384&0# ..

    [N0Named Forensic] [C] Left Side B

    [N0Named Forensic] [C] Left Side B

    문제 속에 답이 있다고 한다.. 누가봐도 LSB 문제 파일 task.bmp 를 열어보면 fake flag가 보인다. LSB 스테가노그래피 디코딩을 하기 위해 HxD로 열어보자. 0x7C가 실제 데이터의 시작을 뜻하는 부분이고, 그 곳에는 0xFEFFFEFEFFFF .. 의 데이터가 담겨있다. 이 문제는 LSB 스테가노그래피를 통해 푸는 문제로 생각되므로, 0xFE와 0xFF를 2진수로 바꿔보자. 0xFE = 1111 1110 (2) 0xFF = 1111 1111 (2) Least Significant Bit, 즉 최하위 비트를 살펴보았을 때 0xFE -> 0 0xFF -> 1 로 대체해도 무방하다. 아래처럼 데이터를 0, 1로 바꾸고 8 bit binary를 ascii로 변환하는 코드를 짜면 플래그가 나온다

    [N0Named Forensic] [A] 123321123200

    [N0Named Forensic] [A] 123321123200

    fore5.png 파일을 보면, 아래와 같은 구조를 가진다.. PNG / GNP / GNP / ... / GNP / GNP / PNG 여기서 말하는 PNG는 일반적인 파일의 구조이고, GNP는 일반적인 PNG 파일의 헥스값이 byte 단위로 리버스된 구조이다. 여기서 'GNP' 구조가 굉장히 많기 때문에 손카빙을 불가능하고 코드를 짜야한다. 결국 아래 순서대로 이 문제를 풀었다! 앞 뒤의 순행 PNG 떼기 가운데의 리버스 PNG(GNP ~)를 순행으로 하기 위해 [::-1] 시그니처 단위로 PNG 파일을 자르고 저장 저장된 여러 개의 PNG 중 플래그 찾기 몇 개더라.. 77갠가 있고 그 중 47번짼가? 에 있다ㅎㅋ