拾い物のコンパス

まともに書いたメモ

OSX(mac)にXmonadをインストールする方法

普段はLinuxにXmonadを入れて作業をしているが,短期間だけOSX(mac)を使うこととなった(知っている企業や大学ってやたらとLet's NoteとMacbookが好き.ThinkPadも選択肢に入れて欲しい).普段通りに作業するためにOSXにXmonadを入れる方法を模索し,動かすと…

ELFバイナリのデバッグ時の関数名を読めなくする方法

Defconとかでは問題のELFバイナリをデバッグすると,ユーザ定義関数名だけでなく,ライブラリ関数名も読めなくなっている.どうやるとこんなバイナリを作れるのかを調べてみた.結論から言えば,静的リンクでコンパイルして,stripでデバッグシンボルを消す…

ダウンローダ型のマルウェアを眺めてみた

この記事では本物のマルウェアを取り扱っています.この記事の検証などで問題が起こっても一切責任は取れないので,行う際は自己責任でお願いします.また,この記事では心無い人による悪用を避けるため,マルウェアの全文は記載しません.興味のある方はハ…

メモリダンプについてのまとめ

このエントリで紹介したコマンドの一部は高確率でOSがクラッシュします.行う際は自己責任でお願いします. マルウェア解析に使われるメモリダンプはどのように作成されるのかを調べたメモを書き残す. 結論として,Windowsはやり方が多い(設定をいじってか…

radare2のエイリアス機能をソースコードレベルでいじって使いやすくしてみる

この記事はプログラムのソースコードを書き換えるものです.行う際は自己責任でお願いします. radare2でエイリアスやマクロを使っていたが,どうにもコマンドを打ちにくいのでソースコードをいじって試行錯誤してみた.マクロ機能をいじるのは大規模な改変…

Vimで簡単なファイルテンプレートを入力するコマンドを作成してみた

プログラムを組むとき,テンプレートを毎回手で入力することが面倒くさくなったので,Vimのショートカットにした. 編集中のファイル名を挿入する方法やレジスタについて勉強したので簡単にまとめておく. 目的 作成したいのは現在編集しているファイルに対…

BlackArchの紹介

Gentooにはセキュリティ用にチューニングされたPentooがある.Arch Linuxにもあるんじゃないのかなと思って探したら案の定あった. という訳で,今回はArch Linuxのセキュリティ特化ディストリBlackArchを紹介する. BlackArchとは ペンテスターやセキュリテ…

セキュリティキャンプ講義「仮想化技術を用いたマルウェア解析」にチャレンジしてみた(プラグイン開発編)

前回のエントリでDECAFをコンパイル、仮想マシンの用意・起動とプラグインを読み込ませるところまでやった。 今回は講義の本題であるプラグインの開発をやっていく。 私自身はQemu, DECAFや関数Hook,PEB構造体とかも全く知らず,マルウェア解析の経験もない…

セキュリティキャンプ講義「仮想化技術を用いたマルウェア解析」にチャレンジしてみた(準備編)

今年の八月中旬に行われたセキュリティキャンプ全国大会2015の解析トラック15・16-Dでの講義「仮想化技術を用いたマルウェア解析」にチャレンジして、一通りできた。 発表者の黒米さんの許可が戴けたのでその流れを書き残す。 発表で使われたスライドは黒米…

アセンブリ言語をコンパイル・実行してみる

GASとNASMで64bitプログラミングの基本をやってみた。 実行するのは基本中の基本である"hello, world"を出力するだけのプログラム。 環境 gcc: version 5.2.0 (GCC) nasm: NASM version 2.11.08 compiled on Mar 24 2015 Arch Linux x86_64: 4.2.5-1-ARCH 64…

LightDMの壁紙が変わらないときの対処

Arch Linuxをインストールする際に最初はDM(デスクトップマネージャ)にGDMを使っていたが、認証成功時に一瞬CUIっぽいのが出ていた。これが微妙だったからUbuntuやOpenSUSEで利用されている軽量DMのLightDMに変えた。 このとき認証画面の背景を変更するのに…

Ubuntuで認証画面を無限ループさせる方法と対処

最近DM(デスクトップマネージャー)やWM(ウィンドウマネージャー)をいじっていると、ある時突然認証画面でパスワードを入力してもすぐにまた認証画面が出る無限ループに陥った。割と楽しい現象だったので引き起こし方と対処を書き残す。 確認した環境 無限ル…

見たことあるCコーディングミス

知り合いが実際に書いて悩んでいたCコードを2種類書き残す。 その1 ... int i=0, count[i]; ...(snip)... 一見してやばいのはわかるはず。要素数0の配列を宣言していた。その場ではただひどいコードだとだけ思ったが、あとから気になってちょっと実験してみ…

GHCでコンパイルしたバイナリを小さくする方法

概要 HaskellはGHCでコンパイルしてバイナリを生成することができる。しかし、Cの時と比べて意味不明なレベルでバイナリが大きくなる。原因と対策を書いておく。 環境 OS $ uname -a Linux ubuntu 3.13.0-63-generic #103-Ubuntu i686 GHC $ ghc --version T…

xinetdが動作しないときの対処

概要 xinetdでサービスを動かしたら接続は上手くいくが、プログラムからの出力が返ってこなかった。この時に試したことを書き残す。 最終的にはxinetdの公式レポジトリからソースを引っ張ってきてインストールしたら正常に動作した。 他にはonly_fromの記述…

セキュリティキャンプ九州 Writeup

概要 8/28-8/30にかけてセキュリティ・キャンプ実施協議会主催(実はIPA主催じゃないらしい)のセキュリティキャンプ九州に参加した。感想や反省点をここに書き残す。 キャンプ内容 応募 セキュリティキャンプには前々から興味があったので、技術力に自信はな…