전체 글
[HTB/Crypto] Weak RSA
flag.enc를 decrypt하고 flag를 획득하는 문제 1. Weak_RSA.zip 파일 정적분석 ┌──(root💀kali)-[/backup/workspace/htb/crypto] └─# file Weak_RSA.zip 80 ⨯ Weak_RSA.zip: Zip archive data, at least v2.0 to extract, compression method=deflate ┌──(root💀kali)-[/backup/workspace/htb/crypto] └─# unzip Weak_RSA.zip Archive: Weak_RSA.zip [Weak_RSA.zip] flag.enc password: inflating: flag.enc inflating: key.pub ┌──(root💀kali)-[/b..
Scalable Network Programming
네트워크 프로그래밍에서 Scalable 하게 만드는 것은 중요한 주제이다. 네트워크 서버는 동시에 여러 클라이언트 요청을 처리할 수 있어야 하며, 이는 서버의 확장성과 성능에 영향을 준다. 아래 코드는 간단한 서버-클라이언트 구조의 프로그램이다. 1. TCP 소켓을 사용하여 HTTP GET 요청을 보내는 간단한 클라이언트 코드 Error handling 없이 구현 HTTP 헤더를 포함하여 최대 4k까지만 가져올 수 있음. char buf[4096]; int len; int fd=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP); struct sockaddr_in si; si.sin_family=PF_INET; inet_aton("127.0.0.1",&si.sin_addr); si.s..
분산환경에서 Hazelcast 캐시 클러스터링
In-Memory Data GridIn-Memory Data Grid (IMDG)란 대용량 데이터를 메모리에 저장하고 처리하기 위한 분산 캐싱 소프트웨어 기술이다.IMDG 는 다수의 물리 서버를 연결하여 클러스터를 형성하고, 이 클러스터의 메모리를 활용하여 대규모 데이터를 저장하고 캐싱한다. IMDG는 다음과 같은 특징을 갖는다.대용량 메모리 풀: IMDG를 사용하면 여러 대의 서버를 연결하여 대용량의 메모리 풀을 형성할 수 있다. 이러한 메모리 풀은 데이터의 빠른 접근과 처리를 가능케 한다.데이터 적재 및 캐싱: IMDG는 대용량 데이터를 메모리에 적재하거나 캐싱하여 빠른 응답 시간을 제공한다. 이를 통해 데이터에 대한 실시간 접근 및 처리가 가능해진다.IMDB 기능: IMDG는 In-Memory Da..
[Jenkins] 젠킨스 설치 & 빌드 설정 세팅
🌈 젠킨스란젠킨스는 소프트웨어 개발 시 지속적 통합(conticuous integration) 서비스를 제공하는 툴이다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 Git등의 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다. 🚀 젠킨스 설치jenkins를 구동할 포트를 설정한다.기본값은 8080이지만 사용중일 확률이 높아서 80으로 해줬다.jdk가 설치된 java home 경로 설정설치가 끝나면 localhost:80에 접속할 수 있게된다. Set up아래 경로로 들어가 initialAdminPassword를 메모장으로 열고 입력된 비밀번호를 복사한다.C:\ProgramData\Jenkins\.jenkins\secret..
[Python/ MQTT] MQTT – Pub/Sub 모델 구현
MQTT란 MQTT는 M2M, IOT를 위한 프로토콜로서 최소한의 전력과 패킷량으로 통신하는 프로토콜MQTT는 HTTP, TCP 등의 통신과 같이 클라이언트-서버 구조로 이루어진 것이 아닌 Broker, Publisher, Subscriber 구조로 이루어져있다. MQTT 특징ClientMQTT의 broker에 연결된 모든 것을 말한다.BrokerBroker는 모든 메세지를 수신, 필터링, 메세지 구독하는 사람을 결정, 클라이언트에게 메세지를 보내는 역할Subscribetopic을 구독하여 topic으로 publish된 메세지를 받는다.TopicMQTT의 topic은 슬래시(/)를 분리 문자로 사용하여 폴더 및 파일과 유사한 계층 구조를 가진다. ex) /api/update/승주/비밀번호QoS(Quali..
[Django] Jump to Django (02/admin)
Super User 장고 admin을 사용하기 위해서는 장고 admin 화면에 접속할 수 있는 슈퍼유저를 먼저 생성해야 한다. ~/baby-django$ python manage.py createsuperuser 사용자 이름 (leave blank to use 'runner'): admin 이메일 주소: admin@mysite.com Password: Password (again): Superuser created successfully. 그런 다음 /admin에서 생성한 id pw로 로그인하면 관리자 화면에 접근할 수 있게 된다. Model 관리 from django.contrib import admin from .models import Question admin.site.register(Questi..
[Django] Jump to Django (01/앱 생성+DB 생성)
App 생성 앞에서 만든 mysite 프로젝트에서 기능을 추가하기 위해서는 앱을 생성해야한다. 게시판 기능을 담당할 앱을 생성하자. django-admin의 startapp 명령어로 app을 생성 할 수 있다. django-admin startapp 명령을 실행하면 pybo 디렉토리가 생성된걸 확인할 수 있다. 하지만 /pybo 페이지를 요청했을 때는 404 에러가 발생한다. 오류의 내용은 config.urls에 매핑이 없다고 적혀 있다. Hello Pybo config/urls.py 파일을 다음과 같이 수정하자. from django.contrib import admin from django.urls import path from pybo import views urlpatterns = [ path('..
[Django] Jump to Django (00/프로젝트 생성)
Django는 Python의 오픈 소스 웹 프레임워크이자 풀 스택 프레임워크이다. 일반적으로 파이썬을 웹 서비스에 쓴다고 하면 Django 또는 Flask를 쓴다고 생각하면 된다. 둘의 차이는 풀 스택 프레임워크(Django)냐 아니냐 정도. 🚀Django 개발환경 세팅 mkdir venvs # 가상환경 루트 디렉토리 만들기 cd venvs python -m venv mysite # 파이썬 가상환경 만들기 cd mysite/Scripts activate # 가상환경 진입 pip install django==4.0.3 # 장고 설치 python -m pip install --upgrade pip # 에러 날 시 pip upgrade Django project 생성하기 cd / mkdir projects c..
[Python] 🐍python 환경세팅
1. Pycharm 설치 2. Anaconda 설치 아나콘다는 통합패키지로 파이썬을 포함해서 많은 모듈을 포함하고 있다. Jupyter Nodebook, Spyder, IPython같은 개발 환경과 pandas, NumPy 같은 파이썬 라이브러리가 함께 설치된다. 아나콘다의 특징은 다음과 같다. 7500개 이상의 파이썬 용 패키지를 다운로드할 수 있음 conda 환경에서 라이브러리, 디펜던시 관리 scikit-learn, TensorFlow, Theano로 머신러닝, 딥러닝 개발 Dask, Numpy, pandas, Numba로 데이터 분석 Matplotlib, Bokeh, Datashader, Holoviews로 시각화 아나콘다는 다음과 같이 표현할 수 있다. anaconda = python + con..