공부/JUN STUDY 29

L* Algorithm(L star Algorithm) 이란? - 개념/예제/이해하기

L* Algorithm(L start Algorithm) 이란?학생 - 선생학생은 선생님에게 두가지 종류의 질문을 질문할 수 있음Membership Query : word w 가 언어 L 에 속하는지 아닌지 선생님은 yes or no를 답함Equivalence Query : DFA H가 L을 허용하는지 아닌지 여부. 허용하면 True 아니면 반례를 리턴함 x ∈ L\\L(H) ∪ L(H)\\L → L(H)는 무슨 뜻?언어 L을 성공적으로 학습하려면 유한한 쿼리 내에서 DFA를 잘 guess 해야함.Language 라 하는 것은예제: 로그인 프로토콜 추론L* 알고리즘을 사용하여 네트워크 프로토콜을 추론하는 예제를 살펴보자.아래는 학습자가 **네트워크 프로토콜의 상태와 동작(==Language)**을 추론하..

공부/JUN STUDY 2024.10.30

fsb 이젠 좀 이해하기 (어떻게 arbitrary write가 되는가?)

fsb의 무시무시한 점은1. 임의주소에2. 원하는 값을쓸 수 있다는 것이다.  임의 주소에 쓸 수 있는 이유는 %187c%11$hhn 덕분이고원하는 값을 쓸 수 있는 이유는 %187c%11$hhn 덕분이다. 여기서 또 레전드인게 임의주소인 이유는 %11$인자 위치에 있는'그 주소에' 값을 쓸 수 있기 때문이다. (&의 개념 -> printf("%s", buf) 처럼. %s는 buf(char *) 를 참조한다.) 따라서 %11$ 위치에 원하는 주소를 입력하고 %(원하는 값)c 이용해서 원하는 값을 만들면 된다.

공부/JUN STUDY 2024.09.27

VMware에서 vagrant up 할때 오류해결 & 실행법

사용한 커맨드와 문제상황vagrant box add junbox jun.boxvagrant init junboxvagrant upvagrant ssh 에러메세지vagrant up Bringing machine 'default' up with 'virtualbox' provider...==> default: Clearing any previously set forwarded ports...==> default: Clearing any previously set network interfaces...==> default: Preparing network interfaces based on configuration... default: Adapter 1: nat==> default: Forwardi..

공부/JUN STUDY 2024.09.26

ROP와 튜링완전성

튜링 완전성(Turing Completeness)이란 컴퓨터 시스템이나 프로그래밍 언어가 **튜링 기계(Turing Machine)**와 동일한 계산 능력을 가지고 있음을 의미합니다. 즉, 튜링 완전성을 갖춘 시스템은 적절한 알고리즘과 메모리 자원이 주어진다면 이론적으로 어떠한 계산 문제도 해결할 수 있다는 것을 뜻합니다. 튜링 완전성의 개념은 **앨런 튜링(Alan Turing)**의 이론적 모델에서 유래한 것으로, 모든 계산 가능한 함수나 프로그램을 처리할 수 있는 가상의 기계를 기반으로 하고 있습니다. 튜링 기계는 무한한 테이프(메모리)와 이를 읽고 쓸 수 있는 헤드를 가지고 있고, 정해진 규칙에 따라 동작하는 모델로, 그 계산 능력의 기준을 설정한 것입니다.예시로 설명하면:프로그래밍 언어: 튜링 ..

공부/JUN STUDY 2024.09.23

Vim을 이용한 Line Breaks (자동 줄바꿈 하기) set tw 이용 gqap

특정 보고서 포맷에 맞게끔 원하는 text width에 맞게 긴 문장의 글을자동으로 줄바꿈하는것이 필요할때가 있다. 자동줄바꿈(Line Breaks) 전The rapid advancement of technology in recent years has led to significant changes in various industries, including healthcare, finance, education, and communication, where innovations such as artificial intelligence, machine learning, blockchain, and the Internet of Things are reshaping the way we live, work, a..

공부/JUN STUDY 2024.09.03

Mysql Access denied Error 해결법 Enter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost'

인증 플러그인 변경:MySQL에 sudo로 접속:sudo mysql플러그인 변경: MySQL 프롬프트에서 다음 명령어를 실행하여 root 사용자의 인증 방식을 변경합니다.여기서 your_new_password는 새로운 비밀번호로 설정합니다.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';변경 사항 적용:FLUSH PRIVILEGES;MySQL에서 로그아웃:EXIT;다시 로그인 시도:mysql -u root -p

공부/JUN STUDY 2024.08.22

AFL++ qemu mode 이해하기 (High-performance binary-only instrumentation for afl-fuzz)

AFL qemu mode를 이해하고 사용하기위해 아래링크의 글을 읽어본다. AFL++의 qemu mode를 사용하면 Snapshot mode, Deferred initialization, Persistent mode를 사용할 수 있다.참고로 필자는 바이너리의 실행시점에서 initialize 과정을 bypass해서 퍼징의 성능을 높이고 싶어, Snapshot mode를 사용하는 방법을 익히고싶어 이 글을 읽게되었다. https://github.com/AFLplusplus/AFLplusplus/blob/stable/qemu_mode/README.md AFLplusplus/qemu_mode/README.md at stable · AFLplusplus/AFLplusplusThe fuzzer afl++ is af..

공부/JUN STUDY 2024.08.08

AFL++ custom mutator 이해하기 (1) - file input으로 넣기

0. 들어가며https://aflplus.plus/docs/custom_mutators/ Custom Mutators | AFLplusplusThe AFLplusplus websiteaflplus.plus AFL++에는 custom mutator 라는 기능이 있다. 이를 이용해 grammer based input을 생성해내도록하거나 file input이 아닌 다른 방법으로 input을 전달할 수 있도록 고칠 수 있다고 하는데, 어떻게 하면 그렇게 사용할 수 있을지 사용해보았다. AFL++는 기본적으로 파일을 입력으로 받는 프로그램에 대해서만 input을 전달하는 기능을 제공하기때문에, 이를 잘 이용하면 grammer based input을 udp와 같은 다양한 채널로 전송할 수 있을거라는 가정으로 분석해..

공부/JUN STUDY 2024.07.24

Fuzzotron 을 이용한 NASA cFS(Core Flight System) 퍼징하기

1. 소개Fuzzotron이라는 네트워크 퍼저를 이용해 UDP 패킷을 cFS 프로그램으로 전송하여 퍼징을 진행했다.cFS를 설치하는 것은 아래 링크를 참고하면 좋다.https://juntheworld.tistory.com/190 cFS 설치 및 실행하는방법Part1 - Setup아래 깃허브 링크에서 cFS를 git clone 해준다.https://github.com/nasa/cFS GitHub - nasa/cFS: The Core Flight System (cFS)The Core Flight System (cFS). Contribute to nasa/cFS development by creating an account on GitHub.github.comgijuntheworld.tistory.com 참고..

공부/JUN STUDY 2024.05.12

ubutnu에서 firebase 세팅법 (간단한 백엔드 웹서버 만들기)

Firebase는 NPM(Node Package Manager)을 사용하는 JavaScript 기반의 프레임워크이다. Firebase의 다양한 서비스를 사용하려면 Firebase SDK를 프로젝트에 추가해야한다. Firebase SDK는 웹 프로젝트를 위한 JavaScript 라이브러리로서, 이를 통해 Firebase의 다양한 서비스에 액세스할 수 있다. 특히나 DB, 동적 웹배포에서 매우 강력한 기능을 가지고있다. 본 포스팅에서는 firebase를 이용해 간단한 서비스를 배포하는 방법을 정리하고자 한다. firebase 설치 firebase는 npm 기반의 프레임워크이기때문에 npm이 설치 되어있지않다면 먼저 설치해주자. sudo apt install npm sudo npm install firebas..

공부/JUN STUDY 2024.01.05
728x90