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