2017/07/01(Sat) 00:00
Security ,
CTF ,
SECCON Beginners に行ってきました。
SECCON 2017
気がついたら駅を行き過ぎてしまい引き返すというぽかをやらかしたものの、なんとか時間内にたどり着きました。なんかもっと人が少ないイメージでいたのですが、100人以上がぎっしりいてびっくり。nagoyasecのときもそうですが、セキュリティを学びたい人は多いのだなーと実感します。
会場も多くの方々が設営してくれてあり、頭が下がります。CTFがあると普通の勉強会と違いネットワークを構築する必要があったりするのでなかなか大変そうです・・・
続きを読む...
2017/06/30(Fri) 00:00
LLVM ,
C++ ,
第7期サイボウズ・ラボユース研究生(支援金なしの方)に採択されました。サイボウズ・ラボユースはサイボウズ・ラボさんの行っている学生向けの支援プロジェクトです。技術的な支援を受けながら開発できる、という非常にありがたい環境です。私は名古屋住なので基本的にオフィスに向かうことはできず、オンラインでという形になります。
サイボウズ・ラボ:サイボウズ・ラボユース:募集要項
#作るもの
C++でLLVMのインタプリタ/コンパイラを作成したい!というのが今回の目標です。LLVMむっちゃ楽しそう!と前から思ってたので、この機会に頑張りたいと思います!!
ただ、面接の際にもつっこまれたのですが、若干自分の頭の中でやりたいこと・やるべきことの考えが空転している部分があるので、学習を進めつついろいろ詰めていきたいと考えてます。
多分、自分の頭の中の作りたいものがなかなか高度なもので、現状では圧倒的に知識と実力不足。(いつかめっちゃ高機能なバイナリエディタとか、IDA Pro並みのデバッガとか作りたいじゃないですか。)よって、そこに向けて実現可能なものから着実に知識と実力をつけたい!というのが自分の発想の一つなのかなーと思っています。
とりあえず、現状でC++もLLVMも初心者なのでどうにか時間を捻出していきたいと思います。テストとかもあるのですが、来月中にはEffective C++は読破+LLVMの公式リファレンスを読み始めるとかはしたいです。
続きを読む...
2017/06/26(Mon) 00:00
Xamarin ,
C# ,
以前Xamarin.FormsとHtmlAgilityPackでスクレイピング! でHtmlAgilityPackをXamarinで使うとXPathが使えないよという話を書きました。Xamarin勉強会でLT用に調べ直したところ、無事XPathが使えたのでスライドを再編集して記事にしておきます。
LT当時と比べて更に状況が変化したので内容が少し変わってます。環境はVisual Studio 2017で確認しています。
やりたいこと
スクレイピングなどの際にHtmlを解析したいことがあります。HtmlAgilityPackはそんなときに使える.NET用のライブラリです。
他にもいくつか解析ライブラリはあるのですが、最も活発にメンテナンスされている、著名なものだとHtmlAgilityPackになるようです。
HTMLを解析する時、一般的なライブラリではCSSと同じ方法で指定できるCSS Selectorを利用します。しかし、HAPでは現在未対応です。
代わりにLINQやXPathを利用できます。それぞれ用途が違い、
LINQ(リスト向けの汎用)
XPath(XMLやそれに近いツリー構造用)
CSS Selector(HTML特化)
の順にHTMLに特化していき、短く、わかりやすく書くことができます。
続きを読む...
2017/05/12(Fri) 00:00
Windows ,
Chocolatey ,
WindowsのノートPCがやっと修理(交換)から帰ってきたので、あらためてWindowsの環境を構築しました。
用途は主にプログラミングと大学の電子ノートです。今回はそのメモ。
環境
Surface Pro 3(RAM8GB/SSD256GB/Corei5)
最新のWindowsまで更新(Windows 10 Creators Update)
昔と比べて、環境を取り戻すのが非常に楽になっています。
続きを読む...
2017/05/01(Mon) 15:43
Windows ,
PowerShell ,
PowerShellで関数の呼び出しの前後に処理を追加したいとき(ラップすると表現するんですかね?)にハマったのでメモ。
こんなことがしたい。
function hoge {
ls
}
function hoge {
echo "lsを呼びます"
hoge #古いhogeを呼びたい・・・
}
これは当然のことながらhogeを永遠に再起して無限ループになります。
うまくいかない例
C#などでは関数の参照(デリゲート)を変数に入れておいたりすれば後からそれを呼び出せます。PowerShellではうまく行きません。
function hoge {
ls
}
$a = hoge
# この$aは「hogeの呼び出し結果」が格納されているだけ!
$b = { hoge }
& $b #=> (lsの結果)
# スクリプトブロックを使っていて呼び出すことができる。
function hoge {
echo "piyo"
}
& $b #=> piyo
# 置き換え後の結果が表示されてしまう・・・
と、上のような方法ではうまくできません。PowerShellはダイナミックスコープのため、実行されたときのhogeの関数を呼び出してしまうためです。
ではどうするか
関数の中身を変数としてアクセスする方法があるので、それを利用するだけです。
$c = $ function : prompt
& $c
PowerShellではFunctionをファイルシステムのように扱える「プロバイダ」が用意しているため、上のように$function:promptとすると変数のようにアクセスできます。
なんなら、$function:hoge = "echo test;"+$function:hoge
のように文字列として強引に処理をねじ込むことも可能です。
ちなみに、一部の記号などを含む名前の場合、波括弧でくくる必要があります。
# 「-」が区切りと判断され、New関数の中身を見てしまう
function New (){ echo "new function!" }
echo $ function : New -Guid #=> echo "new function!"-Guid
# {}でくくる
echo ${function:New-Guid} #=> New-Guid関数の中身
プロバイダについてはここらへんに詳しく書いてあります。
プロバイダとドライブ - Windows PowerShell | ++C++; // 未確認飛行 C
結構検索しても見つからなくて大変でしたが、PowerShellは十分高機能なので大抵のことはできるようになっているので、頑張って探せばきっと答えはある・・・
続きを読む...
2017/04/28(Fri) 14:50
Security ,
セキュリティキャンプ ,
2017年度のセキュリティキャンプ全国大会の募集が開始されてます。
セキュリティ・キャンプ全国大会2017 ホーム:IPA 独立行政法人 情報処理推進機構
セキュリティとかわかる人も、わからない人も良い機会になるはずです。
(自分の無力さを知ることも大切です!)
大学生が多いですが、高校生とか高専生もためらう必要はないと思います。
受験者へ
セキュリティキャンプの応募で求められるのは正解ではなく熱意 だそうです。
多少間違っていたり冗長であっても全部書ききった方が良いのではないでしょうか。
具体的な基準はわかりませんが、正解だけ書いてあるとか、文章があまりにも短いのはよろしくないみたいです。
例えば、この年の選択問題【8】なんかは「このプログラムは[email protected] と入力した時に終了コード0、それ以外で終了コード1で終了するプログラムである。」という1行で終わるところを私は延々と求めるまでの手順を書いています。その手順もあまりに稚拙で恥ずかしかったのですが、熱意を見せるならいっそ書くか、と思って書いて出しました。
あと、基本的にわからないことだらけだったので、めっちゃググりました。はい。
こんなの調べずに全部わかるような輩はそうそういないと思います。
黒歴史を晒す
問題はこちら→https://www.ipa.go.jp/files/000053055.pdf
かなり稚拙で恥ずかしいです。あと、一部はXXXと伏字にさせてくださいorz
あと、ごちうさの問題はシャロちゃん派だったので解きませんでした。
続きを読む...
2017/04/20(Thu) 13:40
Surface ,
Microsoft ,
Surface Pro 3の保証でACアダプタを入手
Surface Pro 3をもう二年ぐらい使っているのですが、最近急にACアダプタの調子が悪くなってきました。ケーブルをさしてもランプが点滅して充電されなず、どうやら接合部がお亡くなりになったようです。2年持てばこの手の製品では十分役目を果たしたでしょうが、純正品は高い。(売ってる所見つからなかったけど、過去の販売や海外MS Storeを見ると$80前後)。
こういう時にTypeCが羨ましいです。
続きを読む...
2017/04/09(Sun) 11:36
C# ,
Unmanaged ,
この記事は完全に投稿を忘れていたC# Advent Calendar 2016 - Qiita の14日目です。
目的
問1 「.NET Frameworkの標準ライブラリで一番長いクラス名やメソッド名は?」
問2 「publicな”HWND”を含む名前を持つ名前はどう表記するのが適切?」
問1についてはAPI名最長選手権 - Qiita という記事が2013年にあります。その後の更新などでもっと長い名前がないか確認してみたいものです。
問2については、もう少し実用的。Win32にはウィンドウハンドルを表すHWND型が頻繁に登場します。.NETで扱うときはWindowHandleやHandleといった名前が適切ですが、相互運用の関係上、HWNDをそのまま使いたい状況もしばしばあります。
その時の名前は、一単語とみなしてHwndとするか、Wnd(Windowの略)を意識してHWndの方が正しい気もします。こういうときは、標準ライブラリの命名に従って置くのが間違いありません。
ということで、標準ライブラリのpublicな名前を列挙するソフトを作成してみます。
続きを読む...
2016/12/09(Fri) 13:30
javascript ,
web ,
この記事はOthloTech Advent Calendar 2016 - Qiita の9日目です。
こんにちは、MIPSのクロスコンパイルができないで影白です。
現在、ChromeのタブをMacのアプリ気切り替えやWindowsのAlt+Tab切り替えと同じようなデザインで切り替える拡張機能を作成しています。
YahooさんのReactJSハンズオンに参加できなかったのでReactJSを自力でやるか!と思い立ったやつです。
現在はまだChromeストアなどには上がってません。動くものがGitHubにありますので、興味があれば見てみてください。(現在は起動条件があまりにマニアックなので、おそらく誰もわかりません。使いたい人がいたらご連絡を・・・)
デザインなどについては絶賛調整中ですが、フラットな感じに仕上がる予定。
ReactJSは完全にJavaScriptからソースを生成することになるので、データを元にHTMLをガリガリ書き出したい場合なんかは結構便利。ChromeExtensionでも十分活用可能です。ただし、ChromeExtensionの場合は事前コンパイルしたほうが良さげ。
ただし、万能とはいかずHTMLベースの場合は逆に面倒になりますし、ChromeExtensionのContentScript(Webページ上で実行するスクリプト)はHTMLは元ページのままなので、jQueryの力技でねじ伏せるのが一番楽だなと思いました。
さて、本当は拡張をストアに上げてChromeExtensionについて語ろうかと思ったのですが、色々と間に合わなかったのでそれは諦めました。
というか、ソースがあまりにも汚いので作り直しになります。
今回は、作成中に使ったSwiperというライブラリーの紹介と、バグ対策の記事です。
続きを読む...
2016/12/05(Mon) 12:10
C# ,
Xamarin ,
Android ,
iOS ,
[初心者さん・学生さん大歓迎!] Xamarin その2 Advent Calendar 2016 - Qiita の5日目です。
今回はXamarinを使ってスクレイピングに挑戦してみます。
C#ということで、Reference Source の検索部分を取得し、解析します。
プロジェクト作成
まず、Xamarin.Forms 入門ガイド - Xamarin : XLsoft エクセルソフト を参考にプロジェクトを作成します。若干分類が変わっていたりしますが、Blank App (Xamarin.Forms Portable)のプロジェクトを作ればOK。
今回は「RSTest」という名前にしたので適宜読み替えてください。
しばらく待つとWindowsのターゲット確認が出ますが、これもそのままでOKボタン。(ターゲット バージョンは最新に、最小バージョンは一番古いのを選択しておけば2016年12月現在、大丈夫です。)
このあと、HtmlAgilityPackを導入するのですが、念のために一度ビルド。それなりに時間がかかりますが、正常なことを確認。まぁ、Xamarinなので。
UWPなら[ビルド]→[構成マネージャ]のUWPの欄の「ビルド」と「配置」にチェックを付ける。
AndroidならAndroidSDKからAPI24以降を消し去るなど、謎の動作が必要ですが、まぁ、頑張ってググってください。
続きを読む...
2016/12/01(Thu) 15:00
結局公開する公開する言って何もしてこなかったんですが、気がついたら12月。アドベントカレンダーを書かないといけなくなってきました・・・
しょうがないのでブログを公開です。デザインはデフォルトのままで全然いじってないので、そのうちちゃんとしたものを作ります。ええ、作りますとも・・・
続きを読む...