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); ..
분류 전체보기

이런 문구가 뜬다 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() 함수의 리턴 값을 저장하..