전체 글27 SK 쉴더스 루키즈 19기 합격 후기 0. SK 쉴더스 지원 2023년 하반기에 마지막 학기를 마치고 바로 사람인에 서류를 넣기 시작했습니다. 틈틈히 자기소개서, 포트폴리오, 면접을 준비했기 때문에 서류지원, 면접까지 어려움 없이 할 수 있었습니다. 그러던 중 "SK 쉴더스 루키즈" 교육 모집을 보게 되었고 이전에 작성하였던 자기소개서 등을 참고하여 바로 지원하게 되었습니다. 지원동기, 수료 후 목표, 사용 가능한 스킬 등 필수 입력 사항들이 있으며 유튜브 채널"면접왕 이형"의 영상을 참고하여 작성하였습니다. 면접에서 느껴졌던 것은 지원동기와 수료 후 목표를 중요하게 보시는 것 같았습니다. 아무래도 채용과 6개월의 교육 특성상 진짜 이 직무에 뜻이 있는 사람을 선발하려는 것 같았습니다. 이점을 생각해서 '내가 정보보안 직무에 관심이 얼마나 .. SK 쉴더스 19기 2024. 3. 26. [c언어] 윤년 구하기 0. 윤년이란? 윤년(閏年)은 역법을 실제 태양년에 맞추기 위해 여분의 하루 또는 월(月)을 끼우는 해이다. 태양년은 정수의 하루로 나누어떨어지지 않고, 달의 공전주기와 지구의 공전주기는 다르기 때문에 태양력에서는 하루(윤일), 태음태양력에서는 한 달(윤달)을 적절한 시기에 끼워서 이를 보정한다. (위키백과) 1. 윤년을 구하는 방법 지구가 태양 둘레를 한 바퀴 도는 시간이 딱 365일이 아니기 때문에 이를 보정한다. 보정하기 위해 4로 나누어떨어지는해를 윤년으로 하는데, 그러나 이것 또한 부족하여 100으로 나누어떨어지지 않고 400의 배수인 날 또한 윤년으로 한다. 2. 구현하기 년, 월, 일을 입력해 첫해부터 모든 일을 더하여 보여주는 프로그램을 구현해 보자. #include int mdays[][.. study/c언어 알고리즘 2022. 4. 6. [c언어] 소수 구하기 알고리즘 최적화 0. 소수 소수는 자신과 1 이외의 어떤 정수로도 나누어떨어지지 않는 정수를 가리킨다. 7을 예로 들면 1과 자기자신(7)을 제외한 2~6 가운데 어떠한 정수로도 나누어떨어지지 않기 때문에 7을 소수라고 부를 수 있다. 만약 나누어떨어지는 정수가 하나 이상 존재하면 그 수는 합성수이다. 1. 소수 구하기 1,000 이하의 소수 구하기 Level .0 #include int main(){ int i,n; unsigned long counter = 0; for(n = 2 ; n study/c언어 알고리즘 2022. 4. 5. 3.1 바이트 오더링 바이트 오더링은 데이터를 저장하는 방식이다. 바이트 오더링 방식에는 빅 엔디언(Big Endian)과 리틀 엔디언(Little Endian) 방식이 있다. 아래 예제를 확인해 보자. BYTE b = 0x12; WORD w = 0x1234; DWORD dw = 0x12345678; char str[] = "abc"; TYPE Name SIZE 빅 엔디언 리틀 엔디언 BYTE b 1 [12] [12] WORD w 2 [12][34] [34][12] DWORD dw 4 [12][34][56][78] [78][56][34][12] char [] str 6 [61][62][63][00] [61][62][63][00] BYTE 타입인 b 변수를 저장하는 방법에는 차이가 없다. 그러나 2바이트 이상 저장하는 WORD.. study/리버싱 2021. 12. 17. 2.5 "Hello World!" 문자열 패치 0. 패치 패치 기능을 이용해 프로그램의 기능을 수정하거나 추가할 수 있다. 패치 대상은 파일, 메모리가 될 수 있다. 지금은 "Hello World" 출력을 바꾸어 보겠다. main 함수 시작 주소까지 실행합니다. 00401000부터 0040104E까지가 main 함수입니다. 1. 문자열을 패치하는 방법 두 가지 방법 문자열 버퍼를 직접 수정하는 방법 다른 메모리 영역에 새로운 문자열을 생성하여 전달 1) 문자열 버퍼를 직접 수정하는 방법 MessageBoxW 함수의 전달인자 4092A0의 문자열 ("Hello World") 버퍼를 직접 수정하는 방법이다. 그러기 위해 4092A0으로 이동해 보자[Ctrl + G]. 커서가 올라가 있는 window에 따라 뷰가 달라진다. dump window를 확인해 .. study/리버싱 2021. 12. 1. 2-2 HelloWorld.exe 디버깅 0. main() 함수 찾기 앞에서 JMP로 들어왔던 0040104F으로 들어오면 많은 함수호출을 볼 수 있다. 여기 안에서 main()을 찾아보자. 1. win32API F7(step in)로 함수호출문 안으로 들어가다 보면 반복문 때문에 탈출하기 어려운 경우가 있다. 004010E4 같은 경우가 이와 같다. Ctrl + F9로 함수 탈출할 때 시간이 오래 걸리기 때문에 지금은 step over(F8)로 넘어가자. 2. CALL 00401000 함수 호출을 돌아다니다 보면 CALL 00401000을 볼 수 있다. 3. CALL 00401000 내부 드디어 우리가 찾던 main 함수를 찾았다. 오른쪽 설명을 보면 파라미터가 "www.reversecore.com', "Hello World!"인 것을 확인할.. study/리버싱 2021. 11. 11. 2-1. HelloWorld.exe 디버깅 0. 디버깅 목표 HelloWorld.exe 실행 파일을 디버깅하여 어셈블리 언로로 변환된 main() 함수를 찾자. 1. 디버깅 시작 지금 보이는 이미지는 ollydbg 실행 화면이다. 화면 구성에 대해 알아보자. Code window 기본적으로 disassembly code 를 표시하여 각종 comment, label을 보여주며, 코드를 분석하여 loop, jump 위치 등의 정보를 표시한다. Register window CPU register 값을 실시간으로 표시하며 특정 register 값 수정이 가능하다 Dump window 프로세스에서 원하는 memory 주소 위치를 Hex와 ASCII/유니코드 값으로 표시하고 수정도 가능하다. Stack window ESP register가 가리키는 프로세스.. study/리버싱 2021. 11. 6. 정적 분석, 동적 분석, Source Code, Hex Code, Assembly Code 0. 정적 분석 정적 분석은 파일을 실행하지 않고 분석하는 방법 중 한 가지이다. 파일의 종류(EXE, DLI, DOC, ZIP 등), 크기, 헤더(PE)정보, Import, Export API, 내부 문자열, 실행 압축 여부, 등록 정보, 디버킹 정보, 디지털 인정서 등의 다양한 내용을 확인하는 것이다. 디스어셈플리를 활용해 내부 코드의 구조를 파악하는 것도 정적 분석의 범주에 들어간다. 정적 분석으로 얻은 정보들은 이후 동적 분석에 방법에 좋은 참고가 된다. 1. 동적 분석 파일을 직접 실행시켜 그 행위를 분석한다. 디버깅을 통해 코드의 흐름, 메모리 상태 등을 자세히 살펴 볼 수 있다. 2. Source Code 우리가 IDE를 통해 작성하는 코드를 말한다. 프로그래밍 언어별로 정의된 문법에 따라 .. study/리버싱 2021. 11. 5. 비구조화 할당, 구조분해 할당 ES6 비구조화 할당(구조분해 할당) ES6에서 새롭게 만들어진 변수 할당 방법입니다. 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있습니다. 배열 const nameList = ["SoHee", "KangIn", "MinSu"]; const name1 = nameList[0]; const name2 = nameList[1]; const name3 = nameList[2]; 배열에 있는 값들을 서로 다른 변수에 저장하려면 이렇게 했습니다. 비구조화 할당으로는 상당히 간결하게 변수 할당을 할 수 있습니다. const nameList = ["SoHee", "KangIn", "MinSu"]; const [name1, name2, name3] = nameList; 객체 const info = .. study/JS 2021. 7. 25. 1. 프로그램 실행 구조 0. 프로그램 동작 우리가 윈도우를 사용하다 보면 exe파일을 보게 될 것이다. 더블클릭해서 누르면 프로그램이 실행되는 파일이다. 이 exe파일은 컴파일을 통해 실행 가능한 파일로 만들어지는데 이것을 윈도우에서 PE(Portable Executable)파일이라고 부른다. 1. PE 파일이란? 위에 설명이 되어있듯 휴대할 수 있고 실행 가능한 파일을 말한다. 이 PE 파일에는 프로그램을 실행하는 데 필요한 기본 정보와 파일을 메모리 어디에 저장해야 할지 알려주는 배치 정보가 들어있다. PE파일에는 헤더(Header), 보디(Body)로 구성되는데, 헤더에는 프로그램 실행에 관한 주요 정보가 들어있고 바디에는 코드와 데이터가 들어있다. PE 파일은 exe 뿐만 아니라 dll, ocx 등이 더 있다. 2. 헤.. study/리버싱 2021. 3. 16. 4. HTTP 상태코드 0. 상태코드란? 클라이언트가 보낸 리퀘스트를 서버가 처리한 결과를 상태코드로 나타냅니다. 서버가 정상적으로 처리했는지 또는 어떤 에러가 있는지를 알 수 있습니다. 클래스 설명 1xx Informational 리퀘스트를 받아들여 처리중 2xx Success 리퀘스트를 정상적으로 처리함 3xx Redirection 리퀘스트를 완료하기 위해서 추가 동작이 필요함 4xx Client Error 리퀘스트 이해 불가능 5xx Server Error 리퀘스트 처리 실패 클래스의 정의만 지킨다면 RFC2616에서 정의된 상태 코드를 변경하거나 서버 독자의 상태 코드를 만들어도 상관없습니다. 많은 종유의 상태 코드가 있지만 여기서는 14개를 살펴 보겠습니다. 1. 2xx 성공(Success) 리퀘스트가 정상으로 처리되.. 카테고리 없음 2020. 7. 3. 고주파 마사지건 리뷰, 가성비 마사지건 리뷰(SMOOKY 마사지건) Qoo10에서 구매한 가성비 마사지건 Qoo10에서 3만 6천 원짜리 마사지건을 구매했습니다. 가성비로 유명한 제품은 "피닉스 A2e", "샤오미 마사지건" 등이 있는데 더 가성비 제품을 찾아보려고 선택하게 되었습니다. 구매 이유 저는 컴퓨터를 오래 하기 때문에 목, 어깨가 뻐근한 경우가 많습니다. 틈만 나면 스트레칭을 해주고 움직여 줍니다. 하지만 "본격적"으로 몸을 풀어보고 싶어 구매했습니다. 그리고 부모님도 퇴근 후 어깨를 아파하셔서 제가 해드릴 겸 샀습니다. ㅎㅎ 구성품 가성비 제품도 보통은 5만 원부터 시작하는데 이 제품은 무려 3만 원... 그래서 걱정은 조금 되었습니다. '구성품 제대로 오는 거 맞아?', '배터리 수명 짧은 거 아니야?', '리뷰 보니깐 폭발하는 경우가 있다던데..?' 등 .. 리뷰/테크리뷰 2020. 7. 2. 이전 1 2 3 다음