1. 머리말 시프트 레지스터(74HC595)와 7-segemts 모듈을 사용하여 시계를 만드는 과정과 회로, 코드를 소개한다. 2. 사전 연구 시프트 레지스터(shift register)는 데이터를 저장하거나 데이터를 옆으로 이동할 때 사용하는 회로이다. 디지털 시스템에서 시프트 레지스터와 같이 데이터 및 정보를 저장하고 이동하는 기능을 발전시켜 메모리라는 부품이 개발되고 프로세서와 CPU 등이 개발된다. 시프트 레지스터 중 실습에 사용한 74HC595에 대해 데이터 시트를 참고하여 핀번호와 기능에 대해서 알아본다. 1. 74HC595 그림 1은 74HC595의 핀 맵과 로직 다이어그램이다. 시프트 레지스터는 단방향 또는 양방향으로 매 클록마다 한 단씩 이진 정보를 이동시킬 수 있는 레지스터이다. 일련의..
라우팅 프로토콜 구성 1) 라우팅 테이블 패킷을 목적지로 라우팅할 때 참조하는 테이블 목적지 주소, Output I/F, Metric 값 2) Message 라우터 간 라우팅을 위해 교환하는 메시지 이웃 도달 메시지, 라우팅 정보 3) Metric 라우팅 테이블 생성 및 업데이트 시 최적의 경로를 결정 경로길이, 홉(Hop) 수, 대역폭, 비용, 신뢰성 라우팅 프로토콜 중 동적 라우팅 - IGP - Link State Vector - OSPF 프로토콜에 대해 알아보고, 실습해본다. OSPF(Open Shortest Path First) 라우터가 목적지 경로를 SPF(Shortest Path First) 알고리즘을 통해 모든 라우팅 테이블에 기록 “소요비용(Cost)”이 가장 작은 경로를 최적의 경로를 선..
IPv4 vs IPv6 등장배경 •현재 사용중인 인터넷 프로토콜인 IPv4(Internet Protocol Version 4)는 광범위한 네트워크의 사용을 예측하지 못하던 시대에 등장 •IPv4 – 이론 상 42억여개의 인터넷 주소 지원 –But, 부족하다. 비교 IPv4 IPv6 주소 체계 32bit 128bit 주소 개수 2^32(약 42억 개) 2^128(약 3.4x10^38 개) 패킷 헤더 가변적 고정적(40 옥텟) 주소 할당 방법 A, B, C, D(멀티캐스트) 클래스 CIDR CIDR 기반 계층적 할당 주소 유형 유니캐스트(unicast) 멀티캐스트(multicast) 브로드캐스트(broadcast) 유니캐스트(link-local address, site-local address, global..
Request Smuggling 불특정 다수의 사용자로부터 받은 HTTP 요청을 프록시와 웹서버가 처리하는 과정에서 사용자가 요청한 HTTP 패킷을 조작할 수 있는 공격이다. 웹서버는 클라이언트의 요청을 직접 처리하는 것이 아니라 메인서버의 과부하를 방지하기 위해 LB나 리버시 프록시 등 중간에서 요청을 처리하여 전달한다. 이 과정에서 HTTP/1.1에서는 여러개의 요청을 연속적으로 전달할 수 있도록 지원하는데 패킷을 받아 처리하는 과정에서 Content-Length, Transfer-Encoding 에 대한 처리를 서로 다르게 하여 패킷의 시작과 끝부분을 다르게 해석하는 문제가 발생한다. CL.CL 여러 Content-Length 헤더가 존재하거나 유효하지 않은 값일 경우 400 상태 코드로 응답해야한..
안드로이드 설치 파일(APK) 역공학 환경 구성 gomguk.tistory.com/16에서 작성한 앱을 역공학으로 분석해보고 동시에 apk 구조에 대한 학습 다운로드 및 설치 APK Tool(apk → smali) https://ibotpeaches.github.io/Apktool/ java 1.8 버전 이상 필요 java -version apktool -v 설치확인 Dex2Jar(dex → jar) https://sourceforge.net/projects/dex2jar/ brew로도 설치 가능 brew install dex2jar 디컴파일 d2j-dex2jar [apk파일명] JD-GUI (jar → java) http://jd.benow.ca/ 위 방법으로 분석이 안될 때 바이트 코드 뷰어나 Jad..
gomguk.tistory.com/15 에서 작성한 앱에서 기능을 추가한다. 목적 : URI-3 에서 만든 앱에서 JavaScript Interface 등록한 함수를 html에서 호출하도록 변경한다. 패키지 변경 기존에 사용한 flutter 내장 Webview는 JS를 안정적으로 지원하지 않는다고 한다. 그래서 공식 패키지 중 "flutter_inappwebview" https://pub.dev/documentation/flutter_inappwebview/latest/index.html 를 이용한다. 설치 pubspec.yml 에서 flutter_inappwebview: 4.0.0 import 'package:flutter_inappwebview/flutter_inappwebview.dart'; And..
목적 Universal Link 를 통해 인자를 받는 webview를 사용하는 앱 개발 개발환경 개발언어 : Flutter, Kotlin 타겟 디바이스 : Android Pixel 3a API 29(Android 10.0) Emulator ' + Additional 개발언어 : Flutter, Swift 타겟 디바이스 : iPhone SE2 (iOS 13.7) Emulator 개요 웹뷰만 실행하는 앱 딥링크를 통해 인자를 받는 앱 2의 인자를 받아 1의 웹뷰를 실행하는 앱 1. 웹뷰만 실행하는 앱 flutter_webview: ^0.3.19+9 pubspec.yaml에 추가 dependencies: webview_flutter: ^0.3.19+9 flutter: sdk: flutter # The foll..
디지털 포렌식 법적 목적으로 사용을 위한 디지털 증거 분석과 관련된 컴퓨터 과학 및 법적(수사) 절차의 적용 해당 증거물을 법적인 목적으로 사용할 수 있도록, 반드시 수사 관련 법 절차를 고려하여 컴퓨터 과학 기술이 활용되어야만 함. 수사 또는 조사, 대응 절차에 컴퓨터 과학 기술이 적용되더라도 관련 법 절차를 고려하지 않으면, '디지털 포렌식'이라고 할 수 없음. 디지털 포렌식 일반원칙 정당성의 원칙 적법절차의 원칙 디지털 포렌식으로 획득된 모든 증거는 적법한 절차를 거쳐서 정당하게 획득한 것이어야 함 디지털포렌식 절차 중에서 자료 수집(Data Collection)이 가장 중요한 단계 무결성의 원칙 증거가 최초 수집된 이후 법정에 제출될 때까지 변경이나 훼손 없이 보호되어야 한다는 원칙 내용을 위변조..
Nox Emulator에 frida-server를 설치한다. 실습 환경은 OS X Catalina 환경이지만 Windows에 설치했을 때에도 이상 없이 설치됨을 확인했다. 현재(20.11.14)기준으로 프리다 최신 버전은 14 버전이다. 공식 홈페이지에서 받을 수 있다. NOX 설치 ROOT 켜기 ADB 쉘 연결 위한 BusyBox 설치 파일 관리자 실행으로 루트 및 시스템 경로 접근 가능한지 확인 실습 환경에 ADB 설치 Windows : https://4urdev.tistory.com/77 Android SDK Platform Tools 페이지에서 OS에 맞는 ADB를 다운로드 다운받은 경로를 환경변수(시스템변수 - Path)에 등록 쉘에서 adb명령어로 설치 확인 [사진4] OSX에서는 adb co..
리눅스에서 Zombie 프로세스를 검사하는 방법 좀비 프로세스는 부모 프로세스가 자식 프로세스를 fork()함수로 생성한 상태에서 부모 프로세스는 자식 프로세스의 종료를 대기(Wait())하고 있어야 하는데, 부모 프로세스가 자식 프로세스보다 먼저 종료되어 자식 프로세스는 메모리 영역을 점유하고 있는 상태로 있는 프로세스 top -b -n 1|grep zombie ps -ef|grep defunct 다음은 공격자가 어떤 공격을 수행한 것인가? hping 192.168.85.255 —icmp —flood -a 192.168.85.128 풀이 네트워크 전체에 icmp Echo Request 패킷을 보내고 있다. 마지막 IP 주소가 255이므로 ICMP프로토콜을 Broadcast한다. 정답 : Smurf 다음..