問題タブ [eip]

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 投票する
1 に答える
36 参照

linux - GDB を介してプログラムを実行すると、関数の場所が変更されますか?

バッファオーバーフローの演習を実行しようとしています。コードは次のとおりです。

これは単純なコードです。目的は、バッファをオーバーフローさせbadfunction()、戻りアドレスをオーバーライドして、関数のメモリ アドレスを指すようにすることcantrun()です。

ステップ 1: 戻りアドレスのオフセットを見つけます (この場合は 12 バイトで、バッファーが 8 バイト、ベース ポインターが 4 バイトです)。

ステップ 2: のメモリ ロケーションを見つけますcantrun()。gdb は 0x0804849a だと言います。

プログラムを実行すると、printf "%012x\x9a\x84\x04\x08" | ./vuln「不正な命令」というエラーが表示されます。これは、EIP を正しく上書きしたが、メモリの場所が正しくないことを示唆していますcantrun()

Kali Linux、Kernel 3.14 を使用しています。ASLR をオフにし、execstack を使用して実行可能スタックを許可しています。私は何か間違ったことをしていますか?

アップデート:

暗闇の中でのショットとして、アドレスを移動して正しい命令を見つけようとしましたが、0x0804849b がうまくいきました。これが GDB の表示と異なるのはなぜですか。GDB を実行している場合、0x0804849a はプレリュード命令の場所であり、push ebp0x0804849b はプレリュード命令mov ebp,espです。

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

c - オーバーフローしているシェルコードで eip が上書きされないのはなぜですか?

そのため、割り当てのためにバッファオーバーフローを行わなければならず、非常に近いと感じています。シェルコードをスタックの戻りアドレスに入れることができれば、スタック上で実行される VM を先生がセットアップしてくれました。バッファなどにループバックする必要はありません。シェルコードを上書きして入れたいレジスタはeip. ここから情報を得ましたhttps://greyhat.gatech.edu/wiki/index.php?title=Stack_Buffer_Overflow

バッファーs1[64]を 72 文字でいっぱいにすると、セグ フォールトが発生する可能性があることProgram received signal SIGSEGV, Segmentation fault. 0x00000000 in ?? ()がわかりました。

バッファーを 1 つ少ない文字 (別名 71) で満たすと、プログラムは正常に実行されるので、72 はどういうわけか魔法の数字でなければならないと感じています。s1そのため、72 個のフィラー文字とそれに続くシェルコードを入力しようとしました。今回は別の segfault が発生します。

Program received signal SIGSEGV, Segmentation fault. 0x080486f5 in main () at badcopyTester2.c:61 そしてgdbはeip0x080486f5なぜ/どのようにしeipてこの値を取得したのですか? そこに私のシェルコードがあってはいけませんか?また、72 個のフィラー文字の最後に何を入れても、eip常に同じ0x080486f5. AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA との両方の入力

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\xeb\x18\x5e\x31\xc0\x88\x46\x07\x89\x76\x08\x89\x46\x0c\xb0\x0b\x8d\x1e\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\xe8\xe3\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68まったく同じセグメントフォールトを与えます。

eip繰り返しになりますが、クリアする方法を見つけたので、非常に近づいているように感じますが、それを超えて立ち往生しています. ご協力いただきありがとうございます!

0 投票する
1 に答える
600 参照

apache-camel - Apache Camel の Process Manager パターン

Apache Camel フレームワーク オファーは Process Manager パターンをサポートしていますか? ( http://www.enterpriseintegrationpatterns.com/ProcessManager.html )

0 投票する
1 に答える
267 参照

amazon-web-services - ベスト プラクティス: NAT と ElasticIP の比較

Amazon Web Service の ELB の背後にある Web アプリケーションの基本的なセットアップが 2 つあります。

レイアウト A:

レイアウト B:

どちらのアーキテクチャにも長所と短所があると思います。

レイアウト A:

  • Web サーバーは http 応答を ELB に送り返しますか? それが直接ユーザーに送られる場合、パフォーマンスの応答は得られますか?
  • HTTP ポートの送信トラフィックをセキュリティ グループのみに制限しても、セキュリティ上の脅威はありますか?

レイアウト B:

  • この設計は、別のレイヤーの障害点 (NAT) を作成していますか?
  • Oauth 通信で動作しますか?
  • サードパーティの CI およびオーケストレーション ツール (jenkins、chef) と連携できますか?

どちらの設計もうまく機能しますが、パフォーマンスとセキュリティを考慮したインフラストラクチャのベスト プラクティスはどちらの設計でしょうか。

ありがとう

0 投票する
1 に答える
211 参照

amazon-web-services - AWS での EIP とパブリック IP の違いは何ですか?

AWS の EIP とパブリック IP の違いは何ですか?

EC2-Classic でインスタンスを起動する場合、EIP = パブリック IP? EC2-VPC でインスタンスを起動する場合、インスタンスのパブリック IP を NAT アドレスにすることができますか?

0 投票する
1 に答える
3310 参照

callstack - EIP とリターンアドレスの違いは何ですか?

EIPとリターンアドレスの違いを説明できる人はいますか?

同じように見えますが、私のデバッガーでは、それらが異なることを示しています。

0 投票する
1 に答える
5141 参照

assembly - CALL 命令は常に EIP が指すアドレスをスタックにプッシュしますか?

x86 アーキテクチャで関数呼び出し中に戻りアドレスがスタックにプッシュされない状況はありますか?