androidで 配列をXMLに定義
Androidでアプリを作っているとメニューのアイテムを定義するのにstring配列を使うが、アイテム数が多くなるとソースコードが見にくくなるのでxmlファイルで定義する方法を試してみた。
まず、今回定義したファイルは
/res/values/arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="genres">
<item>item1</item>
<item>item2lt;/item>
<item>item3</item>
<item>item4</item>
</string-array>
</resources>
このstring配列を使うには
String items = getResources().getStringArray(R.array.items);
だけで使える。
Arch Linux
どうもお久しぶりです。
このブログの引っ越しを検討してましたが引っ越しはせずにこのまま続けることにしました。
約1ヶ月ぶりの投稿はLinuxについての備忘録です。
Arch Linuxとは
Install PC
- CPU intel core M-5Y51 (1.1GH/TB 2.6GH)
- RAN 4GB
- SSH 256GB
- OS win8.1 64bit アップデート→win10 home
- タッチパネル搭載(デジタイザー非対応)
Install
windows側での設定
インストール
# loadkeys jp106
# wifi-menu
# cgdisk /dev/sda
//swap
#mkswap /dev/sda6
# swapon /dev/sda6
/root
# mkfs.ext4 /dev/sda5
/rootのマウント
# mount /dev/sda5 /mnt
/bootフォルダ作成とEFIパーティションのマウント
# mkdir /mnt/boot
# mount /dev/sda2 /mnt/boot
# vim /etc/pacman.d/mirrorlist
# pacstrap /mnt base base-devel vim iw wpa_supplicant dialog refind-efi intel-ucode
# genfstab -U -p /mnt >> /mnt/etc/fstab
# arch-chroot /mnt /bin/bash
# vi /etc/locale.gen
...
#en_SG ISO-8859-1
en_US.UTF-8 UTF-8 ←#を削除。
#en_US ISO-8859-1
...
#ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8 ←#を削除。
#ka_GE.UTF-8 UTF-8
...
//ロケールの生成
# locale-gen
# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8
# vi /etc/vconsole.conf
KEYMAP=jp106
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# hwclock --systohc --utc
# echo 任意のホストネーム > /etc/hostname
# vi /etc/hosts
#
# /etc/hosts: static lookup table for host names
#
#<ip-address> <hostname .domain.org=""> <hostname>
127.0.0.1 localhost.localdomain localhost 任意のホストネーム
::1 localhost.localdomain localhost 任意のホストネーム
# End of file
</hostname></hostname></ip-address>
# passwd
# refind-install
ubuntu 15.10環境下でswift
appleがついにgithubでswiftのソースコードを公開しLinuxでも開発ができるようになったとの噂を入手したので、以前から挑戦したいとも持っていたswiftの開発環境を作ってみた。
(注意)iosアプリはxcodeがないとios端末で実行できないらしい。
swiftを入手
最近公開されたばかりのswiftの公式サイト(swift.org)から
githubのソースコードからビルドして使うこともできるけど今回は公式サイトのubuntu15.10用バイナリを使った。
インストール
入手したファイルをホームディレクトリに展開しフォルダー名をswiftに変更
tar xzf 入手したファイル名.tar.gz
mv ./ファイル名 swift
続いてswiftにパスを通す
export PATH=/home/(ユーザー名)/swift/usr/bin:"${PATH}"
これでインストールは完了。
swiftを実行
ターミナル上でswiftコマンドを実行するとswift(対話モード?)が実行されます。
まだ、swiftについて全くわからないので少しずつ勉強していきたい。
windows10でのgcc環境整備
Linuxを普段使いにしていたけど大学のネット環境の認証がめんどくさかったりしたので久々にwindowsに移行してみた。(コルタナの噂を聞いて)
概要
windowsでgccとvim、ある程度のunixコマンドが使えるように環境整備してみた。大学のプログラミング環境はCygwinだけど、重たくて容量も大きくイマイチのイメージしかなかったので今回はcmderでながら作業のできる環境を目指した。
インストールしたのは
- MSYS2 (シェルとして使用)
- cmder (ターミナルとして使用)
の2つのソフト
MSYS2の導入
MSYS2 installerをダウンロードしてきて実行する。
表示は親切に日本語になってるので困ることはないと思う。
インストール完了したらMSYS2 shell(インストールフォルダーのmsys2_shell.bat)を起動する。ターミナル(mintty)が起動するので、まずは更新から。
$ pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime
(msys2 shellを再起動)
$ pacman -Su
(残りをupdate)
インストールの確認が出ればyでインストールの続行する。
あれっと思った方もいると思いますがarch linux のpacmanでパッケージ管理しています。
次はgcc等のインストール。64bit環境ならmingw64_shell.bat、32bit環境ならmingw32_shell.batを起動して
$ pacman -S gcc
で各環境のgccがインストールされる。
ついでにvimもインストール
$ pacman -S gcc
コマンドプロンプトやPowerShellでも使えると何かと便利なので環境変数を設定する。
pathにインストールフォルダ下のmingw64\binとusr\binあたりを追加したらそこそこコマンドが使える様になった。
cmderの導入
cmderのmini版またはfull版の好きな方をダウンロードし好きな場所に展開する。
このままではMSYS2を呼びでせないのでcmder.exeを起動して設定する。画面下の+横の三角を押しメニューからsetup tasks...を選択し設定画面へ。
Add defult tasks...を選ぶとこれでpathが通っていればMSYS2のbashが登録される。
最後に
cmderを使えばlinuxのGuakeのターミナル風に透過させたりかなりいい感じの環境になった。
さらに、副産物としてCygwinではgccしたプログラムをCygwin上でしか使えなかったが、windows単体でアイコンからの起動ができるようになった。
自分でもなかなかいい環境になったと思う
ctf4b 大阪に参加してみた
11/8に行われたCTF forビギナーズin大阪に参加してきた。
そもそも、CTF for ビギナーズは、コンピュータセキュリティ技術を競う競技であるCTF (Capture The Flag) の初心者対象の勉強会らしいけれど今回の大阪では講義は一切無しで競技のみの開催でした。
では、自分の解けた問題と解こうとした問題に関してwrite upを書いていこうと思う。
writeup
Misc
misc問題としてHack the HOURIN!!、Hack the ENOKI!!、Let's HACK to HIDEO!!の3題がソーシャルハック問題として出題された。それぞれ配点が100点で問題名のHOURINさん、ENOKIさん、HIDEOさんから上手く答えを聞き出せば良かったらしい。一問だけ、本人に聞かなくてもネットで調べたもので総当たりすれば答えが出たらしい。
今回は技術的な問題に出来る限り挑戦したかったので一切振れずにいた。
WEB
Something browser know
配点は100点。
タイトル通りブラウザのユーザーエージェントを偽装すれば解けたと思うが解いていない。
The easy task
配点は100点。
指定のアドレスを開とログイン画面が有るのでパスワード欄におなじみの「" or "a"="a」を入れてあげるとflagを吐いた。
NETWORK
Open and read it!
配点は100点。
パケットのデータは無くして詳しくは忘れたが多分tcp streamとか中のファイルを見てflag見つけたと思う。
Transition
配点は100点。
telnetしてる通信が見つかったのでそのサーバに接続したけど時間足りなくてflagは取れなかった。
Crypt
Ten
配点は100点。
問題文に1~9の同じ数字が複数回連続してるのとタイトルからガラケーのテンキー入力だと気づき、スマホの入力方式を切り換えて説いた。
Forensics
読みとれますか?
配点は100点。
薄く何かの書いてある画像があったので周りを塗りつぶししてflagを読み取った。
Onion
配点は100点。
圧縮してあるファイルがあったけれど配布された環境で解凍の方法が分からなかったので断念。
何重にも圧縮してあって最後にflagが出てきたらしい。
不審な通信
配点は200点。
wordファイルを開くと、どこかで見覚えのある画像があったが、それだけではflag見つけられなかった。今度はtxtファイルとして開くと直ぐにflagを見つけた。
別解で開くときのパケットを見てもflagは見つけれたらしい。
Yahooニュースを解析してみた
タイトル通りYahooニュースを解析、、、いや解析するプログラムを作りました。
仕組みはいたって簡単でYahooニュースのRSSフィードを取得し、タイトルを単語ごとに分解、そしてその単語をポジティブかネガティブかを評価するだけの簡単なプログラムをpythonで作りました。とは、言ってもpythonで作った初めてのまともなプログラムなので至らない点はご了承ください。
https://github.com/mizunomi32/yahoonewsfeed
まずは、使用ライブラリ等
使用ライブラリ、辞書データ
pyron ライブラリ feedparser、BeautifulSoup、urllib
Yahooテキスト解析
単語感情極性対応表 ;http://www.lr.pi.titech.ac.jp/~takamura/pndic_ja.html
ソースコード
セキュリティキャンプ九州in福岡2015に参加してきた(後編)
2日目
2日目はphpでのwebプログラミング、
午前中は、Webプログラムを作って、午後脆弱性を検査・攻撃します。 #spcamp #seccamp pic.twitter.com/zitqhhIKrq
— security_camp (@security_camp) 2015, 8月 29
phpは触ったことがあったが初のフレームワークを使ったプログラミングだった。
昼休み中ですが、自習中・・・ #spcamp #seccamp pic.twitter.com/QeKG05DNeo — security_camp (@security_camp) 2015, 8月 29
もちろん、思い通りに動かなかったりして昼休憩の間もプログラミングし無事に作成することができた。
午後からはプログラミングではなくwebセキュリティについての講義
2日目午後服部さんの授業は、セキュリティ基礎と作ったアプリに対するセキュリティ診断です。 #spcamp#seccamppic.twitter.com/NYIYJw3Fwi
— security_camp (@security_camp) 2015, 8月 29
さらに、実際に午前中に作ったwebページ(チャット)で習ったことの実践
グループワークで、作ったWebアプリの脆弱性を検査しています。 #spcamp #seccamp pic.twitter.com/aJ8bJGZyMP — security_camp (@security_camp) 2015, 8月 29
見つけた脆弱性について種類別に分類しグループで発表し、2つ目のwebサイトに突入。
2つ目のサイトのセキュリティ検査をグループで調査してまとめています。 #spcamp #seccamp pic.twitter.com/Gofc8qsNmN
— security_camp (@security_camp) 2015, 8月 29
2つ目のwebでは、htmlタグを埋め込めたり、adminのパスワードで入れたりなかなか多くの脆弱性を見つけた。普段は他人のwebサイトに絶対できない程いじりまくりながら脆弱性を見つけたのでいい体験になった。 そして2日目最後は法律に関しての講義
吉井先生の講義は、「情報セキュリティ技術の使い方」 #spcamp #seccamp pic.twitter.com/iKXasSQV3G — security_camp (@security_camp) 2015, 8月 29
むやみに持っている技術や知識を使えば法律に触れることがあり正しい倫理観を持つ必要があると思った。
講義だけでなく実際の裁判を想定した模擬裁判をしたり、身をもって法律を知ることも大切だと思った。
2日目もすべて終わり「夕食は昨日に引き続き弁当か」と思っているとまさかの講師の方々のおごりで全員で焼き肉に
2日目夕食は、焼肉!29の日! #spcamp #seccamp pic.twitter.com/GWyeQKpPpG
— security_camp (@security_camp) 2015, 8月 29
最終日
最終日は心待ちにしていたラズパイ
3日目は、小出先生より、「いじって壊して遊んでハッカーになろう」です。Raspberry Piを使った実習です! #spcamp #seccamp pic.twitter.com/ldciPFXFwI — security_camp (@security_camp) 2015, 8月 30
ラズパイ上でnetbeansを使ったりarmのアセンブリを書いたり今まで試したことのないことばかりだった。
GPIOでLチカやってます! #spcamp #seccamp pic.twitter.com/niYg5oEUOp
— security_camp (@security_camp) 2015, 8月 30
時間ぎりぎりまでGPIOで低レイヤなこともしたり盛りだくさんのラズパイだった。
感想
サーバー立てたりラズパイやwebで遊んだりしていて少しセキュリティに興味があったがこのキャンプに参加していい刺激を受けたと思う。どこかで学んだことをベースにもっとセキュリティについて学んでいきたい思った。 そして、次はセキュリティキャンプの全国大会や大学で友達を巻き込んでCTFに挑戦してみたい。