でのテストシェルコード私はちょうどシェルコードプログラムを実行する場合は、このGDB
desktop:~$ ./sh02
Segmentaion fault (core dumped)
のようにセグメンテーション違反になります。しかし、私はGDBでこのプログラムをデバッグするときに、このプログラムが実行される/ binに/成功し
(gdb) disass 0x4005a0
No function contains specified address.
(gdb) shell ps
PID TTY TIME CMD
4075 pts/4 00:00:00 bash
4099 pts/4 00:00:00 gdb
4101 pts/4 00:00:00 sh
4107 pts/4 00:00:00 ps
(gdb)
shを私はデバッグする前SH02プログラムを介して、/ binに/ shを実行することはできませんなぜ私は
それらの違いを見つけることができませんGDBでデバッグした後、このプログラムはうまく機能
... ギング?
const char str[]=
"\x55"
"\x48\x89\xe5"
"\x48\x31\xff"
"\x57"
"\x57"
"\x5e"
"\x5a"
"\x48\xbf\x2f\x2f\x62\x69\x6e"
"\x2f\x73\x68"
"\x57"
"\x54"
"\x5f"
"\x6a\x3b"
"\x58"
"\x0f\x05"
"\x90"
"\x5d"
"\xc3";
int main()
{
int (*func)();
func = (int (*)()) str;
(int)(*func)();
}
上記はsh02.cコードです。
私はその質問と回答を読んだ。しかし、私のケースは少し違うと思います。 GDBを使ったデバッグ中とデバッグ後sh02プログラムは/ bin/shを実行します。しかし唯一、デバッグの前に、それは未定義の動作は、プログラムが(運で)クラッシュクラッシュしたりしないことがあり呼び出されるとセグメンテーションフォールト
が、私はUbuntuの16.04とx64アーキテクチャ
[C-Busエラー10からのテストシェルコード](http://stackoverflow.com/questions/17822771/testing-shellcode-from-c-bus-error-10)または[シェルコードのテスト]( http://stackoverflow.com/questions/2797974/testing-a-shellcode?rq=1) –
私はその質問と回答を読んだ。しかし、私のケースは少し違うと思います。 GDBを使ったデバッグ中とデバッグ後sh02プログラムは/ bin/shを実行します。ただし、デバッグする前にのみ、セグメンテーション・フォールトが発生します。 – Damotorie
上記の内容と重複しているようではありませんが、質問自体は少し曖昧です。私が理解しているのは、なぜプログラムがデバッグモードで実行される前に動作しないのですが、それ以降はうまくいかないかを知りたいのですか? – hotzst