프로그래밍/C#
동영상 자막 이름 맞추기, 일괄변경하기 (E.Z Subtitles V4)
애니메이션, TV쇼에서 자막과 파일이 따로 있으면 이름을 맞춰 줘야하는데DarkNamer 같은 유틸리티로 할 수 있으나 조금 번거로워지는 경우가 있습니다. 그래서 동영상과 자막을 등록해두면 원클릭으로 매칭시켜주는 프로그램을 개발했습니다. 인터넷에 이와 같은 기능의 여러 프로그램이 배포되있긴 합니다만 바이러스가 있다던지.. GUI가 좀 마음에 안든다던지...특히 정렬이 원하는 대로 안되는 경우(중요)가 있어서 직접 제작하게 됬습니다. 프로그램 장점naturalSort 알고리즘이 적용되어 있어 윈도우 탐색기에선 제대로 정렬이 된걸로 보이는데프로그램으로 옮기면 저렇게 정렬이 원하는 대로 안되는걸 최소화 합니다.(쉽게 말해서 윈도우 탐색기처럼 정렬을 시킨다 보면 됩니다.) 또한 이래도 정렬이 되지 않는다면 ▲,..
프로그래밍/C#
[C#] 전체 드라이브에서 특정 파일 빠르게 찾기 :: 게임 경로 인식
using System; namespace MyApp // Note: actual namespace depends on the project name. { internal class Program { static async Task Main(string[] args) { Program myProgram = new Program(); string? result = await myProgram.search_file_all_dir_async("isaac-ng.exe"); Console.WriteLine($"탐색된 경로 : {result}"); } /* root 경로에서 재귀적으로 모든 파일을 탐색하고 "file_name" 으로 시작하는 파일의 절대 경로를 취득 취소 토큰에서 취소가 감지되면 즉시 중단 취소 조..
프로그래밍/C#
[C#] 윈폼(WinForm) 프로그래밍 할 때 콘솔 같이 띄우기 & Nuget 패키지 명령어로 설치하기
마이크로소프트에서 개발한 C#과, 그 언어로 개발하는 Winform을 활용하면 윈도우에서 GUI 프로그램을 쉽게 만들 수 있습니다. Winform 에 대해 간단히 소개하자면 Window + Form 의 약자로 윈도우(Window) 에서 존재하는 GUI 프로그램의 모양, 형태(Form) 를 쉽게 개발 할 수 있는 일종의 프레임워크 입니다. Visual Studio를 설치하고 (VS 역시 마이크로소프트가 개발) C# Winform 을 선택해서 프로젝트를 생성하면 드래그 & 드롭, 코드 작성을 통해 간편하게 윈도우 GUI 프로그램을 개발할 수 있습니다. 다만 개발을 조금이라도 해보신 분들은 알겠지만 콘솔창(CLI) 의 협력이 필수적입니다. GUI 환경은 간편하지만 완전한 GUI 환경은 불편합니다. 컴맹인 사람..
프로그래밍/C#
[C#] 더미다(Themida) 2.X.X, 3.X.X 로 패킹해보기
이전에 C#으로 작성한 프로그램을 Obfuscar로 난독화 하는걸 보여드린적이 있습니다. 물론 가이드나 튜토리얼 글은 아니고 그냥 Obfuscar로 난독화 해보니 소스가 이 정도로 보호되더라~ 하는 정도의 후기글 이였습니다. 사실 C#으로 작성된 프로그램을 Obfuscar로 난독화 하는건 인터넷에 워낙 잘 나와있어서.. 별로 글을 적을 필요가 없더라구요. 그래서 오늘 가져와 본건 C#으로 작성된 프로그램을 패커 더미다(Themida) 를 이용해서 보호하는 방법에 대한 튜토리얼입니다. 물론 이것도 인터넷에 방법이 소개가 되어 있기 때문에 특별히 2.X.X 버전하고 3.X.X 버전 둘다 패킹을 진행하는걸 보여드리겠습니다. 또한 꼭 C#이 아니여도 패킹 특성상 모든 실행파일(*.exe) 에 적용할 수 있습니다..
프로그래밍/C#
[C#] 작성 프로그램을 Obfuscar 로 난독화 해봤습니다.
이전에 C#으로 개발하여 판매중인 SMS 전송기 입니다. API 호출은 제가 따로 안드로이드 앱을 개발하진 않았고 전적으로 PushBullet 어플에 의존하고 있어서 프로그램 자체는 그렇게 비싸지 않게 판매중입니다. 그래도 많은 분들이 유용하게 사용중입니다. 제가 보안분야에 관심도 많고 실제로 리버싱 공부도 하는중이라 프로그램 보안에 좀 민감한 편입니다. C#이나 Java의 경우 컴파일을 할때 C, C++ 처럼 기계어로 다이렉트로 번역하는게 아닌 바이트 코드 라는 중간 언어로 먼저 번역한 다음에, 가상 머신이 바이트 코드를 해석해 최종적으로 기계어로 번역하게 됩니다. 어쨌던 바이트 코드의 경우 기계어와 고급 언어(C#, Java) 의 중간 정도의 레벨이므로 일단은 기계어보다 추상화 수준이 높습니다. (기..
프로그래밍/C#
Excel을 통한 PC SMS 전송 프로그램을 개발했습니다
안녕하세요 파일입니다. 오늘은 제가 개발한 PC SMS 자동 전송 프로그램에 대해 소개해보려고 합니다. 업무 자동화를 위해 C#으로 개발되었으며 Excel 파일을 통해 특정 다수에게 SMS를 대량으로 간편하게 전송할 수 있습니다. What was used? 본 프로그램은 PushBullet 어플과 연동하여 제작되었습니다. PC에서 PushBullet ApI 서버에 API Key와 메세지를 전송할 전화번호, 내용을 전송(POST)하면 PushBullet 서버에서 API Key에 연결된, 해당되는 스마트폰에 설치된 PushBullet App에 신호를 보내고 PushBullet App이 스마트폰을 제어해 메세지를 보내는 구조로 구성되어 있습니다. 메세지를 보내는 과정에서 PushBullet이 단대단 암호화를 ..
프로그래밍/C#
[C#] DataGridView Foucs 초기화 & 데이터 크기에 맞춰서 Column 자동 설정
데이터 크기에 맞춰서 Column 자동으로 확장시키기 /// /// 데이터 크기에 맞춰서 Column을 자동 정렬합니다. /// /// private void DataGridView_AutoResize(DataGridView dt) { for (int i = 0; i < dt.Columns.Count - 1; i++) { dt.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } dt.Columns[dt.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; for (int i = 0; i < dt.Columns.Count; i++) { int colw = dt.C..
프로그래밍/C#
[C#] 대량의 엑셀 파일 빠르게 읽어오기
인터넷에 C#으로 엑셀 파일을 읽어와 DataGridView에 뿌리는 소스는 많으나 대부분 Com 오브젝트나 OpenXML을 이용한 방법들이고 방법도 이중 for문을 이용하는게 많아서 datagridview에 하나하나 뿌리면 속도가 끔찍합니다. 시간복잡도가 ${O(N^2)}$... 거기다가 DataGridView 자체도 엄청나게 느린데 만약 몇만라인이 되는 엑셀파일을 읽는다? 더 이상의 자세한 설명은 생략한다 아주 쉽게 대량(큰)의 엑셀파일을 읽는 방법을 알아보겠습니다. Pre-Install Nuget Package에서 ExcelDataReader와 ExcelDataReader.DataSet을 설치합니다. Source Code string fname = ""; OpenFileDialog fdlg = ne..
이모티콘창 닫기
울음
안녕
감사
당황
춤
피폐