전체 글 121

Petya 랜섬웨어 분석

공백이 한 달쯤 있었던 것 같다.. 나는 그 동안 petya 랜섬웨어를 분석했다. 첫 랜섬웨어 분석이라 지인의 도움을 받았음에도 많이 헤멨고, 아직 완벽하게 분석을 끝내지도 못했다. 추후에 추가 분석을 진행하기로 하고, 며칠 미뤘던 분석 정리를 하려고 한다. 분석은 2021.08.04 ~ 2021.08.27 동안 진행됐다. (사실 앞 2주간은 어떻게 하는건지 감 잡으면서 한창 삽질만 했고 마지막 일주일에 거의 모든 내용이 나왔다) (나중에 추가/수정 해야하는 부분은 녹색으로 적겠다) 목차 Petya란 분석 환경 정적 분석 동적 분석 1. Petya란 페트야(petya)는 마이크로소프트 윈도우 기반 시스템을 대상으로 하며 마스터 부트 레코드(MBR)를 감염시켜 하드 드라이브의 파일 시스템 테이블을 암호화하..

공부/리버싱 2021.09.08

CODE GROUND > 연습문제 > 근로 시간

역시 코딩은 제정신일 때 하는 게,...!! 어제도 시도했지만 장장 두 시간 동안 무려 if문만 5개를 쓰는 미친짓을 했었다. 다시 푸니까 30분만에 해치웠다. 사실 이 문제는 흔한 유형이였고, 이전에도 풀어봤던거 같아 그냥 넘어갈까 했었는데 역시 풀기 잘한 것 같다. #define _CRT_SECURE_NO_WARNINGS #include int main() { int t, test; int h, m, hh, mm; int w; setbuf(stdout, NULL); scanf("%d", &t); for (test = 0; test mm) { h = hh - h - 1; m..

CODE GROUND > 연습문제 > 잔돈

원래는 파티셰리 문제를 풀 생각이였지만, 마땅한 방법이 생각나지 않았다...ㅠㅠㅠ 그래서 비슷해 보이는 잔돈 문제를 먼저 풀었다 파티셰리 문제 푸는 데 딱히 도움이 되지는 않을 것 같.. #define _CRT_SECURE_NO_WARNINGS #include int main() { int test; int t; int ans; int a = 0; int b = 0; int c = 0; int d = 0; setbuf(stdout, NULL); scanf("%d", &t); for (test = 0; test 499; a++) { ans -= 500; } for (b = 0; ans > 99; b++) { ans..

SCPC 후기

제 7회 SCPC 대회에 참여했다!! 짧게 말하자면 결과는 처참했다...한 문제밖에 보지 않았지만(가장 점수가 낮은), 그 한 문제조차도 풀지 못했다.. 백준도 풀고 아주 가끔 복습도 한다지만 이럴 줄은 몰랐다.. 반성 좀 했다. 그 동안 쉬운 문제만 풀며 넘어간 것 같다. 나는 C언어의 이론만 익혔을 뿐, 실전에 사용하기에는 한참 부족한 것 같다. 이래서 문제 많이 푸는구나 싶다. 한건 아무것도 없지만, 좋은 경험인 것 같다. 코딩 열심히 해야지 흑흑

잡글 2021.07.17

CODE GROUND > 연습문제 > 햄버거

리버싱에 도움 될 거 같아 C++을 배우기 전에.. 군데군데 비어있는 C언어를 복습 중이다. #define _CRT_SECURE_NO_WARNINGS #include int main() { int ans; int t, test_case; int b, m, j; int bb, jj; setbuf(stdout, NULL); scanf("%d", &t); for (int i = 0; i < t; i++) { scanf("%d %d %d", &b, &m, &j); bb = b / 2; jj = j / 3; ans = (bb < m) ? ((bb < jj) ? bb : jj) : ((m < jj) ? m : jj); printf("Case #%d\n", i + 1); printf("%d\n", ans); } }

백준 > 11654, 10818, 2562, 2577

# 11654번: 아스키 코드 # ord: 아스키 코드를 변경 # chr: 숫자에 맞는 아스키 코드 반환 a = (input()) print(ord(a)) # 10818번 : 최소, 최대 n = int(input()) a = list(map(int, input().split())) min = a[0] max = a[0] for i in range(n): if a[i] > max: max = a[i] elif a[i] < min: min = a[i] print(min, max) #2562 : 최댓값 # 언더 스코어(_) a = [int(input()) for _ in range(9)] b = max(a) for i in range(9): if b == a[i]: num = i + 1 print(b) pri..