일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Sentinel
- cartalyst
- 코로나
- php
- Tutorial
- 코로나19
- javascript
- 이더리움
- Bootstrap
- 개인사업자
- elasticSearch
- Blade
- reactnative
- win32
- 당사자표시정정신청서
- auth
- 소액임금체불
- Java
- 사업자계좌
- 전자소송
- blockchain
- Eclipse
- vue
- AWS
- 인민공원
- 체당금
- 보정명령
- as후기
- Laravel
- Python
- Today
- Total
목록Development/System (29)
그냥 사는 이야기
Win32 API를 통해서 시스템이 32bit인지 64bit 운영체제 인지 알아 보려면 아래와 같은 식으로 하면 된다. GetSystemInfo vs GetNativeSystemInfo SYSTEM_INFO siSysInfo; GetNativeSystemInfo(&siSysInfo); printf(" Processor Architecture %d\n", siSysInfo.wProcessorArchitecture); GetSystemInfo() 대신 GetNativeSystemInfo()를 사용해야 한다. Windows Server 2003 x64에서 해보니 GetSystemInfo()는 0 값을 return 한다. x86으로 리턴한 것이다. MSDN에 설명이 나와 있지만 GetSystemInfo()는 과..
Sys 파일 로딩 실패 우리 제품 중 Windows Server 2003 x64에서 driver파일 로딩에서 에러가 발생하였다. ::LoadLibraryEx("C:\\WINDOWS\\System32\\drivers\\acpi.sys", 0, LOAD_LIBRARY_AS_DATAFILE); 실패한 함수는 LoadLibraryEx()였고 GetLastError()에서 파일이 존재하지 않는다고 알려준다. 하지만 저 경로에 acpi.sys 파일은 분명 있다. Wow64 지원을 위해 저 경로를 SysWow64 경로로 돌려버리는 redirection 때문에 발생하였다. 간단히 이 코드로 테스트 해보면 알 수 있다. if( 0 == _waccess_s(_T("C:\\WINDOWS\\System32\\drivers\\..
devcon util devcon(device control)은 ddk 샘플소스를 구하여 build 해서 사용해야 한다. 하지만 x86 용으로는 down 받을 수 있게 되어 있다. hwid devcon의 disable기능을 사용하면 해당 device를 사용할 수 없게 끔 할 수 있는데 device를 지정해주기 위해서는 하드웨어 id 값을 알아야 한다. 그래서 먼저 hwid를 구하려면 테스트 머신에 SAN으로 할당한 shared disk 2개를 붙여 놓은 상태이다. STORAGE 장치의 hwid를 구하고 싶었다. "STORAGE\VOLUME" 으로 시작된 부분이 hwid 이다. disable/enable 시키기 이를 가지고 disk를 disable/enable 시키기 위해서는 아래처럼 하자. devcon ..
LoadLibrary/FreeLibrary memory leak 실행 환경 Windows Server 2008 x64 MS Visual-Studio 2008 Test Code 먼저 메모리릭이 나는 코드를 간단하게 보면 while (1) { HMODULE hModule = LoadLibrary ( "C:\\Windows\\servicing\\cbsmsg.dll" ); if ( hModule ) { FreeLibrary( hModule ); } else { cout
핸들을 하나 생성하면 제거 해줘야 하는데 이상하게 MSDN 의 예제나 다른 사람들의 블로그에 잘못된 예가 올라와 있어 글을 남긴다. ICMP를 통해 ping test 하는 부분에서 메모리 leak이 많이 발생했다. 처음 봤을 때는 별 문제 없는 것 같아보였다. ICMP API는 처음 다뤄 보는 것이지만 메모리릭만 찾으면 되니깐, HANDLE hIcmpFile = IcmpCreateFile(); : dwRetVal = IcmpSendEcho(hIcmpFile,ulDestAddr,SendData,nSendSize,NULL,ReplyBuffer,nRecvSize,dwTimeout); : CloseHandle(hIcmpFile); CloseHandle()이 아니다 그런데, 그걸 MSDN의 예제에서는 handle..
WMIC명령어중 내가 주로 가져다 쓰는 것이 volume이다. volume의 data값 추출 하지만 필요한 data 필드만 쏙 가져오는 것을 몇 번 하다가 잘 안되서 말았는데 팀장님과 같이 끝장을 볼 각오로 파서 결국 알아냈다. volume where FileSystem='NTFS' get Caption, DeviceID 예전에 안되었던 것이 get을 먼저쓰고 where으로 조건을 줬었는데 안먹히고 위에 처럼 where, get 순서로 하니깐 되네... 알고나면 아닌데 모를땐 삽질하는 것이 참 고달프구만. 참고 WMI의 Win32_Volume::Dismount 실행 해보기 이 외 다양한 wmic 사용 참조 글로는 http://www.wssplex.net/TipnTech.aspx?Seq=233
Kernel Driver Code Signing kernel driver 의 code signing을 위해 인증서를 신청했다. 처음에 인증을 어떻게 하는건지? 서명은 또 뭔지 등 아는바가 전혀 없어서 뭐부터 해야 할지 잘 몰랐다. 개념 이해 간단히 정리해보면 code signing을 하려면 인증서를 가지고 code sign을 한다. 인증서란? 그 회사가 실존하는 회사라는 것을 인증 해주는 것이다. code signing이란? 그 회사에서 만들었다라고 싸인 하는 거다. 2008 & vista x64 부터는 signing 안된 드라이버는 인증서 찾느라고 아예 부팅도 안된다. 물론 개발단계에서 테스트모드로는 정식인증을 받지 않고 테스트 해볼 수 있는데 이것은 여기에 언급하지는 않겠다. 필요한건 실제 배포용 코..
x86, AMD64 arch구할 때 조심해야 할 점 드라이버 설치 할 때 요즘은 32bit용이냐 64bit 용이냐를 구분해줘야 할 필요성이 생겼다. 다른 좋은 방법도 있겠지만 우선 installshield 에서 스크립트로 처리를 했는데 command에서 set에 보면 PROCESSOR_ARCHITECTURE 부분에 있다. 그런데 이 녀석이 참 문제다. 이것 때문에 하루 반을 소비했다. 먼저 64bit OS를 설치 했을 시 보이는 환경 변수 이다. 이 cmd창은 Start 버튼에서 실행한 것이고 노랑색의 PROCESSOR_ARCHITECTURE 는 AMD64라고 알린다. 하지만 여기까지만 보고 속단하면 안된다. 이 화면은 total commander에서 cmd를 열어서 환경변수를 본 것이다. total c..