- 682 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 01:30:28 ]
- すみませんが質問です。
ある関数のバイナリを表示するプログラムを作ったのですが思ったとおりに表示されません。 source: #include <stdio.h> int func(void)//この関数のバイナリを表示したい。 { return 0x12345678; } void fend(void){}//func関数の終わりをこの関数のアドレスから求める。 int main(void) { char *p; char i; p = (char *)func;//func関数のアドレスをchar型のポインタへ代入。 for(i=1; p<(char *)fend; i++) { printf("%2.2X ", *p++);//func関数のバイナリを1バイトごとに表示。 if(!(i%16)) putchar('\n');//とりあえず16バイトごとに改行。 } return 0; } result: 55 FFFFFF8B FFFFFFEC FFFFFFB8 78 56 34 12 5D FFFFFFC3 55 8B EC B8 78 56 34 12 5D C3と表示されるのを期待していたのですがうまくいきません。 コンパイラはBorlandコンパイラです。 根本的な間違いの指摘、もしくは強引な方法でうまく表示させる方法を教えてください。
|

|