【お知らせ】プログラミング記事の投稿はQiitaに移行しました。Officeで数式を書くのに慣れてTeX形式で入力するのが苦痛になって来たので、変換プログラムを作りました。Windows専用です。【注】自分の必要とする範囲しか実装していません。MSYSスタート低レイヤー#2でid:shinichiro_hさんに全部入りのbinutilsが作れるということを教えて頂きました。MSYS(MinGW)用のバイナリを置いておきます。JIT前回はELFファイルの構造を示しながら、動的リンクに必要な処理を説明しました。今回はPythonで実装した簡易ローダを見ながら、実際の処理を追っていきます。x86PEの.idataをアセンブリ言語で記述しながら説明します。PEからDLLを参照するには.idataセクションにDLL名とシンボル名を記述します。x86昨日.idataの記事を書きましたが、その図を眺めていて「ILTがなくても起動するのではないか?」と思ったので、試しに削ったら起動しました。図も少し簡単になります。これについてつぶやいたところコメントをいただきました。x86以前PE勉強会を開催したとき、.idataの構造をうまく説明できませんでした。最近また説明する機会があったので、改めて図を描いてみました。バイナリと並べて構造をフラットに描きました。VBAで作成したコンパイラで使っていたものです。MIPS編が無事に完了しました。ご参加の皆様、お疲れ様でした。形式についての勉強会です。バイナリいじりの基礎から始めて、EXEファイルやDLLファイルをコンパイラなしで作って動かすことを目標にします。PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。Win32id:n7shi:20110421の続きです。リフレクションを用いて、クラスの中のクラスを追えるようにします。Win32id:n7shi:20110420の続きです。フィールドを1つずつ指定して書き込むのは面倒なので、リフレクションで自動化します。Win32id:n7shi:20110419の続きです。バイナリの中をオフセット指定でベタ書きするのは問題があります。名前でアクセスするためクラスを定義します。PE勉強会用にサンプルの準備を始めました。進捗状況は以下のリポジトリの04フォルダで確認できます。形式についての勉強会です。バイナリいじりの基礎から始めて、EXEファイルやDLLファイルをコンパイラなしで作って動かすことを目標にします。PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。形式についての勉強会です。バイナリいじりの基礎から始めて、EXEファイルやDLLファイルをコンパイラなしで作って動かすことを目標にします。PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。PE勉強会が無事に完了しました。ご参加の皆様、お疲れ様でした。PE勉強会Win32※定員増強のため会場を変更しました。id:n7shi:20110108で初心者を対象としたバイナリいじり入門としてPE勉強会を企画したところ、予想以上の反響があり定員をオーバーしてしまいました。Win32独自言語Andromedaのコンパイラver.1.0をリリースしました。PE勉強会Win32※定員増強のため会場を変更しました。※増強後もまたオーバーしたため、一週間後に同じ内容の勉強会を開催します。Calcに移植しました。マクロを使用しているため、セキュリティを中にしてご利用ください。以下のアーキテクチャのバイナリを出力できます。(x8...コンパイラ移植2010-08-18BrainfuckコンパイラWin32南関東開発機構さんがBrainfuckインタプリタを公開されています。これをコンパイラにしてみました。Win32(x86)ネイティブのEXEを出力します。インタプリタ処理を...Brainfuckコンパイラ2009-05-26マウスやキーボードの自動操作Win32WindowsではSendInput()というAPIでマウスやキーボードの自動操作が可能です。検索してもあまりサンプルが出てこなかったので、参考までにソースを貼ります。指定したスクリーン座標をクリックして[Ctrl]+[C]を押したことにするコードです。Win32昨日C#で作ったものと同じようなものをC言語で実装してみました。二重起動判定はMutexではなくFindWindow()で行っています。簡単に実装するため、.NETリモーティングの代わりにWM_SETTEXTを投げています。二重起動禁止と通知2008-09-19インポートライブラリ解析ツールWin32インポートライブラリからシンボル名と序数を調べるツールを作成しました。標準C++で作成したため、UNIX環境でも動きます。汎用(標準C++)インポートライブラリ解析ツール2007-12-11カレントディレクトリを変更するラッパーWin32ちょっとした必要に迫られてカレントディレクトリを変更するラッパーを作りました。Serverで実験していて、毎回ログオンするのが面倒になりました。レジストリでAutoAdminLogonを"1"に設定すれば次回起動時には自動ログオンできるのですが、1回きりで設定がクリアされてしまいます。Serverに自動ログオン2006-11-08JITWin32なぜか無性にJITがやりたくなりました。原理としてはヒープに確保したメモリにコードを出力してcallするというものです。SP2からはNXビットが有効になったため、NXビットに対応したCPUではヒープに生成したコードを実行できません。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。