独自ブラウザ実装メモ
C#.netで独自ブラウザ組んでるんだけど、いろいろメモ
全体像
Windows FormアプリにWebBrowserコントロールを貼るだけ。
でもタブにも対応したいので、TabControlを貼ってWebBrowserコントロールをもつTabPageを都度増やす。
タブのカスタマイズ
CodeProjectのCustomTabControlが手軽に使えて良いと思います。
Painting Your Own Tabs - Second Edition - CodeProject
WebBrowserコントロールのブラウザ変更
デフォルトはIE7です。不安になります。 レジストリで変更可能。アプリ名がKeyで、IEのバージョンがValue。
IEのバージョンは次の値を指定。
Internet Feature Controls (B..C) (Internet Explorer)
新しいタブで開く機能
これ、結構面倒。 WebBrowserコントロールで新しいウインドウ開くときはIEが開く。やめてくれー。
WebBrowserで新しいウインドウを開くイベントをキャッチして、ウインドウを開く処理を奪い取ります。 アクティブなHTMLタグ(aタグ)を特定し、URLを指定して新しいTabPageを開くようにすると同時にIEを開くイベントをキャンセルします。
今回はIFrameにも対応。ページ遷移しないWebアプリではIFrameを使うことも多い(と思っている)ので。 Document.ActiveElementを取得しても、IFrameの中身のどのタグがアクティブかまではわからず、もう一手間必要。 Document.Window.Framesからフレームを指定して、内部のActiveElementを見ればよい。
今回作りきれてない部分
javascriptのwindow.openとか使ったとき。
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
で、COM扱えるようにして、public void MethodA()をC#で実装したら、
javascript側でwindow.external.MethodA()
みたいに呼び出してあげればよい。
できればC#のメソッドを呼び出すためのjavascriptはブラウザ側から注入してあげるのが良い。
まとめ
こんな感じ。
1年振り返り
ダイジェスト
仕事編
- 転職して1年経ちました
- 強力なメンバーが参入
- 忙しくしています
プライベート編
- 家族が増える予定です
- ちょっとだけ引っ越しました
- VCP更新しました
- ネスペ落ちました
- 2重飛びが10回できるようになりました
仕事
冬〜春 * 販売系のシステム開発 夏〜秋 * 社内のサーバ環境一新 * 情報統制管理の基盤づくり
秋に強力な開発メンバーが来てくれたのでチームとしてはバランスも取れてかなり強力になったと感じます。 最近はもっぱらインフラ関係の整備とシステム保守。
プライベート
近々父親になる予定です。 こんなんで大丈夫かと不安ではありますが、楽しみです。
これ毎年言ってる気がしますが、今年は輪をかけてインプットもアウトプットもしていないなーと思うことが多かったように感じます。 職場の環境が変わって、かなり自由に伸び伸びと仕事させてもらえていますので、ハングリーさに欠けてたのかもなーと。
来年はプライベートが忙しくなりそうですが、月に本1冊、最低1記事を続けます。 今年はお世話になりました。2016年もよろしくお願いします。
TMCTF Writeup
開催当日も仕事だったのでがっつり出来ませんでしたが、今まで参加したCTFと比べてレベル高くて降参って感じでした。
自力で唯一解けたのがMisc100
ACROSS
3 A technique used for a piece of email to be sent to specific organisations
SPEAR PHISHING
6 An effective measure that protects unpatched vulnerabilities on a system
VIRTUAL PATCHING
8 Indicator of Compromise
9 The year the company hosting TMCTF was founded
EIGHTY EIGHT (1988)
11 Malware or technique used by cybercriminals that were arrested by FBI in 2011. The company hosting TMCTF contributed to this case.
DNS CHANGER
12 Global Technical Support and R&D Center of the company hosting TMCTF
TREND LABS
14 A piece of malware that prevents you from accessing your files and asks for money
RANSOMWARE
15 Something that was compromised in CMS in the following video: https://youtu.be/z5FXxnHiZOQ?list=PL08763C67B0C84AA1
VULNABILITY (2:18)
16 Annoying email or canned food
17 A server used by cybercriminals to communicate with a piece of malware planted in corporate network
COMMAND AND CONTROL
19 Where the main character got infected with malware in the following video: https://youtu.be/ws7Hqb-GPnc?list=PL08763C67B0C84AA1
SxxxExxxTxxxx (DOWN19から)
21 Current CEO of the company hosting TMCTF
EVA CHEN
23 Also known as 'internet'
CLOUD
24 Breach detection solution from the company hosting TMCTF
DEEP DISCOVERY
DOWN
1 Free malware scanning tool from the company hosting TMCTF
HOUSECALL
2 What assumuption does the narrator say is required in the following video: https://youtu.be/0hs8rc2u5ak
BREACH WILL HEPPEN (5:08)
4 A type of malware used for stealing data from corporate network
BACKDOOR
5 Datacenter security platform from the company hosting TMCTF
DEEP SECURITY
7 International law enforcement working with the company hosting TMCTF
10 The company hosting TMCTF
TRENDMICRO
13 Malware that was prevalent in late 90s and now resurging in 2015
MACROVIRUS
18 Cyber attack targeting specific organisation
APT
19 System used for industrial control system
SCADA
20 Where the company hosting TMCTF is headquartered
TOKYO
22 A unique executive position within the the company hosting TMCTF
CCO
先頭の文字を並べるとSVIEDTRVSCSECDHBBDITMASTC
になります。
MD5かけたのがflagなので、TMCTF{88f5505a45c9e176e36898095f505187}
あとはチームメイトが解いてくれましたが、200問題以降お手上げ状態。まだまだ実力不足だなーと感じました。
vSphere 5.5 から 6.0にアップグレードした話
vSphere 5.5から6.0にアップグレードしたよ
環境は以下の通り
- ESXi 5.5 x3
- vCenter Server Virtual Appliance(vCSA) 5.5
アップグレード方法
5.5 to 6.0 はインプレースアップグレードができます。
- vCSAをアップグレードする
- ホストをアップグレードする
- 仮想マシンをアップグレードする
vCSAをアップグレードする
公式の手順スライドがあったので参考にしました。助かります。
まずは、vCSA 6.0のインストールメディアをダウンロード。 isoファイルなんだけど、5.5までとは違ってVMイメージが入っているわけではなく、 管理クライアント側でマウントする用です。
6.0用のクライアント統合インテグレーションプラグインをインストールして、 setup用のhtmlを叩くとインストールかアップグレードか聞かれます。
その後はウィザードに従って進めていけばOK。
5.5のvCSAはシャットダウンされた状態で残るので、必要ないなら消してしまいます。
Active Directory認証していたんですが、その設定が消えているのでadministrator@vsphere.localでログインして、 管理からADのアイデンティティ追加してユーザー権限設定すればOK。
ホストをアップグレードする
こちらはVMをローテーションしながらアップグレード。 ホストをメンテナンスモードにしてからESXi 6.0のイメージをマウント。 再起動してマウントしたイメージから起動し、ESXi 5.5のインストールされているデータストアを指定すると、 アップグレードの選択肢が出てくるのでそのままアップグレード。
仮想マシンをアップグレードする
ホストのアップグレードが終わったら、仮想マシンのVMware Tools、仮想ハードウェアのアップグレードします。
VMware Toolsは自動アップグレードが使えるので、VMware Toolsの期限切れ警告からポチーで完了ですね。 仮想ハードウェアの更新はしていません。
見たところ、バージョン10→11にするとCPU、メモリ、ビデオメモリ、PCIパススルー、シリアルポートが強化されるようですが、 今のところ足りているので、すぐにはアップグレードしないかなぁ。。。
vRealize Operations Managerを導入した話
vSphere 5.5から6.0にアップグレードをしたんですが、 ついでにvRealize Operations Manager(旧:vCOM)を導入しました。
導入する理由
vCenterでアラートメールを飛ばしたいんですけど、
vCenterはメール送信時の認証に対応していないという仕様があります。
私が使っているメールサーバーは認証必須なので、vCenterではメールアラートが飛ばせない。困る。
なんと、vCOMだとその辺も対応してるんですね。これはvCOM入れなければ!!!(vmware狙ってやってるでしょコレ)
導入方法
.ovaファイルが公開されているので、myVMwareからダウンロードします。 中身はvAppでVMが2台(分析用、UI用)で、このvAppをvCenterからデプロイします。
クラスタ組んでる環境にデプロイしようとするとDRSを有効にしていないとダメって怒られるんですけど、 ライセンス上DRS使えないEssentialsやStandaloneでもデプロイできます。下記参照。
- vAppをデプロイするホストを1台選んでメンテナンスモードにし、クラスタから除外する
- メンテナンスモードをそのホストにデプロイする。(vAppとしては展開されない)このときVM2台に対して静的IPを付与する
- VM2台を起動する
- ホストをクラスタに戻す
vCenterがAD連携していたのですが、ログインもADアカウントでいけました。
注意
このVM2台でけっこうリソース食うんですね。↓にもありますが、HDDも2台で約350GBくらい。 リソース分析も必要だとは思うんですが、正直ここまでのHWサイジングしてなかったので苦しい。。。
VMware KB: vRealize Operations Manager 6.0 Sizing Guidelines