본문 바로가기

코드82

GUID를 문자열로... 문자열을 GUID로  먼저 GUID를 만드는 함수는 저번에 설명한바와 같이 CoCreateGuid()가 있다. 그리고 이렇게 생성된 GUID(128bit)를 우리가 알아볼수 있는 문자열로 바꾸는 함수가 StringFromGUID2()이다. int StringFromGUID2(REFGUID rguid, LPOLESTR lpsz, int cbMax); REFGUID rguid : 입력될 GUID 구조체의 포인터 LPOLESTR lpsz : 리턴될 OLECHAR (미리 버퍼를 할당해야한다.) int cbMax : lpsz 에 할당된 버퍼의 크기 위함수를 이용하여 우리가 임의로 만든 GUID를 String으로 바꾸어 출력해 보자. GUID guid; // GUID가 저장될 구조체 wchar_t wszCLSID[129]; // G.. 2008. 10. 9.
Guid를 이용한 Creatfile 사용.. App부분.. #include #include #include DEFINE_GUID(SampleGuid, 0x5665dec0, 0xa40a, 0x11d1, 0xb9, 0x84, 0x0, 0x20, 0xaf, 0xd7, 0x97, 0x78); #define MAXDEVICENUMBER 10 int main(int argc, char* argv[]) { SP_INTERFACE_DEVICE_DATA interfaceData; PSP_INTERFACE_DEVICE_DETAIL_DATA pData; DWORD index=0; HANDLE handle[MAXDEVICENUMBER]; char DeviceName[MAXDEVICENUMBER][256]; HDEVINFO Info = SetupDiGetClassDevs.. 2008. 10. 7.
정규식 표현 간단한 문법 참고 관련 사이트 주소 http://madchick.egloos.com/1329019 http://regexlib.com/ http://www.codeproject.com/KB/tips/CollapsingProgressBars.aspx http://creorix.com/tc/18 http://blog.naver.com/mydaylee?Redirect=Log&logNo=140035640151 http://broost.com/ 정규식 표현 문자열을 검색, 치환 과정에서 사용. 특수 문자 - ‘.’ 임의의 한글자만 표현 n Ex) a.e -> abe, ace .. - ‘*’ 바로 앞의 문자를 의미 문자X가 없거나 그 하나 이상 ( ‘*’ 앞에 하나이상 문자 존재) n Ex) s*e -> sse, sae, ad.. 2008. 10. 2.
[Anti Protect] listing the dll by peb #include #define Peb 0X1b0 #define Ldr 0x00c #define Modulist 0xc #define FileName 0x030 NTKERNELAPI VOID KeAttachProcess ( PEPROCESS Process ); NTKERNELAPI VOID KeDetachProcess ( VOID ); NTSTATUS PsLookupProcessByProcessId(__in HANDLE ProcessId,__deref_out PEPROCESS *Process); VOID ShowModules() { ULONG PEB; ULONG LDR,p,Flink,BaseAddress; PEPROCESS TargetProcess; ULONG MODULIST; PUNICODE_STRING.. 2008. 10. 2.
Get Process Full path Code DKOM 방식 char* ProcessNameByPid(IN ULONG Pid) { NTSTATUS status; ANSI_STRING ansi_filepath; PEPROCESS pCurProcess; UNICODE_STRING fullUniName; ULONG Index; char FilePath[256]; POBJECT_NAME_INFORMATION pObjNameInfo =NULL; char* Dos[12]={"C:","D:","E:","F:","G:","H:","I:","J","K","L:","M:","N:"}; status = PsLookupProcessByProcessId((HANDLE)Pid,&pCurProcess); if(!NT_SUCCESS(status)) { DbgPrint("FAIL.. 2008. 10. 2.
Detecting Hardware Insertion and/or Removal http://www.codeproject.com/KB/system/HwDetect.aspx 장치관리자에서 장치들이 어떻게 열거 되고 제거 되는 과정을 잘 보여준 유용한 소스와 샘플이 있다. 마니 도움이 되었던.^^ 2008. 9. 29.