asm
講義ノートの目次へ 大学の情報系の授業「コンピュータ・アーキテクチャ」の講義資料,オンラインで入手できる教科書。この講義の名前は,計算機のアーキテクチャの中でも,特にプロセッサ(CPU)に焦点を当てている。 ここでの内容は,プロセッサの演算・制…
HTMLとJavaScriptで,IEの脆弱性を攻撃できる。 (※具体的なサンプルコードも本記事に掲載) それが「Use After Free」および「ヒープスプレー」。 ちょうど2014年4月にWindows XPのサポート終了後すぐ,この脆弱性を攻撃するウィルスが発見され,大騒…
自作のプログラムから,BIOSの設定を変更する事は可能なのか。 例えばブートデバイス設定やブートシーケンスの設定は,ふつうはPC起動時の「BIOS設定画面」から手動で変更するわけだが,これらの項目を,自作プログラムから書き換える事はできるのか。 (1…
「ウィンドウとは何なのか?」をテーマに,前回の記事までで,以下の事を学んだ。 Windows でウィンドウを表示するための手段はたくさんあるが,実はどれも user32.dll を呼び出している。 アセンブラのプログラムから直接 user32.dll を呼び出し,ウィンド…
前回の記事では以下の事を学んだ。 Windowsにおいてウィンドウを表示する機能は,Windows API という API によって提供されている。 Windows API の中で,特に user32.dll というファイルがウィンドウ処理を担当している。 (そして user32.dll の中味を逆ア…
Windowsアプリケーションと言えば,ウィンドウが主役。 しかし,どうしてウィンドウを表示させる事が可能なのだろうか?何気なく表示されるウィンドウの「実体」は,何なのだろうか。 ウィンドウの正体を追いかけながら,Windows の OS 内部でアプリケーショ…
実行中のプログラムは,メモリ上に存在する。 そのメモリ上のデータを読み取れば,アプリケーションが扱っている生のデータを,そっくりそのまま取得できてしまう。 ユーザがどのような値を入力したか,アプリケーションがどこと通信してどういうデータを取…
逆コンパイル, および逆アセンブルのための各ツールと,実行手順を列挙する。.exeと.classが対象。 ※リバースエンジニアリングにあたっては,ソフトウェアの使用契約にくれぐれも留意すること。 (1) .exeファイル 逆アセンブラ 逆コンパイラ (2) Java …