• Home
  • About
    • Seokmin.Lee photo

      Seokmin.Lee

      Hello, I am a master's student in the Department of Convergence Security (Samsung Advanced Security) at Korea University.After graduation, I am expected as a security developer or researcher member of Samsung SDS.

    • Learn More
    • LinkedIn
    • Github
  • Posts
    • All Tags

All Posts

  • [ps]lesson_learn_until_pro

    프로까지 고정(try : 4)

    Read More
  • [bj][16234]인구이동

    문제:

    • 제목: 인구이동
    • 링크 : https://www.acmicpc.net/problem/16234

    Read More
  • [ps][cpp_stl]999_for(cpp)_auto(cpp)

    for, Auto 사용,

    Read More
  • [ps][cpp_stl]4_string

    4. String ★★★

    Read More
  • [ps][cpp_stl]3_list

    3. List

    Read More
  • [ps][cpp_stl]2_vector

    2. Vector

    Read More
  • [ps][cpp_stl]1_algorithm

    1. Algorithm

    Read More
  • [bj][16236]아기상어

    문제:

    • 제목: 아기상어
    • 링크 : https://www.acmicpc.net/problem/16236

    Read More
  • [til][bj1697]숨바꼭질

    Code

    Read More
  • [til][bj1260]dfsbfs

    • Type : DFS, BFS Basic
    • Key : 무지성으로 자료구조를 만들면 안되는 이유(모르겠으면 반례를 검색하자)

    Insight

    • 이문제는 예전에 풀었던 것이었는데, 계속 runtime error가 나왔다.
    • 확인해보니, 시작하는 간선이 없을 경우 dictionary는 key를 못찾아서 error를 낸다는 것이었다.
      • https://www.acmicpc.net/board/view/37362
    • 이전에 풀었을때는 자료 구조를 N개의 list를 일단 생성하고 보자는 것이기에, 자료 공간이 있으니 error가 안났었다.
      • graph = [[] for _ in range(N+1)]
        
      • 현재
        graph = {}
        graph[V] = [] #KEY
        for idx in range(M):
            A,B = map(int ,input().split())
            if A not in graph:
                graph[A] = [B]
            else:
                graph[A].append(B)
            if B not in graph:
                graph[B] = [A]
            else:
                graph[B].append(A)
            
        for _ in graph:
            graph[_].sort()
        
    • 이 문제를 통해 두 가지 Insight를 얻었다.
      1. C++로 짠다면 나는 속도측면에서 unorded_map을 썼겠지, 그때도 dict과 동일한 이유를 잘 생각해놓자
      2. 에러가나면 반례를 검색해서, 코드 헤메는 시간을 줄이자

    Code

    Read More
  • [til][bj2470]두용액기준

    Read More
  • [til][bj17144]미세먼지안녕

    Problem :

    • 제목: 미세먼지 안녕!
    • 링크 : https://www.acmicpc.net/problem/17144
    • 접근 방법 : 깡구현

    Read More
  • [til][bj2343]기타레슨

    문제:

    • 제목: 기타 레슨
    • 링크 : https://www.acmicpc.net/problem/2343
    • 접근 방법 : 탐색

    Read More
  • [til][bj11663]선분위의점

    문제:

    • 제목: 선분위의 점
    • 링크 : https://www.acmicpc.net/problem/11663
    • 접근 방법 : 탐색

    Read More
  • [ps][python]순열조합bfs

    Python Library 활용

    Read More
  • [ps][python]cheet Sheet

    입력

    Read More
  • [til][bj2775]암기왕

    문제:

    • 제목: 숨바꼭질 3
    • 링크 : https://www.acmicpc.net/problem/13549
    • 접근 방법 : BFS ( + 0,1 가중치)

    Read More
  • [bj][13549]숨바꼭질

    문제:

    • 제목: 숨바꼭질 3
    • 링크 : https://www.acmicpc.net/problem/13549
    • 접근 방법 : BFS ( + 0,1 가중치)

    Read More
  • [ps]co_zy_0001

    1. MAP, Insert

    Read More
  • [llm] 선행연구 rag

    Intro

    1. LLM의 단점은 Hallucination(환각)이다. 즉, 이세상 모든 데이터를 db화 하여 Finetuning 하지 않는 이상 이 문제는 해결할 수 없다.
    2. LLM의 단점은 공유성이다. OPENAI 와 같은 특정 기업이 독점하게 된다면 Input과 Output의 결과는 계속해서 특정 기업의 학습데이터로 쓰일 것이다.

    Read More
  • [ps]dfs bfs 개념 다시 잡기(다시정리)

    https://github.com/leesk212/PS/tree/main/5014

    Read More
  • [ps]dfs로 조합,순열,중복 끝장보기 (다시 정리)

    6.12에 다시 시험이다.. 하지만 나에게 남은건 도로묵의 정신 상태일뿐.. 기억이 다 안난다., 지금까지 풀었던 것들을 다시 한 번 리마인드 해서 얹고 다음 step으로 가자. (어차피 Pro 딸떄도 기억안나면 다시 다해야함)

    Read More
  • [ai]custom hugging face model_file

    ```txt FROM llama-3-Korean-Bllossom-8B-Q4_K_M.gguf

    Read More
  • [ps]cpp_bfs의 방문처리 & bfs,dfs 탐색 어떤거 쓸지 고르기

    1. BFS 방문처리 시점

    Read More
  • [ps]cpp_dfs_순열,조합,중복순열,중복조합

    4.17(수) 시험 리뷰
    PS> 시험을 보기전, DFS와 BFS의 중요도를 깨달았지만, 어떻게 순열 및 조합을 구현하는지에 대해 큰 어려움이 있었다. 
        Idea는 확인했지만 Next_permutaion에 의존했달까..
        문제는 Next_permutaion의 사용법을 까먹었던걸 다시 알기까지 너무 오랜시간(1시간 30분..)이 걸렸고,
        Pro 문제를 핸들링할때, DFS로 기본적인 순열을 못 구현한다는 현실이 괴로웠다.
        next_permutaion (순열) 또는 pre_permutaion (조합)으로 문제를 풀어도된다고 하더라도, DFS 로 구현까지 학습해두자.
        ( 중복 조합, 중복 순열 문제가 나온다면 DFS로 풀어야하니..!!)
    

    Read More
  • [bj]15650_n과m

    https://www.acmicpc.net/problem/15650

    Read More
  • [ps]cpp_stl_basic

    배열 초기화

    #include <stdlib.h>
    #include <string.h>
    int visited[10] = { true,};
    memset(visited, false, sizeof(visited));
    

    Read More
  • [reviewer]go성능 최적화 가이드

    한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
    

    Read More
  • [etc].aws services evolution

    KakaoTalk_20230823_100857310

    Read More
  • [reviewer]핸즈온 장고_백엔드 개발을 위한

    한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
    

    Read More
  • [reviewer]온디바이스ai

    한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
    

    Read More
  • [reviewer]업무에 바로 쓰는 aws 입문

    한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
    

    Read More
  • [etc] 인터넷보안 전문가 2급 실기 자료 모음 (2022)

    인터넷 보안 전문가 2급 실기 자료 모음

    해당 자격증은 실기 시험에 대해서 공부할 자료가 부족하다는 단점이 존재한다. 이에, 추후 해당 자격증을 공부하는 학생들을 위해 필자가 수집하였던 문제 자료들을 공유하고자한다.

    Read More
  • [serverless] bottom Up approach (low Level to high Level) (a to z)

    What is Serverelss?

    Read More
  • [etc] git commit convention

    Git - Commit Message Convention 이란?

    협업을 수행할 때 진행하는 사람들끼리 어떤 Commit을 수행했는지 한눈에 파악하기 위함이다.

    Read More
  • [paper] english shellcode

    Abstract

    • History indicates that the security community commonly takes a divide-and-conquer approach to battling malware threats: identify the essential and inalienable components of an attack, then develop detection and prevention techniques that directly target one or more of the essential components.

      역사에 따르면 보안 커뮤니티는 일반적으로 맬웨어 위협과 싸우기 위해 분할 정복 방식을 취합니다. 공격의 필수 구성 요소와 양도할 수 없는 구성 요소를 식별한 다음, 필수 구성 요소 중 하나 이상을 직접 대상으로 하는 탐지 및 방지 기술을 개발합니다.

    • This abstraction is evident in much of the literature for buffer overflow attacks including, for instance, stack protection and NOP sled detection. It comes as no surprise then that we approach shellcode detection and prevention in a similar fashion.

      이 추상화는 예를 들어 스택 보호 및 NOP 슬레드 감지를 포함한 버퍼 오버플로 공격에 대한 많은 문헌에서 분명합니다. 우리가 비슷한 방식으로 쉘코드 탐지 및 방지에 접근한다는 것은 놀라운 일이 아닙니다.

    • However, the common belief that components of polymorphic shellcode (e.g., the decoder) cannot reliably be hidden suggests a more implicit and broader assumption that continues to drive contemporary research: namely, that valid and complete representations of shellcode are fundamentally different in structure than benign payloads.

      그러나, 다형 셸 코드의 구성 요소(예: 디코더)를 안정적으로 숨길 수 없다는 일반적인 믿음은 현대 연구를 계속 추진하는 더 암묵적이고 광범위한 가정을 제시한다. 즉, 셸 코드의 유효하고 완전한 표현은 양성 페이로드와 구조가 근본적으로 다르다는 것이다.

    • While the first tenet of this assumption is philosophically undeniable (i.e., a string of bytes is either shellcode or it is not), truth of the latter claim is less obvious if there exist encoding techniques capable of producing shellcode with features nearly indistinguishable from non-executable content.

      이 가정의 첫 번째 원칙은 철학적으로 부인할 수 없지만(즉, 바이트의 문자열은 셸 코드이거나 그렇지 않음), 실행 불가능한 내용과 거의 구별할 수 없는 특징을 가진 셸 코드를 생성할 수 있는 인코딩 기술이 존재한다면 후자의 주장의 진실은 덜 명백하다.

    • In this paper, we challenge the assumption that shellcode must conform to superficial and discernible representations.

      본 논문에서, 우리는 셸 코드가 피상적이고 식별 가능한 표현을 준수해야 한다는 가정에 도전한다.

    • Specifically, we demonstrate a technique for automatically producing English Shellcode, transforming arbitrary shellcode into a representation that is superficially similar to English prose.

      특히, 우리는 임의의 셸 코드를 표면적으로 영어 산문과 유사한 표현으로 변환하는 영어 셸 코드를 자동으로 생성하는 기술을 시연한다.

    • The shellcode is completely self-contained i.e., it does not require an external loader and executes as valid IA32 code) and can typically be generated in under an hour on commodity hardware.

      쉘코드는 완벽히 sellf-contained 되어져있고 ( 즉, IA32에 타당한 실행이나 외부 로더를 요구하지 않는다) 그리고 전형적으로 한시간안에 발생되어진다.

    • Our primary objective in this paper is to promote discussion and stimulate new ideas for thinking ahead about preventive measures for tackling evolutions in code-injection attacks.

      이 논문에서 우리의 주된 목적은 토론을 촉진하고 코드 주입 공격에서 진화를 다루기 위한 예방 조치에 대해 미리 생각할 수 있는 새로운 아이디어를 자극하는 것이다.

    Read More
  • [etc]2022년 1학기 회고록

    고려대 대학원

    정신 없이 흘러간 1학기 생활이었다. 포스팅도 3월 시작전에 멈춰있음을 확인할 수 있다. “하나를 포기해야됬고, 블로그 포스팅을 포기했다.. 하하,,” 학부연구생때의 생활에서 “석사”“삼성”“조교”라는 타이틀을 갖고 시작하게 된 석사연구생인 만큼, 책임감 또한 커졌고 진행시켜야될 업무의 비중이 늘어나게되었다.

    Read More
  • [git]특정파일 제외하고 commit하기

    1. 특정파일을 제외하고 commit 하고자 한다면, .gitingnore이라는 파일을 만들면된다.
    2. 해당 파일 내부에 다음과 같이 # manually ignored를 선언해 준뒤, 밑칸부터 제외할 파일들을 적어주면된다.

    Read More
  • [linux]for_broken_grub_real

    1. recovering GRUB in Ubuntu

    Read More
  • [HPC]What is MPI (with CUDA)

    MPI란?

    • 병렬 프로그래밍을 위한 표준화된 데이터 통신 라이브러리이다.
    • Message: Data+envelop
      • 메시지라는 것은 데이터를 봉투에 담아있는 상태로 볼 수 있다.
      • 이 메세지 안에는 데이터뿐만 아니라, (1) 어떤 프로세스가 보내고 받는지, (2) 어디에 데이터가 있는지, (3) 데이터의 크기는 얼마나 크고, 얼마나 공간을 확보해야되는지 등 프로세스간 통신하는데 필요한 정보를 담고 있다.
      • Tag(메시지의 고유번호): 메시지를 매칭하기 위해 다는 구분자이다. 순서대로 메시지 도착을 처리할 수 도 있고, 와일드 카드를 사용할 수도 있다.
      • 커뮤니케이터(Communicator) & 랭크(Rank): 커뮤니케이터란, 통신이 허용되는 프로세서들의 집합이다. 각 프로세서들을 식별하기위해서 Rank를 붙여준다.

    Read More
  • [GPUDirect RDMA]Benchmarking Program

    Benchmarking tools

    Read More
  • Mining Monero (XMR) on Linux (ubuntu)

    How to mine?

    Read More
  • Installing vscode with gdb on Linux

    1. Installing Compiler

    Read More
  • Installing Anaconda in Linux os

    Get Ananconda

    $ wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
    
    $ bash Anaconda3-2019.10-Linux-x86_64.sh
    -----------------
    환경셋팅
    $ bash ../Anaconda3-2019.10-Linux-x86_64.sh
    -----------------
    
    $ source ~/.bashrc
    

    Read More
  • [linux]rpm2deb, deb 분석

    rpm2deb: alien

    ref: https://junhyunny.github.io/information/linux/linux-alien/

    Read More
  • [linux]gdb cheat sheet

    gdb command

    Read More
  • [gpudirect rdma]infiniband programming

    ref: https://insujang.github.io/2020-02-09/introduction-to-programming-infiniband/

    Read More
  • [etc]gmail 다중 전달

    ref:

    • https://pdi-mz-support.zendesk.com/hc/ko/articles/360050907551--Gmail-%EC%88%98%EC%8B%A0%EB%90%98%EB%8A%94-%EB%A9%94%EC%9D%BC%EC%9D%84-%EC%97%AC%EB%9F%AC-%EB%A9%94%EC%9D%BC-%EC%A3%BC%EC%86%8C%EB%A1%9C-%EC%9E%90%EB%8F%99-%EC%A0%84%EB%8B%AC-forwarding-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
    • https://pdi-mz-support.zendesk.com/hc/ko/articles/360058069971

    Read More
  • [git]git commit 전체 자동화

    git add, commit -m 자동화

    git add . ; git commit -m ${data} ; git push

    Read More
  • [linux]overview of seedlab setup 2

    관제란?

    관제 대상기관의 IT 자원을 사이버공격으로부터 보호하기 위하여 보안 이벤트 및 로그 등을 실시간으로 감시 및 분석 하는 것을 뜻한다.

    Read More
  • [linux]overview of seedlab setup 1

    만들고 싶은 환경

    • 실습 수업을 진행하기위한 sandbox환경을 만드는 것을 목표로한다.
    • 최소 20명~30명정도 되는 접속의 트래픽이 최대로 한번에 몰릴 가능성이 높다.
    • 가장 편한 방법은 아무리 생각해도 docker나 AWS로 서버를 배포하는 것이 좋을 것이다.
    • CSP에게 트래픽 처리와 이용자 접근에 대한 부담을 넘기는 방식이다.
    • 하지만 제약사항이 각각 두가지가 있었다. 일단 Software Attack, H/W Attack을 진행하기 위해서는 Super user 권한을 줘야한다.
    • 그러게 되면 S/W 공격 같은 경우 이상이 없겠지만 , H/W 공격은 CPU Dependent하기에 CSP를 활용한 배포는 배제시켯다.

    Read More
  • [nvidia]dpu vs gpu vs cpu

    https://blogs.nvidia.com/blog/2020/05/20/whats-a-dpu-data-processing-unit/

    Read More
  • [git]깃블로그 가비아 도메인으로 퍼블리싱하기

    Result

    https://outoftheblackbox.site/

    Read More
  • [paper]hardware Based solutions for trusted cloud computing

    Abstract

    • 클라우드 컴퓨팅을 표적으로 하는 위협의 수가 증가하고 특별히 권한이 부여된 소프트웨어 취약점의 악용으로 인해 클라우드 서비스 공급자의 보안 관리자는 하드웨어 기반 솔루션을 배포해야 합니다.
    • 이러한 솔루션은 데이터 센터의 CISC 및 RISC 아키텍처 제품군을 포함한 광범위한 컴퓨팅 플랫폼에 대해 더 나은 하드웨어 지원 보안 기능을 제공할 수 있습니다.
    • 그들의 목표는 심각한 보안 취약성을 포함하는 것으로 입증된 운영 체제 또는 하이퍼바이저와 같은 일부 높은 권한의 시스템 소프트웨어 대신 하드웨어에 대한 신뢰를 기반으로 하여 공격 표면을 줄이는 것입니다.
    • 따라서 일부 보안에 회의적인 사용자를 위한 클라우드 컴퓨팅 모델의 채택을 제한합니다.
    • In this paper, we give cloud users and customers, application developers and security managers a comprehensive overview of four major industrial-scale commercial hardware-based solutions brought by major vendors in the cloud market.
    • 보안, 기능 및 배포의 세 가지 범주에 맞는 20개 이상의 기준과 관련하여 Intel TXT, ARM TrustZone, AMD SEV 및 Intel SGX 기술을 제시, 분석 및 비교합니다.
    • 우리는 이러한 각 기술에 대해 논의하고 특히 뛰어난 사례를 보여줍니다. 우리의 비교는 IT 관리자가 특정 보안 요구 사항과 미래의 클라우드 마이그레이션을 위해 채택할 더 나은 산업 기술에 대해 올바른 결정을 내리는 데 도움이 될 수 있습니다.

    Read More
  • [etc]멀티부팅atoz

    • ref: https://kimsungjin.tistory.com/428

    Read More
  • [bios]intel prefetch disbale

    ref 1: https://m.blog.naver.com/cinsky/221723960849

    Read More
  • [blockchain]hpc features of cryptojacking detection

    1. The Browsers Strike Back:Countering Cryptojacking and Parasitic Miners on the Web

    image

    Read More
  • [etc]publicwww이란 (what is public www)

    What is PUBILCWWW?

    ref: https://crozdesk.com/software/publicwww

    Read More
  • [blockchain]pow,pos,poi

    Blockchain

    ref: https://www.youtube.com/watch?v=3mr0NYTDRjY

    • 블록체인은 누구자 체굴할 수 있는지 없는지에 따라서 Public, Private으로 나뉜다.

    Read More
  • [pwnable.kr]3_bof

    첫인상

    Read More
  • [pwnable.kr]2_collision

    접근

    • 동일한 방식으로 ssh로 접근 후 문제 풀이가 시작된다.
    • flag를 실행시켜 flag 실행파일이 출력하는 값을 문제의 답으로 입력한다.
    • 그 과정에서 col.c를 통해 flag 실행파일을 시작시킬 수 있음을 확인하였다.

    Read More
  • [paper]towards total recall in industrial anomaly detection

    Title: Toward Total Recall in Industrial Anomaly Detection

    산업 이상 탐지의 토털 리콜을 향하여

    Read More
  • [etc]sok의 의미

    • 흔히 논문 제목이 SoK: 라는 키워드로 시작하는 paper를 볼 수 있다.
    • 이는 Systematization of Knowledge의 약자로 특정 도메인의 지식과 동향을 체계적으로 분석하여 일목요연하게 정리한 논문이란 뜻이다.
    • ‘오클랜드’라 지칭하는 보안 분야의 Top 학회 IEEE S&P 에서 2010~2019 사이에 발표된 SoK 논문들을 모아두었다.

    Read More
  • [pwnable.kr]1_fd

    첫인상

    image

    Read More
  • [paper]sok cryprojacking malware

    Introduction

    Read More
  • [cuda]basictip

    ref.1: https://karl6885.github.io/cuda/2018/11/08/NVIDIA-CUDA-tutorial-1/
    ref.2: https://www.sysnet.pe.kr/2/0/11481
    

    Read More
  • [attack]ransomware

    Ransomware

    • Ransomware is a type of malware that restricts access to the infected computer system, and demands that the user pays a ransom to the attacker to remove the restriction. (랜섬웨어는 감염된 컴퓨터 시스템에 대한 접근을 제한하는 악성코드의 일종으로, 사용자가 제한을 해제하기 위해 공격자에게 몸값을 지불하도록 요구한다.)
    • Some forms of ransomware encrypt files on the system’s local storage, which become almost impossible to decrypt without paying the ransom for the decryption key; while some may simply lock the system and display messages intended to coax the user into paying. (일부 형태의 랜섬웨어는 시스템의 로컬 저장소에 있는 파일을 암호화합니다. 이 파일은 암호 해독 키에 대한 몸값을 지불하지 않고는 암호 해독이 거의 불가능합니다. 일부는 단순히 시스템을 잠그고 사용자가 지불하도록 유도하는 메시지를 표시할 수 있습니다.)
    • Ransomware can be classified into two classes: Class A ransomware overwrites the contents of the original file, so the deleted file cannot be restored.(랜섬웨어는 크게 두 가지로 분류할 수 있습니다. A급 랜섬웨어는 원본 파일의 내용을 덮어쓰므로 삭제된 파일을 복원할 수 없습니다)
    • In this class, encrypted filenames are the same as the original ones. (이 클래스에서 암호화된 파일 이름은 원래 파일 이름과 동일합니다.)
    • Class B ransomware makes another encrypted file (for example, B.txt.crypt) using the original file then deletes the original file after encryption.(클래스 B 랜섬웨어는 원본 파일을 이용하여 또 다른 암호화된 파일(예: B.txt.crypt)을 만든 다음 암호화 후 원본 파일을 삭제합니다.)
    • The encrypted files have other file extensions and sometimes the original files can be restored because they are not overwritten. (암호화된 파일에는 다른 파일 확장자가 있으며 때로는 원본 파일을 덮어쓰지 않기 때문에 원래 파일을 복원할 수 있습니다.)
    • Class B ransomware is easy to detect because files having a specific file extension are created.(클래스 B 랜섬웨어는 특정 파일 확장자를 가진 파일이 생성되기 때문에 탐지하기 쉽습니다.)
    • Whereas, class A is more serious because the original files cannot be restored in practice, so we will concentrate on class A ransomware in this study.(반면 클래스 A는 실제로 원본 파일을 복원할 수 없기 때문에 더 심각하므로 본 연구에서는 클래스 A 랜섬웨어에 집중할 것입니다.)

    Read More
  • [ Paper ] Ran Stop a hardware Assisted runtime crypto Ransomware detection technique

    Title

    RanStop: A Hardware-assisted Runtime Crypto-Ransomware Detection Technique

    Read More
  • [linux]ssh_gui붙기_easy

    ref: https://jimnong.tistory.com/748

    Read More
  • [git]global config 설정

    $ git config –global user.name “Your Name” $ git config –global user.email you@example.com

    Read More
  • [network]dns server에 대한 고찰

    ref1: https://zzsza.github.io/development/2018/04/16/domain-name-system/

    Read More
  • [window]cmd에 wget추가하기

    wget 같은 명령어 cmd에 넣는 방법

    1. c:winodw:system32에 실행 파일을 넣으면 된다.
    2. https://eternallybored.org/misc/wget/

    Read More
  • [etc]연구계획서쓰는법

    ref: https://brunch.co.kr/@lifejobcrafting/27

    연구계획서를 쓰는 이유

    대학원생으로서 앞으로 석사/박사 과정을 통해 학문을 연구할 자세가 되어있는가를 보여준다. 학과 학문 분야에 대학 관심도가 어느정도인지 나타나야한다. 연구계획서를 준비하면서 추후 연구하고 싶은지에 대한 방향도 잡히게 된다.

    Read More
  • [git]git branch 생성 및 접근

    git branch 만들기

    git branch seokmin

    Read More
  • [window]setup(cuda Cudnn Tensorflow_gpu)

    1. cuda를 설치한다. (nvidia-driver를 설치하는 것이 아니다.)

    • Nvidia GTX,RTX 별 지원가능한 cuda 버전 확인: https://developer.nvidia.com/cuda-gpus#compute

    Read More
  • [linux]chrome원격_with_ubuntu20

    삽질을 너무 많이 했다..

    Read More
  • [paper]transient execution of non_canoical accesses

    ref: https://saidganim.github.io/amdncte.html

    Read More
  • [git]대용량파일 올리기

    git LFS 설치

    sudo apt-get install git-lfs

    Read More
  • [book]모두의 네트워크

    1. 네트워크 첫걸음

    Read More
  • [book]실무 예제로 배우는 데이터 공학

    1. 데이터 공학자의 업무란!?

    • 자료원(데이터 공급원)에서 데이터를 질의하고[1. 추출과정] 데이터를 어떤 방식으로든 수정하고[2. 변환과정] 데이터를 사용자가 접근할 수 있는, 그리고 거기에 있는 데이터가 실무 품질임을 아는 어떤 장소에 넣는[3. 적재과정] 3가지를 진행하는 업무이다.
    • 모든 지역(region)의 db를 연결해서 데이터를 추출하고, 데이터 웨어하우스에 적재한 후 그곳에서 원하는 데이터 값을 계산한다.

    Read More
  • [window]scp,ssh

    cmd에서 opensshd가 바로 접근이 가능하다..!

    image

    Read More
  • [Paper]Why TLS is better without STARTTLS(NOSTARTTLS)

    Insights that I want

    • Starttls를 지원하지 않을 때 생길 수 있는 문제점이 무엇일까?
    • DNSSEC을 지원하지 않을 때 생길 수 있는 문제점이 무엇일까?
    • (Can I?) TLSRPT..!

    Read More
  • [Python]Data visualizing

    Data visualization

    Read More
  • [git]gitblog-google-노출시키기

    기본적인 노출방법

    1. [git계정이름].github.io repository root위치에 2가지 파일(robots.txt,sitemap.xml)을 추가시켜준다.
      • ref: https://moon9342.github.io/jekyll-sitemap
    2. google search console로 접속하여 해당되는 sitemap속성으로 이동후 자신의 블로그 + sitemap.xml 스크린샷 2021-08-22 오후 2 21 43
    3. 오류확인..!

    Read More
  • [Python]datetime_method

    Print UTC & KST

    from pytz import timezone
    from datetime import datetime 
    if __name__ == "__main__": 
      fmt = "%Y%m%d%H%M%S %Z%z"
      UTC = datetime.now(timezone('UTC'))
      KST = datetime.now(timezone('Asia/Seoul'))
      print(UTC) 
      print(KST) 
      print(UTC.strftime(fmt))
      KST = KST.strftime(fmt)
      KST = str(KST).split()[0]
      print(KST)
    

    KST2UTC

    from datetime import datetime
    from datetime import timedelta
    when = ';; WHEN: 수  8월 04 17:00:30 KST 2021'
    when = when.split()
    KST_timestring = '2021-08-04 '+when[-3]
    print(KST_timestring)
    logdate = datetime.strptime(KST_timestring, '%Y-%m-%d %H:%M:%S') - timedelta(hours=9)
    print(logdate)
    

    Read More
  • [python]os_method,file_method,is_method

    os

    import os

    Read More
  • [coding Test]dynamic programing

    DP란?

    작은 값을 통해 더 큰 문제의 답을 계산하여 구하는 과정을 반복하여 최종적인 답까지 도달하는 과정

    언제 DP로 문제를 접근하여 해결하면 좋을까?

    1. 큰 문제를 작은 문제로 나눠서 푸는 알고리즘(예:피보나치 수)
    2. Overlapping Subproblem(큰 문제와 작은 문제를 같은 방법으로 풀 수 있음), Optimal Substructure(문제의 정답을 작은 문제에서 풀 수 있음)
      • 혼합 제외, 어떤 항을 구하기 위한 전 항들을 완벽히 구할 수 있고, 그 항들을 이용하여 정의의 맞는 현재 항이 깔끔하게 정의가 될 때이다.
      • 다이나믹 프로그래밍. 한국어로 동적 계획법을 이용해 풀어야 하는 문제이다. 동적 계획법은 상향식과 하향식이 있는데, 처음 두 수를 알기 때문에 상향식으로 문제를 풀었다. 상향식은 제일 작은 인덱스의 수 부터 목표하는 값으로 향하는 것이고, 하향식은 맨 위의 값에서 재귀로 제일 작은 인덱스를 향하는 것이다. 이 동적 계획법이 최솟값을 구하는 면에서 그리디 알고리즘이랑 뭐가 다른가 싶었는데, 그리디 알고리즘은 내가 생각한 처음 최적의 방법이 끝까지 반례 없이 적용이 되는 경우에 이용하고, 동적 계획법은 가능성을 모두 두고 그 안에 최솟값을 찾을 수 있기 때문에 뭔가 그리디와 브루트포스의 중간 같은 느낌이다.

        Process of soloving DP

    3. 문제 탐색
    4. DP 식세우기
    5. 검증 및 구현

    Read More
  • [coding Test]python_code_note_1

    1차원 list 초기화 선언

    visited = [False] * 9 #[0,0,0,0,0,0,0,0,0]
    

    2차원 list 빠른 행 선언

    graph = [[]*n for _ in range(n)]
    graph[0].append(0)
    graph[1].append(0)
    graph[2].append(0)
    

    2차원 list중 중복제거

    whitelists = list(set([tuple(set(whitelist)) for whitelist in whitelists]))
    

    시간형태 비교

    all_indicies = sorted(all_indicies, key=lambda x: datetime.datetime.strptime(x, 'winlogbeat-%Y.%m.%d'))
    

    Read More
  • [mac]ipynb2md

    1. installing conda

    2. run conda

    3. installing nbconvert

    conda install nbconvert

    4. convert ipynb to md

    jupyter nbconvert –to markdown JUPYTER_NOTEBOOK.ipynb

    Read More
  • [coding Test]solved.ac_class_2_essential

    while True: 
      s = list(map(int,input().split(' ')))
      if sum(s)==0:
        break
      s = sorted(s,reverse=True)
      if s[0]**2 == s[1]**2 + s[2]**2:
        print('right')
      else:
        print('wrong')
    

    Read More
  • [coding Test]solved.ac_class_1_essential

    a,b = map(str,input().split(' '))
    print(int(a)+int(b))
    

    Read More
  • [mac]installing conda

    anaconda navigatior

    https://www.anaconda.com/products/individual

    Read More
  • [ml]reinforce learning

    강화학습이 다루고 있는 문제

    y(t+1) = f(y(t),x(t))

    • 상대방이 입력을 학습을 같이한다.

    Read More
  • [mac]install brew, pyenv and jupyter

    brew

    /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

    Read More
  • [python]timeout

    window

    ```python from datetime import timedelta, datetime from time import sleep

    Read More
  • [security] T E E, Intel S G X

    TEE(Trusted Execution Environment)

    Read More
  • [security]tcp,udp checksum

    Checksum

    • 체크섬은 데이터를 송신하는 중에 발생할 수 있는 오류를 검출하기 위한 값이다 전송할 데이터를 16Bits씩 나눠서 차례대로 더해가는 방법으로 생성한다.
      image
    • Sender side - Checksum Createion
      • Break the original message in to ‘k’ number of blocks with ‘n’ bits in each block.
        image
      • Sum all the ‘k’ data blocks
        image
      • Add the carray to the sum, if any
        image
      • Do 1’s complement to the sum = Checksum
        image
      • CHECKSUM 11011010
    • Recivere side - Checksum Validation
      • Get Data from Sender [Checksum][SectionK…]
        image
      • Calculate all data value with checksum and carray –> to be 1 image

        Checksum code ‘C’

    Read More
  • [paper]randomized last Level caches are still vulnerable to cache side Channel attacks! but we can fix it

    Cache Randomized

    • CEASER: http://memlab.ece.gatech.edu/papers/MICRO_2018_2.pdf
    • CEASER-S: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8980326
    • ScatterCache: https://www.usenix.org/system/files/sec19-werner.pdf
    • MIRAGE: Mitigating Conflict-Based Cache Attacks with a Practical Fully-Associative Design: https://arxiv.org/pdf/2009.09090.pdf

    Read More
  • [aws]ec2 instance

    AWS EC2 instance GUI

    https://medium.com/@ggomma/%EC%9C%88%EB%8F%84%EC%9A%B0%EC%97%90%EC%84%9C-ubuntu-aws-ec2-gui-%EC%9D%B4%EC%9A%A9-ee2567a85d8f

    Read More
  • [security]electronic mail security

    Policy

    SPF

    image

    • google.com로부터 메일이 발송되었을 때, 이 발송지가 진짜 google.com으로부터 발송된 메일인지 확인하는 시스템

    • 수신자 입장에서 1.2.3.4 ip를 가진 bounces@example.com으로부터 메일이 도착함

    Read More
  • [lkm]basic

    Loadable Kernel Module

    sudo insmod __.ko : module load

    Read More
  • [mac]xattr제거

    xattr -d com.apple.FinderInfo *

    Read More
  • [kubernetes]yaml다루기

    스크린샷 2021-06-13 오후 3 32 59

    Read More
  • [kubernetes]basic

    스크린샷 2021-06-13 오후 3 26 39

    kubernetes

    • 관리하는 시스템이라고 적혀있습니다.
    • cluster management system에 더 가깝다는 것을 알게된다.
    • ochastraction tool이라고 많이 쓰임
    • 선장을 나타내는 그리스말
    • 쿠버네티스를 설치 하는 것:

      docker가 등장하기전

    • 서버의 상태를 관리하기 위하 노력 -> 도커-> 쿠버네티스
    • 서버 설치, cpu–> 네트워크 연결 방화벽 설정–> 서버를 구매할 때부터 매우 좋았던 것을 씀
    • Ruby on rails 스크린샷 2021-06-12 오후 5 33 40
    • Ruby 1.8을 쓰고 있었는데 업데이트가 되면 모든 영향을 보여주는 상태가 된다..
    • 상태 관리가 매우 어렵기에, 어떤것을 했는지 알 수가 없음 –> 믿을 수 없기에, 똑같은 서버를 만들 수 없기에 서버관리자가 GOD –> 확장이 어려움
    • dev-ops가 이제 매우 불필요해짐
    • 상태를 이용하는 코드를 서버를 갖고 선언을 한다.
    • 설정파일을 갖고 있으면 동일한 상태로 그대로 이용할 수 있음
    • 코드로 관리할 수 있기에 리뷰할 수 있게

    Read More
  • [docker]docker compose

    docker compose란?

    • compose: 구성하다 (make up)
    • applications
    • YAML “야믈”파일 XML -> JSON -> YAML –> key:value (pair)
      • docker-compose.yml
        version: "3.9"
        services:
        web:
          build:
          ports:
            - "5000:5000"
          volumes:
            - .:/code
            - logvolume01: /var/log
          links:
            - redis
         redis:
          image: redis
        volumes:
        logvolume01: {}
        
      • indentation 중요!!

    Read More
  • [docker]private_resistory,dockerfile

    docker offical docker machine 접근 스크린샷 2021-06-12 오후 12 00 46 private resistry에 push하기 위해 이름과 방법을 바꿔주었음 스크린샷 2021-06-12 오후 12 03 41

    Read More
  • [docker]nginx,apache,배포

    nginx docker run

    docker run -it -d -p 8080:80 nginx
    기존의 nginx 이미지를 다시 run 시키는데 이때 host의 8080과 docker의 ngnix서버의 80포트를 포트포워딩을 해주는 방식

    nginx 서버에서 렌더링하는 페이지를 host machine과 연동시키는 과정

    (docker에서 nginx target server bash열기)
    docker exec -it (nginx_docker_id) bash
    (host에서 연동시킬 directory 생성)
    docker run -d -p 8080:80 -v /Users/leekatme/Desktop/nginx_test/html:/usr/share/nginx/html ngnix
    스크린샷 2021-06-12 오전 3 07 43 스크린샷 2021-06-12 오전 3 08 40 스크린샷 2021-06-12 오전 3 09 20 스크린샷 2021-06-12 오전 3 09 28

    Read More
  • [linux]for_broken_grub

    1. try ubuntu without installing

    sudo add-apt-repository ppa:yannubuntu/boot-repair

    sudo apt-get update

    sudo apt-get install boot-repair -y

    sudo boot-repair

    Select recommended repair

    Read More
  • [latex]listing,figure,pifont

    https://www.rpi.edu/dept/arc/training/latex/LaTeX_symbols.pdf

    Read More
  • [python] Basic A P I

    map

    • 여러 개의 데이터를 한 번에 다른 형태의 데이터로 변환하기 위해서 사용

    Read More
  • [paper] Rosita towards Automatic Elimination of Power Analysis Leakage in Chiper

    Rosita

    1. Uses an emulator to detect leakage due to unintended interatctions between values
    2. Rewrites the code to eliminate the leakage.

    Read More
  • [docker] Instruction of Docker with creatig ngnix server

    Docker Practice -2

    Docker run

    Command

    $docker run -it ubuntu bash

    • docker run의 뜻은 새로운 컨테이너를 실행시키는 명령어이다.
    • 이때 사용되는 것이 -i와 -t이고 i는 interactive으로써 키보드의 입력(Standard Input output)을 attatch 시켜라라는 뜻이다. t는 tty를 붙여라라는 뜻이다.
    • 즉 -it를 사용함으로써 standard input output을 붙이라는 뜻이다.
    • ubuntu는 어떤 image를 받을지 정한 명령어이다.
    • bash는 ubuntu에서 실행할 명령어이다.

      exit

    • 컨테이너 완전히 종료

      docker start -a contatiner id

    • 방금 멈춘 docker를 다시 실행시키는 것

      Ctrl+P or Ctrl+Q

    • 컨테이너가 실행되된 쉘만 종료되고 docker container는 아직 살아있음 (ps로 확인) (잠시 빠져나오는 느낌)

      docker attach conatiner id

    • 잠시 멈췄던 conatiner를 다시 쉘을 킨다.

      docker rm container id

    • 삭제에는 몇가지 방법이 있음
    • $ docker rm < container id/Name > <—하나하나씩 삭제
    • $ docker rm ‘$docker ps -a -q’ <—전체 docker container 삭제
      • $ docker rm , , ...
      • docker ps -a -q를 하면 container의 id를 argument로 다 받을 수 있기에 모든 image에 올라와있는 모든 docker들을 삭제할 수 있다.
      • 실행중인 conatiner들은 삭제가 안될 수도 있음 강제로 stop하게 하고 싶으면 -f 옵션을 주면 돼

        docker conatiner prune

    • stop된 container들만 제거한다.

      Practice

    • 스크린샷 2021-05-06 오전 6 01 16
      • 초기 임으로 local에 이미지가 없음으로 pull하였던 과정임을 확인할 수 있다.
    • 스크린샷 2021-05-06 오전 6 02 03
      • 두번째 부터는 pull과정이 없다.
      • 스크린샷 2021-05-06 오전 6 02 33
    • hostname이 image의 container name이다.
    • exit->start 와 Ctrl + P , Q -> attach ps 비교
      • 스크린샷 2021-05-06 오후 1 12 44
    • docker container prune
      • 스크린샷 2021-05-06 오후 1 36 31

    Read More
  • [git]특정 하위 폴더 클론

    git 특정 폴더 clone

    Read More
  • [linux]버전확인

    cat /etc/os-release

    Read More
  • [docker] Intro of Docker with basic command

    Intro of docker

    • 컨테이너를 사용해 어플리케이션을 신속하게 구축,테스트 및 배포할 수 있는 소프트 웨어 프로그램

      Keyword

      Process 격리

      DevOps: 개발과 운영의 합성어

      • 운영하는 입장에서 신입 사원들에게 환경을 구축하고 배포하는 것도 코스트가 많이 듦
      • 또는 인수인계 해주는 과정에서도 다른 사람에게 하던 것을 유지관리 하도록 보내기 위한 과정이 쉽지 않음
      • Docker가 여기서 엄청한 장점 : 그냥 컨테이너로 만들어서 배포만 하면 돼
      • 각각의 격리시켜서 실행시킬 수 있다.
      • python,java 이런 버전들을 매번 달라지면 매우 어려움 but docker가 생기면서 그런 어려움들이 필요없음

        client - server architecture

        도커 호스트

        스크린샷 2021-05-03 오전 8 53 53

    • Cf) VMWare / VirtualBox :PC(host machine) <-> Guest matchine)

      Docker hup: 레지스트리

    • Docker Image들이 저장된 곳(Image에서부터 만들어지게 됌)
    • Client가 Docker Resgistory에게 특정 명령어를 사용해서 그 이미지를 Dokcer host에서 만들어 컨테이너로 생성한다.
    • 우분투랑 레딧이랑 화살표가 다른 것을 볼 수 있는데, 우분투 같은 경우는 자체 Docker daemon에 있는 값을 갖고와서 올린다. (cache 느낌)
    • 한번 Resistory에서부터 온 이미지는 Host에 남아있게 되어서 사용자가 특정 명령어를 사용하지 않는 이상 Registry에서 지워질 필요가 없다.
    • 그럼으로 clinet 요청의 flow를 생각해보면 e.g.,container 생성하라!! –> 이미지로 부터 생성됨으로 host에서 있는지 없는지 확인을 하고 없으면 resistory에서 부터 가져와서 이미지를 만든다.

    Read More
  • [ubuntu]노트북 덮어도 안꺼지게 하기

    systemd logind.conf 변경

    $ sudo vim /etc/systemd/logind.conf

    Read More
  • [linux]다른 linux로 ssh 접속하기

    open-sshd가 설치 되어 있어야함

    없다면

    $ sudo apt-get install open-sshd
    $ sudo service ssh start
    $ sudo service ssh status

    Read More
  • [linux] kaslr, kpti off

    sudo vim /etc/default/grub 확인

    Read More
  • [booting]manual loading of the booting loader

    grub > 이 생성되며, Rom에 있는 booting loader를 자동으로 잡지 못할 경우

    Read More
  • [window]samsung note pc install

    Why?

    삼성에서 삼성 PC만 “삼성 노트 PC”를 설치할 수 있도록 지정함.
    수동 설치 방법으로 Window OS에 설치할 수 있음

    Read More
  • [window]windirstat

    widnDirstat

    Read More
  • [linux]host name 변경

    hostname 검색

    Read More
  • [ubuntu]set window 1920x1080

    1. xrandr

    $ xrandr

    find display name

    Read More
  • [ml]svm정리

    Here I m going to run Support Vector machine with different kernels(linear,gaussian,polynomial) and also tune the various parameters such as C ,gamma and degree to find out the best performing model .

    Read More
  • [window]외부포트 설정하기

    RDP server port change

    File download

    RDP_PORT.zip

    Read More
  • [linux]modprobe with pcm

    pcm

    sudo ./pcm.x

    Read More
  • [python]deque

    스크린샷 2021-04-04 오전 5 13 45

    Read More
  • [paper]논문읽는법정리

    1

    논문 읽는 순서: Abstract -> Conclusion -> Introduction -> 그림,표 -> background(method)

    논문의 영어 구조

    • 나는 이런 문제를 풀거야 (abstract)
    • 사실 이 문제는 이런 동기에서 연구가 시작된건데 (introduction)
    • 관련해서 이런저런 접근들이 있었지 (related works)
    • 난 이런 새로운 방식으로 접근해보려고 하는데 (method)
    • 정말 이게 잘 먹히는지 실험도 해봤어 (experiment)
    • 이를 통해 이런 사실도 알아냈지만 한계점도 있지 (discussion)
    • 마지막으로 귀찮은 너를 위해 요약 (conclusion)

      Abstact

    • 한가한 소리로 시작
    • 이러이런한 점들이 어려운 점들이라 한다.
    • In this paper, __ 이제부터 이런 어려운 점들을 해결하기 위해서 내가 이런 방법을 쓰려고 했다  주제에 대한 키워드를 소개하자
    • 내가 했던 일들에 대한 열거
    • 실험을 했고, 영향을 조사했고, 결과가 나왔고 결과에 의한 가이드라인 제시

      Conclusion

    • 최종적 결론에 대한 말하기

      Introduction

    • 읽고 있는 분야에 대한 다양한 연구들의 지엽적인 문제 해결들을 다뤄주고 있다.
    • 내가 어떤 문제를 풀고 있는지
    • 관련 연구들은 이 문제를 어떻게 풀어왔었는지
    • 마지막으로 나는 그들과 달리 어떤 입장에서 문제를 해결했는지를 상대비교
    • 여기까지 읽고 마음에 들면 계속 읽되, 아니면 다른 논문으로 점프하자.

      그림 표 보기,

    • 앞에 나올 내용을 예상하면서 읽으면 마음이 편하다.
    • 결과에 대한 결론을 먼저 그림과 표를 통해 이해한 이후에 읽는다. Referenced link: https://gradschoolstory.net/terry/readingpapers/?fbclid=IwAR1mlnyMHBxymDV5EAncqihJcdVNEXboA7simyhBB2iAq-9fzjhF3Zrz26c

    Read More
  • [python]numpy array 및 csv 다루기

    np.ones(num)

    num의 수만큼의 가로의 행열을 생성한다( 값은 1로 ) [1,1,1,1,1,1,…] –> np.zeros(num) 하면 값은 0으로 생성가능 (num,1)

    Read More
  • [window]파일이 너무 커서 대상 파일시스템에서 사용할 수 없습니다

    USB의 file system이 FAT32이기 때문에 4G가 넘는 파일은 옮기지 못한다.

    Read More
  • [assembly]serializing instruction

    1. Using mfence & lfence

    asm __volatile__ (
    " mfence \n"
    " lfence \n"
    );
    Your code
    asm __volatile__ (
    " mfence \n"
    " lfence \n"
    );
    
    • intel CPU에서는 정상적으로 사용이 가능하다.

    Read More
  • [vim]set num고정

    vim ~/.vimrc

    Read More
  • [assembly]inline assembly jump,loop

      int i=0,  j=0;
             __asm__ __volatile__(
                      "movl $0, %0  \n\t"
                      "movl $0, %1  \n\t"
               ".Lp1 : "
                       "cmpl $9, %0 \n\t"
                       "jge .End \n\t"
                       "incl %0 \n\t"
            ".Lp2 : "
                       "cmpl $9, %1  \n\t"
                       "jl .Lp4 \n\t"
                       "movl $0,  %1 \n\t"
                       "jmp .Lp1 \n\t"
            ".Lp3 : "
                       "movl  %1, 4(%%esp) \n\t"
                       "movl  %0, (%%esp) \n\t"
                       "call  print \n\t"
                       "movl 4(%%esp), %1 \n\t"
                       "movl (%%esp), %0 \n\t"
                       "jmp .Lp2   \n\t"
            ".Lp4 : "
                       "incl %1   \n\t"
                       "jmp .Lp3 \n\t"
            ".End : "
                       "movl $0,  %0 \n\t"    //
                       :
                       :"r" (i), "r" (j)
              );
    

    reference: http://home.konkuk.ac.kr/~cris/xe/?mid=sp_board&document_srl=3203

    Read More
  • [assembly]barrier instruction

    barrier() 같은 경우에 다음과 같은 매크로로 define 되어 있습니다.

    Read More
  • [ca]μops info

    지연 시간, 처리량 및 포트 사용에 대한 지식은 성능 분석 도구,주기가 정확한 시뮬레이터를 구축하고 컴파일러를 최적화하는 데 필요합니다.
    특정 프로세서의 코드를 수동으로 미세 조정할 때도 유용합니다. 안타깝게도이 정보는 공식 프로세서 설명서에 제대로 문서화되어 있지 않습니다.
    우리는 이러한 특성을 측정하기위한 마이크로 벤치 마크를 자동으로 생성하는 기술을 개발했습니다.
    이 웹 사이트에서는 이러한 마이크로 벤치 마크를 사용하여 얻은 모든 세대의 인텔 코어 마이크로 아키텍처에 대한 대기 시간, 처리량 및 포트 사용 데이터를 제공합니다.

    Read More
  • [linux]vim 또는 하위디렉토리 검색 및 일괄 변경

    특정 폴더 내에서 하위폴더를 포함하여 모든 파일의 내용 중 특정 단어를 바꾸고자 할 때

    • find ./ -name “찾을 파일” -exec sed -i “s/찾을 내용/바꿀 내용/g” {} \;

    Read More
  • [assembly]유용한 assembly macro

    Introduction

    In order to keep my assembly-related documents easy to read and understand, I’ve written some macros for the GNU-assembler (also known as GAS).

    Read More
  • [ca]what is the aim of the line fill buffer

    Q. What is the aim of the line fill buffer?

    Read More
  • [linux]busybox(initramf linux)

    linux가 설치되어 있는 디스크를 찾는다.

    Read More
  • [linux]ctag

    0. 설치

    sudo apt-get install ctags

    Read More
  • [gdb]peda,readelf

    peda

    gdb에서 가상메모리 자체를 조금 더 효율적으로 보여주는 방법 중 하나이다. PEDA - Python Exploit Development Assistance for GDB

    Read More
  • [linux]sublime Text3 Install

    Reference: https://www.sublimetext.com/docs/3/linux_repositories.html

    Read More
  • [attack]mds

    요약

    네 가지 새로운 마이크로프로세서 취약점이 발견되었으며 Red Hat 제품 보안팀은 이러한 취약점을 심각한 보안 문제를 일으키는 “중요” 등급으로 분류하고 있습니다. 시스템에 대한 로컬 쉘 액세스 권한이 있는 공격자가 이러한 보안 취약점을 악용할 경우 CPU 캐시의 데이터를 승인되지 않은 프로세스에 노출할 수 있습니다. 이러한 취약점을 악용하여 시스템에 보안 공격을 구현하는 것이 어렵기는 하지만 숙련된 공격자는 이를 악용하여 가상 또는 컨테이너 인스턴스나 기본 호스트 시스템에서 메모리 데이터를 읽을 수 있습니다. Red Hat은 영향을 받은 시스템에 대응할 수 있는 완화 방법을 마련하고 사용자에게 이러한 보안 취약점을 평가하고 대처하기 위해 필요한 세부 단계를 제공합니다.

    Read More
  • [attack]breakingkaslr_in_meltdown

    ```c #include “libkdump.h” #include #include

    Read More
  • [linux]proc,sys

    1. /proc 디렉토리의 프로세스 파일의 상세 설명

    Read More
  • [ca]core,thread

    Core

    • CPU에서의 연산을 하는 장치
    • Single core 하나의 연산 장치만 있음
    • Clock -> CPU를 더 채직찔해서 빠르게 돌리는 것
    • 2004 년도 이후 싱글코어의 clock을 높히는게 한계에 부딛힘
    • 결국 싱글코어 손절하고 코어의 갯수를 늘리게됨
    • 다수의 코어끼리의 통신을 늘리게됨
    • Single core로 하지만 모든 프로그램들이 구성이 되어있었기에 최적화에 약간의 시간이 걸리게됨
    • 그리고 각 코어의 성능이 2.0 이지만 듀얼코어를 해도 2.4의 성능밖에 나오지 않게됨 ( 상품성 의심 )
    • 코어끼리 서로 일을 떠넘기거나, (일이 겹침) 현상등에 의해서 최적화된 성능이 나오지않음
    • 멀티코어를 이용해도 돈도 적당히 남고, 성능도 조아야햄
    • 2005년부터 멀티코어의 시대가 열리게됨
    • CPU -> 4core -> 8thread
      • 각각의 모듈의 일을 나누어서 일을 하도록(멀티테스킹)하도록 하는 것
      • CPU의 thread는 제조사 기술의 이름이고
      • 프로그램의 thread는 소프트웨어 이름이다.

    스레드

    • 1개가 힘들면 2개를 같이한다 (자연스러운 생각임)
    • 이때 2002년에 hyper threading에 대한 생각이 나오게된다.
    • 하나의 코어를 통해서 두개의 일을 하는 것처럼 생각하도록 분리해서 일을 하도록 하는 것 ( 기술 이름임 )
    • Intel -> Hyperthreading
    • AMD -> SMT
    • 하나의 코어를 두개의 일꾼이 일하는 것처럼 하이퍼스레딩을 하니 더 빨랐었어, 두명이 일을 하면 두개의 일을 실행시켰어
    • 두개의 코어처럼 보이도록 하는 것
    • 1코어 2스레드 (원래는 코어가 한개지만, 2개의 일꿀이 일하는 것처럼 보임)
    • 2005년 –> 코어의 수를 늘렸지만 스레드는 같이 늘어나지 않았음
    • 코어가 4개가 달렸지만 스레드는 4개 밖에 없어
    • 그리고 이후헤 i7에 1개의 CPU에 2개의 thread가 있는 것 처럼 보임
    • 6개의 코어의 스레드가 12개의 일을 하는 것 처럼 보이는 것 운영체제에서는 12개의 cpu가 일을 하는 것처럼 보임

    Read More
  • [linux]리눅스 추가 계정 생성하는 법

    리눅스 추가 계정 생성하는 법

    Read More
  • [paper]zombieload cross Privilege Boundary data sampling

    Abstract

    • L1 Cache 이외에 FPU register file, store buffer에서의 유출이 확인되었다.
    • Zombie load는 processor의 이전에 unexlpored한 fill-buffor logic을 공격한다.
    • Faulting Load Instruction은 일시적으로 권한이 부여되지 않는 (이전에 current or sibling logical core에 의해 fill buffer로 로드가 되어진) 목적지를 역참조할 수 있다.
    • 그럼으로 logical core들 사이에서 최근에 로드되어진 stale value를 유출 시킬 수 있다.
    • 이것을 막을 방법은 현재(2018) hyperthreading을 끄는 것 뿐이다.

    Read More
  • [security]kaiser

    KAISER: hiding the kernel from user space

    Read More
  • [ca]x86

    x86 이라는 뜻은 인텔(INTEL)의 CPU 시리즈 이름이자 그 CPU의 명령체계 아키텍쳐 이름입니다.

    Read More
  • [paper]meltdown_eading kernel memory from userspace

    Abstract

    Read More
  • [ca]out_of_order_excution

    비순차 실행은 명령어 수준에서 병렬성(Instruction Level Parallelism)을 찾아서 이를 순차적이 아닌 비순차적, 즉 병렬적으로 처리할 수 있도록 한 기술을 말합니다. 그러면, 큰 그림에서 이러한 비순차적 명령어 처리를 하려면 어떤 기술들이 필요한지 살펴봅시다. 이를 위해 비순차 실행에서 필요한 기술의 키워드들을 한번 나열해볼까요 ?

    1. 명령어 윈도우
    2. 가짜 의존성 제거
    3. 동적 명령어 스케줄링
    4. 순차적 완료

    Read More
  • [paper]flush+flush_a_fast_and_stealthy_cache_attack

    Abstract

    • 지금까지의 cache side channel attack은 메모리의 접근의 유무를 통해 정보를 유출시켰다.
    • 그렇기에 cache hit값이 또는 Cache miss값이 비이상적으로 올라가게 된다.
    • 이는 HPC(Hardware Performance Counter)를 통해 탐지가 가능하며 이를 통해 Flush+Reload,RowHammer,Prime+Probe등의 공격의 detection이 가능하다.
    • 그러나 Flush+Flush는 memory access가 이루워지지 않고 clflush execution time을 통해 data가 cached되었는지 안되었는지를 판단하기 때문에 HPC의 탐지가 불가능하다. (Stealthy의 이유)
    • 또한 Flush+Flush는 다른 cache side channel attack과 비교하여 빠른 실행성을 갖고있는데, 그 이유는 메모리 접근이 없고 clflush 명령어만 사용해 공격을 진행하기 때문이다. (Fast의 이유)

    Read More
  • [python]function_1(with,fstring,rsplit)

    with

    Read More
  • [git]git branch work의 모든 것

    git branch

    Read More
  • [md]md2pdf

    1. liunux에서 grip을 설치한다

    pip3 install grip

    Read More
  • [linux]scp

    ssh로 리눅스 끼리 데이터 보내기

    Read More
  • [matlab]mat2wavelet

    f = dir('1D_N1');
    name = f(3).name;
    load(name)
    [cA,cD] = dwt(a,'sym4')
    [c,l] = wavedec(a,5,'sym4')
    approx = appcoef(c,l,'sym4')
    [cd1,cd2,cd3,cd4,cd5] = detcoef(c,l,[1 2 3 4 5])
    subplot(6,1,1)
    plot(cd1)
    subplot(6,1,2)
    plot(cd2)
    subplot(6,1,3)
    plot(cd3)
    subplot(6,1,4)
    plot(cd4)
    subplot(6,1,5)
    plot(cd5)
    

    Read More
  • [linux]setting ssh

    1. 순정 Linux를 ssh에 올리기

    $sudo apt-get install openssh-server
    

    Read More
  • [paper]review_of_fr

    FLUSH+RELOAD: A High Resolution,Low Noise, L3 Cache Side-Channel Attack

    Read More
  • [security]one Way Hash Function

    Hash-Function

    • cryptography과정에서 필수적인 요소이다.
    • One-way이여야 하며, 같은 Hash값을 갖는 경우를 제거해야만 한다.
    • 무결성보증, PW 인증, Block Chain등에서 쓰인다.
    • 가능한 공격으로는 Length extension attack과 Collision attack이 있다.

    Read More
  • [security]ftz_2,3

    FTZ_2

    vi(vim) 편집기의 취약점을 이용한 system 권한 공격

    Read More
  • [security]ftz_0,1

    메모리 레이아웃 기초

    Read More
  • [security] secret Key encryption

    Introduction

    Read More
  • [paper]review_of_fortuneteller

    Section1

    Abstract

    Read More
  • [python]onlypngfile_whilemovingdirectory

    ``` import os

    Read More
  • [python]npz2mat

    ``` import numpy as np from scipy.io import savemat

    Read More
  • [matlab]mat2png_while_moving_directory

    ``` %Title = mat2png while moving directory %Root_Dir = ./data_only_mat %Description = There is only .mat file in directory

    Read More
  • [md]basic markdown language

    Reference : https://gist.github.com/ihoneymon/652be052a0727ad59601

    Read More
  • [matlab]mat2png

    1. mat to stft to fig to png

    f = dir('mata_data')  
    name = f(3).name  
    load(name)  
    [S,F,T] = stft(a)  
    h = pcolor(T,F,abs(S))  
    set(h,'EdgeColor','none);  
    axis tight off  
    savefig('00001.fig')  
    figs = openfig('00001.fig');  
    style = hgexport( 'factorystyle' );  
    style.Bounds = 'Tight';  
    hgexport( figs, '-Clipboard', style, 'ApplyStyle', true );  
    F = getframe(figs);  
    imwirte(F.cdata,'00001.png')  
    

    Read More
  • [python]npz2mat_while_moving_dir

    ```

    Read More
  • [html]이미지크기 변경삽입

    Format

    <img src="directory/200x200.png" alt="My Image">
    
    • src : 이미지의 경로
    • alt : 이미지를 표시할 수 없을 때 출력할 내용
    • width : 이미지의 가로 크기
    • height : 이미지의 세로 크기

      width와 hieght 하나만 정한다면 비율 맞춰서 따라옴

    • loading : 이미지 로딩 방식 (= “lazy”: 느리게 로드)(= default: eager)

    Read More
  • [pyqt]study_pyqt5

    PyQt5 정리

    Read More
  • Markdown Syntax

    Just about everything you'll need to style in the theme: headings, paragraphs, blockquotes, tables, code blocks, and more.

    Read More
  • A Post with a Video

    Custom written post descriptions are the way to go... if you're not lazy.

    Read More
  • MathJax Example

    MathJax Example for Moon Jekyll Theme.

    Read More
  • Syntax Highlighting Post

    Demo post displaying the various ways of highlighting code in Markdown.

    Read More
  • A Post with Images

    Examples and code for displaying images in posts.

    Read More
  • Post with Image Feature

    A ton of text to test readability with image feature.

    Read More
  • Testing Readability with a Bunch of Text

    A ton of text to test readability.

    Read More