x86_64 シェルコードの次のアセンブリがあります。
call writer
writestring db "ABCD",0x0d0a
writer:
pop rsi
これをコンパイルすると、objdump -d が表示されます (簡潔にするために一部を省略しています)。
4000a4: e8 06 00 00 00 callq 4000af <writer>
00000000004000a9 <writestr>:
4000a9: 42 rex.X
4000aa: 42 rex.X
4000ab: 42 rex.X
4000ac: 42 0a 0d 5e 48 31 d2 rex.X
00000000004000af <writer>:
4000af: 5e pop %rsi
callq の後ろから 3 つの null を削除したいと思います。近くに電話する、遠くに電話するなどはしていません。誰でも提案できますか?
すみません、よくわかりませんでした。call を使用して、直後に rsi にポップできる writestr のアドレスを保存します。手でオフセットを把握するために rip にアクセスできません (またはできますか?)。