윈도우 암호 분실시

|

이 방법은 암호를 잊어 버렸을때 암호 제거 방법 입니다

1. [Administrator ] 계정으로 부팅이 가능 할때

   1). 컴퓨터 시작시[ F8 ]을 눌러서 [안전 모드]를 선택해서 부팅을 합니다.

    2). 사용자 계정에서 Administrator 로 로그인 합니다.

    3). 안전모드로 부팅 후

       시작=>설정=>제어판=>사용자 계정을열어

       암호가 걸린 계정으로 들어가셔서 암호를 제거합니다

2. [Administrator] 계정에 암호가 걸려 있을때

   [c:\windows\system32\config ]폴더의 [sam ]파일을 도스 명령어로 삭제하는 방법입니다

  1). 시작시 역시[ F8 ]을 눌러 멀티 메뉴에서 [안전 모드(명령 프롬푸터)]를 선택합니다

  2). 다음과 같이 각각 cd.. 을 입력하여 C 디렉토리로 이동 합니다

   C:\Documents and Settings\Administrator>cd..

   C:\Documents and Settings>cd..

  3). 만약 바로 명령프롬푸터가 C:\> 이렇게 나온다면 바로위의 방법은 생략하시고

    C:> 에 다음과 같이 입력한 후 엔터 칩니다

   C:\>CD c:\windows\system32\config
   C:\windows\system32\config>del sam
   C:\windows\system32\config>cd C:\Windows\repair
   C:\Window\srepair>copy sam*.* c:\windows\system32\config

    이상 위 명령이 정확 했다면 [Administrator] 계정 과 모든 계정의 암호가 제거 됩니다.

4). 추가 확인 사항

     a. 이 방법을 사용하여 완료한 후 부팅을시도시 만약 부팅을 거부하면

         위의 명령을 한번더 실행해 줍니다 

     b. 다행히 성공 하셨다면 부팅한후 간혹 다른 환경의 화면이면

         시스템 복원으로 원하시는 날짜로 돌립니다

               Win-XP 시스템 복원 바로가기

 

   참고로 이 명령을 실행하시면 다른 암호도 모두 지워지니 혹시 프로그램에서

   암호를 사용하시면 기억 하셔야 합니다

 3. [안전 모드]에도 암호가 걸려 있을때

    이 방법은 부팅 디스켓으로 부팅하여 도스 모드에서

    c:windowssystem32config 폴더의 sam파일을 도스 명령어로 삭제하는 방법입니다

    먼저 사용하는 운영 체제 파일 시스템의 종류를 알아야 합니다

    즉,[ FAT32] 방식인지 아니면[ NTFS] 방식인지 아래 확인 방법에서 확인합니다

  1). 확인

    내 컴퓨터를 열어 운영 체제가 설치된 파디션을 선택한 후

    마우스 우측 버턴눌러 속성을 고릅니다

    일반텝의 표시 부분에서 확인 합니다

  2). 부팅 디스켓 만들기

      여기    <ㅡ를 눌러 저의 블로그로 이동하여 좌측 메뉴 중 [웹 하드]폴더를 열어

     안내에 따라 저의 [웹 하드 ]파일중 파일 시스템에 따라 원하시는 시동 디스크를

     다운로드한 후 사용 설명서를 참고하여 시동 디스크를 만듭니다



  3).실행

     시스템 시작시[ F8] 또는[ Del ]키를 눌러 바이오스를 불러와

     부팅 순서를 플로피 룸 으로 설정 한 뒤 해당 부팅 디스켓으로 부팅을 합니다

     여기서 만약 [FAT32] 방식이면 윈 98 부팅 디스켓이 되겠죠

     그리고 [NTFS ]이면 그에 해당하는 부팅 디스켓 입니다

     부팅 디스켓으로 부팅한 후 명령 프롬프트인 C:\> 에 다음과 같이 각각 입력하여

     엔터칩니다

     C:\>CD c:\windows\system32\config
     C:\windows\system32\config>del sam
     C:\windows\system32\config>cd C:\Windows\repair
     C:\Window\srepair>copy sam*.* c:\windows\system32\config

    위 명령이 정확 했다면 시스템 재 시작한 후 성공을 확인 합니다

 4). 추가 확인 사항

     a. 이 방법을 사용하여 완료한 후 부팅을시도시 만약 부팅을 거부하면

         위의 명령을 한번더 실행해 줍니다 

     b. 다행히 성공 하셨다면 부팅한후 간혹 다른 환경의 화면이면

         시스템 복원으로 원하시는 날짜로 돌립니다

               Win-XP 시스템 복원 바로가기

신고
Trackback 0 And Comment 0

AJAX - Finally 로 IE6 메모리 누수 해결

|

메모리 누수 문제로 몇일 동안 헤메던중에 발견한것인데, 
가능할것도 같아서 발췌해서 링크 걸어요.. 
IE8 beta 에 적용해서 해보았습니다. 

링크 거신곳으로 가보시면 더 많은 자료가 있드라구요.. 

주소 : http://www.hedgerwow.com/360/dhtml/ie6_memory_leak_fix/ 

핵심은 
      var obj = document.createElement("button"); 
      ................. 
      ................. 
      try { 
        return obj; 
      } finally { 
        obj = null; 
      } 

이것입니다.. 


    /** 
    * Use the try ... finally statement to resolve the memory leak issue 
    */ 
    function createButton() { 
      var obj = document.createElement("button"); 
      obj.innerHTML = "click me"; 
      obj.onclick = function() { 
        //handle onclick 
      } 
      obj.onmouseover = function() { 
        //handle onmouseover 
      } 

      //this helps to fix the memory leak issue 
      try { 
        return obj; 

      } finally { 
        obj = null; 
      } 
    } 


    var dButton = document.getElementsById("d1").appendChild(createButton()); 

----------------------

링크

 

http://rhio.tistory.com/222

http://rhio.tistory.com/208

http://www.comefeel.com/tt/comefeel/357

http://msdn.microsoft.com/en-us/library/bb250448.aspx

http://blogs.msdn.com/gpde/pages/javascript-memory-leak-detector.aspx

신고
Trackback 0 And Comment 0

IE Memory Leak

|
IE의 메모리 릭에 관한 글입니다. 번역한 거라서 그런지 좀 덜 매끄러운 부분이 있네요. 

엄밀히 말해서 JavaScript와 JScript는 다른 언어입니다. JScript가 JavaScript 버전에 대응하기는하나 다른 언어이기 때문에 허용하는 것과 그렇지 않은 것, 그리고 가비지 컬렉터와 DOM을 다루는 방법 등이 다릅니다. 

JavaScript를 다룸에 있어서 서로 다르다는 사실을 알고 작성하셔야 나중에 "분명히 되야하는데 안되는" 일이 발생해도 당황하지 않을 수 있습니다. JScript에서는 되는게 JavaScript에서는 안될 수도 있으며 반대로 JavaScript에서는 되는 것이 JScript에서는 안될 수도 있습니다. 인코딩, 쉼표 등 이런 문제가 될만한 소재는 매우 다양합니다. 

아래에 소개해드리는 글도 JScript가 DOM과 결합할 때 메모리 릭이 있다는 글입니다. 글 중간쯤에 쓴 것과 마찬가지로 옛날에는 별 문제가 없었을지 모르지만 최근의 Ajax 처럼 DOM을 많이 다루게 되는 경우라면 메모리의 누적이 심각한 오류를 불러올 수도 있습니다. 이 외에도 IE의 버그에 관련된 여러가지 팁들이 있는데 차차 작성 혹은 번역해서 올릴 생각입니다. 

_____________________________________________________________________ 
시스템이 메모리 관리를 올바르게 하지 못한다면 그것을 메모리 릭이라 부른다. 메모리 릭은 일종의 버그이다. 증상으로는 퍼포먼스를 저하시키거나 오류가 발생하는 것 등이 있다. 

Microsoft 사의 인터넷 익스플로러에는 많은 종류의 메모리 릭이 내재하고 있는데, 그 중에서 가장 악질은 JScript 와 연동할 때 발생하는 것이다. DOM 객체가 JavaScript 객체(이벤트 핸들링 함수같은)의 레퍼런스를 포함하고, JavaScript 객체가 해당 DOM 객체에 대한 레퍼런스를 포함할 때, 순환구조가 형성된다. 이것 자체로는 문제가 되지 않는다. DOM 객체와 이벤트 핸들러에 대한 다른 참조가 없을 때, 가비지 컬렉터garbage collector (자 동 리소스 관리자)는 그들을 교정하고 사용되었던 메모리 공간을 재할당이 가능하도록 한다. JavaScript의 가비지 컬렉터는 순환에 대해 잘 이해하기 때문에 그것으로 인한 혼란이 없다. 하지만, 안타깝게도 IE의 DOM은 JScript가 관리한다. JScript의 메모리 관리자는 순환에 대해 잘 이해하지 못하기 때문에 매우 많은 혼란을 겪는다. 그 결과, 순환이 발생할 때, 메모리 교정이 일어나지 않으며, 교정되지 않은 메모리를 가리켜 누수되었다leaked고 한다. 시간이 흐르면, 이런 누수현상이 메모리 자원부족memory starvation을 유발한다. 사용된 셀이 메모리를 가득 채우면 브라우저는 자원부족으로 죽어버릴 것이다. 

위에서 언급한 현상을 시연해 볼 수 있다. 첫번째 프로그램인 queuetest1에 서 10000개의 DOM 엘리먼트(span)를 만들고 동시에 최근 10개를 제외한 나머지를 전부 삭제할 것이다. 프로그램을 실행할 때, 윈도우즈의 작업관리자의 성능탭을 이용하면 페이지 파일(PF = Page File) 사용량이 항상 일정한지 볼 수 있다. PF 사용량이 변한다면 이는 메모리 할당이 비효율적이라는 것을 의미한다. 
다음으로 두번째 프로그램인 queuetest2를 실행해보자. queuetest1과 똑같은 동작을 하지만 각 엘리먼트에 click 핸들러를 추가했다. 모질라와 오페라에서는 PF 사용량이 거의 일정한 반면에 IE에서는 메모리 누수로 초당 1MB 정도의 비율로 사용량이 점점 증가하는 것을 알 수 있다. 종종 이러한 누수현상은 모른채 지나쳤다. 하지만 Ajax 기술이 더 유명해짐에 따라 각 페이지에서 더 오래 머무르게 되고 더 많은 변화와 실패가 일반적이게 되었다. 

IE가 자기일이나 순환 교정을 제대로 못하기 때문에 그 일은 고스란히 우리 몫이 되었다. 명시적으로 순환을 해제한다면 IE도 메모리를 교정할 수 있다. Microsoft에 따르면, closures가 메모리 누수의 원인이 된다고 한다. 이건 물론 매우 틀린 말이지만, Microsoft가 자신들의 버그에 대해서 개발자들에게 아주 나쁜 조언을 하는 결과를 가져왔다. 순환구조는 DOM 쪽에서 끊는 것이 더 쉽다. 사실상 JScript 쪽에서 순환구조를 끊기란 불가능하다. 

엘리먼트를 다룰 때는, 순환구조를 끊기 전에 반드시 모든 이벤트 핸들러를 null로 만들어야 한다. 모든 이벤트 핸들러 프로퍼티에 null값을 할당하기만 하면 된다. 이런 기능을 필요할 때마다 혹은 purge와 같은 일반적인 함수로 만들어 실행할 수도 있다. 

purge 함수는 DOM 엘리먼트를 인자로 받는다. 엘리먼트의 어트리뷰트를 루프돌면서, 함수를 찾으면 null 로 만들어 순환구조를 끊고 메모리가 교정될 수 있도록 한다. 함수는 또한 모든 하위 엘리먼트들에도 같은 작용을 해서 순환구조가 잘 제거되도록 한다. purge 함수는 모질라와 오페라에는 아무런 해가 없으며 IE에만 작용한다. purge 함수는 엘리먼트가 removeChild 메소드나 innerHTML 속성으로 삭제되기 전에 호출되어야 한다. 

function purge(d) { 
  var a = d.attributes, i, l, n; 
    if (a) { 
      l = a.length; 
      for (i = 0; i < l; i += 1) { 
        n = a[i].name; 
        if (typeof d[n] === 'function') { 
        d[n] = null; 
      } 
    } 
  } 
  a = d.childNodes; 
  if (a) { 
    l = a.length; 
    for (i = 0; i < l; i += 1) { 
      purge(d.childNodes[i]); 
    } 
  } 


끝으로 세번째 프로그램 queuetest3를 실행해보자. 여기서는 DOM 엘리먼트를 삭제하기 전에 purge 함수를 호출했다. 

신고
Trackback 0 And Comment 0
prev | 1 | ··· | 78 | 79 | 80 | 81 | 82 | 83 | 84 | next