네트워크 드라이브 경로에 있는 도움말 파일을 열었을 때, 목차는 나오지만 내용이 안나오는 경우는

KB896358 보안 패치가 설치됨에 따른 현상이며

다음 레지스트리 키를 생성하면 *.chm 파일 내용을 정상적으로 볼 수 있다.


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001


하지만 해당 패치는 chm을 통해 완전한 시스템 권한을 탈취할 수 있는 보안취약점을 패치하는 것으로

이렇게 해서 사용하는 것이 답은 아닌 것 같다.

Posted by in0de
,

Windows 10 출시 1주년 업데이트를 통해 bash를 사용할 수 있게 되었다 (!)

다음과 같이 진행하면 Windows 10 bash 쉘을 설치한 후

root 유저의 패스워드를 변경하여 사용할 수 있다.

 

원칙적으로는 root 유저를 사용하기보다는

sudo 를 통해 수행할 커맨드만 root 권한으로 수행하는 게 맞겠지만

root 유저의 패스워드를 모르면 기분이 좋지 않으므로 바꿔두기로 한다.

 

 

 

C:\Users\in0de>bash
-- 베타 기능 --
이렇게 하면 Canonical에서 배포하고 다음에서 사용 가능한
조건에 따라 사용이 허가되는 Ubuntu가 Windows에 설치됩니다.
https://aka.ms/uowterms

계속하려면 "y" 입력: y
Windows 스토어에서 다운로드하는 중... 100%
파일 시스템을 추출하는 중... 몇 분 정도 걸립니다.
기본 UNIX 사용자 계정을 만드세요. 사용자 이름이 Windows 사용자 이름과 일치할 필요는 없습니다.
자세한 내용은 https://aka.ms/wslusers를 참조하세요.


새로운 UNIX 사용자 이름 입력: in0de
새 UNIX 암호 입력: ********
새 UNIX 암호 재입력: ********
passwd: password updated successfully
설치했습니다.
환경이 곧 시작됩니다.
https://aka.ms/wsldocs에서 설명서를 사용할 수 있습니다.

in0de@X:/mnt/c/Users/in0de$
in0de@X:/mnt/c/Users/in0de$ ls -la
합계 6792
drwxrwxrwx 2 root root       0  8월  9 22:26 .
dr-xr-xr-x 2 root root       0  8월  9 18:19 ..
drwxrwxrwx 2 root root       0  8월  9 18:18 AppData
drwxrwxrwx 2 root root       0  8월  9 19:44 Contacts
drwxrwxrwx 2 root root       0  8월  9 20:03 Desktop
drwxrwxrwx 2 root root       0  8월  9 19:44 Documents
drwxrwxrwx 2 root root       0  8월  9 22:57 Downloads
drwxrwxrwx 2 root root       0  8월  9 19:44 Favorites
drwxrwxrwx 2 root root       0  8월  9 19:44 Links
drwxrwxrwx 2 root root       0  8월  9 19:44 Music
                       ......
drwxrwxrwx 2 root root       0  8월  9 20:24 OneDrive
drwxrwxrwx 2 root root       0  8월  9 19:44 Pictures
drwxrwxrwx 2 root root       0  8월  9 19:44 Saved Games
drwxrwxrwx 2 root root       0  8월  9 19:44 Searches
drwxrwxrwx 2 root root       0  8월  9 19:44 Videos
-rwxrwxrwx 1 root root  262144  8월  9 18:18 ntuser.dat.LOG1
-rwxrwxrwx 1 root root  423936  8월  9 18:18 ntuser.dat.LOG2
-rwxrwxrwx 1 root root      20  8월  9 19:43 ntuser.ini

 

in0de@X:/mnt/c/Users/in0de$ cd /
in0de@X:/$ ls -la
합계 145
drwxr-xr-x 2 root root     0  1월  1  1970 .
drwxr-xr-x 2 root root     0  1월  1  1970 ..
drwxr-xr-x 2 root root     0  8월  9 22:58 acct
drwxr-xr-x 2 root root     0  3월 24 05:45 bin
drwxr-xr-x 2 root root     0  3월 24 05:54 boot
drwxrwx--- 2 root root     0  1월  1  1970 cache
drwxrwx--x 2 root root     0  1월  1  1970 data
drwxr-xr-x 2 root root     0  8월  9 22:56 dev
drwxr-xr-x 2 root root     0  8월  9 22:56 etc
drwxr-xr-x 2 root root     0  1월  1  1970 home
-rwxr-x--- 1 root root 38896  1월  1  1970 init
drwxr-xr-x 2 root root     0  3월 24 05:54 lib
drwxr-xr-x 2 root root     0  3월 24 05:42 lib64
drwx------ 2 root root     0  3월 24 05:46 lost+found
drwxr-xr-x 2 root root     0  3월 24 05:41 media
drwxr-xr-x 2 root root     0  1월  1  1970 mnt
drwxr-xr-x 2 root root     0  3월 24 05:41 opt
dr-xr-xr-x 1 root root     0  8월  9 22:56 proc
drwx------ 2 root root     0  1월  1  1970 root
drwxr-xr-x 2 root root     0  8월  9 22:56 run
drwxr-xr-x 2 root root     0  3월 24 05:45 sbin
drwxr-xr-x 2 root root     0  3월 24 05:41 srv
dr-xr-xr-x 1 root root     0  8월  9 22:56 sys
drwxrwxrwt 2 root root     0  8월  9 22:53 tmp
drwxr-xr-x 2 root root     0  3월 24 05:41 usr
drwxr-xr-x 2 root root     0  3월 24 05:45 var

 

 

in0de@X:/$ sudo su
[sudo] password for in0de: ********
root@X:/#
root@X:/# id
uid=0(root) gid=0(root) 그룹들=0(root)

root@X:/# passwd
새 UNIX 암호 입력: ********
새 UNIX 암호 재입력: ********
passwd: password updated successfully
root@X:/#
root@X:/# exit
exit
in0de@X:/$
in0de@X:/$ su -
암호: ********
root@X:~#

 

Posted by in0de
,
Network drive를 mapping하여 사용할 때,
드라이브 자체는 연결된 것처럼 나오지만
드라이브 내용이 아무 것도 없는 것처럼 나오지 않는 경우가 있다.

network drive offline 등의 키워드로 검색해보면 별별 해결책들이 나오는데
  • 기본 게이트웨이를 사용하지 않도록 설정하는 방법
  • UAC를 사용하지 않도록 하면 해결된다는 방법
어느 해결책이 잘 동작하는지는 경우에 따라 다를 지도 모르겠으나
다음의 경우를 먼저 확인해보는 것이 좋겠다.

제어판 > 동기화 센터 > 오프라인 파일 관리 > 오프라인 파일 사용 안함

원래 의도는, 오프라인 파일 기능을 통하여, 네트워크 드라이브에 대해 로컬 복사본 캐시를 두고서,
일정 시간이 지나면 자동으로 연결이 끊어지도록 하는 메카니즘으로 보이는데

정작 네트워크 드라이브를 사용하려고 할 때,
 해당 리소스를 온라인으로 변경할 방법이 없어보이므로
오프라인 파일 사용 기능을 해제한 후 재부팅하면
네트워크 드라이브가 오프라인 되는 일 없이,
정상적으로 네트워크 드라이브를 액세스 할 수 있다.

Posted by in0de
,

Symantec Software Virtualization Solution(SVS)이 언급된 경우는 드물게 있으나
아직 그 후속인 Symantec Workspace Virtualization을
한국 웹에 소개하는 것은 이 포스팅이 최초가 아닌가 한다.


한국에 비교적 널리 알려진 Thinstall이
변경 전 상태 검색, 변경 후 상태 검색을 통해
소프트웨어 설치 시 HDD가 바뀌는 모양을
매번 실행할 때마다 재현해주는 방식이라고 한다면

SWV는 가상의 레이어라는 개념을 소프트웨어에 도입하여,
설치 시 생겨나는 폴더, 파일, 레지스트리 등을 하나로 묶어
레이어라는 개념으로 다루는 것이다.


사용자들은 OS 위에 여러 프로그램을 설치하게 되는데
어떤 프로그램들은 OS를 침범하여 시스템 파일을 덮어쓰기도 하고,
여러 프로그램들을 설치하다보면 DLL 파일을 서로 덮어쓰기도 한다.
심지어는 삭제할 때, 다른 프로그램에서 필요한 파일을 묻지 않고 지워버리기도 한다.
이렇게 설치한 프로그램에 의해 문제가 생기면
그냥 모호하게 '최근에 잘 되던 상태로' 되돌리는 방법 밖에는 없다.
그마저도 제대로 되지 않는다면 결국 포맷을 하고 OS를 다시 설치하게 된다.


한편, SWV를 통해 어플리케이션, 데이터를
OS 위에 직접 설치하는 것이 아닌
독립적인 레이어 묶음으로 관리할 수 있다는 특징으로부터

일반 개인 사용자들에게는
프로그램 설치/삭제가 시스템 파일을 건드리거나 레지스트리를 더럽히거나 하지 않아
윈도우가 무거워진다거나 시스템이 꼬이는 문제를 원천적으로 해결할 수 있고

기업에서는 수많은 직원들의 PC에 패키지화된 스프트웨어들을 동일한 상태로 제공하고
동일하게 업데이트 할 수 있으며, 소프트웨어 고장을 즉시 고칠 수 있어
IT환경의 유지보수가 매우 간단해진다는 장점을 얻을 수 있다.

비록 이전의 SVS에 대한 설명이기는 하나,
이 명료한 데모를 보면, SWV의 간단한 원리와,
어떻게 활용할 수 있는 지를 볼 수 있다.

기본적인 동작 구조의 개념은 다음과 같다.

http://www.symantec.com/connect/sites/default/files/u4829/2220-1.jpg
즉, 레이어를 activate하는가, deactivate하는가에 따라,
filter driver를 통해 레이어를 읽을 지, 아니면 원래의 파일을 읽을 지를 결정하는 방식이다.
레이어의 파일 및 레지스트리는 C:\fslrdr\ 에 숨겨져 있으며
activate시에 시스템 환경변수로 등록되는 경로정보를 따라 이쪽의 파일을 읽게 된다.



기존의 제품은 Altiris Software Virtualization Solution이었고,
시만텍에서 Altiris를 인수한 후에도 SVS라는 이름을 유지하다가

레이어의 기능을 대폭 향상시키며
이름도 SWV로, 버전도 2.x에서 6.x로 크게 바뀌었다.

Dependent layer support
Layer Propery > Dependent layer 에 종속적인 레이어를 추가해두면
레이어를 활성화 시킬 때 함께 활성화 된다.
예를 들어, 자바 프로그램을 레이어로 만들고, JRE도 레이어로 만들어 둔 후
자바 프로그램의 dependent layer로 JRE 레이어를 설정해두면
JRE 레이어가 먼저 활성화 된 후 자바 프로그램 레이어가 활성화 된다.
비활성화나 layer 삭제 시에는 dependency가 작동하지는 않는다.

Layer patching
개인 사용자에게 크게 필요해 보이는 기능은 아니지만
기업 IT Environment에서
bitwise한 변경 부분만을 patching layer로 배포하여
업데이트 시간을 획기적으로 줄일 수 있다.

Layer isolation
레이어가 OS에, 또는 다른 레이어들에게 어떻게 보일 것인가에 대한 설정이 가능해졌다.
이로써, 각기 다른 레이어가 각각 다른 버전의 파일을 유지해야한다거나
서로서로 보이지 않아야 하는 경우를 설정할 수 있다.

예를 들어, 자바 버전 특성을 타는 자바 프로그램 두 개를
동시에 수행하려는 경우 이런 기능이 필요하며
dependent layer와 layer isolation 기능을 함께 사용하여
이런 문제를 해결하는 예시를 참조하면 약간 감을 잡을 수 있을 것 같다.


Multi-user (application virtualization for TS/Citrix)
다수의 사용자가 터미널 서버를 통해 가상 레이어 프로그램을 실행할 때,
사용자별로 고유한 설정을 지닌 채로 프로그램을 사용할 수 있어,
Server based computing을 구현한다.

Run normally installed applications through a virtual layer
이것은 사용하기에 따라서 상당히 획기적인 기능인데
가상 레이어를 통해서 일반 실행파일을 실행할 수 있다.
심지어는 빈 레이어를 하나 만들고,
레이어를 통해 바이러스 감염된 프로그램을 실행해도
레이어만 deactivate하면 바이러스는 사라진다.
이처럼 SandboxIE처럼 사용할 수 있게 되었다.

Clone a virtual layer
가상 레이어를 복사하는 기능인데, 버전이 달라지는 갈래길을 만들 수 있게 되었다.

Create new reset points
reset은 항상 설치 초기 상태로만 가능하여 SVS에서 매우 불만족스러웠던 부분인데
원하는 상태에서 reset point를 지정할 수 있게 됨에 따라서
좀 더 유연하게 레이어를 사용할 수 있게 되었다.

궁극적으로는 cloning이나 reset point 기능 보다는
분기가 지원되는 multi level snapshot 기능이 생겨야 할 것이다.

많은 기능이 생겨나고 기존의 기능이 향상되었음에도 불구하고
여전히 64bit를 지원하지 않고 있으며
대체 무엇을 해야 할 지 막막하게 만드는 불친절한 인터페이스도 그대로이다.
새로운 레이어를 생성할 때, 모든 layer를 deactivate 해야 하는 구조적 제약도 여전하다.

처음에는 불친절한 인터페이스 때문에 이 프로그램의 진가를 알기 어렵지만
이 뛰어난 사상과 동작방식을 이해하게 되고나면
이렇게 당연한 기능이 왜 OS에 포함되지 않았는가 오히려 의문이 든다.
Posted by in0de
,
개인 사용자가 이런 기능이 필요할 일은 없지만
NT 서버의 경우에는 hang이 발생하였으나 덤프를 발생하지 않는 경우
사후 분석이 어렵기 때문에, 강제로 덤프를 떨굴 필요가 있다.

  1. 실행 > regedit

    HKLM\System\CurrentControlSet\Services\i8042prt\Parameters\CrashOnCtrlScroll
    DWORD 값 추가 후 1로 설정

  2. Reboot하여 레지스트리 적용

  3. PS/2 키보드의 오른쪽 Ctrl + Scroll Lock 2회 누름(왼쪽으로는 실행 안됨)

  4. MANUALLY_INITIATED_CRASH(0xe2) 코드로 블루스크린, 덤프 실행됨

Posted by in0de
,
윈도우를 사용하다보면 정말 사용자를 힘겹게 하는 요소가 있는데,
자동 업데이트 후, 시스템을 다시 시작하겠다는 메시지를 끊임없이 10분 간격으로 띄우는 팝업창이다.
포커스를 강제로 빼앗아가서 컴퓨터를 사용하는데 방해가 되는데다
나중에 다시 시작을 선택해도 10분 후에 또 뜨게 된다.


이 팝업창을 최대한 뜨지 않게 하려면

Run > gpedit.msc > 로컬 컴퓨터 정책 > 컴퓨터 구성
 > 관리 템플릿 > Windows 구성요소 > Windows Update 에서
  • 예약된 자동 업데이트 설치를 자동으로 실행하지 않음 = 사용
  • 예약 설치 후 다시 시작하기 전에 다시 확인 = 사용, 1440분
를 설정해두면 팝업이 뜨는 것을 최대한 억제할 수 있다.
Posted by in0de
,

숫자에 자릿점 찍기

l33t 2009. 7. 20. 11:34

자릿수 구분단위가 없이 큰 숫자를 보는 것은 작으면서도 큰 불편함이다.

db2에서, 또는 printf를 통해서 숫자를 출력할 때 자릿점 찍기가 불가능하다.
ksh로 역시 상당히 어렵다.

다음 펄 스크립트를 사용해 숫자에 자릿점을 넣을 수 있다.
#!/usr/bin/perl -w
use strict;

sub commarize
{
    my $text = reverse($_[0]);
    $text =~ s/(\d\d\d)(?=\d)(?!\d*\.)/$1,/g;
    return(scalar(reverse($text)));
}

my $i = 0;
while ($i <= $#ARGV)
{
    my $s = commarize($ARGV[$i]);
    printf("%s\n",$s);
    ++$i;
}
exit(0);

위 내용을
PATH가 걸린 위치에 commarize 따위의 이름으로 저장하고
chmod 777 실행권한을 지정한 후
ksh 스크립트에서 다음과 같이 사용하면 된다.

foo=$(db2 -x "select count(*) from bigTable")
bar=$(commarize ${foo})
echo "Count = ${bar}"


Posted by in0de
,
윈도우를 사용하다보면
아주 드물게 탐색기에서 파일 이름이 사라지는 경우가 발생한다.



검색어를 정하기도 참 난해한 문제인데,
국내에서는 관련된 링크를 찾을 수 없고
국외에서는

vistax64.com:no-text-icons-user-folder.html
mydigitallife.info:missing-file-and-folder-names-in-windows-vista-explorer-large-icon-and-details-view-easter-egg-or-bug/
등을 찾을 수 있지만, 그대로 적용하기는 어려웠다.

이런 경우 시도해볼 수 있는 것은
해당 폴더의 보기 템플릿을 변경했다가, 모든 항목으로 원상복구하여 리셋해 볼 수 있겠다.


윈도우 2003을 사용할 때는 이 문제가 발생해서 재설치까지 했던 적이 있는데
이런 현상은 XP, Vista, Windows 2008까지 골고루 발생하는 것 같고
폴더 보기 설정 풀림 문제와 유사한 원인으로 생각된다.



http://www.vistax64.com/tutorials/70819-windows-explorer-folder-view-settings.html?ltr=W

다음 내용을 *.reg으로 생성하여 레지스트리에 병합한다.


Windows Registry Editor Version 5.00

;폴더 보기 설정 Reset
[-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU]
[-HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\BagMRU]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam\Bags]

;폴더 유형 자동 감지 기능 해제
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
"FolderType"="NotSpecified"

;폴더 보기 기억 개수 확장 (기본값 5,000개의 폴더 설정을 기억 -> 20,000 )
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00004e20


레지스트리 병합 후 재부팅하면 적용이 된다.
Posted by in0de
,
Windows Server 2008의 activation crack 이 몇 종 나와있는데
크랙하지 않고도 인증을 피해가는 법이 있어 적용해보았다.

해보니 참 어이없지만
인증 관련된 파일들을 삭제하는 것만으로도
인증을 우회할 수 있었다.

제품 키 입력 시
Serial Number을 입력하지 않고 진행
"온라인일 때 자동으로 정품인증" 체크 해제

Windows Server 2008 설치 완료 후
SL UI Notification Service를 중지하고, 사용 안 함 상태로 변경

파일 삭제 가능하도록 변경
C:\Windows\System32의
SLLUA.exe
SLUI.exe
SLUINotift.dll
각 파일의 등록정보 > 보안탭 > 고급 > 소유자탭
소유자를 Administrator로 변경

각 파일의 등록정보 > 보안탭 > Administrator 유저 선택
모든 권한 부여

파일 삭제
파일을 삭제하거나 이름을 바꾸어 백업

테스트를 위해 날짜를 미래로 변경

Reboot

PC Off할 때 잠깐 바탕화면 우측 하단에
"이 윈도우는 정품이 아닙니다"라는 메시지가 나타나고,
컴퓨터 속성에서
"오늘 정품 인증을 받아야 합니다. 지금 정품 인증을 받으십시오"
라고 나오지만,

실제로는 expire되지도 않고
역할 설치 및 Windows Update에도 제약이 없고
로그인 화면부터 막힌다던가 하는 일이 없다.


Vista SP2 RTM이 유출되어 2008에 설치해보았는데 (Vista SP2 = 2008 SP2)
SP2 설치 후 다시 한 번 위의 파일들을 rename 해준 후 reboot 해야 한다.
여전히 이 방식으로 로그인조차 안되는 상황을 우회할 수 있고,
업데이트나 관리 콘솔이 잘 동작하지만
바탕화면 오른쪽 아래에 nag message가 표시되는 것을 피할 수 없다.
이는 아마도 윈도우 리소스를 직접 수정해야 해결이 가능할 것으로 생각한다.
Posted by in0de
,

robots.txt

l33t 2008. 4. 28. 00:05
IIS로 전체 HDD를 열어놓고 쓴 적이 있었는데
알 수 없는 IP에서 하루에 두세 번씩 connect 하더니
얼마 안가서 야후와 구글에서 내 HDD의 파일 링크들이 검색되기 시작했고
외국 IP들이 들어와서 게임들을 다운로드 받아갔다. -_-

robots.txt를 사용하면 웹을 인덱싱하는 검색엔진 로봇을 차단할 수 있다.

robots.txt 는 웹페이지 root에 두어야 검색엔진 로봇이 인식하며
도메인마다 (서비스마다, 포트마다) 존재해야 한다.

전체 웹 사이트를 인덱스하지 않도록 차단할 경우
User-agent: *
Disallow: /
전체 웹사이트를 인덱스하도록 허용할 경우
robots.txt를 두지 않음

User-agent: *
Disallow:
특정 디렉토리, 파일 타입, GET방식 DATA를 인덱스 하지 않도록 차단할 경우
User-agent: *
Disallow:/cgi-bin/
Disallow: /*.php$
Disallow: /*?
Posted by in0de
,