본문 바로가기

분류 전체보기

(466)
관리자 권한으로만 실행이 되던 sublime text 문제 sublime text 편집기를 깔았는데, 관리자 권한이 아닌 일반 권한으로 실행시키면 윈도우가 뜨지 못하고 죽었다. 그리고, 관리자 권한으로 실행했을 때에는 문제없이 올라왔다. 이 문제에 대해 procmon 으로 원인을 찾아 봤다. 문제 분석의 방향은, OK 경우와 NG 경우 두가지 상황을 발생시키며, 각각 의 상황에 대해 procmon 으로 sublime text 편집기 프로세스가 접근하는 레지스트리와 파일을 비교하여 차이를 살펴보는 것이다. NG 경우의 procmon 로그를 보니, 에러 메시지창이 뜬 상태에서 최종적으로 접근하려 한 comctl32.dll 파일에 대해 ACCESS DENIED 에러가 기록되어 있었다.관리자 권한으로 실행한 OK 경우의 로그와 비교하니 OK 경우에서도 동일하게 comc..
windows 7 및 비스타의 명령창 (커맨드창) 에서 파일/폴더의 소유권을 바꾸는 방법 windows 7 및 비스타의 명령창 (커맨드창) 에서 파일/폴더의 소유권을 바꾸는 방법 http://www.winhelponline.com/blog/take-ownership-of-file-or-folder-windows-7-vista/ 비스타 이전 버전에서는 파일이나 폴더의 소유권을 명령창에서 바꿀 수 없었고, 파일이나 폴더의 보안 탭에서 소유권을 바꿔야 했다. 윈도우7과 비스타에서는 takeown.exe 라는 명령툴이 포함되어 있어서, 관리자 권한의 명령 프롬프트에서 파일의 소유권을 간단하게 변경할 수 있다. 파일의 소유권 바꾸기 관리자 권한으로 명령 프롬프트를 실행한다. 다음 명령을 입력하고 엔터를 누른다.TAKEOWN /F 명령이 성공적으로 수행되면, 아래와 같은 메시지가 나올 것이다.SUCCE..
ID2D1Factory 인터페이스 http://msdn.microsoft.com/en-us/library/dd371246(v=vs.85).aspx 의 번역입니다. ID2D1Factory 인터페이스Direct2D 리소스를 생성한다. 멤버ID2D1Factory 인터페이스는 IUnknown 인터페이스를 상속하며, ID2D1Factory 는 다음과 같은 멤버도 가지고 있다. 메소드CreateDCRenderTarget 윈도우 GDI 디바이스 컨텍스트에 그릴 수 있는 렌더링타겟을 생성한다. (*)CreateDrawingStateBlock ID2D1DrawingStateBlock 을 생성한다. 렌더링타겟의 SaveDrawingState, RestoreDrawingState 과 함께 사용할 수 있다. CreateDxgiSurfaceRenderTarge..
WinDbg|전체 프로세스 메모리에서 특정 패턴 스캔하기 http://voneinem-windbg.blogspot.kr/2007/06/scan-full-process-memory-for-pattern.html 전체 프로세스 메모리에서 특정 패턴 스캔하기Scan the full process memory for a pattern 프로세스 메모리에서 특정 패턴을 스캔해야 할 때가 매우 많았다.특정 포인터이거나 문자열일 수도 있고 무엇이라도 될 수 있다.Very often I need to scan the process memory for a specific pattern.This can be either a pointer or a string or whatever and I want to find out, which other memory references th..
알파벳 순서인 A - E 로 이루어진 문자열 5개의 단어로 경우의 수를 만들려고 합니다.A,B,C,D,E경우의 수는 아래와 같은 형식의 값들을 다 뽑아 내야 하는데요. 이것을 로직화가 가능할까요.도와주세요AABACADAEABCABDABEACDACEADEABCDABCEABDEABCDEBBCBDBEBCDBCEBDEBCDECCDCECDEDDEE------------------------------------------------------def int2str(n): s0 = [ 'A', 'B', 'C', 'D', 'E' ] s = '' for i in range(5): if n&(1
front end allocator / back end allocator 최근 힙을 망가뜨리는 버그를 처리해야 했다. 그래서 힙에 대해 이런 저런 책을 찾아 보면서 공부를 좀 했는데, 이해가 안 되는 부분이 있었다. 실전 윈도우 디버깅 (advanced windows debugging) 을 보면, 힙의 구조에 대해 설명하면서 매우 비슷한 리스트인 front end allocator 와 back end allocator 에 대해 설명한다. 책에서의 설명에서는 둘 다 특정 크기의 배열을 가지고 있고, 각 배열은 대략 특정 크기의 사용이 해제된 메모리 블록 리스트의 헤더를 가지고 있다. 이런 식으로 메모리 블록을 관리하다가, 다시 할당 요구가 오면 다시 내어주고 하는 데 이 두 구조가 쓰이는 것 같다. 그런데, 이 둘은 매우 비슷하면서도 아주 살짝씩 다르다.두 가지의 설명이 매우 ..
유사진법표기 엑셀컬럼 알파벳식 숫자표기법 http://synapsoft.co.kr/jsp/recruit/13_apply.html 10진법 표기법은 다음과 같다. N = a_n x 10^n + ... + a_1 x 10^1 + a_0 x 10^0 , a_i ∈ { 0 , ..., 9 }이 표기법으로는 0 이상의 모든 수를 표현할 수 있으며, 표기법은 유일하다. 이 표기법을 살짝 바꾼 표기법을 만들어 보면, N = a_n x 10^n + ... + a_1 x 10^1 + a_0 x 10^0 , a_i ∈ { 一 , ..., 九, 十 }이 표기법으로는 1 이상의 모든 수를 표현할 수 있으며 ( 0은 표기하지 못한다. ), 표기법은 유일하다. 심볼을 10개가 아닌 알파벳 대문자를 이용하면 26진법과 유사하게 26의 거듭제곱의 합으로 표현되는 표기법이 ..
stack overflow 메모리 탐구. stack overflow 가 날 때 실제 메모리 주소를 찍어 보고, 그 값을 vmmap 툴과 비교해 봤다. 재귀함수(recursive fuction)를 배울 때 가장 많이 듣는 유의점이, 재귀함수는 stack overflow 를 유발할 수 있기 때문에 주의하라라는 말이다. 재귀함수를 이용하여 문제를 발생시켰다.재귀함수 내부에 지역변수를 하나 생성하였고, 그 지역변수의 주소를 찍었다. sysinternals 의 vmmap 툴은 프로세스를 선택하면 해당 프로세스의 메모리 공간의 각 부분이 어떤 영역으로 잡히는 지를 보여준다. 우리의 관심사는 stack 이고, stack은 0x00030000 ~ 0x00130000 영역에 잡혀있다. 첫번째 그림에서 찍힌 첫번째 r의 주소는 0x12ff48 스택 중에서도 윗부..