블로그를 다시 보니 10.16일 이후로 글을 멈췄더라구요. 그래서 그 이후로 어떤 일이 있었나 개인적으로 정리할 겸 개인 근황을 이렇게 써보려고 합니다. 먼저 에트리 같은 경우에는, 2개월간 진행되는 인턴을 잘 수행하고 왔습니다. 기존의 QT로 제작되어 있던 TIM 서버 라는것을 리펙터링하는 프로젝트를 진행하였는데요, QT 라이브러리가 유료화가 되면서 프로그램을 무료 라이브러리로 리펙터링해야 되는 상황이 발생하여서 프로젝트를 진행하였습니다. 그래서 WINAPI + Python + Select Network 서버를 사용해서 프로젝트를 리펙터링하였고, 결과적으로 테스트까지 마무리해서 잘 작동되...도록? 하고 왔습니다. 리눅스 서버 코드 + QT 서버 코드 두개 다 분석하고, 이를 토대로 설계까지 직접 해보..
목차 1. 기본틀 설명 2. GetOriginalResponseAsync 3. Context 4. Embed Send 5. Menu Send 1. 기본틀 설명 기본 틀은 다음과 같습니다. public class InteractionModule : InteractionModuleBase { [SlashCommand("ping", "Hello World")] public async Task HandlePingTest() { await RespondAsync("Bot is alive"); } } SlashCommand 리플렉션을 통해 키워드와 설명을 적어줄 수 있는데, 첫 번째가 키워드 네임, 두 번째가 설명입니다. Discord.net에서 제공하는 리플렉션에 대한 종류는 엄청 많은데 궁금하신 분들은 공식 D..
https://discordnet.dev/ Home | Discord.Net Documentation discordnet.dev Discord.Net을 사용하기 위한 패키지를 설치하는 방법은 다른 분들께서 많이 정리해주셔서 딱히 정리하지는 않으려고 합니다. 또한 튜토리얼 유튜브를 통해서도 알 수 있는데, 혹시 모르니 유튜브 채널 네임을 남겨드리겠습니다. 이 링크는 Discord.Net의 공식 디스코드에 들어가셔도 있습니다. 아래는 패키지 종류입니다. Youtube Name : Crenston Customs - Coding 먼저 Main의 코드는 다음과 같습니다. config.yml을 읽어오고, 사용할 클래스들을 Host.CreateDefaultBuilder을 통해 싱글톤으로 만든 후, 의존성을 주입합니다..
동아리에서 인제생이라는 앱을 개발하였는데, 그와 관련되어 디스코드 봇을 개발하게 되었습니다. 디스코드 봇을 만들 때 사람들이 주로 쓰는 언어는 Python이지만, 저는 C 관련 언어를 주로 사용하는 사람이기 때문에 Discord.Net 라이브러리를 사용하여 C#으로 개발하게 되었습니다. https://discordnet.dev/ Home | Discord.Net Documentation discordnet.dev Discord.Net은 C#으로 디스코드 봇을 만들 수 있게 해주는 프레임워크이며, TAP 형식의 비동기 패턴을 사용합니다. 따라서 async Task 형태의 함수 형태가 주를 이루게 됩니다. 먼저 보통은 Command 형태의 구조를 만들어서 ! 나 $를 붙여서 만들게 하는 반면, 저는 바로 S..
일단, 원격 자체를 설정하는 것은 이 글에서는 설명 따로 하지 않겠습니다. 원격 열고, 계정설정까지야 찾아보시면 널리고 널렸습니다. 그것을 따라하면 되고, Education 버전 같은 경우, 학교 이메일이나 회사 계정등을 확인해야 제대로 사용할 수 있습니다. 이 부분때문에 다른 버전들과는 차이점이 생겨 오류들이 발생하는데, 이 글에서는 다음과 같은 오류가 발생할 때, 해결하는 방법을 계시해놨습니다. 1. 아이디를 컴퓨터 이름으로 원격 로그인 했을 때, 원격 조인 ADD에 걸려 있습니다. 2. 아이디를 이메일로 하여 원격 로그인 하였을 때, 사용자 자격 증명이 작동하지 않습니다. 새 자격증명을 생성해주세요. 등 이런 오류가 발생합니다. 저도 여러 방식을 시도해봤는데, 아래와 같이 하니까 되더라구요. 먼저 ..
현대 암호학의 방식 중 하나이며, 대칭 암호이다. 대칭 암호란, 암호에 사용하는 암호화 하는 키와 복호화 하는 키가 동일한 것 64비트의 크기의 블록을 암호화하는 방식이다. 현재는 하나의 키를 사용하는 것이 아닌 3DES를 널리 사용 특징 혼동 : 키와 암호문 사이의 관련성을 모호하게 하는 암호화 연산, 오늘날 혼동을 만족시키기 위한 일반적인 요소는 환자(평문 : 암호문 1대1 대응)이고, DES와 AES에서 발견됨. 확산 : 평문의 통계적 특성을 숨기기 위한 목적으로 하나의 평문 기호의 영향이 많은 암호문 기호에 퍼지도록 하는 암호화 연산, 단순한 확산 요소는 비트 전치로 DES에서 빈번히 사용됨. 곱 암호 : 두 연산을 혼합한 암호 보안 : 분석적 공격에는 안전하나 소모적 키 탐색에는 안전하지 않음...
정말 간단한 키보드 후킹 프로그램을 만들었습니다. 작동 원리는 간단합니다. 1. SetWindowsHookEx() API를 통해서 클라이언트 측 키보드 값을 후킹합니다. 2. 서버 측에 입력받은 키보드 값을 DWORD 형태로 전달합니다. 3. 서버 측에서는 입력받은 키보드 값을 출력해줍니다. SetWindowsHookEx의 형태는 검색을 해보시면 다양한 자료들을 얻으실 수 있겠지만, 간단하게만 말씀드리면 _hook = SetWindowsHookEx(WH_KEYBOARD_LL, UseFunction, hInstance, NULL); 이런 형식으로 됩니다. 사용할 함수에는 키보드를 입력받았을 때 행동할 함수를 작성하여 넣어주시면 됩니다. 아래는 기본형태입니다. LRESULT CALLBACK AnyName(i..
때는 이번주 화요일.. 저번주에 본가에 제사가 있어서 갔다온 저는 월요일날 집에 돌아왔습니다. 그런데 화요일부터 목이 칼칼해지기 시작했습니다. 그래서 혹시 몰라 학교 등교를 멈추고 다음날까지는 상황을 지켜 보려고 했죠.. 그런데 정말 다음날 목이 더 아파진겁니다. 오우 쒯.. 설마하는 마음으로 저는 편의점으로 달려가 PCR 검사기를 사왔습니다. 그리고 두근거리는 심장을 뒤로 한채 검사를 시작했죠.. 한방울.. 두방울.. 마지막 세방울이 떨어지고, 칸에 액체가 점점 채워지는 그 순간, 저는 시간이 멈추는 듯 했습니다. 정말로 두줄이 떠버린거죠. 저는 그 사실을 바로 부모님과 누나에게 알렸습니다. 정말 마음이 아팠죠..왜냐하면 그 전에는 한번도 걸린 적이 없었거든요. 친구들이 다 걸릴때도 저는 걸리지 않았습..