강좌 / 팁

기 타 공유기로 KMS인증을 받아봅시다

2013.11.21 18:25

DarknessAngel 조회:13521 추천:4



오늘의 작업대상이 되어준 구시대 유물중의 유물 전설의 WRT54G

일 반 iptime등의 공유기는 안 되고, dd-wrt, openwrt, tomato등의 리눅스 기반의 펌웨어를 구동할 수 있는 기종 (브로드컴제 칩셋인 dlink나 linksys등은 대부분 해당됩니다)이거나, mips/arm을 사용하는 (98%이상 해당됨) NAS라면 전부 구동이 가능합니다

이 방법의 가장 중요한점은 보통 한대씩은 가지고 있고, 24시간 가동중인 공유기나 NAS를 이용해서 서버를 돌릴 수 있고, 외부로도 쉽게 서비스 가능한점입니다 (하지만 웃기게 공유기에서 직접 돌리면 외부에서 잘 안 되는경우가 발생하기도 합니다)

먼져 기종에 따라 방법이 달라집니다

USB포트가 달려있는 공유기나, NAS라면 자체 공간에 파티션을 만들던지해서 작업하시길 추천하고, 아닌경우는 공유기의 펌웨어 설치후 남은 공간인 JFFS를 이용해야합니다

가장 기본적인 내용은 https://forums.mydigitallife.info/threads/50234-Emulated-KMS-Servers-on-non-Windows-platforms/page26를 참조해주시면 됩니다 (상단의 포스트 참조)

작업에 사용한 WRT54G도 USB가 없는 상태라 JFFS를 이용했습니다 (포맷이 되면 반드시 상단의 Enable체크를 한 후 Save해주세요!)


JFFS(흑은 JFFS2)를 활성화한후 ssh나 telnet으로 해당 기기에 접속합니다



전 접속에 언제나 애용하는 Putty를 이용했습니다 (혹시 SSH접속이 안 되시는분들은 Administration - Admin Access에 가셔서 SSHD Daemon을 활성화해주세요


아디는 root, 비번은 관리페이지 접속 비번을 넣어주시면 됩니다 (기본이면 admin내지 root입니다)


다음 ini파일 (이름은 뭐든 상관없어서 전 kms.ini로 했습니다)을 작성합니다


내용물은 해당 쓰레드에 나오는대로

55c92734-d682-4d71-983e-d6ec3f16059f = 05426-00168-152-564055-03-1049-9200.0000-0912013
59a52881-a989-479d-af46-f275c6370663 = 55041-00096-200-026043-03-1049-7601.0000-0162013
0ff1ce15-a989-479d-af46-f275c6370663 = 55041-00096-200-625305-03-1049-7601.0000-0572013

로 하셔야 합니다


i키를 눌러서 입력모드로 바꾸시고, 위의 내용을 복사해서 붙인후에 esc키를 눌러서 커맨드 모드로 와서 :wq를 입력하고 엔터를 쳐서 저장후 빠져나오시면 됩니다


다음 https://rghost.net/50278978를 받으시던지(패스워드 2013) 첨부된 파일을 받으셔서 자신의 기종에 맞는 바이너리를 골라주세요 (보통 arm static아니면 mips static이면 되고, dd-wrt, openwrt, tomato인 경우는 dd-wrt라 붙은넘을 써주세요)


잘 모르시는경우는 다음과 같이 해주세요


먼져 시퓨를 확인해야하니 Status의 Overview로 가시던지

다음과 같이 시퓨 종류를 확인해서 해당 칩셋명을 구글링해서 아키텍쳐를 확인해주세요 (라지만 wrt계열이나 tomato가 올라가면 90%의 확율로 mipsel입니다)


이런식으로 자신의 기종에 맞는 바이너리를 풀어주세요 (용량 문제가 아닌이상 static만 써주세요) (구버전의 펌웨어인 경우는 gcc3.4.6을 써주세요)


이제 이걸 전송해야하는데 방법은 3가지가 있습니다


1번째로 USB가 있는 기종의 경우 USB에 저장해서 그걸 포트에 꽃아서 cp명령으로 복사합니다 (하지만 이게 된다면 애초에 JFFS라는 삽질을 안 했겠죠)


2번째로 sftp로 던지는 방법이 있는데 설명할려면 꽤나 분량이 나오므로 생략합니다 (검색하면 엄청나게 나오니 생략합니다)


마지막 3번째가 저희가 쓰게 될 wget으로 전송하는 방법입니다


이걸 위해서는 전송용 웹서버가 필요로 해집니다


첨부된 hfs나 기타 방법으로 웹서버를 구축해주세요 (본문은 간단하게 hfs기준으로 설명합니다)


먼져 실행하신후 상단에 표시되는 주소를 잘 봐둡니다


다음 집 아이콘 우측의 /에 우클릭을 한후 add files...을 클릭합니다


다음 압축 풀어준 바이너리를 골라줍니다 (사실 이 방법으로 스크립트나 ini도 전송 가능합니다)


추가된 파일명이 너무 길고 복잡해서 입력하기 귀찮으니 해당 항목 선택후 F2키를 눌러서 간단한 이름으로 고칩니다


파일서버 준비가 되었다라면 전송해볼 차래입니다


파일을 저장할 /jffs로 이동후 내장된 wget명령을 이용해서 아까 hfs에 뜬 주소/파일명 형식으로 받아주세요 (스샷대로 입력하시면 됩니다)


이제 기동용 스크립트만 준비하시면 되는데, 첨부된걸 받아서 경로만 바꾸시던지, 아니면

#!/bin/sh

EXECUTABLE="/jffs/kmsd"
INIFILE="/jffs/kms.ini"
PIDFILE="/jffs/kmsd.pid"
PORT="1688"

if [ ! -f $EXECUTABLE ] || [ ! -f $INIFILE ]; then
    echo "Check variables in init daemon or missing files"
    exit 1
fi

case "$1" in
    start)
        #Start daemon
        if [ ! -f $PIDFILE ]; then
            $EXECUTABLE -i $INIFILE -p $PIDFILE -P $PORT &
            echo "KMS Has been started"
            exit 0
        else
            PID=`cat $PIDFILE`
            kill -s 0 $PID
            RESULT=$?
            if [ -f $PIDFILE ] && [ $RESULT -eq 0 ]; then
                echo "KMS Server is already running"
                exit 2
            else
                echo "Please check Pid file or user forcestart to overwrite pid"
            fi

        fi
    ;;
    stop)
        #Stop Daemon
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            kill $PID
            rm $PIDFILE
            echo "KMS Has been stopped"
            exit 0
        else
            echo "KMS is not running"
            exit 1
        fi
    ;;

    restart)
        $0 stop
        $0 start
    ;;

    forcestart)
        rm $PIDFILE
        $EXECUTABLE -i $INIFILE -p $PIDFILE &
        exit 0
    ;;

    *)
        echo "Usage: $0 start|stop|restart|forcestart"
        exit 0
    ;;
esac

이런식으로 작성해주세요 (쓰레드의 스크립트에 새버전에 추가된 포트지정인 -P를 추가했습니다)


작성 방법은 위의 ini작성하듯이 vi로 해주시던지 컴에서 편집후 hfs에 등록해서 wget으로 전송해주세요


마지막으로 퍼미션을 조정하시면 됩니다


이걸로 준비는 끝났습니다

이제 시험을 해볼 차래인데

다음과 같이 나오면 성공입니다


마무리로 자동으로 실행되게 해줄 차래인데 jffs에 넣은경우는 스크립트(administration - scripts)의 부트항목에 넣으시고, usb에 저장하신경우는 usb마운트 직후 (USB and NAS - USB Suport)에 실행되게 등록해주세요 (등록하는 내용은 init 흑은 USB의 mount쪽에 sh /jffs/kmsd.sh start 이런식으로 해주시고, USB의 unmount/shutdown에는 sh /jffs/kmsd.sh stop 이런식으로 등록해주세요) (역시 언제나처럼 잊지말고 Save를 눌러주세요!) (종료명령 등록하는걸 잊어버리면 한번 서버 기동후 재부팅하면 pid가 삭제가 안 되어 실행이 안 되는 불상사가 발생합니다)


이제 마무리로 방화벽을 iptable로 고치시던지 귀찮으시다면 포트포워딩으로 1688을 열어주세요 (NAS인 경우는 포트포워딩이나 DMZ지정을 이용해주세요)

스샷처럼 입력한후 Add를 눌러서 추가후 Save로 저장해주세요


이걸로 준비는 끝났습니다


로 컬인 경우는 공유기 주소인 192.168.1.1 (환경에 따라 다를 수 있습니다)를 kms서버주소로 쓰시면 되고, 외부에서는 wan에 할당된 ip를 쓰시면 됩니다 (만일 회선에 따라 1688포트를 못 쓰는 경우는 ini의 포트와 포워딩 포트를 바꾸어주세요)


정품 인증 안 된 상태에서


키 설치 (볼름이 아닌경우)후에 서버를 지정해주시면 됩니다 (설치에 필요한 GVLK키는 구글링하면 나옵니다)


결과물


현시점에서는 온라인이 되거나 업데이트되도 풀리는일 없습니다

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
4493 윈 도 우| PrincePE_V18.5 [164] %카리스마 204986 99 02-02
4492 윈 도 우| 윈도우7 Windows 정품 인증 기술 업데이트로 인증하기 [21] 얼룩강아지 111629 0 02-27
4491 윈 도 우| 비스타(VISTA) 인증 후 무한 리부팅 현상 해결법 [1] gooddew 98131 0 06-17
4490 윈 도 우| 바이오스 안에 OEM SLIC 가 내장되었는지 확인하는 방법 [5] gooddew 84995 0 06-17
4489 윈 도 우| UEFI-모드 부팅 [설치 USB] 만들기 [8] eunnano 77034 0 09-07
4488 A.I 사용법 무작정 따라하기 (스샷 첨부) - 마지막 수정 [67] PoLaRiS 74991 6 09-10
4487 하드웨어| 유튜브 버퍼링 완전해결2 (hosts파일 사용, DNS변경 x, SKB... [44] hsk 63932 6 05-06
4486 윈 도 우| 비스타/세븐 DVD-4cd 분할 가이드 v2 김간지 63413 0 01-21
4485 윈 도 우| Usb를 이용한 XP설치 [21] 고맙쥐 62282 11 10-23
4484 윈 도 우| 비스타의 숨겨진 부팅로고를 보자 [5] cdcsj 60484 0 05-26
4483 윈 도 우| 소소한팁..Windows 로그온 사진이 작을때.. 김간지 59255 0 07-12
4482 윈 도 우| God Mode 만들기 [5] 적광 55432 0 12-26
4481 기 타| Superfetch 기능 사용중단하기 [13] gooddew 55294 1 09-16
4480 윈 도 우| Win7_8 PE/수정/추가/바탕화면/교체하기 [13] 까꾸리 54358 17 05-18
4479 Windows 7 과 XP 프린터와 파일 서로 공유하기 [5] sp2 52848 3 08-22
4478 윈 도 우| 윈도우8 다국어 언어팩 설치 방법(영문 기준) [7] chkid 51184 5 11-11
4477 윈 도 우| 삼성 노트북의 복원솔루션 5 를 이용하여 SSD에 복원영역 ... [13] 울랄라백수 48975 4 06-17
4476 소프트웨어| USB키보드인채로 PLOP 사용하기 (USB 2.0 MODE + PE) [19] hazuki 48384 0 01-19
4475 윈 도 우| 만능고스트 사용후 hal.dll 오류로 부터 벗어나기 [2] cdcsj 47764 0 04-29
XE1.11.6 Layout1.4.8