2012-04-23 12 views
1
私はWindowsが
を実行可能ファイルのコードインジェクションのツールを書きたい
_asm 
{ 
//---------------------------------- 
    dword_type(DYN_LOADER_START_MAGIC) 
//---------------------------------- 
_main_0: 
    pushad // save the registers context in stack 
    call _main_1 
_main_1:  
    pop ebp 
    sub ebp,offset _main_1 // get base ebp 
...... //many many assembler code line 
} 

しかし、動作しません。この_asmは与える: 64 C:\ Users \ユーザーACharyyev \デスクトップ\テスト\ pemaker5 \ pemaker \ loader.cppのコピー '_asm'は宣言されていません(最初にこの関数を使用)
asm()関数が動作しているようですが、すべての変数を変換する必要があります(例:%eax)そうですが、_asm {}はうまくいくはずです。私はプロジェクトプロパティとコンパイラプロパティでアセンブラを有効にするために何かを見つけることができませんでした。何か案が。
私はこのプロジェクトのIDLEとしてWindowsでDevCppを使用します。_asm doesntの仕事は、どのように有効にすること

+2

'_asm'と' __asm'はMSVC++の拡張ですが、Dev-C++が使用しているGCCの(それほど古いバージョンの)GCCでは動作しません。 –

+0

@SethCarnegie: '__asm'は、FAQ:http://www.bloodshed.net/faq.html#16に従って動作します。 –

+0

@MikeKwanはい、私は彼がやっているアセンブリブロックのことを意味しました。 GCCにはそれとアセンブリの "テンプレート"などがあります –

答えて

3

__asmでも動作しますが、これはDev-C++がサポートするものなので、それでもAT & Tを使用する必要があります。

関連する問題