プログラミング

データ解析

Mach-O セグメントとセクション補足

dysymtab_commandの中身を調べていたのですが、よくわからない感じだったので後回しにすることにしました。今回はセグメントやセクションの中身の方を調べていきたいとおもいます。 現在すでにわかっているセグメント&セクションの情報はこんな感じでした。 : LC_SEGMENT_64 __PAGEZERO vmaddr=0x000000000000000...
データ解析

Mach-O 実行体のロードコマンドの情報を表示してみる

前回は概要とセクション情報表示程度だったので、今回はもうすこしロードコマンドの表示をすすめて見ようと思います。 ロードコマンドの種別によって、そのコマンドのサイズと型が決まります。 あとはこれに応じてメンバの表示を行ってみたものが下記の結果です。 ロードコマンドの型の準備と表示が面倒なだけなので、プログラムコードは割愛します。 Mach-O 64bit CP...
データ解析

Mach-O形式の調査~導入編~

PEフォーマットは以前調査したので、今度はApple製品で採用されているMach-O(マークオー)形式の調査をしてみたいと思います。まずは最小サンプルの実行体を用意して既存ツールでちょっと確認してみます。 #include int main() { printf( "Hello,world\n" ); return 0; } #include int mai...
データ解析

PEフォーマットについて~インポート関数の列挙~

今回は依存するDLLの名前だけでなく関数の情報を取得する部分までやってみたいと思います。前回でインポートDLLの名前までは取得できたので、IMAGE_IMPORT_DESCRIPTORの情報まではたどり着けた前提で話を進めていきます。 IMAGE_IMPORT_DESCRIPTOR構造体は以下のようなものです。 typedef struct _IMAGE_I...
データ解析

PEフォーマットについて~DLLのExport/Importを列挙~

前回PEフォーマットについて概要を説明したので、今回はその情報にアクセスしてDLLのExport/Importしている情報を列挙してみようと思います。 まずは、IMAGE_DATA_DIRECTORY配列にアクセスしてIMAGE_EXPORT_DIRECTORYや IMAGE_IMPORT_DESCRIPTOR配列の位置を求める必要があります。 DLLがEx...
データ解析

PEフォーマットについて~構造概要~

Windowsの実行形式であるexeファイルは Portable Executable Format という形式で記録されています。このフォーマットについて調べてみたのでわかったことを書いておこうと思います。 まずPEフォーマットは MS-DOS用のヘッダとWindows用のヘッダから構成されます。Windowsアプリケーションではこの中のWindows用ヘ...
プログラミング

64bitプロセスから32bitプロセスへDLLインジェクション

32bitプロセスは32bitのDLLをロードし、64bitプロセスは64bitのDLをロードして使用することが出来ます。これは基本的には破ることが出来ないルールです。そのためDLLインジェクションする際にもターゲットプロセスに合わせたDLLを作成することになります。 DLLインジェクションの際にはCreateRemoteThread APIを使用して、ター...
プログラミング

64bitプロセスのEnumProcessModulesについて

各プロセスの情報を取得する32bitアプリケーションを作成していて、EnumProcessModules関数が失敗するという症状に遭遇しました。 対象が64bitプロセスだとこのようになるようで、プロセスハンドルの取得には成功するものの、という感じです。 逆に64bitプロセスからは32bitアプリケーションの情報を取得することが出来るようになっています。 ...
OpenGL

OpenGLでMSAA

以前にDirectX11でMSAAというタイトルでテクスチャに対するMSAAをやってみましたが今回はそれのOpenGL版をやってみたいと思います。結果はこんな感じです。画像を切った貼ったしたので、ねつ造と言われてしまうかも・・・。 必要になるGL拡張 最近のOpenGL対応ボードならば問題ないと思いますが、OpenGL 2.1対応とか言われているボードでは下...
Android

Android 4.3あたりから外部SDのパスが変わった? その2

前回の内容でパス決めうちはちょっと・・・。ということで終わっていましたが、あれからもうすこし悪あがきをしてみました。 「vold.fstab の設定がダメならば環境変数のほうではどうだろうか?」ということで Galaxy S4 4.4.2 のもので環境変数を表示させてみました。 一部抜粋ですがこんな結果になりました。 Galaxy S4 (4.4.2)の場合...