강좌 / 팁

기 타 공유기로 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 - - -
4490 소프트웨어| purebasic 함수 인수 기본 값 설정으로 생략하기 [2] 입니다 362 9 03-24
4489 소프트웨어| pureBasic 외부 함수 호출 [1] 입니다 374 9 03-25
4488 소프트웨어| pureBasic 포인트 기본 이해 [3] 입니다 375 10 03-25
4487 윈 도 우| 원격 데스크톱..., 자격증명이 작동하지 않습니다... [1] 사가르마타 398 1 04-12
4486 모 바 일| #Kinemaster강좌, Clip&Audio 자르기 이동 늘리기, Un... 무림거사 399 1 08-02
4485 윈 도 우| Microsoft Loop, Notion 비슷한 앱 [1] 타천사둘리 414 0 05-03
4484 모 바 일| Kinemaster 강좌 -Clip을 "즐겨찾기"에 등록 &am... 무림거사 420 1 08-11
4483 윈 도 우| [실사] 윈도우8.1 프로 VHD 설치 방법 [5] 무월 423 6 05-08
4482 소프트웨어| purebasic Macro 기본 [3] 입니다 431 10 03-25
4481 모 바 일| Kinemaster강좌 #글자 입력방법, #링 속도 줄이는 방법 무림거사 461 1 08-03
4480 소프트웨어| purebasic 기본적인 변수, 함수 선언 [5] 입니다 463 11 03-24
4479 소프트웨어| Bcd부팅항목 메뉴 숨기기 [3] 카멜 463 9 03-04
4478 모 바 일| Kinemaster 화살표 Arrow 표시하는 2가지 방법 무림거사 471 1 08-08
4477 모 바 일| #Kinemaster 강좌, 기기성능 에 따른 출력해상도, 출력화질... [1] 무림거사 488 1 08-13
4476 모 바 일| Mobile PowerDirector강좌 #크로마키 무대 제작방법 특강 [1] 무림거사 525 2 06-24
4475 윈 도 우| vbs_Merge Lines(Drag-n-drop) [12] 레마클로 545 4 03-03
4474 소프트웨어| dup2patcher.dll 디컴파일링-2 [3] sunshine 547 5 07-21
4473 기 타| 커스텀 드라이브 아이콘 적용해 볼까? [3] 내꼬 559 5 03-09
4472 소프트웨어| 부팅항목숨기기,보이기-VHDman Lite0.0.8 [3] 카멜 565 10 03-06
4471 소프트웨어| winpe 시스템 계정에서 Edge 상위버전 적용 [8] sunshine 571 15 07-24
XE1.11.6 Layout1.4.8