전체 글

PS + hacking
· PS/BOJ
https://www.acmicpc.net/problem/10986 풀면서 그렇게 어려운 문제는 아니었으나, 오랜만에 보니 잘 기억이 안나서 정리 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하라는 문제인데,보자마자 배열에 나머지만을 저장해도 되겠다는 생각이 들었다.또한, 연속된 구간의 개수이므로 누적합을 이용해야지 시간초과를 방지하지 않을까라는 생각도 들었다.12345678910111213141516171819#include iostream>using namespace std;int sum[1000001], cnt[1001];int main(){    ios_base::sync_with_stdio(false);    cin.tie(0); cout.tie(0);  ..
· Others
이런 문구가 뜬다 cmd 창에 diskpart를 입력해주고 disk 1의 크기가 usb 크기처럼 보인다. 이후 attributes disk clear readonly를 입력해주면 된다.
참고 : https://cosyp.tistory.com/228 v-table: 함수 포인터가 들어있는 테이블함수 포인터: 함수의 주소를 저장하는 포인터-> 콜백 함수를 위해 많이 쓰인다. v-table은 virtual function이라는 기능을 위해 쓰이고,v-table안에는 함수 포인터들이 배열의 형태로 저장되어있다. Override결과를 보면 상속받은 부모 객체의 함수가 실행되는 것이 아닌 자식 클래스의 객체가 실행되고 있다. 이렇게 상속받은 함수의 자식 클래스에서 재정의하는 것을 Override라고 한다. virtual function또한, Parent 타입의 p 포인터 변수에 Child 객체의 주소를 넣고 실행을 시켜도 Parent 타입의 함수가 호출이 된다. 이는 단순히 함수를 오버라이딩하더라..
Find Exploitable Bug1. 1-day - 패치된 버전과 이전 버전을 모두 가지고 비교 분석 2. PoC 코드 분석- 실제 취약점이 무엇인지, 잠재적 취약점까지 분석 3. 정적 분석- black box testing: 리버싱- white box testing: 소스코드 전문을 분석 정적 분석의 시작점: Attack surface-> 직접 입력값, 설정값, 다운로드 4. Fuzzing- Crash나 memory corruption으로 이어질 수 있는 입력값을 찾는 방법- 코드리뷰는 개발 언어와 구조에 대한 이해 필요, Fuzzing은 쉽고 간단한 접근이 가능- Mutation based Fuzzing / Generation based Fuzzing Mutation base Fuzzing (Du..
문제 분석먼저 주어진 소스코드를 자세히 보자.1234567891011121314if __name__ == "__main__":    s = Seed()     seed = s.GenerateSeed()    print(f"Seed: {seed}")     while 1:        k = input("Key: ").strip().split() # input ex) 41 42 43 44        kl = [int(x) for x in k]         if s.Authentication(seed, kl):            break     print('DH{fake_flag}')Colored by Color Scriptercsmain문을 먼저 살펴보면,s = Seed() 함수의 리턴 값을 저장하..
TCP: 연결 지향 Stream Delivery TCP: byte stream UDP: bound delivery Sequence Number - TCP 세그먼트의 연속된 번호 - random ACK 1. Selective ACK -> 받은 데이터의 시작 번호를 반환 2. Cumulative ACK -> 받은 데이터의 다음 번호를 반환 TCP segment format - Header: 20 ~ 60 bytes 16 bit: src port address 16 bit: dst port address 32 bit: sequence number 32 bit: acknowledge number 4 bit: HLEN 6 bit: reserved 6 bit: Flag 16 bit: window size 16 bi..
ISO vs OSI ISO: International Standards Organization OSI: Open System Interconnection 7: Application -> message 4: Transport -> packet, segment, user datagram / process-to-process 3: Network -> datagram / src-to-dst 2: Data link -> frame / hop-to-hop 1: Physical -> bit / one to next Network Curcuit Switching Network: 중앙제어 전달 방식 -> 먄악 중앙이 없어지면 모두 사용 불가능 -> 인터넷은 중앙을 없앰 -> 경로 설정에 필요한 중앙 제어가 존재하지 않음..
· Study/OS
Multi-Processor (MP) Scheduling 1) Loosely coupled | Distributed multiprocessor -> 물리적으로 다른 컴퓨터의 프로세서 2) Tightly coupled multiprocessor -> 한 컴퓨터 내의 여러 프로세스가 메모리 공유 approach MP scheduling 1) Asymmetric multiprocessing (master / slave) -> 다른 역할을 부여 --> bottleneck 발생 가능 2) Symmetric multiprocessing (SMP, peer) -> 대등한 역할 Design Issue - UP scheduling 하나의 프로세서 -> 큐에서 선택 --> 수행 중에 결정 - MP scheduling 1)..
sy46
벌크업 중인 cpp