반응형

Table 줄바꿈

  1. 강제로 줄바꿈(특수문자제외) style="word-break:break-all"
  2. 강제로 줄바꿈(특수문자포함) style="word-wrap:break-word"
  3. 줄바꿈 못하도록 nowrap
Posted by 1010
반응형

1. 소스

<html>
<head>
<title>Bizest 체험관 - KIS</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<link rel="alternate" type="application/rss+xml" href="/rss/" title="RSS feed for Bizest KIS"/>
<link rel="stylesheet" type="text/css" href="/skin/x4/css/blue.css" />
<link rel="stylesheet" type="text/css" href="/skin/x4/css/layout.css" />
<link rel="stylesheet" type="text/css" href="/skin/x4/css/form.css" />
<link rel="stylesheet" type="text/css" href="/skin/x4/css/form.css" />
<link rel="stylesheet" media="print" type="text/css" href="/skin/x4/css/print.css" />

print.css

body {
 
 /*
 font-family:"Times New Roman", serif;
 font-size:12pt;
 */

 background:none;

 margin-left: 20px;
 margin-top: 10px;
 margin-right: 20px;
 margin-bottom: 10px;
}

#container {
 width:100%;
}

#container_head {
 DISPLAY: none;
}

#container_body .left {
 DISPLAY: none;
}

#container_body {
 width:100%;
}

#container_body .right {
 width:100%;
}

#container_footer {
 DISPLAY: none;
}



출처 : http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&TYPE=0&KEY=&SC=S&&CC=&PAGE=1&IDX=639
Posted by 1010
반응형
1. JavaScript 최적화 도구
2. CSS 최적화 도구
3. 웹 사이트 성능 개선

출처 : http://www.mimul.com/pebble/default/2008/01/29/1201616760000.html

Posted by 1010
61.Linux2008. 8. 12. 17:08
반응형

사용자 생성 및 계정 관리

1. 계정 조회

현재 시스템에 로그인된 사용자 계정을 조회 / 사용자 계정에 대한 정보를 확인

          cat –n /etc/passwd

                      root  :  x  :  o  :  o  :  root  :  /root  :  /bin/bash

                        1    2    3    4      5        6          7

                                    1 : 사용자명
                                    2 : 패스워드 (/etc/shadow 파일에 암호화되어 있음)
                                    3 : 사용자 계정 uid
                                    4 : 사용자 계정 gid
                                    5 : 사용자 계정 이름 정보
                                    6 : 사용자 계정 홈 디렉토리
                                    7 : 사용자 계정 로그인 셀

 

            cat –n /etc/shadow

                          root  :  #$%!234^x13  :  11535  :  o  :  99999  :  7  :  :  :  :

                            1            2            3      4      5      6  7  8  9

                                        1 : 사용자명
                                        2 : 패스워드
                                        3 : 패스워드 파일 최종 수정일
                                        4 : 패스워드 변경 최소일
                                        5 : 패스워드 변경 최대일
                                        6 : 패스워드 만료 경고 기간
                                        7 : 패스워드 파기 기간 (패스워드 파기 후 계정 비활성 기간)
                                        8 : 계정 만료 기간
                                        9 : 예약 필드


2. 계정 생성 및 암호 설정

useradd  생성할 계정명

passwd  생성한 계정명

useradd [옵션] 로그인 계정

            -c comment : 사용자 이름 또는 정보
            -d home_directory : 사용자 계정 홈 디렉토리
            -e expire_date : 사용자 계정 유효 기간
            -f inactive_time : 비활성 기간
            -g initial_group : 기본 그룹
            -G grout : 다음 그룹
            -s shell : 기본 로그인 셀
            -u uid : 사용자 계정 uid

 
3. 계정 변경

usermod [옵션] 로그인 계정

-c comment : 사용자 이름 또는 정보
-d home_directory : 사용자 계정 홈 디렉토리
-e expire_date : 사용자 계정 유효 기간
-f inactive_time : 비활성 기간
-g initial_group : 기본 그룹
-G grout : 다음 그룹
-s shell : 기본 로그인 셀
-u uid : 사용자 계정 uid

                      usermod –d /home/user –m user
                      usermod –e 2003-04-05 user
                      usermod –f 3 user
                      usermod –g users user


4. 계정 삭제

userdel –r 계정 (-r : 해당 계정자의 홈디렉토리까지 한 번에 삭제)

 
5. 그룹조회

cat –n /etc/group

 
6. 그룹생성

groupadd [-g GID [-o]]            그룹 id (-o : GID 499이하 값으로 지정)

                      [-r]                    그룹 id 499이하 값으로 자동 지정
                      [-f]                    강제로 생성

                          groupadd –g 900 toheart (900 – groupid / toheart – 그룹명)

 
7. 그룹변경

groupmod [-g gid [-o]]            gid변경

                        [-n]                    새로운 그룹명으로 변경

                                    groupmod –g 700 toheart
                                    groupmod –n kkum toheart


8. 그룹삭제

groupdel group            group 제거

출처 : http://cafe.naver.com/frody.cafe?iframe_url=/BoardRead.do%3Farticleid=11

Posted by 1010
반응형

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> obxGetColor, obxStickGraph</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr" />
 <script>
 IE=(window.showModalDialog) ? true : false;

 function obxGetColor(color,gap) {

  var rtn='',col,tmp;

  for(var x=0;x <6; x+=2) {
   col=parseInt(color.substr(x,2),16)+gap;
   if (col > 255) col = 255;
   else if (col < 0) col=0;

   if(col < 10) rtn+='0'+col.toString(16);
   else rtn+=col.toString(16);
  }

  return rtn;
 }


 function obxStickGraph(dsize) {

  this.step=3;
  this.speed=10;
  this.total=0;
  this.max=0;
  this.dsize=dsize;
  this.statictext=false;

  this.item= new Object();

  this.add = function (id,size,color,text) {
   this.total += size;
   this.max=Math.max(this.max,size);
   this.item[id]= {'size' : size, 'color' : color.replace('#',''), 'text' : text}
  }

  this.draw = function (id,action) {

   var dColor=obxGetColor(this.item[id].color,-20);

   document.write("<div></div>");
   //this.item[id].div=document.body.appendChild(document.createElement('div'));
   var divs=document.getElementsByTagName('div');
   this.item[id].div=divs[divs.length-1];

   this.item[id].div.style.borderLeft="1px solid #"+dColor;
   this.item[id].div.style.overflow="hidden";
   this.item[id].div.style.height="11px";

   if(!action) this.actDraw(id);
   else this.actDraw(id,5);

  }

  this.getCss= function(width,height,color,bwidth,bcolor) {
   if(width<1)width=1;
   return "overflow:hidden;width:"+width+";height:"+height+";background-color:"+color+";border-right:"+bwidth+"px #"+bcolor+" solid";

  }

  this.actDraw= function(id,limit) {

   var pp = this.item[id].size / this.total;
   var sizep = this.item[id].size / this.max;

   if(!limit) var size=this.dsize * sizep;
   else size=limit;

   var hit = Math.round(this.max/this.dsize*size);
   var percent =(Math.round(this.max/this.dsize*size)/this.total*100).toString().match(/[0-9]*(?:\.[0-9][0-9])?/);

   var text = (this.item[id].text) ? this.item[id].text.replace('#',hit).replace('$',percent) : percent + " %"


   var Color=this.item[id].color;
   var hColor=obxGetColor(Color,20);
   var hhColor=obxGetColor(Color,30);
   var dColor=obxGetColor(this.item[id].color,-20);
   var add='',d;

   if(IE || opera) d=new Array(3,2,1);
   else d=new Array(3,4,5);

   this.item[id].div.innerHTML= ''
    +'<div style="'+this.getCss(size-d[0],1,hColor,1,hhColor)+'"></div>'
    +'<div style="'+this.getCss(size-d[1],2,hColor,3,hhColor)+'"></div>'
    +'<div style="'+this.getCss(size-d[2],2,hColor,5,hhColor)+'"></div>'
    +'<div style="'+this.getCss(size-d[2],1,hhColor,5,hhColor)+'"></div>'
    +'<div style="'+this.getCss(size-d[2],2,Color,5,hhColor)+'"></div>'
    +'<div style="'+this.getCss(size-d[1],2,Color,3,hhColor)+'"></div>'
    +'<div style="'+this.getCss(size-d[0],1,dColor,1,hhColor)+'"></div>'
    +'<span style="position:relative;top:'+(-11-IE)+'px;left:'+(((this.statictext)?this.dsize*sizep:size)+5)+'px;font:7pt verdana">'+text+'</span>'

   if(limit)
   if(this.dsize * sizep > limit) {
    obxStickGraphRunObject=this;
    setTimeout('obxStickGraphRunObject.actDraw("'+id+'",'+(limit+this.step)+');',this.speed);
   }else{
    setTimeout('obxStickGraphRunObject.actDraw("'+id+'");',this.speed);
   }

  }


 }


 grp=new obxStickGraph(200) ;
  grp.add('id1',100,'F8CF7B');
  grp.add('id2',200,'#D1D3D3');

  grp.add('id3',500,'FDB480','# hit ($ %)');
  grp.add('id4',300,'3399ff','# hit');
 </script>
 <style>
  td {font: 11px gulim}
 </style>

</head>


<body>

<table>
<tr>
 <td>
  항목 1
 </td>
 <td width="300">
  <script>grp.draw('id1',true);</script>
 </td>
 <td>
  동적 드로우, 기본출력
 </td>
</tr>

<tr>
 <td>
  항목 2
 </td>
 <td>
  <script>grp.draw('id2');</script>
 </td>
 <td>
  정적 드로우, 기본출력
 </td>
</tr>

<tr>
 <td>
  항목 3
 </td>
 <td>
  <script>grp.draw('id3',true);</script>
 </td>
 <td>
  동적 드로우, "# hit" 출력
 </td>
</tr>

<tr>
 <td>
  항목 4
 </td>
 <td>
  <script>grp.draw('id4');</script>
 </td>
 <td>
  정적 드로우, "# hit" 출력
 </td>
</tr>

</table>


<xmp>

생성 :

 <script>

  grp=new obxStickGraph(200) ;
  //젤 긴게 200px 만하게 grp란걸 만든다 (그래프 길이"만" 입니다, 글자 때문에 더 깁니다.)

  grp.add('id1',100,'F8CF7B');
  //그 grp로 명령을 내립니다.
  // "id1" 아이디로 100이란 값을 넣어준다 이때 색은 F8CF7B로
  //색은 조금 어두운 부분(그래프 밑부분)색입니다

  grp.add('id2',200,'#D1D3D3');

  grp.add('id3',500,'FDB480','# hit ($ %)');
  // 4번째 인자는 출력 문잡니다. #은 값으로 $는 퍼센트값으로 바뀝니다

  grp.add('id4',300,'3399ff','# hit');

 </script>


출력 :

 <script>

  grp.draw('id1',true);
  //아이디에 해당되는 그래프를 출력합니다,
  //이때 두번째 인자는 옵션이고 true로 해주면 동적으로 그립니다.(비추-_-;)

 </script>


동적옵션코드 :

 <script>
  grp.step = 3;
  grp.speed = 10;
  //그려주기(grp.draw()) 전에 이런 코드를 넣어주셔도 됩니다.
  //동적으로 그릴때 쓰는 옵션인데
  //스텝은 한번에 늘어나는 길이(픽셀)고, 스피드는 한번 돌아가는;; 속도입니다. 적을수록 빠르고 0이 최소값입니다.

 +yser님의 조언

  grp.statictext=true
  //텍스트 표시를 정적으로 합니다.
 </script>


</xmp>




</body>
</html>

Posted by 1010
90.개발관련문서2008. 8. 12. 16:15
반응형

00 오른쪽 마우스 메뉴에 도스창 열기 추가하기

원문 : http://kkamagui.springnote.com/pages/392898

참고 : http://zextor.tistory.com/2669790

 

들어가기 전에...


1.추가 방법

DOS 시절부터 컴퓨터를 이용하였거나 프로그래머 개발자의 경우 아직도 Dos이용하고 있습니다.

하지만 DOS를 실행하고 원하는 폴더에 접근하기 위해서는 원도우키 + R  또는 [시작]→[실행] 후 “ CMD “ 를 입력 후 도스창이 실행되면 CD 명령어를 이용하여 원하는 폴더에 이동할 수 있습니다.

레지스트리를 수정하여 탐색기를 이용하여 먼저 가고자 하는 폴더에 접근 후 DOS를 실행 하여 바로 해당 폴더의 경로로 연결되어 사용하기 편리합니다.


1. [시작]→[실행]에서 “regedit “를 입력하고 레지스트리 편집기를 실행한 후, 다음 키 값을 찾는다. HKEY_CLASSES_ROOT\Directory\shell

2. Shell 키 위에서 마우스 오른쪽 마우스 클릭(또는 shell 키 선택 후 오른쪽 공백에서 오른쪽 마우스 클릭) 후 [새로 만들기(N)] → [키]를 선택합니다.

3. 새로운 키의 이름을 DOS(이름은 원하시는 이름으로 하셔도 됩니다.)로 수정합니다.

4. 만들어진 DOS 키를 클릭 후 오른쪽의 기본값을 더블 클릭하여 오른쪽 마우스에 표시될 이름을 입력하여 주십시오. ( 예를 들어 도스창이라 입력합니다. )

5. 다음 새로 만들어진 DOS에서 Shell 과 마찬가지로 새로운 키를 만들어 Command 이름으로 수정합니다. ( DOS 와는 달리 반드시 command 이름으로 하여야 합니다. )

6. 만들어진 Command 키를 클릭 후 오른쪽의 기본값을 더블 클릭하여 cmd.exe /k cd "%1" 이라는 문자열을 입력하여 주십시오.

7. 컴퓨터를 재 시작하여 탐색기 실행 후 가고자 하는 폴더를 선택 후 오른쪽 마우스 클릭 후 도스창을 클릭하시면 해당 폴더의 경로로 도스창이 열리는 것을 확인 할 수 있습니다.


본 자료는 (주)웰비아닷컴 의 커뮤니티 - 활용팁 에서 스크랩한 것입니다.


이 자료 외에도 많은 정보가 있으니 필요하신 분은 직접 방문해 보시길 바랍니다.

본 페이지에서는 재부팅 후에 사용할 수 있다고 기술하였지만 바로 사용하고 싶으시면 아래와 같이 해주시면 됩니다.


1. '시작' 이 있는 작업표시줄에 마우스 오른쪽 버튼을 눌러 작업관리자를 띄움니다.

2. 프로세스 탭에서 explorer.exe 를 선택하여 프로세스 끝내기를 합니다. 경고가 뜰 경우 그냥 "예" 를 선택하십시오.

3. 그럼 밑에 작업표시줄이 없어질 것 입니다.

4. 그럼 아까 작업관리자의 응용 프로그램 탭으로 이동한 후 새 작업을 클릭합니다.

5. 열기 옆에 있는 입력창에 "explorer" 를 입력합니다.

6. 이제 탐색기의 오른쪽 메뉴에 DOS를 사용할 수 있습니다.

Posted by 1010
반응형

Network Monitor (Netmon)는 네트워크 프로토콜 트래픽 분석 유틸리티입니다.
Network Monitor 3.1 을 사용해서 네트워크 프로토콜을 수집하는 몇 가지 방법을 정리하였습니다.

Netmon 2.x와 3.x의 가장 큰 변화는 캡쳐 필터링이라고 생각합니다.
캡쳐 필터링 옵션 변화에 따른 패킷 수집 방법을 사례 별로 아주 기본적인 테스트를 해 봅니다.

일반적으로 Netmon 트래픽을 수집하기 위해서는 Client와 Server 측에서 함께 로그 수집을 해야
문제 해결을 위한 보다 정확한 데이터를 얻을 수 있습니다.


아래 그림은 Netmon 3.1 인터페이스입니다.
Catpure Filter 제어, Frame Summary, Frame Details, Hex Details 값을 바로 확인할 수 있습니다.

Capture Filter 에 Filter 구문을 작성한 뒤 반드시 Verify, Apply 하여 체크 및 필터를 적용해야 합니다.

사용자 삽입 이미지




























[환경]
Server : 192.168.0.100
Client : 192.168.0.133


Case 1. 특정 Source IP Address(192.168.0.133) 에서 유입되는 Packet 확인

IPv4.SourceAddress = 192.168.0.133

Client 에서 Server 로 터미널 서비스 접속을 시도 하였습니다.

사용자 삽입 이미지


























Case 2. TCP Source Port 가 3389인 frame 확인

Tcp.Port == 3389

Client 에서 Server 로 터미널 서비스 접속을 시도 하였습니다.

사용자 삽입 이미지


























Case 3. 3389 port Packet은 캡쳐하지 않음

Tcp.Port != 3389

터미널 서비스 3389 포트 커넥션을 시도 하였으나 아래 그림과 같이 캡쳐되지 않습니다.

사용자 삽입 이미지



























Case 4. ARP Packet 찾기

ARP
사용자 삽입 이미지



























Case 5. Source Port 1096, Destination Port 3389 과 일치하는 Packet

Tcp.SrcPort == 1096 AND Tcp.DstPort == 3389
사용자 삽입 이미지



























Case 6. Command 명령을 이용한 Packet 수집
C:\Program Files\Microsoft Network Monitor 3\> nmcap /network * /capture /File client.cap:10M

수집이 완료되면 Ctrl + C 를 입력하여 수집을 중지합니다.

사용자 삽입 이미지
























자, 수집을 하셨으니 이제 분석을 해야겠죠?
누가하죠? 어떻게?.... What?
약은 약사에게 패킷 분석은 과장님에게 ^^;


[참고자료]
Microsoft Network Monitor 3.1
http://www.microsoft.com/downloads/details.aspx?familyid=18b1d59d-f4d8-4213-8d17-2f6dde7d7aac&displaylang=en

The Basics of Reading TCP/IP Traces
http://support.microsoft.com/kb/169292/en-us

Explanation of the Three-Way Handshake via TCP/IP
http://support.microsoft.com/kb/172983/en-us

Into to Filtering with Network Monitor 3.0
http://blogs.technet.com/netmon/archive/2006/10/17/into-to-filtering-with-network-monitor-3-0.aspx


작성자 : Lai Go / 작성일자 : 2008.07.01

Posted by 1010
카테고리 없음2008. 8. 12. 15:30
반응형
작성자 : 기술지원부 김 삼 수 <kiss@nextline.net>
 
아파치 2.X 버전에서 mod_cband를 이용한 트래픽관리
 
mod_cband 이란?
Apache에서 개별홈페이지의 일hit수 제한 및 트래픽을 관리하기 위해 사용하는 모듈로서apache 2.x버전에서 사용할 수 있으며 apache를 Dos방식과 Static방식 중 어느 방식으로 설치했느냐에 따라 적재방법 또한 다릅니다. DOS방식의 mod_cband 모듈적재 및 설정 방법을 알아보도록 하겠습니다.
 
[주요기능]
Apache2용 가볍운 트래픽제한 모듈
   * 사용자별 대역폭제한 기능
   * 가상호스트별 대역폭 제한 기능
   * 목적지별 대역폭 제한 기능
   * 제한기능:
         o 모든사용자 대역폭 제한
         o 다운로드 속제 제한
         o 초당요청수 제한
         o 아이피대역별 제한
   * Support for virtualhosts
   * Support for defined users
   * 제한결과 웹을 통한 확인 (/cband-status)
   * 각 사용자별 제한 결과 확인(/cband-status-me)

 
( 1 ) 다운로드

http://freshmeat.net/redir/mod_cband/60304/url_tgz/mod-cband-0.9.7.5.tgz
http://cband.linux.pl/downloads
 
리눅스 쉘 명령어
 
① tar zxvf mod-cband-0.9.7.5.tgz 파일을 다운로드 합니다.
wget은 웹에서 자동적으로 파일을 받아오는데 사용되는 유틸리티이며 HTTP, HTTPS, FTP 프로토콜을 지원합니다.
[root@nextline bin]# wget
http://freshmeat.net/redir/mod_cband/60304/url_tgz/mod-cband-0.9.7.5.tgz
 

 
( 2 ) 압축해제
 
[tar 명령어 옵션]

tar 명령어는 파일을 묶거나 풀 때 사용되는 리눅스 명령어 입니다.
c : tar 파일을 생성할 때 사용합니다.(여러 개의 파일을 하나의 파일로 묶을 때)
v : 묶을 때나 풀어줄 때 파일들의 내용을 자세하게 보여줍니다.
z : gzip과 관련하여 압축이나 해제를 한꺼번에 하려고 할 때 사용합니다.
x : 주어진 이름의 파일에 대하여 추출합니다.
사용법 : tar [옵션] 파일명
 
리눅스 쉘 명령어

① 다운로드된 mod-cband-0.9.7.5.tgz 파일의 압축을 해제 합니다.
[root@nextline bin]# tar zxvf mod-cband-0.9.7.5.tgz
 


( 3 ) 컴파일
 
리눅스 쉘 명령어

① 압축 해제한 mod-cband-0.9.7.5 디렉토리로 이동 합니다.
[root@nextline bin]# cd mod-cband-0.9.7.5

② ./configure 명령을 실행합니다.
./configure 명령은 프로그램을 설치하기 위해 환경설정을 하는 것으로 ./configure 후Makefile파일이 생성됩니다. 모듈을 적재하기 위해 컴파일을 합니다.
[root@nextline mod_throttle-3.1.2]# ./configure
 

 
( 4 ) make
 
리눅스 쉘 명령어

① make 명령을 실행합니다.
make 명령은 대상 디렉토리의 Makefile이라는 이름을 가지고 있는 파일을 보고, 거기에 설정되어 있는 컴파일 명령을 shell을 통해서 실행하는 명령입니다. ./configure 작업에 의해 생성된 Makefile을 참조하게 되며 소스코드를 실제로 컴파일해서 bibary 파일을 생성합니다.
[root@nextline mod_throttle-3.1.2]# make
 
 
 
( 5 ) make install

① make install 명령을 실행합니다.
make 명령에 의해 생성된 binary 파일을 지정된 디렉토리로 이동시켜주며 실제 프로 그램 설치 작업이 이루어집니다.
[root@nextline mod_throttle-3.1.2]# make install
 
 
   
( 6 ) mod_cband.so 파일생성 확인

① ls 명령어를 이용하여 아파치 모듈들이 위치한 modules 디렉토리에 mod_cband.so 파일이 생성 되었는지 확인합니다.
[root@nextline mod-cband-0.9.7.5]# ls /usr/local/apache/modules/
 
 
 
( 7 ) 모듈적재 확인

 
[vi 에디터 사용법]
 
사용형식 : vi [옵션] [생성할 파일명/편집할 파일명]
 
vi 에디터는 입력모드, 명령모드, 실행모드로 구분됩니다.

입력모드 : vi 편집화면에서 문자를 입력할 수 있는 모드로서 입력모드로 진입하기 위해서는 i, a, o, I, A, O, R등이 있습니다. 즉 초기 vi 편집기 모드는 명령어 모드로 진입을 하기때문에 문자를 입력하기 전에 앞의 단축키중 하나를 먼저 입력해야 원하는 문자를 입력할 수 있습니다.
 
명령모드 : 커서이동/문자삭제/문자(열)교체/문자열검색 등을 할수 있는 모드로서 입력모드에서 편집이 완료되면 Esc키를 눌러 명령모드로 진입하면 됩니다.
 
실행모드 : 특별한 명령어를 실행하는 모드로서 명령어모드에서 ":"(콜론)를 누르면 vi 화면 하단 좌측에 vi 특수명령어를 입력할 수 있습니다.
 
실행모드의 일반적으로 쓰이는 특수 명령어
q : 수정 작업이 이루어지지 않은 상태에서 vi 편집기에서 빠져나옵니다.
q! : 수정 작업이 이루어진 부분을 적용시키지 않고 vi 편집기를 강제로 빠져나옵니다.
w : 수정된 작업을 저장합니다.
wq : 수정된 작업을 저장하고 vi 편집기에서 빠져나옵니다.
 
초기 명령어모드 -> 입력모드진입 -> 편집 -> 명령어모드 -> 실행모드 -> 종료
 
① httpd.conf파일에 모듈이 등록되었는지 확인합니다.
[root@nextline mod-cband-0.9.7.5]# vi /usr/local/apache/conf/httpd.conf
LoadModule cband_module         libexec/mod_cband.so
 

 
( 8 ) httpd.conf파일의 메인 환경설정

메인 설정 부분은 가상호스트에도 공통으로 적용되는 설정으로 mod_cband 모듈을 적용시키기 위해 아파치 환경 설정파일인 httpd.conf을 수정합니다.
 
① vi 에디터를 이용하여 httpd.conf파일을 엽니다.
[root@nextline mod-cband-0.9.7.5]# vi /usr/local/apache/conf/httpd.conf
 
② 아파치에 cband 모듈을 적용시키기 위해 다음 라인을 추가 합니다.
 
<IfModule mod_cband.c>
        <Location /cband-status>
                SetHandler cband-status
        </Location>
        <Location /cband-status-me>
                SetHandler cband-status-me
        </Location>
        <Location /~*/cband-status-me>
                SetHandler cband-status-me
        </Location>
        <Location /cband-status>
                Order deny,allow
                Deny from all
                Allow from all
        </Location>
</IfModule>
 
 
  ③ 트래픽 관리자모드 접근 ip설정

<Location /cband-status>
                           Order deny,allow
                           Deny from all
                           Allow from all
        </Location>
 
위 설정은 throttle로 분석된 일hit 및 일 트래픽 제한에 대하여 상황페이지를 볼 관리자페이지에 대한 접속제한 설정입니다. 즉 관리자PC 한곳에서만 분석된 결과페이지를 볼 수 있도록 하려면 아래와 같이 수정합니다.
 
관리자 PC 아이피 : XXX.XXX.XXX.XXX

<Location /cband-status>
                           Order deny,allow
                           Deny from all
                           Allow from XXX.XXX.XXX.XXX
         </Location>

 
( 9 ) 가상호스트 환경설정
 
개별 홈페이지 트래픽 현황 및 관리를 하기 위해서는 httpd.conf <Virtual Hosts>부분에 홈페이지 별로 설정을 하여야 합니다.
 
nextline.co.kr 도메인에 하루에 300M(300*1024*1024byte)의트래픽을 제공하는 설정입니다. bit로 따지면, 2.4Gbit/일 트래픽을 제공하는 것입니다. 만약 하루에 300M를 초과했다면, 503 에러 페이지가 뜨게 됩니다.
 
① nextline.co.kr 도메인을 가진 가상호스트를 추가 하도록 하겠습니다.
 
<VirtualHost xxx.xxx.xxx.xxx>
DocumentRoot /home/nextline/public_html
Servername nextline.co.kr
ServerAlias www.nextline.co.kr
CBandLimit 300Mi
CBandPeriod 1D
</VirtualHost>

 

② httpd.conf 설정 후 적용시키기 위해 apache를 재 시작 시켜 줍니다.
[root@nextline mod-cband-0.9.7.5]# /usr/local/apache/bin/apachectl restart

 
( 10 ) 서버전체 cband 상황보기 (관리자모드)
 
일hit수 일전송량의 제한을 웹브라우즈로 확인하기 위하여 다음과 같은 URL로 확인하도록 하겠습니다. 먼저 서버전체의 제한사항을 관리자가 확인하기 위한 예입니다.
cband 페이지는 기본 15초마다 리플레쉬 합니다.
 
① 주도메인이 nextline.co.kr로 설정된 예입니다.
확인하는 방법 :http://IP주소/cband-status
 

② 개별사이트 cband 상황보기 (사용자모드)
확인하는 방법 : http://nextline.co.kr/cband-status-me
 

 
( 11 )지시자 및 단위설명

  단위
  전송속도 단위
  kbps, Mbps, Gbps - bits per second:1024, 1024*1024 , 1024*1024*1024 bps
  kb/s, Mb/s, Gb/s - bytes persecond:  1024, 1024*1024, 1024*1024*1024 b/s
  기본 : kbps
 
  트래픽 쿼터 단위
  K, M, G - bytes: 1000, 1000*1000,1000*1000*1000 bytes
  Ki, Mi, Gi - bytes: 1024, 1024*1024,1024*1024*1024 bytes
  기본 : K
 
  시간(기간) 단위
  S, M, H, D, W - 초, 분, 시간, 일, 주
  기본 : S
 
  지시자들
  이름 : CBandDefaultExceededURL
  설명 : 제한을 초과했을때보여줄 URL  (지정하지 않으면, 503 에러 페이지)
  문맥 : Serverconfig
  문법 :CBandDefaultExceededURL URL
 
  이름 : CBandDefaultExceededCode
  설명 : 제한을 초과했을시 보여줄 에러코드
  문맥 : Server config
  문법 :CBandDefaultExceededCode HTTP_CODE
  예제 :CBandDefaultExceededCode 509 
 
  이름 : CBandScoreFlushPeriod
  설명 : scoreboard 파일에기록할 요청수, mod_cband 의 성능에 영향을 준다.
  기본값 : 1
  문맥 : Server config
  문법 :CBandScoreFlushPeriod 요청수
  예제 :CBandScoreFlushPeriod 100 (매 100번의 요청에 한번씩 scoreboard 파일에 기록)
 
 
  이름 : CBandSpeed
  설명 : 가상호스트 도메인의 최대 속도,요청수, 접속수  설정
  문맥 :<Virtualhost>
  문법 : CBandSpeed kbpsrps max_conn
       kbps - 초당 최대 전송속도
       rps - 초당 최대 요청수
       max_conn - 최대 동시 접속수
       예제 : CBandSpeed 102410 30
       최대 1024kbps전송속도로 제한, 초당 10개의 요청 처리, 동시 접속을 30개로 제한.
 
  이름 : CBandRemoteSpeed
  설명 : 접속자(IP)의 최대속도, 요청수, 접속수 제한 (접속자당 설정)
  문맥 :<Virtualhost>
  문법 : CBandRemoteSpeedkbps rps max_conn
        kbps - 초당 최대 전송속도
        rps - 초당최대 요청수
        max_conn - 최대 동시 접속수
        예제 : CBandRemoteSpeed20kb/s 3 3
        접속자(ip)에대해 최대 20kb/s , 초당 3개의 요청, 동시 접속 3개로 제한.
 
  이름 : CBandClassRemoteSpeed
  설명 : 정의한 class(ip 범위)에대해 최대속도, 요청수, 접속수 제한
  문맥 :<Virtualhost>
  문법 :CBandClassRemoteSpeed class_name kbps rps
        class_name - 이미 정의한 클래스 이름 (IP범위)
        kbps - 초당 최대 전송속도
        rps - 초당 최대 요청수
        max_conn - 최대 동시 접속수
  예제 : <CBandClassgooglebot_class>
          CBandClassDst 66.249.64/24
          CBandClassDst 66.249.65/24
          CBandClassDst 66.249.79/24
         </CBandClass>
          CBandClassRemoteSpeedgooglebot_class 20kb/s 2 3
          위에서 정의한클래스(googlebot_class)의 요청에는 20kb/s 의 전송속도,
         초당 3개의 요청, 동시 접속 3개로 제한.
 
  이름 : CBandRandomPulse
  설명 : 속도 제한을 위해서 임의의파형을 생성한 다음 처리하는 mod_cband의 처리 방법이다. 부하가 많을 때는 자동 Off된다.

  문맥 : Global
  문법 : CBandRandomPulseOn/Off
 
  이름 : CBandLimit
  설명 : 제한할 전송량을 설정한다.(기간은 CBandPeriod 에서 설정)
  문맥 :<Virtualhost>
  문법 : CBandLimit limit
        limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi)
  예제 : CBandLimit 10M
        전송양을 10M(10*1000*1000bytes)로 제한한다.
        CBandLimit 10Mi
        전송양을 10M(10*1024*1024bytes)로 제한한다.
 
  이름 : CBandClassLimit
  설명 : 정의한 class(ip범위)에대해 제한할 전송량 설정.
  문맥 :<Virtualhost>
  문법 : CBandClassLimitclass_name limit
        class_name - 이미 정의한 클래스 이름(ip범위)
        limit - 전송량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi)
 
  이름 : CBandExceededURL
  설명 : 제한을 초과했을시 보여줄URL, 지정하지 않으면 503 에러 발생
  문맥 :<Virtualhost>
  문법 : CBandExceededURLURL
 
  이름 : CBandExceededSpeed
  설명 : 전송양을 초과했을시 , 전송속도제한 설정.
  문맥 :<Virtualhost>
  문법 :CBandExceededSpeed kbps rps max_conn
        kbps - 초당 최대 전송속도
        rps - 초당 최대 요청수
        max_conn - 최대 동시 접속수
  이름 : CBandScoreboard
  설명 : 가상호스트의 scoreboard파일 지정. (성능향상을 위해 필요)
  문맥 :<Virtualhost>
  문법 : CBandScoreboardpath
        (path는 아파치(nobody또는 apache)권한으로 쓰기 가능해야 함)
 
이름 : CBandPeriod
  설명 : 용량제한기간(이 기간이 지나면,측정되었던 용량은 지워진다.)
  문맥 :<Virtualhost>
  문법 : CBandPeriod period
        period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
  예제 : CBandPeriod1W  (1주일)
        CBandPeriod 14D  (14일)
        CBandPeriod 60M  (60분)
 
  이름 : CBandPeriodSlice
  설명 : 기간이 길때는 나눌 기간을명시한다.
  기본값 : slice_len = limit
  문맥 :<Virtualhost>
  문법 : CBandPeriodSliceslice_length
  예제 : CBandLimit 100G
        CBandPeriod 4W
        CBandPeriodSlice 1W
        4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
        1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.
 
  이름 : <CBandUser>
  설명 : 새로운 cband 가상 사용자설정
  문맥 : Server config
  문법 : <CBandUseruser_name>
 
  이름 : CBandUserSpeed
  설명 : cband 가상 사용자의 속도,요청수, 동시 접속수 제한
  문맥 : <CBandUser>
  문법 : CBandUserSpeedkbps rps max_conn
        kbps - 초당 최대 전송속도
        rps - 초당 최대 요청수
        max_conn - 최대 동시 접속수
  예제 : CBandUserSpeed100kb/s 10 5
 
 
  이름 : CBandUserLimit
  설명 : cband 가상 사용자의 저송용량 제한.
  문맥 : <CBandUser>
  문법 : CBandUserLimitlimit
     limit - 사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi)
  예제 : CBandUserLimit 10M
        CBandUserLimit 10Mi
 
  이름 : CBandUserClassLimit
  설명 : cband 가상 사용자의 정의한class(ip범위)에 대해 제한할 전송량 설정
  문맥 : <CBandUser>
  문법 :CBandUserClassLimit class_name limit
        class_name - 지정한 class(IP범위)이름
       limit -사용용량, 사용단위: K (kilo), M (mega), G (giga), Ki (kibi), Mi (mebi),Gi (gibi)
 
  이름 : CBandUserExceededURL
  설명 : cband 가상 사용자의,제한을 초과했을시 보여줄 URL,
        지정하지 않으면 503 에러 발생 ( 가상호스트에서 )
  문맥 : <CBandUser>
  문법 :CBandUserExceededURL URL
 
  이름 : CBandUserExceededSpeed
  설명 : cband 가상 사용자의,전송양을 초과했을시 , 전송속도 제한 설정.
  문맥 : <CBandUser>
  문법 : CBandUserExceededSpeed kbps rps max_conn
        kbps - 초당 최대 전송속도
        rps - 초당 최대 요청수
        max_conn - 최대 동시 접속수
 
  이름 : CBandUserScoreboard
  설명 : cband 가상 사용자의,scoreboard 파일 지정.
  문맥 : <CBandUser>
  문법 : CBandUserScoreboard path
        (path는 아파치(nobody또는 apache)권한으로 쓰기가능해야 함)
 
  이름 : CBandUserPeriod
  설명 : cband 가상 사용자의, 용량제한기간(기간이 지나면, 측정되었던 용량은 지워진다.)
  문맥 : <CBandUser>
  문법 : CBandUserPeriodperiod
        period - 사용단위: S (초), M (분), H (시간), D (일), W (주)
  예제 : CBandUserPeriod 1W
        CBandUserPeriod 14D
        CBandUserPeriod 60M
 
  이름 : CBandUserPeriodSlice
  설명 : cband 가상 사용자의,기간을 나눌 기간 명시
  기본값 : slice_len = limit
  문맥 : <CBandUser>
  문법 :CBandUserPeriodSlice slice_length
  예제 : CBandUserLimit100G
        CBandUserPeriod 4W
        CBandUserPeriodSlice 1W
        4주는 1주일 단위로 나뉜다(4W/1W = 4). 용량은 100G/4=25G
        1주에 25G, 2주째 50G 이렇게 나눠 처리 된다.

 
( 12 ) 개별홈페이지 cband 정책 적용 예
 
① 자료실 속도제한
   nextline.net 도메인에 대해서 속도를 1024kbps로 제한하며, 초당 10번의 연결, 동
   시 접속자를 30으로 제한하는 예제입니다.
  
<VirtualHost xxx.xxx.xxx.xxx>
DocumentRoot /home/nextline1/public_html
Servername nextline.net
ServerAlias www.nextline.net
CBandSpeed 1024 10 30
CBandRemoteSpeed 20kb/s 3 30
</VirtualHost>
 
                         
 
 
확인하는 방법 : http://nextline.net/cband-status-me
 
 
② 사용자 일트래픽 제공 및 초과시 연결수 제한 nextline.com 도메인에 대해 하루에 100Mbyte의 트레픽을 제공하며, 100M를 초가했다면, 속도를 128bps로 제한, 초당 5번의 연결, 동시접속자를 15로 제한하는 예제입니다.
 
<VirtualHost xxx.xxx.xxx.xxx>
DocumentRoot /home/nextline2/public_html
Servername nextline.com
ServerAlias www.nextline.com
CBandLimit 100Mi
CBandExceededSpeed 128 5 15
CBandPeriod 1D
</VirtualHost>
 

 
확인하는 방법 : http://nextline.com/cband-status-me

 
   
( 13 ) 그 외 적용 예를 들어보겠습니다.
 
① 한 사용자에 여러 도메인을 운영할 때 입니다.
위 설정은 nextline이라는 가상 사용자를 지%E

Posted by 1010
98..Etc/Etc...2008. 8. 12. 15:09
반응형

준비물:

utra edit - 에디터 프로그램입니다. hex에디트까지 가능하게 해줍니다.
qpst - 꼭 qpst가 아니여도 좋습니다. 핸드폰에 파일을 다운로드, 업로드만 가능하게 해주면 됩니다.
공학계산기 - 윈도우의 계산기나 손에 들고 있는 계산기면 OK. 윈도우의 계산기일경우 보기->공학용 을 찾아서 클릭해주시면 됩니다.


1. 이론

hex란 무엇인가?

사용자 삽입 이미지

hex란 hexagonal 의 단축형으로써 16진법이라는 뜻입니다. 우리들이 흔히 쓰는 10진수는 decimal, 2진수는 binary, 8진수는 octal 이라고 표시합니다.  간단하게 축약해서 16진수-hex, 10진수-dec, 2진수는 bin, 8진수는 oct 입니다.10진수는 0부터 9까지 가 1의 자리를 나타내며, 9에서 1이 더해지는순간 십의 자리에는 1이 일의 자리에는 0이 오는 10이 됩니다. 2진수는 0과 1 뿐입니다. 1에서 1이 더해지는순간 십의 자리에 1이 오고 일의 자리에 0이 와서 10이 됩니다. 즉 0(0), 1(1), 10(2) 입니다. 괄호안은 10진수로 읽었을때입니다. 8진수도 0부터 8까지로 이루어져있습니다. 마지막으로 16진수는 0부터 F까지 이루어져 있습니다. 이는 0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)로 이루어져 있는 것입니다. 즉 9라는 숫자에서 1이 더해져도 십의 자리에 1이 오지않고 A가 됩니다. 이후로 B, C, D, E, F로 넘어가서 F에서 1이 더해지는순간 십의 자리에 1이 오고 일의 자리에 0이 와서 10이라는 숫자가 됩니다. 컴퓨터에 데이터가 저장될때에는 2진수와 16진수로 저장이 됩니다. 우리가 2진수는 123라는 숫자를 입력하게 되면 1111011이라는 숫자로 저장이됩니다. 16진수의 경우에는 7B라는 숫자로 저장이 됩니다. 하지만 2진수는 컴퓨터가 빠르게 이해는 할지몰라도 사람이 보고 읽고 이해하기엔(이를 가독성이라고 합니다) 너무 어렵죠. 그때문에 16진수코드를 쓰게 되는겁니다.


게임에서 hex조작은 어떻게 하나?

파일을 hex코드로 열어서 해당관련 숫자를 찾아서 숫자를 바꾸어주시면됩니다. 엉뚱한 코드를 손을 대셨다가 게임이 엉망이 되는 경우도 많으니 조심하셔야합니다. 이제 실습에 들어가보겠습니다.

사용자 삽입 이미지

일단 QPST로 접속을 합니다. 그리고 원하는 게임폴더로 찾아갑니다. 저의 경우에는 제일 만만한 판타지포에버2를 예로 들겠습니다. (참고로 저는 SKT통신사며 쓰이는 핸드폰은 MS500입니다.)

사용자 삽입 이미지


게임이 저장된 forever0.db 파일을 다운받습니다.

사용자 삽입 이미지


만약 ultra edit가 hex로 열지 못한다면 편집->hex기능을 찾아서 클릭해주시면 됩니다.

그리고 게임에 접속해서 케릭터의 골드, 레벨, 경험치, 스킬포인트, 찍은 스킬 등등을 공책이나 컴퓨터의 메모장에다가 잘 적어둡니다.

저의 경우 골드가 15032216골드 입니다. 약 1500만골드군요. 이미 이전에 손을 써두었기에 저런 골드가 가능해졌습니다.

사용자 삽입 이미지


자 15032216이라는 숫자를 계산기에 입력을 합니다. 그리고 이상태로 Hex를 클릭해보세요.

사용자 삽입 이미지


E55F98이라는 숫자로 바뀝니다. 앞으로 숫자는 2개씩 끊어서 보기로 합시다.
E5 5F 98 입니다. 이숫자를 잘 기억해두었다가, 아까 ultra edit로 연 forever0.db파일에서 맞는 숫자를 찾아봅니다.

사용자 삽입 이미지


아! 찾았군요! E5 5F 98 잘보입니다. 이 숫자를 FF FF FF 로 변경하시면 금액이 변경됩니다. FFFFFF라는 숫자는 10진수로 16777215입니다. 즉 약 1600만골드입니다.

이번엔 케릭터의 레벨을 찾아가봅시다. 저의 경우 케릭터의 레벨은 81입니다. 81이라는 dec숫자를 계산기로 통해서 hex로 바꾸면 51이라는 숫자가 됩니다. 이또한 찾아봅시다.

사용자 삽입 이미지


아! 또 찾았군요! 이 숫자를 FF로 바꾸시면 255레벨로 바뀝니다. 하지만 일반적인 게임들이 보통 99레벨이 끝인것을 감안해봐서 99레벨로 바꾸기로 합시다. 99라는 dec숫자를 hex로 바꾸어보면 63입니다. 아까 찾은 51이라는 숫자 대신 63을 바꾸어 적습니다.

그리고 파일을 저장해서 다시 qpst로 핸드폰으로 저장합니다.

그리고 게임을 실행해보시면??

와우!! 놀랍네요. 전부적용이 되어있습니다. 이제 레벨노가다와 골드노가다는 안해도 되겠군요.

기타 제가 찾아서 쓰고 있는 주소들은

골드:0번     b,c,d라인 

레벨: 1번 - 200번 4
      2번 - 240번 7
      3번 - 280번 a

스킬 : 1번 - 230  0 부터 240 0 까지
       2번 - 270  3 부터 280 3 까지
       3번 - 2b0  6 부터 2c0 6

exp : 200 a b
      240 d e
      290 0 1

스킬포인트 : 240 5
            280 8
             2c0 b

입니다.

사용자 삽입 이미지


위에 제가 적은것을 보는방법은 간단합니다. hex코드에서 왼쪽 끝을 보시면 해당 00000000h 라는 주소들과 위에는 0부터 f까지 주소가 있습니다. 이것을 찾아서 보시면 됩니다. 예를 들어 골드의 경우 00000000h의 주소의 b,c,d라인에 있다는 소리입니다.

이것으로 간단한 hex조작을 해보았습니다. 여러분들도 쉽게 하실수 있기를 기대하겠습니다. 만약 내용이 어렵다면 댓글을 주시면 빠르게 확인해서 답을 드리겠습니다

Posted by 1010
반응형
EXE, DLL, SFX 등의 PE 파일을 분석해서 사용한 압축기, 암호화기, 컴파일러 정보를 표시하는 프로그램입니다

PE 파일이 어떤 컴파일러로 컴파일되었고,어떤 패킹 되었는지 알수있게 하는 프로그램입니다.

본 프로그램은 사용에 아무런 제한이 없는 프리웨어입니다.


EXE, DLL, SFX 등의 PE 파일을 분석해서 사용한 압축기, 암호화기, 컴파일러 정보를 표시하는 프로그램입니다. PE 파일 내의 470 개 이상의 서로 다른 기호들을 감지할 수 있습니다.

파일분석, 어셈블링, 디어셈블링 등을 하는 분들께 필요합니다.




  • 알려지지 않은 파일이나 변경된 파일을 감지하기 위한 "Advanced" 감지 모드
  • 쉘 확장, 커멘드 라인 지원, 항상 위에 옵션, 드래그 & 드롭 등의 인터페이스 제공
  • 동시에 여러 파일 또는 여러 디렉터리를 스캔할 수 있음
  • Task Viewer나 컨트롤러 제공
  • Generic OEP Finder나 Krypto ANALyzer 와 같은 플러그인을 사용할 수 있는 인터페이스
  • 발견적(Heuristic) 스캐닝 옵션
  • PE details, Imports, Exports, TLS viewers 제공
  • 빠른 디셈블러 내장
  • 헥스 뷰어 내장

    사용자 삽입 이미지



  • Posted by 카이란
    Posted by 1010