Vista 에서 Low Level 권한으로 Process 를 생성시키는 방법 DarkKaiser, 2008년 11월 22일2023년 9월 6일 출처 : http://rodream.tistory.com/45 BOOL bRet; HANDLE hToken; HANDLE hNewToken; // Notepad is used as an example WCHAR wszProcessName[MAX_PATH] = L"C:\\Windows\\System32\\Notepad.exe"; // Low integrity SID WCHAR wszIntegritySid[20] = L"S-1-16-4096"; PSID pIntegritySid = NULL; TOKEN_MANDATORY_LABEL TIL = {0}; PROCESS_INFORMATION ProcInfo = {0}; STARTUPINFO StartupInfo = {0}; ULONG ExitCode = 0; if (OpenProcessToken(GetCurrentProcess(),MAXIMUM_ALLOWED, Continue Reading
time_t(VC6 -> VC8) DarkKaiser, 2008년 11월 22일2023년 9월 6일 출처: http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8196&page=1출처: http://a.tk.co.kr/entry/timet-%EC%99%80-InterlockedExchange-%EC%82%AC%EC%9A%A9%EA%B8%88%EC%A7%80-Visual-Studio-2005-%EB%B3%80%EA%B2%BD VC6의 time_t가 long형으로 디파인 되어있는데요. VC8에선 요놈이 __int64이더라구요. c:\Program Files\Microsoft Visual Studio\VC98\Include\TIME.H #ifndef _TIME_T_DEFINED typedef long time_t; /* time value */ #define _TIME_T_DEFINED /* avoid multiple def's of time_t */ #endif //////////////////////////////////////////////////////////////////////////// c:\program files\microsoft visual studio 8\vc\include\crtdefs.h #ifndef _TIME64_T_DEFINED #if _INTEGRAL_MAX_BITS = 64 typedef __int64 __time64_t; Continue Reading
Visual C++ 링킹 에러 정리 DarkKaiser, 2008년 11월 17일2023년 9월 4일 출처 : http://aego.pe.kr/MFCErrors.html LNK1103 uuid.lib(servprov_i.obj) : fatal error LNK1103: debugging information corrupt; recompile module 원인 : MS SDK 버전이 VC 호환을 지원하지 않는 SDK를 설치하고 Directory를 설정해둔 경우 해결 : Directory 순서 조정 LNK4070 /OUT:filename directive in .EXP differs from output filename ‘filename’; ignoring directive 원인 : Link 탭에 설정한 Continue Reading
COM DLL만으로 tlb파일 생성및 COM사용하기 DarkKaiser, 2008년 11월 17일2023년 9월 6일 출처 : http://thepassion.tistory.com/22 visual studio도구의 OLE View나 실행oleview를 실행해서 oleviewer를 실행시킨다. FileView TypeLib메뉴를 선택해 해당 COM dll혹은 COM exe를 Open한다. 디스플레이되는 정보에서 Root로 표시되는 XXX(xxx x.x Type Library)를 클릭하면 오른쪽 윈도우에 idl파일을 생성해서 보여준다. 해당 내용을 xxx.idl로 저장한다. *.tlb 파일 생성하기방법1) – Win32 Dynamic Linked Library프로젝트 생성해 Continue Reading
Visual C++ 버젼별 배포방법 DarkKaiser, 2008년 11월 14일2023년 9월 6일 출처 : http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=51&MAEULNO=20&no=8187&page=1 제가 볼려고 정리한건데요. (다른분들 글도 인용좀 했는데 출처가 어디였는지;;;;)잘못 알고 있는거도 있을수 있습니다. 고수님들 잘못된거 답글 부탁드립니다. ㅎ 배포전에 Dependency를 이용 꼭 필요한 파일의 목록을 확인한다.(8버젼 부터는 안먹히기도 하나 그래도 꼭 확인한다)VC에 있는 Dependency툴은 단일파일로 실행되고 한번만 실행해주면 윈도우 탐색기 컨텍스트 메뉴에 자동으로 View Dependencies를 Continue Reading
메신저의 자리비움 기능 구현.. DarkKaiser, 2008년 10월 19일2023년 9월 5일 메신저의 자리비움 기능을 구현하려면 보통 후킹을 이용한다. 하지만 윈도우2000 이상부터는 윈도우에서 이 기능을 API를 통해서 제공해준다. API 이름은 GetLastInputInfo().. 문제는 윈도우2000 이상에서만 사용할 수 있으므로, 동적으로 함수 포인터를 얻어와서 사용할 것. 함수 포인터를 얻기 실패하였을 때(윈9x 계열일 때)는 기존의 후킹 방법으로 하면 되겠다. GetLastInputInfoSample.zip Continue Reading
코드사이닝 자동화 DarkKaiser, 2008년 10월 19일2023년 9월 6일 출처 : http://aego.pe.kr/AutomateCodeSigning.html#toc1 비스타 운영체제가 실행 가능한 파일 포맷(PE:.exe, .dll, .ocx)들의 코드사이닝을 강제(사용자입장에서 웬지 꺼림칙하게 느끼게)하기 시작하면서 어쩔 수 없이 기존의 배포했던 프로그램의 실행파일을 코드사이닝 처리해야 하게 되었다. 한 두개의 파일 코드사이닝이야 .bat 파일을 만들어서 하거나 아니면 직접 커맨드라인에서 signcode.exe 위저드를 통해서 처리해버려도 되지만 수백개에 달하는 파일을 처리해야 되는 경우라면 Continue Reading
xx을(를) 찾을 수 없거나 마지막 증분 링크에 의해 빌드되지 않았습니다 DarkKaiser, 2008년 10월 12일2023년 9월 5일 출처 : http://codecrue.egloos.com/782885 VisualStudio 2005 에서 컴파일하던중 아래와 같은 에러를 만나서 해결방법을 모색하던중 원인을 알아내어 올립니다. LINK : ../../Bin/Debug/xxx_d.dll을(를) 찾을 수 없거나 마지막 증분 링크에 의해 빌드되지 않았습니다. 전체 링크를 수행하고 있습니다. 매니페스트를 포함하고 있습니다… 컴파일환경 설정에서 ‘증분 링크 사용’ 에 관한 옵션 설정이 있습니다. 증분링크? 증분링크가 뭘까? 일반적으로 사용되지 Continue Reading
시스템내에 실행중인 IE의 모든 URL 얻기 DarkKaiser, 2008년 10월 12일2023년 9월 5일 참고 : http://support.microsoft.com/default.aspx?sd=msdn&scid=kb;en-us;176792 // URL을 추출합니다. ASSERT(m_spSHWinds != NULL); long nCount = m_spSHWinds-GetCount(); IDispatchPtr spDisp; for (long i = 0; i < nCount; i++) { _variant_t va(i, VT_I4); spDisp = m_spSHWinds-Item(va); SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); if (spBrowser != NULL) m_ctrlUrlList.AddString(spBrowser-GetLocationURL()); } GET_IEs_URL.zip Continue Reading
Win9x 에서 유니코드 사용가능하게 프로그래밍… DarkKaiser, 2008년 10월 12일2023년 9월 5일 요즘에는 윈도우9x을 기준으로 프로그래밍 하진 않을 것이다.다만 윈도우2000 이상을 기준으로 유니코드방식으로 작성한 프로그램을 윈도우9x에서의 호환성 차원에서 수정하는 정도일 것인데, 유니코드라는 녀석때문에 윈도우9x 계열과 부딪히게 된다. 윈도우 9x 계열에서 유니코드 방식으로 작성한 프로그램을 실행하면 프로그램이 실행되지 않는다. 이를 해결하는 방법은 아래와 같다. Compiling Your Application with the Microsoft Layer for Continue Reading