認証だから短い文字列しか使えない、なんていう制約はない、のでは...?ということで調べた。結果、ドキュメントかコマンドのヘルプ表示に書いてあることがすべてだった。そちらのドキュメントを見てみる。2.2.17.ち、ちしきもソフトウェアも更新されていない。使っていたので、そのまま更新してパスワードファイルを作り直し。利用するのがいいっぽい。使っている別サーバの様子も確認。いった情報も増えている。トピックに書いてある。指定するとパスワードに対してソルトが設定されず毎回同じ値になるのがよろしくないとのこと。使う、ついでにコストパラメータもちょっと上げてみる。bar-user...実際に各種作って比べるとこんな感じ。いままでのそれよりだいぶ雰囲気がちがう。イベントメモこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。あって更新してなかったり、いろんなダメージを追ったりしていますがわたしはげんきです\('ω')/というわけで久々のCTFでした。今回はぼっちーむではなく********で参加です。2000点で10位だそうです。http://score.quals.seccon.jp/ranking/おうち参加ではなくSFCまで行ってエナドリ飲みながらやってました。複数人でわいわいやると楽しい!サイコー!ぼっちのときと異なり、よくわからんところは任せよー、人数で押せるなーいいやーとなってしまい、あまり成果でなかったなーと思いました。ひとりのほうが、バイナリもやろうかな、とか、フォレンジックやるか、と、あれこれしようと思えるので、鍛えるならそっちのほうがいいかもしれないですねーって。writeupはとくにないのでかかないです。Web300は頑張った(意味深)ので、取れましたけど、周りの人をみるとスッキリ解いてるので、クソ。(http://nash.hatenablog.com/entry/2014/07/19/213114)他はさっぱりでした。発想力が完全にどこかへ飛び立っていました。次回もがんばりましょう。メソッドもどきですが。文字でっかく1枚に少なく、にしたらすごいサクサクつくれたので、今後も試してみたい。知ってるネタはググって入れたけど、どこから探すんだろう。Tumblerをめぐりとかで出てきそう。・フォントメインでつかってたフォントは「ゆたぽん(コーディング)」ゆるふわ感がありつつも、見やすさが程よくお気に入り。手元のエディタなんかは大体このフォントにしているくらいのお気に入り。キャンプのときは「ごみばこの人」「ごみばこいん」とかで参加者に知られてました。卒論の影響もあって、JSばかりですが、お仕事はサーバ側(PHP/Java)もやります(やってます)CTFとか書いてありますが、ガチじゃないです。CTFに参加したものの、まったく旗取れず知識・技術不足、カンの弱さを実感。XSSIPAのレポートをみるとよいかも。XSS』に関するレポート急増してるとあるものの、脆弱性の報告や問題視は昔からある。jQueryマシマシや、スマホなど、jsの活躍場所や表現力、ライブラリなどががグワッと伸びた結果、こうなってるとおもう。HTMLエスケープを施す、が対策になるが、DOMから拾うのが安心安全。}つぶやくボタンを例にだしたのは、例示でよく見かけたため。前にも、わりと大手サイトのつぶやくエリアが無法地帯だったとの話も聞きます。書き直しとか設計見なおしも含めてaltJSに移行しているリポジトリです。元のリポジトリは50くらいでした。'△')/・経緯1日目終わった後にまっちゃさんが「見てなかったのでもう一回ね」ということで。・ネタ面白さ的に以前参加した残パン会でやったやつがいけるな、と。Wikipedia残パン会に参加してきました。二次元的にコードを書くプログラムカウンタ?ポインタ?が縦横に動くことができる自己改変機能があるBefunge-93は広さの制限がありチューリング完全ではないBefunge-98は任意次元の拡張とかよくわからない定義がある(理解してないし資料を読んでもいない)・デモについてjsで書いたBefungeインタプリタ。ブレークポイントが貼れてステップ実行できたりしてどうのこうの。後日、丸々書き直しをしている。チャットは残パン会でつくったもの。あの時はちゃんと動いてたはずなんだが....サーバ側はPHP/MySQLで飛んできたデータをしまうか、Befungeで扱いやすいフォーマットで返すだけ。認証機構なんてなんにもない。クライアント側をフルBefungeで作ったという話。しゃべりたかったこといろんな時代を経て進化してきたプログラミング言語もいいですが、esolangという世界もあります。楽しい、面白いので覗いてみましょうはろーわーるどかいたよー^^って言って縦横に記号並んでたら面白いでしょ?複雑なesolangだとそもそも実装が少なかったりするので、そういったことにチャレンジするのも、ね。セキュリティキャンプこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。Yokohama○前置き「セキュリティ・キャンプについて」http://www.security-camp.org/outline/#index07日曜日・月曜日と行われたセキュリティミニキャンプへと参加してきました。今年の夏にキャンプに参加してたので、参加者側ではなくチュータとして参加しました。本来チュータ枠はありませんでしたが、川合先生が円滑に進めたいとのことで、コミュニティで募集をしてました。普段はWebに住んでるぼくからすると、世界が違うのでちゃんとチュータできるかどうか...という点も含めて、アセンブラもちらほらやってみたかったのでチュータに名乗りあげました。横浜開催に来れる人、になるとまったくいなかったてオチでしょうか。結果として、タイトルのまんまで、超専門的でまったくついていけねぇなんてことはなく、ぼくでも大丈夫だったので、逆にそれがメインの人からすれば真新しいことはないのかなあと。興味あるけど機会がなあ、みたいな人推奨みたいな感じです。講義の話はタイトル通りなので、実習の部分を主に。プログラミング言語~はパンチカードとか、かつてコンピュータができたころの話とかとか。事例に学ぶ~はWinnyの話でした。Winnyにはびこるウィルスを殺すには、みたいな。数学ガール読んでたので、ある程度はついていけました。数学ガール読みましょう((○『Arduinoでの組込みOS自作体験』Arudinoとありますが、実際はシミュレータを使ってそれっぽいことをやる感じでした。C言語でかかれたやつをいじくりまわして。シミュレータを走らせて。cuコマンドを使用して、そのデバイスに対してシリアル通信をして。いうような感じだったとおもいます!若干プログラム周りのやることが追加されてますが、ほぼこのページ通りな気がします。一緒に悩みながら再起動したり試したりでなんとか。あとで聞いた話、シミュレータも完璧ではないので、タイミングによってはうまく引っかからなくて結果がでないこともあるそうです。・反省点"事前にインストールしておくこと.txt"のようなものを受け取っていたので、そこから自分で発掘して下調べをしておくべきだった。坂井先生に個別連絡をとって、下準備を聞いておくべきだった。screenコマンドを全くしらないのはまずい感あるので、多少なりとも勉強したい。歩きまわって各自の様子を見るべきだった。聞きづらい、手を挙げづらい、という思いがやっぱりあると思う。様子を見て、詰まってるっぽいならこっちから聞いてみる。・良かった点NOP○『超簡易PC用OS自作体験』はじめはアセンブラを書いて、動いたやったー。途中からセクタを読み込めるようにして、あとはC言語でそれっぽい画面をつくる、キー入力をする、という具合です。OS自作入門」をさらに説明するのに難しそうな箇所をバンバン削って「2時間でできる!超簡易PC用OS自作体験」とのことでした。なんやねん、て質問があったんですけど、他のレジスタとの兼ね合いでやる内容が決まってるんですって返ししかできなかったので、こちらをみてください。http://en.wikipedia.org/wiki/INT_13H・チュータポイント資料をまるまるもらっていたので、事前に全部通してやりました。理解の助けになっていたとおもいます。実施中に何人かにもいったのですけど、フォント増やすのはかなり地道な作業になるから、そのあたりを構造体とかポインタとかカッチョいい感じに使って、リファクタリングとかやってみたらいいんじゃないかなー、なんて話を。実際にしている人はいなかったっぽいですけども..wあとは、forまわして動きをつけたりしてる人もいましたね。他にも、sin関数移してきてゲームっぽいものを作ろうとしてたり、Brainf*ck専用OS(?)を作ろうとしている人なんかも。後者についてはこわすぎるので、しかるべき場所にいくべきです((・反省点ぼくの事前学習がちょっと不足してた。エラー対応のパターンとか。Terapadの行表示をさせるのを忘れていた。初日からの改善で、演習始まったら見て回ってた。抜群の目grep力(皆無)でエラーっぽいのを見つけて声をかけるようにした。エラーが出る方がC言語側に集中していたので、対応しやすかった。コンパイルエラー出たら紙とにらめっこするよりも、エラー文を読んだほうが色々よさそうです。最後の人生相談の場にいなくてごめんなさい。いつでもリプライでもDMでも顔本でもなんでも聞いてくれれば反応します。参加した人の話聞きてーなー俺もいけるんかなーくらいの軽いノリでも大歓迎です。こんなぼくの話でよければいくらでもします。ぼくのかいた応募用紙についてもちらっと見ると参考になりそーなことが書いてあるかもしれないです。セキュリティキャンプ2013(web)に参加します+応募用紙のあれキャンプ中に言うのを忘れてたことがひとつ。いろんな知識とか技術とかを受け取ったと思うんですけど、なにかしらの形でそれらを出力していけるといいですよね。voidじゃなくて、せめてもbool。うんともすんとも言わねえ...というのはいささか勿体無い気も。ぼくもここは夏キャンプ分の出力できてないので、まだまだこれからですねって話ですが..wそれともう一つ。チャンスは掴んでいけ、というところです。最初にも書いたのですが、コミュニティのほうで募集をかけており、1週間たっても誰も名乗り出ていなかったのでやってみるかーという思いで手を上げました。結果、チュータのお仕事がちゃんとこなせていたかなんてわかりません(=講師陣・参加者から見てどうだったか...)が、面白い話がたくさん聞けましたし、もっとがんばらなくちゃなーって気になりました。各地のミニキャンプはキャンプ予選みたな形だと思うのですが、ここにチュータ参加できたのは、ある種のチュータ予選みたいな話でもあってよかったとおもいます。LTやって!というのもいい経験ですし、LTとはいえスライドづくりや説明の甘さも思い知りました。はい、ということで2回めのLTをー...」はよかった(やりきった感LTで喋ったことの補足記事もかきます。二回目の方はあたふたしすぎてまったくなにがなんだかわからなかったので本当に申し訳なかったです。○さいごに@参加者のみなさんへミニキャンプはどうでしたか。チュータ力不足につきサポートしきれない点もありましたが、みなさんなんとかやりきったのかなーと勝手に思っています。できる人できない人が混在していたので、1か0かでさくっと分類してぼくからのメッセージを書きますね。脳内のメモリは限られてますし、読むだけ読んで、そのまま/dev/nullへでも送ってください。・簡単だと思った人もっと勉強して、もっとプログラムを書いて、もっとパケットを読んで、来夏のキャンプに備えましょう。若干の上下幅はあるものの、同年代のすごい人達がたくさん来ます。普段できない話や、あたらしい視点、ひらめき、人脈、etc...キャンプで得られるものは講師陣からの卓越した技術や知識だけではないとおもいます。過去のキャンプ生...できれば最近なほうがいいですねw、を見るとその様子が見て取れるのではないでしょうか。そんなセキュリティキャンプ、どうですか。・難しいと思った人やったことはすべて与えられています。そのときに、なにがわからないか、1つずつ調べていきましょう。必要であればお手伝いします。キャンプなんかむりだろー、という前にまずは手を動かしてみませんか?とはいえ新しい何かを作るのはアイデアないしなあ、というのであれば、とても素晴らしいアイテムをもっていますよね。坂井先生のArduinoシミュレータ、川合先生の自作OS。このプログラムをいじくり倒して、あれこれしてみてはどうでしょうか?@講師陣、運営なみなさんへいろいろと至らぬ点があったかと思いますが、いずれも言い訳をして捨てることはしません。粛々と受け止め、改善策を考え、あれこれ試して、次の機会に備えます。ぼくの知らない世界がたくさん見えて、チュータとはいえ参加者側の気分でした。アセンブラやOSなど、興味がでてきたので、時間をみてちょっとずつ手を出してみようとおもいます。キャンプ以外にも、いろいろなところで今後もお世話になるかと思います。そのときはまた、よろしくお願いします。短歌を読んでみたんですが、思った以上に難しくて白目。味わい深さどころか、57577の形になっただけの要修行なレベル。ここからがんばります。F0あ、あと、ぼくのスライド欲しい人いればリプライとかで直接いってください。セキュリティキャンプこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。通知したように、セキュリティキャンプに参加していました。2013Webクラスでした。2013CTFはネットワークの方がめっちゃがんばってくれたおかげで3位でした。ぼくはWebで200/300/100/100くらいと、他のとこで100/100/100くらいとったような気がしました。400と500ぜんぜんわからんくてしぬ。SQL周りがさっぱりすぎてしぬ。2013いただいたものとか、Javascript本たくさんでめっちゃよろこんでます。アイエエエエ!?ニンジャ!?ナンデニンジャ!?!?っていいながらジャバスクリプトニンジャをいただきました。あとミクさんのポスターいいっすね^~それとボウズマンウォーターですね。アパ水には勝てないですけど、なかなか。2013と、いうところで「これから」ですね。作ったり考えたりしてアウトプットしていきたいです。直近(むしろなう)の私立プログラミングキャンプでちょっと作ってみたいものがあるので、そこがんばりまーす。生きるこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。(7月中旬くらいに退職してました。)夏休みインターンからそのままアルバイトとして、11ヶ月ほどお世話になっていました。Railsでほげほげしたりといったことをしていました。他にもPythonやC#をちょこっと、Flashもすこしやりました。いづれにしても、やったことのないことばかり、しらないことばかりで、とてもおもしろかったです。そこに居るだけでも勉強になることが多かったと思います。Railsばかりでしたが、そこから学んだことはあまりアウトプットできていないですね。Rails要素はありませんが、RubyはARCやちょっとしたスクリプトなどで使っています。Rails要素もこれからやっていけるとよいですね。心残りといえば、最後に関わったモノがどうなるのか、というところです。アルバイトの方に半ば押し付けるような形になってしまい、申し訳ないと思います。勝手な事をいっていることは承知の上ですが、試みは面白いのでぜひとも形にしていただきたいと思います。いうことで、関わったみなさま、ありがとうございました。次のお仕事は決まっています。都心部にある某社に内定を頂いているので、そこでお世話になります。大学での卒研・論文が疎かにならない程度にがんばります。卒研の方では、Webセキュリティについてほげほげしています。完成度はまだまだですが、がんばって上げていきます。(追)お引越しを考えているので、仕事場所からあまり遠くなく、良さそうな場所あったら教えて下さい。メモこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。7/13の話で、すごい今更感。講師は@ntsujiさんでした。リスト型攻撃といった攻撃種類があり、誰でも簡単にできるツールがある。定期変更での効果が薄いように見えるが、ここに労力を割いていいのか。被害者意識ではなく当事者意識を。メーカは頑張ってエアバックだったり自動ブレーキがついてるけど、事故は起きる。セキュリティはみんなのもの、みんなで作っていきましょう普段パスワードについてしっかり考えることもなかったので、とてもいい機会でした。講師のスライドだけでなく、参加者同士のディスカッションタイムがあり、他の参加者がどんなパスワードを使っているのか、どのように運用をしているのか聞いたり、じゃあ実際どのように運用していくのが良いのか、いいパスワードとは何か、といったことをお話しました。パスワード管理ソフトによっては、メモだったり、パスワードだけでなくそういう類のものを保存したりできるそうです。いいですね、導入しましょう。セキュリティキャンプこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。Webセキュリティクラスに参加することになりました。講師、チューター、参加者の皆様よろしくお願いします!残念ながら落ちてしまった方々、これを機に勉強したり何か作ったりしてみてはどうでしょう。ぼくは昨年、「気付いたら応募締め切りが終わっていた組(?)」の参加者で、来年絶対いくわ!といった感じで勉強したりコード書いたり遊んだりしてました。あとは「そこで学んで、その知識をどうするの?」というところだと思いますもしこれを見ている人がチャレンジしたいのであれば、こういった講師のメッセージも参考になるかとおもいます。しての講評これらをざっくりとまとめると。実際に試してみるといった辺りが、大きな基準になっているのだと思います。あと、セキュリティキャンプに参加することが目標となってしまうのはまちがいだと思います。そこで身を持って体験できる貴重なもの、セキュリティだけでなく他の参加者からの情報や意識、そういったものをどうアウトプットしていくか、何を成すのか、そこが目標であり、そのためにセキュリティキャンプに参加するんだ、という思いが必要だと思います。これに対して、意識たけぇw、と煽って終了なのであれば、まあ、そういうことなんでしょう。来年もきっと開催されると思うので、そこに向けて、その先へ向けて、なにか出来ることをやっておくといいと思います。ぼくの応募用紙をここに貼っつけてみます(いいのかな...だめならごめんなさい...みなさんの参考になれば、もしくはツッコミなどが飛んでくれるといいですね。《~》と囲ったものは実際の応募用紙には記述していない部分です。諸事情でさっくりとしか公開できないようなものとかですね。このクラスを希望した自分なりの理由を教えてください。この講義で学んだことを何に役立てたいかを教えてください。Webに関連したプログラミング歴を教えて下さい。今までに作ったWebに関連したプログラムがあればどのようなものを作ったのかを、あるいは将来どんなシステムを作ろうと思っているのか、差し障りのない範囲で具体的に教えてください。・UnityとWebSocket(socket.io)の実験Unityのネットワーク機能ではなく、ブラウザを経由してsocket.ioを使い同期を取ってみるもの。Policyについて自分の言葉で語ってみてください(これらがどのような脆弱性・技術かの解説は不要です)。説明は不要とのことなので思うことについて。クロスサイトスクリプティングについて思うところは、確認したことのある紹介・解説しているWebサイトの説明文では、それがどれほど危ないのか、という実感がわかないところにあります。あるものは「このようなプログラムを書くと、ほら、alertが実行できますね」程度のもので、それによる状況の深刻さというものがまったくわかりません。その結果として、放置してしまったり、なあなあのままWebサイトを運用していたり、といったことがあるのかもしれません。Policyについては、開発している際には厄介になることも稀にあったりしますが、これがあるおかげでWebにおけるそこそこの安全性を担保してるものだと思います。どちらにも言えることとして、日本語に訳された時に訳しすぎ、もしくは曲解された翻訳になり、いったいどういうことなんだろうか、となった経験があります。その時は頑張って大本の文章を読んだり、いろいろなページを見て結論を出しました。《SameOriginPolicyが短いのはそんなに思っていることがなかったとおもう》4.あなたが読み書きできるプログラミング言語の使用歴、おおまかな習熟度と好きなところ嫌いなところをお書き下さい。(いくつでも可)例:C言語(中学○年生のころから。調べながら書けるレベル。ドキュメント/リファレンスがほぼ必須レベル。タイムマシンに乗って昔のブラウザの仕様を変えられるとしたら、あなたは何を変えたいですか?例:HTTPは、そのWebアプリケーションを使用している間ブラウザを閉じるまでコネクションが切れないようにしたい。"ブラウザ仕様"に限って挙げます。真っ先思いつくものはこれです。https://twitter.com/NStyles/status/94259222748999680他に変えたいものとしては、細かい部分ですが、ブラウザ毎に異なるデフォルトのスタイル定義や、JavaScript実装などの統一化が欲しいところです。リセットCSSやクロスブラウザに対応できるライブラリを使えばいい話ですが、それが仕様として定められ、標準化されていればまた変わった世界になったかと思います。他にはプラグインをもう少し作りやすい環境が欲しいです。以下のJavaScriptのコード断片は、とあるWebサイトで利用されていたものです。これを見て気付いた点について、自由に書いてください。}なんだか見覚え感のあるコード...2行目、location.searchはURL末尾の?を含めた文字列を返すので、?を取り除く。構成されているか確認。8行目、以上の処理によって得られた文字列に対してGETリクエストを投げる。9-16行目、Ajaxのテンプレ。XSSの脆弱性が存在しています。プロトコルが省略できること、IPアドレスをDWORDで指定してもアクセスできること。これを利用して攻撃ができます。攻撃用データはHTMLとして用意、header("Access-Control-Allow-Origin:*")を付与した適当な公開場に設置することで使うことができます。すると良いと思います。先頭にスラッシュを含めないようにすれば、上記の攻撃はできなくなります。なく、別のものを使用したほうがいいとも思います。そのほかアピールしたいこと、書き足りないことがあれば自由に書いてください。トップのチームでした。*/《上記のコメントは実際に送ったものにも含まれます。深い意味はありません。《マジレスすると暗号化したり難読化したりすると読む人が大変なので真似しないでください、辞めましょう。それで選考結果が変わることはないと思います。イベントメモこの記事は公開されてから1年以上経過しており、情報が古い可能性があります。Day1へと行って来ました。)そこで聞いてきた、メモしてきた話を思い出しつつ補完しつつ書きました。英語での講演もあったので若干解釈がことなる部分があるかもしれませんが、そこは後日公開される資料であったり、他の方のブログ記事やメディア記事などを参照していただければと思います。"書いちゃまずい系のもの"はとくに無かったかと思います。あったのであれば申し訳ありません。基調講演GDCに出てきているゲームの層にインディーズ系が増えてきていること。5年前は難しかった無名少人数チームで壮大なゲームを作るのが今では可能なこと。Unityはそれを実現するツールとして優秀なこと。Wii-U"として別途用意されるようです(auのSkypeみたいなアレ)SDKの都合からか、OSはWindows専用だそうです。リリーススケジュールとしては、通常のUnityと同期して行い、例外的に追加機能が先に入ったり、ということもあるようです。Wii-U向けのビルドは至って簡単で、ビルドセッティングのウィンドウからWii-Uを選択するだけ。Windows/iOS/Androidとか書いてあるあの枠にWii-Uの項目が追加されます。ビルドが完了すると、転送用のバッチファイルとROMデータが生成されるようです。そのバッチファイルを起動すれば、何かしらの方法で接続している開発用の実機に転送され、実機テストができるとのこと。Wii-Uといえば、ディスプレイのついたゲームパッドですが、そちらへの対応も簡単にできるようです。その方法は、カメラを追加して、追加された項目である出力ターゲットをゲームパッドにするだけ。実際にデモとしてAngryBots(Unityについてくるサンプルプロジェクト)にカメラを1つ追加して、ゲームパッドに3人称視点を出す、ということをやっていました。Wii-Uの機能として用意されている、フレンド/アカウント/ストアなどへのアクセスは、C/C++のネイティブプラグインを導入することにより可能になるとのこと。開発者登録をすればUnityのProライセンスが無くとも、無償で全ての機能が利用できるということでした。!残念なことに、日本からは個人での開発者登録はできないとのこと。ご紹介Webkitベースに作られた、Wii-U向けアプリケーションを最近流行りのHTML5で作れるフレームワークだそうです。イメージ的には、PhoneGapとかTitaniumとか、それのWii-U版といったところでしょうか。フレームワークの方でJavaScriptが拡張されており、Wii-U向けの各種命令郡が使用できるようです。ゲームパッドとTVと違う画面を出力したり、ゲームパッドの傾きや振動を取得したり、フレンドやアカウント機能を使用したり....デモでは、既存のWebページ(動画リストがあって、選択すると再生する)をWii-U向けにビルドしていました。その時の特徴として、既存コードには一切の手を加えていないというところです。既存コードにはjQueryやvideoタグなどが含まれていますが、その辺りをうまいことやってくれるようです。(裏はWebkitが動いているようなので当たり前っちゃあ当たり前っぽい気も)もう一つのデモとして、同じようにWebページとして作られたゲームがありました。こちらは、Wii-Uでできることの総集編のようになっており、前述の拡張されたJavaScriptがフルに活かされているようです。このデモはフレームワーク付属のサンプルのようになっており、ソースコードの至るところにコメントがしっかりと付いているとのことです。最後のデモにベンチマークが出てましたが、これはどうにも比較対象がないのでなんとも。700くらいのスプライトがでてるけど60fps維持できてますねー、というものでした。これまた残念なことに、日本からは個人での開発者登録はできないとのこと。シリアライズ徹底解説まずなぜシリアライズを行うか。これはプレイデータの保存やエディタの状態を保存するために行う必要があります。ここでは、エディタ内に絞った形で講演していました。・プロジェクトの読み込み・スクリプトのコンパイル・ゲームのスタート、ストップといったタイミングでシリアライズが行われます。適当なエディタウィンドウを作って適当にいじって、ゲームのスタート・ストップと行うと、そのウィンドウ内のデータがシリアライズされてないと吹っ飛びます。intとかfloatとかビルトインの場合は、publicにしたり、privateでもSerializeFieldアトリビュートをつけることで解決します。自作クラスの場合は、クラス自体にSerializableアトリビュートを付ける必要があります。この2点を守ればデータのシリアライズが行われます。structsはシリアライズがされないので、シリアライズしたい構造体があるのであれば、クラス化しましょう。ここでシリアライズの問題点として、クラスを参照する場合がでてきます。同じインスタンスを参照する変数を2つ用意してシリアライズしようとすると、片方しか反映されないとのことです。それらは別にシリアライズされてしまうからです。この問題の解決には、ScriptbleObjectを継承したクラスにする必要があります。その際に、nullチェックやhideFragを使うことで~~Listなどのリストの場合、簡単なクラス(親クラス型のリストに子クラスのインスタンスを入れるとか"しない")の場合はうまくいきます。逆に、それらが含まれる場合、そのままでは上手く出来ないので、ファイルを分けて~・・・・シリアライズしたデータ(ScriptableObject?)から、アセットファイルの生成も可能になります。AssetDatabase.CreateAssetを叩くといいようです。-----という具合で、正直よくわからんかったので勉強してきます。・他人が触るときに触ってほしくない箇所を隠す・制約がめんどうなとき("ここはこう設定!"などと定められているなど)・見やすくする・編集しやすく、使いやすくするといった点があり、ここは変えたほうがイイネ、という部分はいじっていきましょう。エディタを拡張が具体的に何ができるか。1つに表示項目の改善があります。これは例えば2Dゲーム開発でのTransformのZ軸を隠したり、テクスチャの設定欄に小さい窓をつけたり。メニュー項目を追加したり、シーンビューに追加のハンドルを表示したり、などなど可能性は色々あると思います。アセットストアに出てる凄い系のものに付属しているエディタちっくなものは、そういった拡張がアツいと思います。1つはビルド前後に処理ができるようになります。具体例こそ示されていませんでしたが、現場の方々であれば色々と必要そうなアレコレをできるのではないかと思います。最後に、アセット管理における移動や削除の制御ができます。これらのファイルはこのフォルダ!など、パスに対してマッチングさせて制御するコードを書いていきます。今回の講演では、主に1つ目。表示項目の改善などについてでした。(なんだかメモ書きがすごい適当でまったくわからない現象が...)まとめると、Editorクラスをちゃんと理解しましょう。理解していじらないと最悪Unity毎オチます。理解した後に、EditorWindowだとか、CustomEditorだとか、シーン/ゲーム/プロジェクト/ヒエラルキーなどへと広げていくといいようです。余談ですが以前、タワーディフェンス的なサムシングをやろうかと、UnitySteerを使いパス...というか座標を辿るものを使いました。その時、座標のリストを作るときに、シーンビュー上に"座標の箇所にハンドルを設置してマウスで操作できるように"したらめっちゃ楽でした。-Unity,Androidでのプログラムとデータの暗号化、およびハッキング対策-セキュリティを最近勉強しはじめている私にとっては今日一番わくわくしていたものです。Scriptという形で、Unityを堺にJavaVMとMonoVMが動いているような。Unityが何をしているかというと、C#で書かれたスクリプトをJavaへとマッピングを行なっています。ある?ハックとして課金コンテンツがあります。これは、AndroidであればGooglePlayLicenseを経由して行われます。Googleという流れで行われます。オンライン環境であれば、定期的に確認すればいいのですが、オフライン時にはユーザのデータを信用するしかありません。同じような形式でやりとりするのが好ましいようです。Unity上でこれを実現するには、"GooglePlayLicenseVerification"というライブラリがGithubで公開されているので、それを使いましょう、とのことです。次にアプリケーションの改竄を検出する方法です。これは、ゲームコードの変更やチートなどの不正行為を防止するために必要です。チェックする項目は・アプリがデベロッパーのプライベートキーで署名がされているか・Javaコードが正しいか(class.dex)・Unity/Monoが正しいか(Unityランタイム郡)・C#コードが正しいかというものがあります。詳しくはわからないのですが、こういったことはAndroid開発者の方々には当たり前なのでしょうか。C#などUnity側からでもJavaのコードを実行できるのでそれで確認しましょう、という具合でした。(AndroidJavaObjectというクラスが用意されており、それで実行できます)次は暗号化です。・ゲーム進捗Unityでは簡単にゲーム進捗を記録できるPlayerPrefsというクラスが用意されています。そのままではやはり簡単に編集され、メダルXXXXX枚などとされてしまう可能性があります。これは、key/valueのペアとして記録することに加えて一工夫することで改善できます。keyは本来のkeyのハッシュ値、valueには保存するべき値に対してTripleDESなどを掛けるなどを施します。・スクリプトスクリプトは暗号化、よりも難読化がメインになります。Unityで書けるプログラムは何の変哲も無い普通のC#なので逆コンパイルなどが容易であり、難読化されていても解読は可能です。Unityのビルドではここに対してなんの暗号化/難読化も掛けられません。ゲームの根本に関わるような大切なソースコードであれば、自分で暗号化/難読化が必要です。1つの案としてOpenSSLを使うものがあります。~.dllとして外部でコンパイルし、それを暗号化して~.binに。これをアセットまたはwebに配置からの通信などを行い、ゲーム内で復号化して実行する。読み込み部分はAssembry.Loadとリフレクションを使うことで可能になります。こちらもシグネチャの確認は定期的に行ったほうがよいようです。・アセットテクスチャやポリゴン、音声やBGMといったメディアだけでなく、上記のような暗号化されたスクリプトやデータベース、プラグインなど、すべてがアセットになります。これはスクリプトと同様に、~.unity3dを暗号化するのが1つの方法としてあります。具体的な読み込み方法に関しては特に触れてなかったかと思います。・APK自体のチェックを怠らない・重要なコードは自分で保護する(暗号化/難読化)・様々なアプローチを試行する・ただしアプリケーションの保護に時間をかけ過ぎない。時間をしっかりかけて守るよりも、ぼちぼちな感じでアップデートの方に力をいれたほうがいいよねーみたいな具合でした。モバイル向けShuriken活用法(これまたメモが凄いメモの役割を果たしていなかったのでさっくりと....)1.本当にパーティクルが必要かそれはアニメーションテクスチャで出来ないのか。よい表現方法はないか。2.そのパーティクルはどう構成されているか例えば爆発なら火と煙と破片と根本と、4つ?いやいや2つでいけるのでは?1つのパーティクルに内包されるパーティクルはすべて同じ力を加えなくてはいけない。表現力が乏しいForceとVelocityのカーブを調整して表現する。このとき、キーフレを追加して、曲線を自由自在に操ることができる。基本的にはVelocityを使い、力が必要な場合(ex.爆発)でForceを使う4.パーティクルと一緒にマテリアルを作る炎のパーティクルを作るなら、火・煙のマテリアルを作りながら、適用しながら。残りはパーティクル作成デモのような形でちょいちょい部分部分の説明があったかと思います。Day1で参加した講演はこのような具合でした。Wii-UのAngryBotsが企業ブースに置いてありましたが、まったく触れてなかったので、Day2で触ってみたいと思います。data-src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>。