전체 글 84

데이터 통신 총정리

convergence란 distinct telephony + information technologies convergence layers applications : end user에게 보여지는 구간enterprise services : applications을 support하기 위해 서비스해주는 구간infrastructure : 기업에서 쓸 수 있는 communication linksconvergence benefits Efficiency(효율) : 리소스를 잘 사용하게 해줌Effectiveness(효과) : 사용자에게 flexibility 제공Transformation : 글로벌 수준의 서비스 제공Transmission Lines 3가지 Capacity, Reliability, Cost LAN작은 영..

Data Transmission

성공적인 Transmission을 하기 위해선 두 가지 조건이 필요하다.1. 전송되는 신호의 quality2. 전송 매체의 특징 Transmission Terminology 데이터 전송은 전송기와 수신기 사이에서 전송 매체를 통해 발생한다.Guided media : 물리적인 경로를 따라 신호가 전송(꼬인 선, 광섬유 등)Unguided midia : 물리적인 경로 없이 전파된다. (물, 공기)communication은 전자기파의 형태로 전송된다.   wavelength(파장, ∧) : 한 사이클이 공간에서 차지하는 거리신호의 파장은 주파수와 매체의 속도에 의해 결정되며, 이는 안테나 길이 및 배치와 같은 물리적 특성에 영향을 미침유선, 무선 매체 둘다 주파수에 따라 신호의 도달 범위와 성능이 달라질 수 ..

Protocol Architecture, TCP/IP, and Internet-Based Applications

Protocol Architecture가 필요한 이유아래 4가지는 데이터전송을 하면서 무조건 해야 하는 일들이다.source는 무조건 통신 경로를 활성화시키거나 목적지의 네트워크를 알려주어야 한다.source는 무조건 목적지에서 데이터를 수신할 준비가 됐는지 확인해야 한다.소스에 파일 전송 애플리케이션은 목적지의 관리 프로그램이 파일을 받고 저장할 수 있는지 확인해야 한다.두 시스템 간의 포멧이 다를 경우 포맷 변환 기능을 수행해야 한다.위의 4자기는 통신 과정에서 필수적인 작업인데, 이 작업이 복잡해질수록 우리는 이것을 처리하기 위한 구조화된 프로토콜이 필요하다. Protocol Architecture의 기능Protocol Architecture는 로직을 subtask모듈로 분할해서 각각을 별도로 구현..

[시스템해킹]shell_basic 문제 풀이

Shell_basic-문제-원격 서버에 /home/shell_basic/flag_name_is_loooooong경로에 flag파일이 있다. 플래그 값을 구해보자.단, main 함수가 아닌 다른 함수들은 execve, execveat 시스템콜 사용을 못하도록 하며 풀이와 상관없다.우선 서버에 접속해 보자.서버에 접속해 보니 shellcode : 라고 쉘 코드를 입력하라는 텍스트가 뜬다. 그럼 원하는 경로에 있는 파일을 출력하는 쉘코드를 짠 다음 저곳에 보내면 flag가 출력될 거 같다. 쉘코드는 pwntools를 활용해서 만들면 쉽게 풀린다.(orw코드로 풀려했으나 어려워서 패스...)우선 원하는 flag가 원격에 있는 서버에 있으니 remote함수로 접속하는 코드를 만들자.그리고 그 서버가 64비트 기반..

wargame/dreamhack 2024.09.26

Data Mining Processing and Visualization

Data Mining ProcessingData Mining Processing은 9가지의 과정을 거친다.Define/understanding purpose여기서 키포인트는 프로젝트의 목적을 정의하고 이해하는 것이다. 또한 분석한 결과가 누구에게 어떤 영향을 받는지 식별해야 한다.Obtain data분석에 사용할 데이터셋을 확보해야 한다. 여기서 샘플데이터는 대표성을 띠어야한다. 그래서 나중에 다른 데이터에도 일반화할 수 있기 때문이다. Explore, clean, preprocess data데이터가 reasonable(합리적)이고 기대 범위내에 있는지 확인해야 한다. Reduce the data(필요시)각 변수가 무엇을 의미하는지 이해하고 불필요한 변수를 제거하거나 변환한다.Specify task첫번째..

Complexity Theory, But first, Some Thoughts on Sets

Complexity Theory와 Number Theory는 현대 암호학에서 가장 커다란 축이다.이번에는 Complexity Theory를 정리해보자. Complexity Theory(복잡도(계산) 이론)여기서 Complexity는 문제의 난이도를 의미한다. 여기서 난이도는 문제를 푸는데 걸리는 시간이다. Complexity에서 가장 유명한 문제Halting ProblemM에 x를 넣은 프로그램을 돌려봤을때 멈출까? 에 관한 문제이다.이 프로그램이 끝났다. 라는건 확인이 가능하지만 언제 끝날지 혹은 무한히 실행되는지 예측할 수 있는가?에 관한 문제이다. 결론은 Halting은 풀리지 않는다. Berry Paradox 증명만약 Halting이 풀린다면, Berry Paradox는 실제가 된다!20글자로 표..

Paradoxes, and what they have to do with Cryptography

암호의 기본적인 문제앨리스가 밥한테 정보를 보낸다고 해보자. 앨리스는 밥에게 정보를 보내려는데 이브가 이것을 가로채지 못하게 하려는 상황이다.이 상황에서 중요한 것은 앨리스가 밥에게 정보를 보낼 때 정보의 내용을 이브가 언제 가로챌치 알 수가 없고 가져갔는지 아닌지도 알 방법이 없다는 것이다.  즉, 보낼 정보의 내용이나 통신 당사자들이 명확하지 않더라도 안전하게 통신을 할 수 있는 시스템을 만들어야 한다는 것이 문제임을 알 수 있다.  쉬어 보이는 문제 포로의 딜레마암호학에서의 포로의 딜레마는 정보를 알지 못하지만 포로는 살기 위해서 상대방에게 정보를 알려주고 싶어 하는 상황이다. 즉, 정보를 모르면서도 그 정보를 보호해야 한다는 점이 모순(paradox)이다. 이것은 마치 중간에 공격자가 있을 수 있..

Cryptography, History Overview

암호학의 기본 문제앨리스(Alice)와 밥(Bob)은 서로 비밀 메시지를 주고받고 싶어 하지만, 이브(Eve)라는 도청자가 이를 엿들을 수 있다는 문제가 있다. 암호학은 이브가 내용을 알아채지 못하게 하는 방법을 연구하는 학문이다. 암호의 역사순으로 정리  고전적인 접근 방식매우 오래된 방법들팔 묶기(상대방이 도망가지 못하게 묶는것, 정보를 물리적으로 보호한다는 방법을 비유한것)머리 깎기(팔 묶기와 마찬가지로 포로가 되었을 때 머리를 깎는 행동을 치욕이나 처벌의 상징으로 표현했는데 이것을 정보를 빼앗는 행위와 연결시켜 비유한것)물통과 막대기, 막대기에 감기, 카이사르 암호(Caesar Cipher).이러한 방법들은 상식 수준에서 쉽게 깨질 수 있지만 "KEY" 개념이 존재한다. 근대 및 제2차 세계 대전..

프리다를 이용한 후킹2

이번에도 프리다를 이용해서 후킹을 해볼 것이다.이전 글에서는 연결 실행방식이었지만 이번에는 생성 실행 방식이다. 다만 기존에 있던 DIVA앱 말고 learnFrida 앱을 사용할 계획이다.https://github.com/azurda/com.learn.frida/releases Releases · azurda/com.learn.fridaApp for learnfrida.info. Contribute to azurda/com.learn.frida development by creating an account on GitHub.github.com이 앱은 프리다를 활용하는 실습 앱이다.이번 실습에서는 첫 번째 버튼을 눌렀을떄 나오는 것에 대해서 후킹을 해볼 것이다. not correct를 correct로 바꿔..

프리다를 이용한 후킹

프리다는 동적 바이너리 조사 도구로 앱의 프로세스에 사용자가 작성한 자바스크립트 코드나 라이브러리를 삽입할 수 있게 해 준다. 프리다를 사용하기 위해서는 루팅된 단말과 진단 PC에 모두 설치가 되어야 한다.PC에 프리다 설치터미널에서 설치해주면 된다.프리다 설치프리다 tools 설치이러면 PC에 프리다 설치는 끝이다. 이제 단말에도 설치를 해보자.단말에 프리다 서버 설치루팅된 단말(필자는 Nox)에 프리다 서버를 실행해야 한다. 우선 PC에 설치한 프리다 버전과 동일한 버전의 서버를 다운받아야 한다.단말의 버전은 이렇게 확인할 수 있다.https://github.com/frida/frida/releases Releases · frida/fridaClone this repo to build Frida. C..