
프로그래밍/C#
해당되는 글 12건

[C#] 작성 프로그램을 Obfuscar 로 난독화 해봤습니다.
이전에 C#으로 개발하여 판매중인 SMS 전송기 입니다. API 호출은 제가 따로 안드로이드 앱을 개발하진 않았고 전적으로 PushBullet 어플에 의존하고 있어서 프로그램 자체는 그렇게 비싸지 않게 판매중입니다. 그래도 많은 분들이 유용하게 사용중입니다. 제가 보안분야에 관심도 많고 실제로 리버싱 공부도 하는중이라 프로그램 보안에 좀 민감한 편입니다. C#이나 Java의 경우 컴파일을 할때 C, C++ 처럼 기계어로 다이렉트로 번역하는게 아닌 바이트 코드 라는 중간 언어로 먼저 번역한 다음에, 가상 머신이 바이트 코드를 해석해 최종적으로 기계어로 번역하게 됩니다. 어쨌던 바이트 코드의 경우 기계어와 고급 언어(C#, Java) 의 중간 정도의 레벨이므로 일단은 기계어보다 추상화 수준이 높습니다. (기..
동영상 자막 이름 맞추기, 일괄변경하기 (E.Z Subtitles V3)
애니메이션, TV쇼에서 자막과 파일이 따로 있으면 이름을 맞춰 줘야하는데 DarkNamer 같은 유틸리티로 할 수 있으나 조금 번거로워지는 경우가 있습니다. 그래서 동영상과 자막을 등록해두면 원클릭으로 매칭시켜주는 프로그램을 개발했습니다. 인터넷에 이와 같은 기능의 여러 프로그램이 배포되있긴 합니다만 바이러스가 있다던지.. GUI가 좀 마음에 안든다던지... 특히 정렬이 원하는 대로 안되는 경우(중요)가 있어서 직접 제작하게 됬습니다. 프로그램 장점 naturalSort 알고리즘이 적용되어 있어 윈도우 탐색기에선 제대로 정렬이 된걸로 보이는데 프로그램으로 옮기면 저렇게 정렬이 원하는 대로 안되는걸 최소화 합니다. (쉽게 말해서 윈도우 탐색기처럼 정렬을 시킨다 보면 됩니다.) 또한 이래도 정렬이 되지 않는..
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#] 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#으로 엑셀 파일을 읽어와 DataGridView에 뿌리는 소스는 많으나 대부분 Com 오브젝트나 OpenXML을 이용한 방법들이고 방법도 이중 for문을 이용하는게 많아서 datagridview에 하나하나 뿌리면 속도가 끔찍합니다. 시간복잡도가 ${O(N^2)}$... 거기다가 DataGridView 자체도 엄청나게 느린데 만약 몇만라인이 되는 엑셀파일을 읽는다? 더 이상의 자세한 설명은 생략한다 아주 쉽게 대량(큰)의 엑셀파일을 읽는 방법을 알아보겠습니다. Pre-Install Nuget Package에서 ExcelDataReader와 ExcelDataReader.DataSet을 설치합니다. Source Code string fname = ""; OpenFileDialog fdlg = ne..[C#] 자연스러운 정렬(natural sort) 사용하기
C#에서 정렬을 할때 (특히 리스트뷰) 원하는 대로 정렬이 안되는 경우가 있습니다. 여기서 원하는 대로 정렬이란 윈도우 탐색기에서 우리가 이름을 클릭해 정렬을 했을때 나오는 방식을 의미합니다. 리스트뷰에서 오름차순, 내림차순 옵션을 줘도 윈도우 탐색기랑 완벽히 똑같게 정렬이 되지 않는 경우가 많습니다. 또한 드래그 드롭으로 아이템을 추가할때도 따로 처리해주지 않으면 탐색기에서 보던 순서로 아이템이 추가되는게 아닌 뒤죽박죽 추가됩니다. 보통 shlwapi.dll 를 이용해 해결 합니다만.. 이를 사용하지 않고 윈도우 탐색기 수준의 정렬을 구현된 코드가 있어서 포스팅 합니다. public static int CompareNatural(string strA, string strB) { return Compar..