목록2024/08 (9)
베지밀
문제는 다음과 같다. 나는 다음 두 가지 방법으로 풀었다.1. sort()로 정렬해서 첫번째와 마지막 인덱스를 찾는 방법2. min(), max() 함수를 이용하는 방법 #10818#sort()N = int(input())num_list = list(map(int, input().split()))num_list.sort()print(num_list[0], end=' ')print(num_list[N-1])#10818#min(), max()N = int(input())num_list = list(map(int, input().split()))print(min(num_list), end=' ')print(max(num_list))참고로 print(min(num_list), max(num_list))가 더 ..
25314 코딩은 체육과목입니다 풀이N = int(input())for i in range(N//4): print("long ", end="")print("int") print의 end옵션을 사용해서 long 이후에 줄바꿈이 없도록 했다. 처음에 /로 구현했을 때 float 오류가 났다.나중에 알아보니 /와 //의 자료형 차이였다./는 float형 반환//는 int형 반환
IT계열 전공이지만 개발자가 아니라서 코딩을 제대로 해본 적 없는 취준생의.. 취준 성공을 위한 코테 공부 시작 - Python, C를 수강한 적은 있음- 알고리즘 공부해본 적 없음 & 교양 수준의 코딩 지식 이 영상 보고 시작함https://youtu.be/ukkLCl9yBvE?si=dYFjKdwThMHBb04u 1. 코드업 파이썬 기초 100제https://codeup.kr/problemsetsol.php?psid=33 문제집 / Python 기초 100제 codeup.kr 혹은 백준 단계별로 풀어보기 6단계까지https://www.acmicpc.net/step 2. 백준 알고리즘 문제 풀기가이드 : 그리디 알고리즘 - 탐색(완전탐색, BFS, DFS) 만 잘 갖춰도 코테에서 떨어질 일 ..
2가 더 쉬움 Server-client 2 IDA로 서버 코드를 열어보자 23번째 줄에서 연결이 수립되고, sub_401140 함수로 연결된다. (i는 아마도 소켓일 것이다)해당 부분이 문제를 푸는 포인트인 것 같아서 진입해본다. sub_401140 함수아까 cmd창에서 본 문자열들이다.사용자로부터 번호를 receive하고 input에 저장한다. strncmp로 입력값을 비교해서 어떤 역할을 수행하는데, 7777이 보인다. input 입력값에서 세미콜론을 찾고, 해당 위치 포인터를 v2에 반환한다.그리고 ; 이후의 값부터 sub_401000함수로 넘겨준다. sub_401000 함수v2+1부터의 값은 Command라는 매개변수로 들어왔다.buf라는 버퍼를 7777~ 문자열로 붙여놓고, 이후는 0으로 초기화..
분석툴 - x32dbg / IDA 처음 fe를 실행시키면 바탕화면에 아이유들이 다 사라져있다. (새로운 파일로 덮어씌워졌다) main 함수 12번째 줄 함수 (get_desktop_path)해당 함수의 내용SHGetSpecialFolderPathA라는 API에 \x10를 인자로 주면 Desktop의 경로를 받아온다.SHGetSpecialFolderPathA : 윈도우의 특정 경로를 가져오는 함수참고 : https://2ry53.tistory.com/entry/CSIDL의-값과-그-사용-방법Desktop 경로를 잘 가져왔으면 1, 아니면 0 FileName = input(=Desktop 주소) + \\*.* 을 이어붙여서 버퍼에 쓰고바탕화면에서 확장자가 존재하는 모든 파일을 가져온 후문자열 끝에서 .을 찾..
분석툴 - IDA 현재 실행중인 파일 경로 Filename에 받아온다.Filename = C:\Users\anon\Desktop\kisia_samples\4_ida_training\ida_training\training1_hm.exemal_deu라는 경로는 filename에 없기 때문에 if문을 지나서 밖의 명령이 실행됨GetTempPathA : 임시폴더의 경로를 Buffer에 가져옴. Buffer = C:\Users\anon\AppData\Local\TempPathAppendA : Buffer의 경로에 ‘mal_edu’라는 값을 더한다. Buffer = C:\Users\anon\AppData\Local\Temp\mal_eduCreateDirectoryA : Buffer 문자열에 해당하는 경로..
분석 툴 : x32dbg 입력값을 더하는 시스템그러나 파일 이름에 맞게 random_number를 찾아야 한다. ebp-8, ebp-C : 우리가 입력한 값입력값이 401000의 인자로 들어간다. call을 해서 401000함수로 진입이때, 우리가 입력한 값이 ebp+8, ebp+C로 바뀌어있음⇒ 이전 함수의 ebp 값을 스택에 저장해서 401000의 새로운 스택 프레임을 만들었기 때문에!! add로 두 값을 더해서 return한다다음 함수로 진입하면 다음과 같은 화면을 볼 수 있는데,GetTickCount : cpu의 clock 타임을 가져온다 → 랜덤한 값을 가져올 때 많이 씀eax에 01BE9EA7가 있고, idiv ecx를 하면idiv를 통해 eax에 몫이, ecx에 나머지가 들어간다.하위 연산..
이메일 헤더란?메일 발송자의 위치부터 시작하여 각 서버를 거쳐 최종적으로 수신자에게 오는 과정을 기록악성코드 분석가는 해커가 발송한 메일을 역추적하기 위해 이메일 헤더의 여러 필드들을 반드시 확인해야 함 이메일 헤더 필드To : 수신인, 받는 사람Cc(Carbon Copy) : 다른 사람이 메시지를 참조해서 읽으라고 보내는 경우Bcc(Blind Carbon Copy) : 숨은 참조로 여러 사람에게 보낼 때 참조인 주소를 숨기기 위해 사용From : 보내는 사람. 임의의 주소를 적으면 되기 때문에 해커는 자신의 주소가 아닌 가짜 주소 입력Reply-To : 수신한 메일을 회신할 때, 우선적으로 Reply-To에 설정된 주소로 회신Received : 수신한 메일이 어느 서버들을 거쳐왔는지 표시헤어 부분의 하..
위 문제에 대해 ERD 모델링을 수행해보자.간단간단 ^^ 우선 주어진 문제에서 다음과 같이 세부 항목을 나눈다.필요한 테이블과 속성들을 구분한다. 위 그림 참고해서 ERD를 그려보자 ERD 그리는 사이트 : https://www.erdcloud.com/ ERDCloudDraw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.www.erdcloud.com식별 비식별 관계를 고려해서 작성해야 함 끝