본문 바로가기
728x90
반응형

전체 글81

Visual Studio 2022로 Github 연동해서 협업하기 (C 프로젝트) 더보기대학교에 와서 처음으로 팀 프로젝트를 진행하게 됐다.협업할 때 깃허브를 사용하면 훨씬 작업물을 수월하게 만들 수 있다는 것을 알고는 있었지만 협업을 해볼 기회가 없었어서 실제로 활용해본 적은 없었다.마침 이번에 팀 프로젝트도 있으니 깃허브도 배울 겸 깃허브로 작업하자고 그랬는데 막상 시작하니 다들 적극적으로 활용해보려는 것 같지는 않다. 그도 그럴 것이 애초에 깃허브에 대한 이해도가 너무 부족한 것 같다.나도 이해하는 데에 한 세월이 걸렸기에 그냥 그러려니 하고 있지만 좀 아쉽긴 하다..나 정도만 이해해도 후딱후딱 끝내서 맘 편하게 있을 수 있을 것 같은데.. 아무튼 깃허브를 Visual Stduio Community 2022와 연동하여 사용하고 싶은 사람들을 위해서 글을 좀 써보려 한다.찾아보니까.. 2024. 5. 16.
2024 5월 Space War Web WriteUp HSpace 카카오톡 공지방에 공지 뜨길래 심심해서 참가해봤다. 조빱이라 꽁으로 주는 한 문제랑 3문제 풀었다.Scroll_Masterjelly shopExec Anything   Scroll_MasterInspired by Click Master, I created Scroll Master. Please continue scrolling the mouse. 문제 설명만 봐도 알 수 있듯이 그냥 스크롤 엄청 하면 풀리는 것 같다. 개발자 도구로 소스 코드 보면 스크립트 볼 수 있는데 난독화가 되어있다..그냥 스크롤하면 될 거라 믿고 가보기로 한다. 클릭하는 문제만 풀어봐서 개발자 콘솔에서 js로 매크로 짜서 하려고 했는데 내 검색 실력으로는 아무리 찾아봐도 스크롤 이벤트를 발생시키는 간단한 js코드를 찾.. 2024. 5. 12.
[Lab 3-1] Practical Malwware Analysis WriteUp Lab 3-1Lab03-01.exe 추억의 딸깍 소리 들어가며 윈도우 7 감성에 젖어가며 툴들 다 깔고 스냅샷까지 찍어놓고 문제 풀기 시작했는데윈7에서는 주어진 exe 파일이 0xc0000018 오류로 안 열린다..  윈7 이미지 파일 구하고 다운하는 것도 엄청 오래 걸렸고 툴 전부 설치하고 오류 해결하는 데에 하루 걸렸는데 너무하다..결국 윈XP로 다시 처음부터 시작해야 했다.. Questions1. What are this malware’s imports and strings?Dependency Walker에서는 ExitProcess 함수만 확인할 수 있다.애초에 패킹되어 있어서 그런가보다..동적 분석을 통해서 분석하라는 의도인 것 같다.Strings 확인할 수 있다.그냥 봐도 수상한 것들이 많이 보.. 2024. 5. 11.
. 보호되어 있는 글 입니다. 2024. 5. 4.
[Lab 1-4] Practical Malware Analysis WriteUp Lab 1-4Lab01-04.exe Questions1. Upload the Lab01-04.exe file to http://www.VirusTotal.com/. Does it match any existing antivirus definitions?이젠 VirusTotal에 안 걸리는게 이상할 정도다.이번에도 61개로 꽤 많이 걸린다..   2. Are there any indications that this file is packed or obfuscated? If so, what are these indicators? If the file is packed, unpack it if possible.Hell YeahLab 1-3 에서는 fsg 패킹 푸느라 시간 엄청 썼는데 이번 문제는 패킹이 안 되.. 2024. 5. 4.
[Lab 1-3] Practical Malware Analysis WriteUp Lab 1-3Lab01-03.exe strings, imports 이런 거 다 IDA 한곳에서 쉽게 찾을 수 있는데 프로그램 여러 개 띄워놓고 분석하는게 간지니까 이렇게 하겠다. Questions1.  Upload the Lab01-03.exe file to http://www.VirusTotal.com/. Does it matchany existing antivirus definitions?당연하게도 걸린다.이전 Lab 1-1이나 Lab 1-2에서 준 바이너리보다 더 많이 걸리는 것 같다.    2. Are there any indications that this file is packed or obfuscated? If so,what are these indicators? If the file is .. 2024. 5. 3.
[Lab 1-2] Practical Malware Analysis WriteUp Lab 1-2Lab01-02.exe Questions1. Upload the Lab01-02.exe file to http://www.VirusTotal.com/. Does it matchany existing antivirus definitions?VirusTotal에 당연히 걸린다.   2. Are there any indications that this file is packed or obfuscated? If so, what are these indicators? If the file is packed, unpack it if possible.PEiD에서 UPX로 패킹되어 있는 것을 확인할 수 있다.일반 탐색으로는 Nothing Found로 나오지만, 하드코어 탐색을 할 경우 UPX로 패킹되었음을.. 2024. 5. 3.
[Lab 1-1] Practical Malware Analysis WriteUp Lab 1-1Lab01-01.exeLab01-01.dll Questions1. Upload the files to http://www.VirusTotal.com/ and view the reports. Does either file match any existing antivirus signatures?두 파일 모두 VirusTotal에서 걸린다.    2. When were these files compiled?VirusTotal에서 확인해보면 Lab01-01.exe와 Lab01-01.dll 두 파일 모두 2010년 12월 19일 16시 16분에 컴파일되었다.PEview에서도 확인할 수 있다. HxD에서도 PE 헤더 부분을 확인할 수 있는데 각각 16진수로 변환하면 0x4D0E2FD3, 0x4D0E2F.. 2024. 5. 2.
[AmateurCTF 2024 Write Up] 동아리 팀으로 나간 CTF 동아리에서 CTF 관심 있는 사람들은 팀 조인하라고 선배 한 명께서 톡방에 올리셔서 바로 이메일 등록했다. 동아리 들어와서 가장 해보고 싶었던 팀 꾸리고 CTF를 해볼 수 있게 되었다. 4월 6일부터 10일까지 꽤 오래 진행되었다. 그래서 그런지 문제도 계속해서 업데이트되서 엄청엄청 많았다. 난이도는 별로 어렵지 않다고 해서 안심했는데 역시나 초짜인 나에게는 어려웠다.. CTF가 시작하는 자정까지 대기타다가 정각에 새로고침을 했는데 아무 문제도 안 올라와있었다. 서버 오류인지 20분 정도 연기될거라고 디스코드에 공지가 올라왔다. 위에 디코 사진들은 채팅으로 드립 좀 쳤더니 누가 찐따 아니랄까봐 관심 받아서 신나서 캡쳐했다ㅎㅎ 아무튼 가징 쉬워 보이는 걸로 3문제 정도 풀었는데 복기를 좀 해보자 web/d.. 2024. 4. 14.
[DreamHack] Reversing Basic Challenge #0, #1, #2, #3 (#14, #15, #16, #17) / 어셈블리어 / 악성코드 분석 방법 [동아리] 팀프로젝트 과제 #1[어셈블리어 (Assembly Language)]1. 기계어와 어셈블리어CPU는 어떠한 프로세서에 명령을 내리기 위해서 고유의 명령어 세트들을 가지고 있다.이 명령어 세트를 기계어라고 하는데 숫자들의 규칙 조합이기 때문에 이대로 그냥 사용하기에는 어려움이 많다.때문에 이를 쉬운 기호 코드로 나타낸 것이 어셈블리어이다. 어셈블리어는 저급 언어에 속하는 기계어보다 위의 단계의 프로그래밍 언어이다.통일되어 있는 규격이 없어 컴퓨터 구조와 어셈블러에 따라 문법이나 표현 등이 다르다.본 글은 Intel 문법과 64비트 운영 체제를 기준으로 설명한다. 어셈블리어는 기계어와 일대일대응이기 때문에 어셈블리어를 공부하면 컴퓨터 시스템과 메모리 구조 등에 대해서 더 깊게 이해할 수 있다.반대.. 2024. 4. 4.
[Dreamhack] ROT128 #852 #!/usr/bin/env python3 hex_list = [(hex(i)[2:].zfill(2).upper()) for i in range(256)] with open('flag.png', 'rb') as f: plain_s = f.read() plain_list = [hex(i)[2:].zfill(2).upper() for i in plain_s] enc_list = list(range(len(plain_list))) for i in range(len(plain_list)): enc_list[i] = hex_list[(hex_list.index(plain_list[i]) + 128) % 256] enc_list = ''.join(enc_list) with open('encfile', 'w', enc.. 2024. 4. 3.
[DreamHack] addition-quiz #1114 랜덤한 2개의 숫자를 더한 결과가 입력 값과 일치하는지 확인하는 과정을 50번 반복하는 프로그램입니다. 모두 일치하면 flag 파일에 있는 플래그를 출력합니다. 알맞은 값을 입력하여 플래그를 획득하세요. 힌트로 pwntools를 줬다. 파이썬 모듈인데 확실히 파이썬은 신이다. 50번 덧셈을 1초 안에 해야하는데 이건 아인슈타인이 와도 못 할 것이다.. 무조건 프로그램을 만들어서 쓰라는 것 같다. int main(void) { int fd; char *flag; initialize(); srand(time(NULL)); flag = (char *)malloc(FLAG_SIZE); fd = open("./flag", O_RDONLY); read(fd, flag, FLAG_SIZE); close(fd); in.. 2024. 3. 30.
[DreamHack] Path Finder #702 처음으로 써보는 워게임 풀이이다. 시작한지 얼마 안 됐는데 시스템 해킹 너무 어렵다ㅜㅜ 이것저것 찾아보면서 하고 있긴 한데 이번 문제는 자료 찾아가면서 혼자서 풀어내서 그냥 기록용이나 공부용으로 풀이를 남겨보기로 했다. 물론 질문글들의 도움을 받긴 했다.. 아직 힌트 없이 혼자 뚫어내기에는 지식도 없고 쉽지 않다. int __fastcall main(int argc, const char **argv, const char **envp) { setresgid(0x3E9u, 0x3E9u, 0x3E9u); system("clear"); puts("Tada~!"); return 0; } 문제에서 준 chal 파일을 IDA에 돌려봤다. setresgid() 함수에 관한 정보를 좀 찾아봤는데 생각한 만큼 그리 많이 .. 2024. 3. 30.
INC0GNITO 2024 Hacking Conference 후기 3월 23일부터 24일까지 이틀 동안 고려대학교 하나스퀘어에서 진행하는 INC0GNITO Conference에 참여했다. 프로젝트 발표를 직접 하지는 않았고 앉아서 듣기만 했다. 이런 곳에 가는 것은 처음이라 못 알아들을까 걱정되기도 해서 이전 년도 후기들을 보려고 검색해봤는데 많이 안 나왔다. 그래서 나같이 이제 막 입문한 사람들이 검색해서 이 글에 들어온다 생각하고 그냥 내 일기를 써볼까 한다. 안 그래도 이런 해킹 컨퍼런스 들으러 다니고 하는게 멋있어 보여서 기회가 있다면 한번쯤은 가보고 싶다는 생각을 했었는데 고맙게도 동아리에서 다같이 갈 수 있는 기회가 생겼다. 프로젝트 발표는 동아리 선배님들이 진행하셨다. 일정은 이렇게 진행되었다. 나는 이틀 모두 참여했는데 첫째날에 트레이닝 세션에도 참여했다.. 2024. 3. 25.
[C언어] 동적 2차원 배열, 행렬 곱 연산 [동아리] A반 6차 2일 과제 (2024.03.22)동적 2차원 배열동적 2차원 배열을 만들고 배열에 값을 넣은 후 출력하기프로그램이 끝나기 전 꼭 남김없이 free 해주기#include #include int main() { int row, col; printf("행의 수를 입력하세요: "); scanf("%d", &row); printf("열의 수를 입력하세요: "); scanf("%d", &col); int** matrix = (int**)malloc(sizeof(int*) * col); for (int i=0;i 행렬 곱 연산선형대수학의 행렬 곱 연산을 구현하기유저에게서 두 개의 행렬의 행과 열 값을 받아 두 행렬 만들고두 행렬을.. 2024. 3. 25.
마인크래프트 24시간 학교 서버 만들기 -8 서버 종료 2023년 11월 22일부터 2024년 2월 17일까지 운영한 동화고등학교 마인크래프트 서버를 종료하게 되었다. 수능 끝나고 친구들과 함께 게임을 즐기는 것을 넘어서 전교생들과 함께 게임을 즐길 수 있었다. 새로운 친구들과 후배들을 만나서 좋은 추억 만들고 갈 수 있어서 행복했다. 더군다나 서버를 만들고 운영하는 과정에서도 수많은 경험을 쌓고 성장할 수 있었다. 서버를 만들면서 클라우드 서버를 만들고 불특정 다수를 대상으로 서비스해보는 아주 좋은 경험을 해볼 수 있었다. 게임 서버이긴 하지만 클라우드를 활용해 다수를 대상으로 서비스했으니 프로젝트라고 볼 수도 있을 것 같다. 실제로 나는 이 내용을 대학교 동아리 지원서에 프로젝트 경험으로 기입했다. 별 내용은 아니지만 프로젝트 경험 란에 기입할 것이 없어.. 2024. 3. 24.
[C언어] 포인터로 문자열 거꾸로 출력 [동아리] A반 5차 2일 과제 (2024.03.20)#include #include void reverse1(char *a) { for (int i=0;i 포인터를 사용해 대괄호 사용하지 않고 문자열 거꾸로 출력하기 sting.h 헤더파일을 사용하여 문자열의 길이 확인 후 주소값 계산에 활용 -  reverse1()반복문을 통해서 문자열의 길이를 먼저 확인 후 주소값 계산에 활용 - reverse2() 2024. 3. 22.
[C언어] strlen(), fgets(), strcat(), strncpy() 함수 [동아리] A반 4차 2일 과제 (2024.03.18)strlen, fgets, strcat, strncpy 함수 사용하기 strlen fgets strcat strncpy 네 가지 함수 모두 string,h 헤더 파일에 선언되어 있는 함수이다.string,h 헤더파일에는 문자열을 다루는 여러 가지 함수가 선언되어 있다.  strlen( )strlen() 함수는 저장된 문자열의 길이를 반환하는 함수이다. #include #include int main() { char *str1 = "Hello"; char str2[10] = "Hello"; printf("%d\n", strlen(str1)); // 5 printf("%d\n", strlen(str2)); // 5 ret.. 2024. 3. 20.
[C언어] 마름모 별 찍기, 정수 거꾸로 변환, 소수 판별, 포인터 개념 [동아리] A반 3차 2일 과제 (2024.03.15)여러 기능을 수행하는 코드를 작성해주세요. 1 -> 정수를 입력 받고 그 크기의 마름모 모양 찍기 2 -> 세 자리 이상의 정수를 입력 받고 거꾸로 출력하기 3 -> 입력 받은 정수가 소수인지 확인 4 -> 종료 메뉴에서 4를 입력 받을 때까지 코드는 종료되면 안되고 입력 값은 조건 범위의 숫자만 입력한다고 가정합니다. (예외 처리 필요x) 출력 예시 참고해서 같은 결과가 나오도록 만들면 됩니다. 코드랑 실행 화면 정리해 멘토에게 보내주세요 (구글링X)과제 1#include int main(void) { while(1) { int menu; // 메뉴 1, 2, 3, 4 printf("-------.. 2024. 3. 15.
[C언어] 섭씨/화씨 변환, scanf( ) 함수 취약점 [동아리] A반 2차 2일 과제 (2024.03.13)섭씨 화씨 온도변환기scanf() 함수 취약점섭씨 화씨 온도 변환기#include int main(void) { printf("온도 변환기\n"); printf("1. 섭씨를 화씨로 변환\n"); printf("2. 화씨를 섭씨로 변환\n"); int select; printf("선택하세요: "); scanf("%d", &select); if (select == 1) { float celsius; printf("섭씨 온도를 입력하세요: "); scanf("%f", &celsius); printf("화씨 온도: %.2f", celsius * (9.0/5.0) + 32.. 2024. 3. 13.
728x90
반응형