5월, 2018의 게시물 표시

[Reading]

~때문에 지연이 발생할 수 있습니다 There may be a delay introduced because ~ DFS 클라이언트는 모든 리디렉터보다 암시적으로 우선합니다 the DFS client implicitly takes precedence over all rediector MPR에 의해 또한 수락됩니다. is also honored by the MPR MUP는 나열된 각 프로바이더 이름을 사용하여 다음 레지스트리키에서 프로바이더 레지스트리키를 찾습니다 MUP use each provider name listed to find the provider's registry key under the following registry key ~을 대신하여 prefix를 요청합니다. make the prefix claim on behalf of ~ ~한 어떤, 한 무엇(whatever) 이용가능한 이름 해결 매커니즘을 사용하여 using whatever name resolution mechanisms are available timeout의 영향을 받습니다. is subject to a timeout MUP를 완전히 우회하는 동일한 공급자로 이동합니다. go to the same provider completly bypassing MUP prefix 해결을 가져오는 이름 기반 동작은 prefix를 요구하는 프로바이더로 전달됩니다. The name-based operation which resulted in the prefix resolution is routed to the provider claiming the prefix prefix resolution operation은 2가지 용도로 사용됩니다 . the prefix ~ operation serves two purposes MPR 호출은 다음중 하나에서 발생합니다. calls to the MPR would result fro...

[WinAPI] SEH

MSDN SEH

[DDK] error C2220 : w

[WinDbg] kernel32!UnhandledExceptionFilter 콜스택에 나와 있을시 처리

출처 :  http://support.microsoft.com/kb/313109/en-us 첫번째 매개변수가 EXCEPTION_POINTERS를 가리키고 있다는게 포인트! Identify the thread that makes the call to the function  Kernel32!UnhandledExceptionFilter . It looks similar to the following: 120 id: f0f0f0f0.a1c Suspend: 1 Teb 7ff72000 Unfrozen ChildEBP RetAddr Args to Child 09a8f334 77eb9b46 0000244c 00000001 00000000 ntdll!ZwWaitForSingleObject+0xb [i386\usrstubs.asm @ 2004] 09a8f644 77ea7e7a 09a8f66c 77e861ae 09a8f674 KERNEL32!UnhandledExceptionFilter +0x2b5 [D:\nt\private\windows\base\client\thread.c @ 1753] 09a8ffec 00000000 787bf0b8 0216fe94 00000000 KERNEL32!BaseThreadStart+0x65 [D:\nt\private\windows\base\client\support.c @ 453] Switch to that thread (in this example, the thread is "~120s"). Display the memory contents at the location specified by the first parameter of  Kernel32!UnhandledExceptionFilter  by using  dd  First Param . This points to the  EXCEPTION_POINTERS ...

ASM

해당값이 NULL인 경우를 표현하는 일반적인 패턴 ========================================================== if( m_pwcsExeName ) swprintf_s( wcsBuf, _countof(wcsBuf), L"[%s] ", m_pwcsExeName ); mov r9, qword ptr [mod!CSyncError::m_pwcsExeName] test r9,r9 je jmpAddr ; r9이 0이면 jmpAddr로 감 ========================================================== 멀티바이트 nop 인스트럭션(nop dword ptr) 우연히 아래와 같은 OP-CODE를 확인하게 되었다. 000007fe`f2a11123 0f838f020000    jae     xx64!DllMain+0x3b8 (000007fe`f2a113b8) 000007fe`f2a11129 0f1f8000000000  nop     dword ptr [rax] 000007fe`f2a11130 483919          cmp     qword ptr [rcx],rbx ds:00000000`49f49000={msvcrt!memset (000007fe`fef51000)} 000007fe`f2a11133 740e            je      xx64!DllMain+0x143 (000007fe`f2a11143) 000007fe`f2a11135 4883c108    ...

[WinAPI] 구현 Namespace Extension

이미지
탐색기가 우리의 익스텐션의 파일 및 폴더를 표시하기 위해서, 우리는 Shell namespace상에서 root 폴더가 어디에 위치할지를 명시해야 합니다. 이러한 위치는 접합지점이라고 부릅니다. 아래의 URL에서 자세한 정보를 얻을 수 있습니다. https://msdn.microsoft.com/en-us/library/cc144096(v=vs.85).aspx Shell SDK Samples --------------------------------- 레지스트리 설정 부분을 보면 1. NSE COM 등록은 아래위치에 명시 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\{MyCLSID} 여기서 들어가는 기본값이 %DESCRIPTION%이다. HKCR(#Wow6432Node#)\CLSID\{MyCLSID}\ var LocalizedString MyDllPath,-201 InprocServer32 MyDllPath    var ThreadingModle 'Apartment' DefaultIcon MyDllPath ProgID RegFolder(%PROJECTNAME%) Implemented Categories \{00021490-0000-0000-C000-000000000046}  Browsable Shell Extension ShellFolder    var Attributes REG_DWORD %FOLDERATTRIBS%    var PinToNameSpaceTree s'' ShellEx 2. 어디에 표시할지 아래위치에 명시 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\ NameSpace\{MyCLSID} 여기서 들어가는 기본값이 "DisplayName"이다. --------------------------...