でロードされた共有ライブラリをデバッグしているとdlopen()
、興味深いことがわかりました。crypt()
ライブラリから呼び出されたときに関数によって返されるアドレスは 32 ビット ベースです。つまり、デバッガーでそのアドレスを確認しようとしたときです。これは悪いアドレスだと言っています。このアドレスにシフトを追加すると、私の場合0xffffffff00000000
は正しい結果が得られます。ソースを見ると、crypt
によって返される文字列がcrypt
静的な char 配列であることは明らかですが、アドレスが 32 ビット ベースである理由は明らかではありません。
どんなアイデアや助けにも感謝します