問題タブ [xtensa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
82 参照

c - コマンドラインからのペイロードがスタックを上書きしない

これが非常に長くなって申し訳ありません。投稿する前に、寄稿者に私が試したことを確認してもらいたいだけです.

私のコード:

このコマンドライン引数を渡したとき: AAAABBBBCCCCDDDD\x19\x0c\x00\x60最初の 20 ワードを表示すると、次のようになりました。

0x603ffeb0: 0x41414141 0x42424242 0x43434343 0x44444444

0x603ffec0: 0x3931785c 0x6330785c 0x3030785c 0x3036785c

0x603ffed0: 0x603fff00 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffee0: 0x60000b9c 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffef0: 0x00000002 0x603fff00 0xe8e8e8e8 0xe8e8e8e8

このようなものの代わりに:

0x603ffeb0: 0x41414141 0x42424242 0x43434343 0x44444444

0x603ffec0: 0x60000c19 0x6330785c 0x3030785c 0x3036785c

0x603ffed0: 0x603fff00 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffee0: 0x60000b9c 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffef0: 0x00000002 0x603fff00 0xe8e8e8e8 0xe8e8e8e8

上記のコードでは、配列文字としてではなく、argv[1] に格納されているペイロードが単一の文字列として扱われていることがわかりました。「AAAABBBBCCCCDDDD\\x19\\x0c\\x00\\x60」として表されていることを確認しましたが、これはアドレスを 16 進数に再変換するので役に立ちません。

念のため、これを確認するために直接引数を渡すことにしました (Worked)

0x603ffeb0: 0x41414141 0x42424242 0x43434343 0x44444444

0x603ffec0: 0x60000c19 0x60000b04 0xe8e8e8e8 0xe8e8e8e8

0x603ffed0: 0x60000804 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffee0: 0x60000bb8 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffef0: 0x00000002 0x603fff00 0xe8e8e8e8 0xe8e8e8e8

コマンドライン形式:(頭の痛い0x3931785cが返されます)

0x603ffeb0: 0x41414141 0x42424242 0x43434343 0x44444444

0x603ffec0: 0x3931785c 0x6330785c 0x3030785c 0x3036785c

0x603ffed0: 0x60000800 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffee0: 0x60000bc4 0xe8e8e8e8 0xe8e8e8e8 0xe8e8e8e8

0x603ffef0: 0x00000002 0x603fff00 0xe8e8e8e8 0xe8e8e8e8

argv[1] のペイロードが次のように処理されないようにするにはどうすればよいですか?

  • AAAABBBBCCCCDDDD\\x19\\x0c\\x00\\x60

?

0 投票する
2 に答える
364 参照

c - 「エラー: .org を後方に移動しようとしています」Xtensa XCC を使用すると、GCC は正常に動作します

最小限の再現可能な例を次に示します。

Tensilica Xtensa xt-xcc コンパイラを使用してこれをコンパイルすると、アセンブラ エラーが発生します。

これはどこから来たのでしょうか?

注: GCC は正常に動作します。