Androidのゲームの解析

未経験分野だけど、今日から手を出してみた。
課題ファイルのダウンロードが途中で止まってしまうなど、解析に着手する前から出す前から難易度が高い。。。
課題ファイルがやっとダウンロードできたので、Android開発環境を構築することから着手したが、Eclipseの日本語化あたりでよくわからなくなって頓挫した。
とりあえず、.apkファイルを.zipにリネームして、どんなファイルで構成されているのかを確認した。
classes.dex→.class→.javaの生成まではできたみたいだけれど、javaもC#もUnityも未経験のためよくわからん。
そこで、ゲームプレイ中にどんな通信がされているのかをモニター(キャプチャ)してみることにした。
adbコマンドで.apkファイルを実機に転送し、実際にゲームをプレイしてみた。
結果として、スコアを格納するサーバと、格納方法が特定できた。
とはいえ、私よりも先にスコアの改ざんをしている人は少なくとも2人はいたみたい。

先日、JTF2015に初参加したとき、こんなお話を聞いたことを思い出した。

なので、締め切りまで時間があまりないけれど、Unityについて勉強してみようと思う。

Twitterアカウントの移行(復活)

CTF for ピギナーズへの参加をきっかけに、Twitterで情報収集したり、Twitterアカウントで参加登録をしたりと、Twitterを使うようになってきた。
そのため新規に1ヶ月ほど@nuwaa_hackとしてやってきたが、ハッシュタグ付きの発言をしても検索にひっかからないというよくないことが多発している。
そこで、昔作って放置していた別のTwitterアカウントを復活させようと準備中。

Beautiful Soup 4 と Python でのファイル出力

最近やっていることを機能別に整理してみると、

  • Webの自動運転:  Selenium Webdriver
    自動で入力やクリックをさせて画面遷移させる
  • スクレイピング:  Beautiful Soup 4
    Webページ上の文字列を抽出してファイルに出力
  • 上記のとりまとめ:  Python 3
  • さらにまとめ:  bash
    cronによる定期実行とか、sedとかgrepで部分抽出・整形

みたいな感じでWeb関連の処理の自動化を進めている。

Python自体を学びながらの作業だが、Pythonでのファイル出力でちょっと躓いたので部分的な抜粋としてそのメモをしておく。

DATE = (datetime.datetime.today()).strftime("%Y%m%d")
data = driver.page_source.encode('utf-8')
soup = BeautifulSoup(data, "html.parser")
contents = soup.findAll(class_="pre")
filename = DATE + "-" + HOST + '-session.txt'
f = open(filename, 'w', encoding="UTF-8")
f.writelines(soup.pre)
f.close()

上記の7行目の解決に時間がかかった。多くの初心者向けの記事などでは f.write しか載っていなかった。
「Beautiful Soup 4を使ってとあるWebページのpreタグの中身をファイルに出力する」ということが f.write だと正しく動作しなかったのだが、f.writelinesにしたところ正しく動作した。

Pythonの勉強

Selenium Webdriverを使ったとある自動化をしている。
同じような処理を繰り返ししている箇所があるので、そこを Python の def で関数化した。

言語習得が目標となっているのではなく、自動化する手段として Selenium Webdriver を使い、そこで Pythonの書き方の理解にも繋がっていっている。

ここのところ、CTF関連の勉強からは遠ざかってはいるけれど、セキュリティの専門家ではないので、まずは実務で使えるノウハウを身に付けつつ、アウトプットとかもしていきたいと思う。

github とか Qiita とかでノウハウ公開もしていきたいと思う。

Selenium Webdriver

7/23に学んだ Selenium Webdriver を使って、Web操作の自動化を試している。
フレームで作られたWebページの場合、どのようにすればいじれるのかが今のところ謎。

JTF2015 (July Tech Festa)

JTFなんてイベントがあることを数日前にはじめて知った。
で、今日行ってきた。
こんなイベントがあることをこれまで知らなかったのはとてももったいないことだった。

ちょっと振り返り

7/2からこのブログをはじめて、そろそろ1ヶ月になろうとしている。
この1ヶ月、興味はあるけれど手を出していなかったことに手を出してみて、いろんなことを知ることができた。

  • セキュリティに関心があったことからCTFに興味を持ち、より深く勉強したくなり、Pythonを学び始めた
  • これまでWebスクレイピングというと、wgetとgrepとsedあたりでやっていたが、PythonとSelenium Webdriverでもっとエレガントにできることを知った
  • Githubを使って、海外の開発者とのやりとりをしてみた

今後の方向性としては、

  • Pythonをもっと使いこなしたい
  • 脆弱性診断がきっかけとなるがSQLとかDBについての見識を深めたい
  • 開発や品質についての見識を深めたい

って感じかな。