コグノスケ


link 未来から過去へ表示  link 過去から未来へ表示(*)

link もっと前
2022年9月12日 >>> 2022年10月12日
link もっと後

2022年9月19日

Windows PCの画面ロックを妨害(JavaScript版)

目次: Windows

ノートPCは下記のようなセキュリティ設定で運用している人が多いと思います。会社のPCもこういう設定が多いと思います。

  • 数分で画面ロックが掛かる
  • 画面ロックからの解除にはパスワードが必要
  • 共有アカウント禁止

この設定はセキュリティ上は素晴らしいです。ただし展示で使うときはちょっと困るんですよね……。自分のアカウントで画面ロックが掛かると、当然自分しか解除ができませんから自分がPCの前を離れられなくなります。

展示のためだけにセキュリティ設定を緩めるのも何だかイマイチですし、一時的に使える方法はないか?と思ったらありました。ヒントはPowerPointの全画面表示で、スライドショーを開始するとWindowsの画面ロックは発動しないのです。ほほう。

PowerPointに画面ロックの妨害ができるなら、そこらのアプリでも画面ロックの妨害を実現できるはずです。

わざわざアプリを作る必要すらなかった

どのWindowsのAPIを呼んだらいいのか?と思って調べていましたが、JavaScriptで手軽に実現する手段がありました。今のところChrome限定っぽいですが、

画面ロックへの遷移を妨害するスクリプト

function addEvent(obj, name_event, func_event)
{
  var func_prev = obj[name_event];

  if (func_event == null) {
    return;
  }

  if (func_prev == null) {
    obj[name_event] = function() { func_event(); };
  } else {
    obj[name_event] = function() { func_prev(); func_event(); };
  }
}

function f_resolve()
{
  var statusElem = document.getElementById('status');
  statusElem.textContent += 'Success. ';
}

function f_reject()
{
  var statusElem = document.getElementById('status');
  statusElem.textContent += 'Rejected. ';
}

function f_release()
{
  var statusElem = document.getElementById('status');
  statusElem.textContent += 'Released. ';
}

function testWakeLock()
{
  var statusElem = document.getElementById('status');
  var isSupported = false;

  if ('wakeLock' in navigator) {
    isSupported = true;
    statusElem.textContent += 'Support wakeLock. ';
  } else {
    statusElem.textContent += 'Not support wakeLock. ';
    return;
  }

  var wakeLock = null;
  try {
    wakeLock = navigator.wakeLock.request('screen');
  } catch (err) {
    statusElem.textContent += `${err.name}, ${err.message}`;
  }

  statusElem.textContent += 'Request. ';
  wakeLock.then(f_resolve, f_reject);

  wakeLock.addEventListener('release', f_release);
}

addEvent(window, "onload", testWakeLock);

この画面起動ロック(MDNへのリンク)という機能を使うと、タブを切り替えたりしない限り画面ロックを妨害できるようです。

私の環境で試した限りでは、なぜかReleaseイベントが一切来ないのと、ブラウザをバックグラウンドに持っていくと動作が不安定(たまに効かない = 画面ロックしてしまう)ですが、一応効き目がありました。

確認方法

画面起動ロックが効いているかどうかはpowercfgを使うとわかります。管理者モードでコマンドプロンプトを起動しpowercfg /requestsと /requestsoverrideを実行します(powercfgのヘルプ)。私の環境では /requestsの方に表示されていました。

画面起動ロックを実行した後のpowercfgの実行結果
C:\Windows\system32>powercfg /requests
DISPLAY:
[PROCESS] \Device\HarddiskVolume3\Program Files\Google\Chrome\Application\chrome.exe
Blink Wake Lock

SYSTEM:
なし。

AWAYMODE:
なし。

実行:
なし。

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

先ほどのスクリプトを実行したタブを切り替えると、

Chromeのタブを切り替えたあとのpowercfgの実行結果
C:\Windows\system32>powercfg /requests
DISPLAY:
なし。

SYSTEM:
なし。

AWAYMODE:
なし。

実行:
なし。

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

となるはず、です。

用途

在宅勤務の時、会社のWindowsノートPC(常時コミュニケーション用のツールが入っている)がすぐに画面ロックしてしまって、コミュニケーションツールにアクセスしづらいのと非常にウザくて困ってました。画面ロックを無効にもできなくて困っていたんですが、画面起動ロックで画面ロックを妨害できるようになってだいぶ使いやすくなりました。

画面ロックを仕込んだページを作られたら、画面ロックできなくなるんですかね?どうなるんだろうな?(追記: ローカルファイルじゃないと動作しませんでした)まあ、時限式の画面ロックに頼って、PCの前から立ち去るような運用はそもそも論外なのですが……。

実物

理屈は良いので動くものをくださいという、せっかちな方へお送りします。link 動作するページへのリンクです。注意点はネットワーク上のサイトでは機能しません(Not supportになります)ので、ローカルにダウンロードしてから開いてください。

不安な方はローカルに保存して開く前に中身をご確認ください。もしくは上記のスクリプトを見て&理解してご自身でページを作成くださいませ。

編集者:すずき(2023/09/24 12:40)

コメント一覧

  • hdkさん(2022/09/25 07:12)
    プレゼンテーションに限らず、確か動画再生も画面ロックやスリープを妨害しますよね。再生負荷がかからなさそうな小さな動画をリピート再生しておくという手もありそうです。
  • すずきさん(2022/09/26 11:51)
    それもありますね。さらに調べていたら今回使ったプレゼンテーション時の妨害(DISPLAY)の他に、CONTINUE(セットアッププログラムとかが使う)、AWAY モードがあるようです。
open/close この記事にコメントする



2022年9月23日

Windows PCの画面ロックを妨害(Windows API版)

目次: Windows

先日(2022年9月19日の日記参照)はJavaScriptというか画面起動ロックAPI(Screen Wake Lock API)にてWindows PCの画面ロックを妨害する方法を紹介しました。

今回はWindows API(SetThreadExecutionState)を使って同様の機能を実現します。詳細はMicrosoftのAPIドキュメント(SetThreadExecutionState function (winbase.h) - Microsoft Learn)と、スリープに関する日本語の解説(システム スリープ条件 - Microsoft Learn)が参考になります。

そういえばWindows APIのドキュメント、今はMicrosoft Learnという名前になっていますね。昔はMSDN OnlineとかMicrosoft Docsとか呼ばれてた気がしますが、統合されて消えてしまったのかな……?

さておきコードはこんな感じです。簡単すぎるのでわざわざ載せるまでもないですけども。

画面ロックを妨害(AWAYモード)するプログラム

#include <iostream>
#include <windows.h>
#include <winbase.h>

int main()
{
    EXECUTION_STATE r;

    r = SetThreadExecutionState(ES_CONTINUOUS | ES_AWAYMODE_REQUIRED);
    if (r == NULL) {
        std::cout << "failed!" << std::endl;
    }

    std::string hoge;

    std::cin >> hoge;

    return 0;
}

アプリケーション実行中にpowercfgでチェックすると、こんな風になるはずです。なおpowercfgを実行するには管理者権限でコマンドプロンプトを起動する必要があります。アプリケーション名は適当に読み替えてください。

作成したアプリケーション実行中のpowercfg実行結果
C:\Windows\system32>powercfg /requests
DISPLAY:
なし。

SYSTEM:
なし。

AWAYMODE:
[PROCESS] \Device\HarddiskVolume3\dat\projects\c\ConsoleApplication1\x64\Debug\ConsoleApplication1.exe

実行:
なし。

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

画面起動ロックAPIはDISPLAYというモードを要求していましたが、今回はAWAYMODEを要求しているので違うカテゴリに表示されています。もちろんAPIの引数を適切に変更すればDISPLAYも要求できます。

他の利用者

画面ロックの妨害機能のユーザーは意外と多いです。前回挙げたPowerPointの他に、Teamsのような会議アプリケーション、メディアプレーヤーなども使っているようです。個人的に意外だったものとしてはセットアッププログラムです。

例えば、下記はVisual Studioのセットアップ中にpowercfgを実行した結果です。

Visual Studioのセットアップ中のpowercfg実行結果
C:\Windows\system32>powercfg /requests
DISPLAY:
なし。

SYSTEM:
なし。

AWAYMODE:
なし。

実行:
[PROCESS] \Device\HarddiskVolume3\Program Files (x86)\Microsoft Visual Studio\Installer\setup.exe
Visual Studioインストーラー

PERFBOOST:
なし。

ACTIVELOCKSCREEN:
なし。

普通はセットアップ中にスリープされることなんて想定していませんから、セットアップがエラーになる可能性があります。不都合が起きなかったとしても、スリープ中はセットアップが進みません。と、考えると時間がかかるセットアップ中にスリープを妨害するのは筋が通ってますね。

編集者:すずき(2023/09/24 12:39)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年9月30日

ゼルダのボム袋

ニンテンドーのポイントが期限切れになるぞよ、というメールが来ていたのでゼルダの伝説スカイウォードソードに出てくるボム袋を模した巾着をもらいました。思っていたよりでかい。


ゼルダの伝説、ボム袋風の巾着

ゼルダの伝説はほとんどやったことがなくて、家に届いた巾着を見ても何の模様かわからなかったのですが、奥さんに見せたら一発で「あ!ボム袋だ!」って気づいてました。ゲーム画面のキャプチャを観ると思っていたより再現度が高いです(ゲームのボム袋の方がもう少し背が低いくらい)。良いですね。

なぜかシューティングの練習で使うフロンガス缶のサイズと、この巾着のサイズが超ぴったりでした。フロンガス缶はそんなに種類があるわけじゃない(マルイ、レイラックス、サンダーシュート、ウッドランドがメジャーどころ?)し、同じ種類のガス缶を使っている人も多くて紛らわしいので、こういう個性的&コンパクトな袋はありがたいです。

メモ: 技術系?の話はFacebookから転記しておくことにした。色々と加筆修正。

編集者:すずき(2022/10/05 18:44)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年10月2日

ニコニコ動画の動画は2種類ある

だいぶ周回遅れですが、リコリス・リコイルの最終回を見てました。最終回に限らず銃撃アクションはどの回も良かったな〜と思います。設定はイマイチ良くわからないですけど、あまり気にしても仕方ないです。それはさておき。ニコニコ動画は、

  • 無料版: 期間限定公開
  • 有料版(dアニメ支店)

があって、有料版はちょっと変わってるらしいので、試しに契約してみました。サブスクリプション方式でした、月額440円だそうです。

ニコニコ動画の動画配信方式の概要

現在のニコニコ動画の配信方式はHLS(HTTP Live Streaming, 規格は RFC8216 にて規定)といいまして、MPEG2-TSファイルを細かく(3〜10秒程度)分割して、クライアントから再生要求された位置から順に送るだけのシンプルな方式です。MPEG2-TSの弱点はインデックスなどの情報が一切なくてサーチが大変なことですが、あらかじめ分割しているため苦労してサーチをする必要がありません。

ちなみにリコリス・リコイルの無料放送版の場合、コーデックは見ての通りでFull HDじゃないです……。有料版でもHD 720pですから、画質が気になる方にはイマイチかもしれません。他のアニメも同じなのでしょうか?調べていないのでわかりませんけど。

  • 動画: H.264 HD (1280x720)
  • 音声: AAC 48kHz

HLSでは *.m3u8というプレイリストも一緒に送られてきて、そこにTSファイル名が全て載っています。プレイリストにあるTSを順番にダウンロードし、単純連結するだけで動画全体のTSファイルが引っこ抜けます。これはセキュリティホールとかではなく元々HLSはこういう仕様です。

無料版と有料版の配信方式はちょっと違う

有料版も同様にHLSで配信されていますがAES-128-CBC暗号化されていて、TSファイルを引っこ抜いても再生できません。しかしなぜか無料版は暗号化されておらずTSファイルを引っこ抜くと再生できてしまいます。設定ミス……?わざと?まあどっちでもいいですけど。


無料放送版に入っているニコニコ動画の透かし

キャプチャだとわかりにくいかもしれませんが、右下に「ニコニコ」という透かしが入っています。有料版は入っていません。

無料版と有料版は動画も違う

TSファイルのサイズを比較(AES-128-CBC暗号化でファイルサイズは変化しないので、この比較には意味がある)してみましょうか。使ったのはリコリス・リコイル最終話です。

  • 無料版: 377MB
  • 有料版: 296MB

有料版(dアニメ支店版)は100MBくらい小さいです。無料版は先ほど説明したように右下に透かしを入れるために再エンコードしていると思いますが、再エンコードだけでは説明できないほどサイズが違います。なんで?と思って調べてみたら、どうやら、

  • 無料版: 30fps
  • 有料版: 24fps

になっているようです。オープニングのエレベータが降りていくシーンが非常にわかりやすいです。高速(120fpsとか)で動画が撮れるカメラを使うと、無料版は5コマに1回、画が止まることがわかります。

有料版(24fps)が
1 2 3 4 5 6 7 8
という出方だとして、無料版(30fps)は
1 2 3 4 4 5 6 7 8 8
みたいな出方をします。

意図通りか間違えたか知りませんが、無料版だけ30fpsに変換しているためファイルサイズがやたらデカいようです。暗号化もされていませんし、どちらかというと無料版の方が不思議な作りですね。

メモ: 技術系の話はFacebookから転記しておくことにした。色々と加筆修正。

編集者:すずき(2022/10/11 02:49)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年10月3日

ニコニコ動画の無料版がカクついている理由

ニコニコ動画の24p → 30pの変換の仕方と、テレビなどが行っている24p → 60iの変換の仕方(2-3プルダウン、3-2プルダウンとも呼ぶ)を図示してみました。もうちょっとわかりやすくしたかったけど……絵心が足りませんでした。


24pから30p, 60i(2-3プルダウン), 60pへの変換

24p → 30p変換は非常にシンプルで、24pフレームの表示すべき時間(PTS: Presentation Timestamp)に到達していたら表示、まだだったら前と同じフレームをリピート、という非常に単純な処理です。利点は画が自然なことで、欠点はカクつくことです。縦や横に一定速度でスクロールするシーンは進んで止まってを繰り返すためガクガクします。

2-3プルダウンは若干ややこしく、インターレース(偶数ラインと奇数ラインが交互に更新される)の特徴を使います。60iの3コマ目(5-6フィールド)に24pの2, 3コマ目の偶数、奇数ラインを混合した画を出します。4コマ目(7-8フィールド)は24pの3, 4コマ目の混合です。利点はカクつきが少ないことで、欠点は画が不自然になることです。例えば24pの2コマ目にリンゴ、3コマ目に突然オレンジが映る場合、60iの3コマ目はリンゴとオレンジが縞々に合わさったキメラ画像になります。

このように2-3プルダウンは良くできているものの完全無欠ではないので、テレビによって扱われ方が違います。最近のテレビであればおそらく画像が24pだと検知すると自動的に2-3プルダウンが発動すると思いますけど、製品によっては「映画モード」とかに変えないと発動しないかもしれません……。

最後に24p → 60p変換ですが、何の工夫もないのにほぼカクつきなしで不自然な画もありません。24pは下手に30pとか60iに変換せず、60pで殴りなさいという悲しい結論ですね。細かく見れば2コマ、3コマ、2コマ、3コマ……と繰り返されるので1/120秒の揺らぎがあります。でも人間にはわからないと思います。たぶん。とりあえず私はさっぱりわかりません。

メモ: 技術系の話はFacebookから転記しておくことにした。色々とマージ&加筆修正。

編集者:すずき(2022/10/05 18:46)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年10月4日

ニコニコ動画の暗号化HLSの謎

興味本位で調べていたんですが、ニコニコ動画のHLSの暗号化の仕組みがわかりました。基本的には暗号化HLSと同じです。m3u8ファイルにEXT-X-KEY Tag(仕様は RFC8216 4.3.2.4 EXT-X-KEY にあります)があって、METHOD=AES-128(暗号化方式がaes-128-cbc方式)、鍵のありかを示すURI、IV(Initial Vector)が書いてあるタイプです。他のAttributesは使っていません。

暗号化自体はaes-128-cbcですが、復号用の鍵の扱いはHLSの規格と異なっておりURIに示されたファイルを使っても復号できません。暗号化の仕組みを見た限り、コスト度外視でガチガチにガードするDRMというより、ffmpegなどのHLS再生に対応した有名ツールを使ってお手軽ダウンロードされなければヨシ!という作りに見えます。HLS規格から大改造すればするほど既存ライブラリが使えなくなったり、クライアントもサーバーも作るのが大変になるからではないかと推測しています。

AESは鍵さえわからなくすれば復号できませんから、基本的にはHLSに準拠して扱いを楽にしておき、鍵だけ規格から外した扱いで実装してある、なかなか面白いバランスでした。商用サービスの設計を垣間見た気がします。なるほどなあ。

DRM解除してはいけません

鍵の取得方法も調べましたが詳しくは述べません。RC2から(※)のニコ動ユーザーとして、これからも末永く利用したいので、ニコ動の不利益になることは本意じゃないです。ニコ動がんばって。応援してるぜー。

改正著作権法ではDRM回避行為そのものも違法(今は罰則はありませんが……)です。回避装置の譲渡には懲役刑や罰金刑といった刑事罰があります(参考: 私的リッピングも違法!?いよいよ改正著作権法が一部施行 - 週刊アスキー)。

「再現可能なレベルの回避手段の解説」=「回避装置の譲渡(懲役刑や罰金刑といった刑事罰がある)」とみなされて当然だと思うので、私は絶対にDRM解除方法は公には書きません(方法を知っても他人に教えません)。皆様もパズルの答えの感覚で「DRMの解き方がわかった!方法はこうしてこう!」ってその辺に書かないようにしましょう。

(※)ニコニコ動画の変遷を見るとRC2は2007年〜2008年頃だから約15年経ちましたか。早いもんですね。

編集者:すずき(2022/10/11 03:41)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2022年10月10日

Microsoft Edgeの特別な機能

Microsoft Edgeは独自のHTMLレンダリングエンジンを捨てて、Google Chromeと同様BlinkというHTMLレンダリングエンジンに切り替えました(2020年くらい)。という経緯を知っていたので、今までEdgeとChromeは大差ないと思っていたのですが、Alt+Tabを押したときの挙動が違うことに気づきました。


Windows 10はAlt+TabでEdgeのタブ切り替えができる

Edgeのウインドウは1つしかありませんが、Alt+Tabを押すとEdgeが2つ表示され、EdgeのタブがWindowsのウインドウのように特別扱いされることがわかります。普段Edgeを使わないため全くこの機能を知りませんでした。またWindows 10の設定ウインドウを見ていて、この機能をOFFにできることも知りました。


Edgeのタブを特別扱いする機能はON/OFFできる

Edge以外のブラウザ、ファイル管理、ターミナルなど、タブ機能を持ったアプリはそこそこ多いと思いますが、EdgeのタブだけAlt+Tabで切り替え、他のタブ機能は切り替えできない、という一貫性のなさは混乱しますが……。ウケが良かったらそのうちOSの標準機能になるかもしれませんね。

編集者:すずき(2022/10/11 11:51)

コメント一覧

  • hdkさん(2022/10/11 20:31)
    いつ頃だったかのMicrosoft Officeも、MDIなのに、子ウインドウがタスク バーに並ぶという謎な設定がデフォルトだったのを思い出しました。Office 97の頃は、タイトル バーのグラデーションがなかったWindows 95でも独自でグラデーションをつけていましたし、Internet Explorerのシェル統合なんていうのもありましたし、Microsoftは自社製品で変なことするのが好きですよね。
  • すずきさん(2022/10/12 00:51)
    ああー、懐かしいですね。いきなりWindowsを変えると騒ぎになるから、Officeとかで部分的にGUIを変えてみて、ユーザーの反応を見ているんじゃないかなあと推測してます。
open/close この記事にコメントする



2022年10月11日

長物エアガン一号機ドラグノフ

目次: 射的

保存場所がないのでエアガンはハンドガンしか買わないようにしていたのですが、頑張れば1つくらいなら置けるか?ってことで1つだけ買いました。

台湾のWE-Tech製、SVDことドラグノフ狙撃銃です。ロシア語は良くわかりませんが、Sがスナイパー、Vがライフル、Dがドラグノフに相当するみたい。英語(Dragunov Sniper Rifle)とは逆順ですね。


WE-Tech SVD

シンプルかつ細身のフォルムがカッコいいです。形だけで言えば一番好きなのはH&K PSG-1ですが、スコープがなくても撃てる方が都合が良かったので、次くらいにカッコいいと思うSVD先生を選びました。

黒いプラスチックのストックより、木というかフェイクウッドのストックにするとさらにソビエト感が出るんですけど、値段見たらすっごい高かったのでヒヨってやめました……。

めっちゃ良い音がする

BB弾を発射すると、銀色のボルト(アルミ製かな?)のところがガス圧で後退&前進します。大きく重いボルトなだけあって、ガシーン!という強めの衝撃、良い金属音が鳴ります。おおーこれはなかなか良いです。家だと相当ウルサイのが難点ですが……。

ボルト以外の部分も基本的に金属らしき部品が多いです。鉄とアルミ製かな?これも重量感があって良いですね。

取り回しは良くない(当たり前)

家に箱が届いた瞬間に「何だ?デケェな!」って思いましたが、箱を開けてもやっぱりデカいです。約120cmあります。狙撃銃は最長の部類ですから当たり前ですね。1つ目に買う銃じゃありませんでしたか……?まあ、カッコ良ければ全てヨシ!ヨシ!!

家で試し打ちしましたが、銃身が長すぎてBB弾が飛ぶ方向が良く見えません。サイトをどこに合わせたら良いかわからなくて困ったので、レンジで試し打ちしながら調整した方が良いかもしれません。今度頑張って背負って行きましょうか。

あとはWE-Techに限らず海外製ガスガンではあるある現象らしいですが、

  • ガスが入ったかどうかわからない(バルブを吹き戻しあり仕様に交換すると良いそうな)
  • ガスの減りがすごい早い(海外ガスガンはリコイルスプリングが硬いらしく、スプリング交換した方が良いそうな)
  • BB弾がめっちゃ入れにくい

BB弾は未だにコツが良くわからないです。失敗してパカーーンってぶちまけてしまい地味にイライラします……。

編集者:すずき(2022/10/16 16:20)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2022年9月12日 >>> 2022年10月12日
link もっと後

管理用メニュー

link 記事を新規作成

<2022>
<<<09>>>
----123
45678910
11121314151617
18192021222324
252627282930-

最近のコメント5件

  • link 24年6月17日
    すずきさん (06/23 00:12)
    「ありがとうございます。バルコニーではない...」
  • link 24年6月17日
    hdkさん (06/22 22:08)
    「GPSの最初の同期を取る時は見晴らしのい...」
  • link 24年5月16日
    すずきさん (05/21 11:41)
    「あー、確かにdpkg-reconfigu...」
  • link 24年5月16日
    hdkさん (05/21 08:55)
    「システム全体のlocale設定はDebi...」
  • link 24年5月17日
    すずきさん (05/20 13:16)
    「そうですねえ、普通はStandardなの...」

最近の記事3件

  • link 24年4月12日
    すずき (07/05 10:40)
    「[台湾東部沖地震に寄付] ささやかではありますが台湾東部沖地震に寄付しました。日本の赤十字社→台湾の赤十字(正式名称...」
  • link 24年4月16日
    すずき (07/05 10:40)
    「[Zephyr SDKのhosttoolsは移動してはいけない、その2 - インストール時のバイナリ書き換え] 目次: Zep...」
  • link 24年4月17日
    すずき (07/05 10:39)
    「[VSCodeとMarkdownとPlantUMLのローカルサーバー] 目次: LinuxVSCodeのPlantUML Ex...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 07/05 10:40