機械語初心者がアセンブラを作ってみる

機械語初心者がアセンブラを作ってみるだけのブログです。ひつまぶしひつまぶし

第5回 資料を見つけた件

資料

 

キタ━━━━(゚∀゚)━━━━!!

キタ━━━━(゚∀゚)━━━━!!

キタ━━━━(゚∀゚)━━━━!!

 

むしろ

今まで何で気づかなかったっていうくらい。

 

COFF解析でネット検索してましたら

IMAGE_SYMBOL構造体が関係してるみたい

っていうことが分かりまして。

んで、それについてSDKのインクルードファイルを探してたら

winnt.hが引っかかったので

winnt.hを開いたんですよ。

 

//

// Symbol format.

//

 

typedef struct _IMAGE_SYMBOL {

    union {

        BYTE    ShortName[8];

        struct {

            DWORD   Short;     // if 0, use LongName

            DWORD   Long;      // offset into string table

        } Name;

        DWORD   LongName[2];    // PBYTE [2]

    } N;

    DWORD   Value;

    SHORT   SectionNumber;

    WORD    Type;

    BYTE    StorageClass;

    BYTE    NumberOfAuxSymbols;

} IMAGE_SYMBOL;

typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL;

 

は い 終 了

 

(´・ω・`)

 

どうして今まで気づかなかった

 

そのほかにもwinnt.hを漁ればいろいろ出てきそうです。

というかMSDNに構造体の説明が書いてなかったんですが

winnt.hの中に簡単な説明がありました!

しかも定数一覧まであるので

何を入れればいいのか大まかなことまでぱっちし。

ゆうべ迷ってたとこまで発見♪ 

 

#define IMAGE_SYM_CLASS_EXTERNAL            0x0002

#define IMAGE_SYM_CLASS_STATIC              0x0003

  

#define IMAGE_SYM_DTYPE_NULL                0       // no derived type.

#define IMAGE_SYM_DTYPE_POINTER             1       // pointer.

#define IMAGE_SYM_DTYPE_FUNCTION            2       // function.

#define IMAGE_SYM_DTYPE_ARRAY               3       // array.

  

資料が見つかってしまったので

COFFオブジェクトファイルの解析も順調に進みそうですし

そろそろアセンブラ作ろうかってことになったのですが

 

IntelのSoftware Developper's Manualっていうやつ

ニモニックやらオペランドやらの機械語

載って

いましたので

 

こっちのほうもありがたく頂戴させていただく

ことに

相成りました。

 

さらに

今まで使い道のわからなかった

ebxの主な?使い方まで

書いてあったので

ありがたくいただきました(`・ω・´)

 

winnt.hが見つかった以上、

開発が順調に進みそうです。

 

とりあえずmov reg/32 r/m32だけでも機械語に変換するプログラム作ってます。

それができたらシンボルテーブルも作って‥‥

 

おら わくわく するだ