분류 전체보기
[Forensic] 파이썬(Python)으로 파일 속 숨겨진 파일 찾기 (스테가노그래피)
심심해서 혼자 놀다가(2).. 저번에 심심해서 간단하게 스테가노그래피로 파일을 숨겼었다. 그러다 파일 시그니처를 이용해서 숨긴 파일들을 찾을 수 있을 것이라고 생각했다. HxD 에디터가 없다는 가정 하에, 파일에 대한 Hex Dump 값부터 파이썬으로 나타내야 겠다고 생각했다. 이 부분은 stackoverflow 코드를 많이 참고했고, 그 Hex Dump를 나타내는 코드를 단계별로 변형시켰다. 간단한 테스트를 위해 몇몇 확장자(PNG, JPEG, GIF, ZIP)의 시그니처를 이용했고, 차후 여러 시그니처가 추가되서 길어질 코드를 대비하여 시그니처 파일을 분리했다. file_signature = ['ff d8 ff e0', 'ff d8 ff e8', '89 50 4e 47 0d 0a 1a 0a', '50..
[Forensic] 명령 프롬프트(CMD)로 파일 숨기기 (스테가노그래피)
심심해서 혼자 놀다가,,, 윈도우에서 지원하는 파일숨김이 아니라 조금 더 다른사람이 모르는 공간에 내 자료를 숨기고 싶었다. 모든 파일은 결국에 바이너리로 이뤄진다. 또한, 각 파일들은 고유한 포맷을 가지고 있고 이 것을 파일 시그니처(파일 매직 넘버)라고 한다. 파일의 시작부분에 존재하는 파일 포맷도 있고, 시작부분과 끝부분 둘다 존재하는 파일도 있다. 시작 부분에 존재하는 시그니처는 헤더시그니처, 끝에 존재하는 시그니처는 푸터시그니처라고 한다. 어떠한 그림 파일의 뒷 부분에 내가 숨기고자 하는 파일을 담는다면 다른 사람들은 의심없이는 찾을 수 없을 것이다. 고양이 사진 파일뒤에 example이라는 폴더의 압축파일을 숨겨볼 것이다. 명령 프롬프트(CMD)를 실행하고 고양이 파일과 압축파일을 합친 '고양..
[Python] exe 파일 만들기 - pyinstaller
pyinstaller 설치 pip install pyinstaller 간단한 테스트를 해보자 import datetime now = datetime.datetime.now() nowDatetime = now.strftime("%Y-%m-%d %H:%M:%S") print(nowDatetime)#2020-11-23 02:35:20 cmd를 열어 test.py 파일의 경로로 이동 pyinstaller --onefile test.py ./dist 이동 cmd 창이 실행과 동시에 바로 종료된다면? import datetime import os now = datetime.datetime.now() nowDatetime = now.strftime("%Y-%m-%d %H:%M:%S") print(nowDatetime..
[HackCTF] 달라란 침공 풀이
HackCTF : https://ctf.j0n9hyun.xyz/ nc도 접속하면 아래 사진 처럼 나온다. 여러 수학 문제들을 풀으면 되는 것 같다. 2를 입력해보니 1을 입력했을 때와 다르게 곱하기, 나누기로 이루어져 있는 문제같다. 3은 더하기, 뺴기, 곱하기, 나누기 다 포함하는 것 같다. 문제가 총 몇개인지는 알 수 없지만 pwntools 모듈로 답을 쉽게 계산해서 입력할 수 있다. pwntools 설치 및 사용법 : she11.tistory.com/2 20번을 기준으로 여러번 해보니 1은 20문제, 2는 30문제, 3은 40문제였다. 각각 문제 수 만큼 반복시키면서 모든 문제를 해결하게 되면 플래그를 얻을 수 있다. from pwn import * p = remote('ctf.j0n9hyun.xy..
[Python] zip 파일 비밀번호 무차별 대입 공격(brute-force attack)
ZIP 파일 비밀번호 무차별 대입공격 오래된 zip 파일 중에 비밀번호를 분실한 파일이 있었다. 대부분 내가 사용하는 비밀번호의 특징을 비슷하기 때문에 만들게 됐다. 먼저, 비밀번호를 크랙할 파일의 경로를 입력해준다. 2아는 자리는 입력으로 채우고, 모르는 자리는 [spacebar]를 통해서 자리를 채워준다. 그 다음 chars에 무차별로 대입 될 문자들을 한글자씩 적어준다. 이때 비밀번호 크랙 시간을 줄이기 위해서는 가장 확률이 높은 문자를 앞에 나열하는 것이 중요하다. 실행 후 비밀번호 길이와 입력될 문자 개수에 따라 모든 경우의 수의 대입을 시작된다. * 어디까지 크랙되고 있는지 실시간으로 확인하고 싶다면 unzipfile 함수의 print 주석을 풀어주자 #-*- coding: utf-8 -*- ..
[CSS] 반응형 웹 높이 설정하는 방법 (width, height)
width .wrapper{ display: flex; } .left{ height: 100px; float: left; flex-grow: 1; } .right{ height: 100px; float: right; width: 300px; } - right의 300px을 제외한 나머지 공간을 left로 채운다. (height 100px은 임시로 부여한 것) height .header{ height:40px; } .content{ height:clac(100vh - 100px); /* (가로 vw, 세로 vh) */ } .footer{ height:60px; } - header와 footer의 px를 제외한 나머지 높이를 content로 채운다.
[CSS] <li> 태그에서 float속성 right일 때 행 나누는 방법
clear : both 사용 .left{ text-align : left; clear:both;} .right{ text-align : right ; margin-right : 20px; float:right ; clear:both;} clear : both 미사용 .left{ text-align : left;} .right{ text-align : right ; margin-right : 20px; float:right ;} * float - 박스를 좌측이나 우측으로 붙이고 아래 내용이 그 주변을 흐르게 하는 속성 - float한 박스에 width값을 주어야 모든 구형 브라우저까지도 동일한 결과로 표현 * clear : both; - float한 박스들의 바로 아래 박스에게 주변을 흐르지 않고 원래대로..