본문 바로가기

About Programing

완전 신기! 진짜 되는구나!ㅎㅎ 더보기
5월 22일 SOURCES 파일 출처 : 루트킷 - 에이콘 50page  SOURCES파일은 파일 이름이 항상 대문자로 SOURCES이어야 하고, 파일 확장자가 없다. 다음은 SOURCES파일이 포함해야 하는 내용을 보여주고 있다. TARGETNAME=MYDRIVER TARGETPATH=OBJ TARGETTYPE=DRIVER SOURCES=mydriver.c TARGETNAME 변수에는 드라이버의 이름을 할당한다. TARGETNAME에 설정된 이름은 드라이버 바이너리에 포함되기 때문에 TARGETNAME에 MY_EVIL_ROOTKET_IS_GONNA_GET_YOU와 같은 이름을 할당하는 것은 좋은 생각이 아니다. 드라이버 파일의 이름을 변경하더라도 바이너리 안에 포함된 이름은 변경되지 않는다. TARGETPATH 변수는 일반적으로 O.. 더보기
[TDI_FW] 예제 분석 5월 19일 int main (void) { SC_HANDLE schSCManager; SC_HANDLE schService; SERVICE_STATUS serviceStatus; char Path[256]; HANDLE hDevice; schSCManager = OpenSCManager (NULL, NULL, SC_MANAGER_ALL_ACCESS); if (!schSCManager) { return 0; } GetCurrentDirectory (255, Path); strcat (Path, "\\FILTER.SYS"); schService = OpenService (schSCManager, "FILTER", SERVICE_ALL_ACCESS); if (schService == NULL) { schService =.. 더보기
[TDI_FW] 예제 분석 5월 18일 참고 자료 : 윈도우 디바이스 드라이버 - 이봉석(한빛미디어) 604쪽 - 서비스를 생성하는 목적으로 사용되는 Win32 API 함수 정리 OpenSCManager() : 서비스를 생성하거나 제거, 중지 등의 일을 하기 위해서 사전에 사용하는 서비스 컨트롤 관리자(Service Control Manager) 핸들을 얻는 함수다. OpenService() : 기존에 생성한 서비스 핸들을 얻는 함수다. 디바이스 드라이버 서비스를 생성하기 전에 이 함수를 먼저 사용하여 드라이버를 위한 서비스가 이미 생성되어 있느닞를 알아보는 용도로 사용한다. CreateService() : 서비스를 생성하는 목적으로 사용하는 함수다. StartService() : 서비스를 실행하는 목적으로 사용하는 함수다. NT 구형(Leg.. 더보기
[MFC] 다른이름으로 저장하기 창 생성 void CUserClass::Save(void) { static char BASED_CODE szFilter[] = "한글 Files (*.hwp)|*.hwp||"; CFileDialog dlg (FALSE, "*.hwp", "*.hwp", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); if (dlg.DoModal () == IDOK) { } } 더보기
외부 프로그램 실행 방법 SHELLEXECUTEINFO sei; memset(&sei, 0, sizeof(sei)); sei.cbSize = sizeof(sei); sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT; sei.lpFile = "C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"; sei.hwnd = NULL; sei.lpVerb = "open"; sei.nShow = SW_SHOWMINIMIZED; ShellExecuteEx(&sei); 더보기
MFC MDI에서 Child Window를 최대화로 시작하기 virtual void ActivateFrame(int nCmdShow) { // if another window is open, use default if(GetMDIFrame()->MDIGetActive()) CMDIChildWnd::ActivateFrame(nCmdShow); else // else open maximized. CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); } 더보기
Thead를 이용한 암호화 / 복호화 더보기
일의 자리에서 반올림 , 올림 , 버림 (1) 일의자리에서 버림 버림: 123 일때 120 , 128 에서도 120 , .... 123 을 10 으로 나눈 몫은 12 이고 나머지는 3 123 / 10 --> 12 123 % 10 --> 3 123 - 123%10 을 하면 120 이 나옵니다. 다른 방법으로 123 을 10 으로 나눈 몫이 12 .. 123 / 10 여기에 10 을 곱하면 120 .. 123 / 10 * 10 참고로 이 성질을 이용하면 123 % 10 은 123 - 123/10*10 과 같은 표현입니다. (2) 일의 자리에서 반올림 반올림:123 에서 120 , 125 에서는 130 , 128 에서 130 수의 일의 자리에 5 를 더하면 5 이상의 수는 십이 자리로 올라가고 5 보다 작은 수는 올라가지 않습니다. (123 + 5.. 더보기
int main(void)는 이제 그만! 출처 : http://mwultong.blogspot.com/2006/12/c-argc-argv-main-function-parameter.html 각 함수에는 인수(파라미터)를 지정할 수 있습니다. 프로그램 본체인 main() 함수에도 당연히 인수를 지정할 수 있습니다. 메인 함수의 인수는, 운영체제에서 그 프로그램을 실행할 때 지정해 준 "옵션"입니다. 예를 들어 도스창(명령 프롬프트;CMD.EXE)에서 dir /? 이렇게 하면 dir 명령에 대한 도움말이 출력됩니다. 이때 "/?" 라는 문자열이 옵션이 되는 것입니다. main(int argc, char* argv[]) 에서 argc 는, 프로그램을 실행할 때 지정해 준 "명령행 옵션"의 "개수"가 저장되는 곳입니다. argv 는, 프로그램을 실행할.. 더보기