0

私は何度もこの質問に直面しましたが、それについてはわかりません。多くのサイトを検索しました。私が集めた情報は次のとおりです。

MemAlloc は、空きメモリ割り当てツールです。必要な量のメモリを要求することで、Windows オペレーティング システムに負荷をかけ、テストすることができます。

void * Memalloc(ulong size,int flags);

OllyDbg のコンテキストでメモリを割り当てます。リクエストは GlobalAlloc() にリダイレクトされます。これを使用して、より大きなメモリ チャンクを割り当てます。Memfree() を呼び出して、このメモリを解放してください。

これらの情報は私の質問には答えられず、概念はまだ私にはあまり明確ではありません. memallocの目的を教えていただけると助かります。

別の質問があります。メモリ割り当てツールの場合、malloc と memalloc の違いは何ですか?

4

2 に答える 2

4

OllyDbg は、Microsoft® Windows® 用の 32 ビット アセンブラ レベルの分析デバッガです。バイナリ コード分析に重点を置いているため、ソースが利用できない場合に特に役立ちます。

これは、メモリ リークMemallocを検出できるなどのメモリ割り当て方法を含むデバッグ ライブラリです。Memalloc は、Windows のラッパーのように見えます。GlobalAlloc

では、 との違いは何mallocですか? それは不明ですが、ほとんどの malloc 実装は相対的に古いものを使用するのGlobalAllocに対し、ほとんどの malloc 実装はVirtualAlloc.

MSDN のコメントを参照してくださいGlobalAlloc

注 グローバル関数は、他のメモリ管理関数よりもオーバーヘッドが大きく、提供する機能が少なくなります。グローバル関数を使用する必要があるとドキュメントに記載されていない限り、新しいアプリケーションではヒープ関数を使用する必要があります。詳細については、グローバル関数とローカル関数を参照してください。

于 2013-09-12T07:54:52.020 に答える
2

答えは、malloc は C 標準ライブラリの一部であり、すべての C コンパイラ/ツール チェーンに存在しますが、MemAlloc は C 標準の一部ではありません。

どうやら、あなたの引用によると、MemAllocと呼ばれる関数を提供する特定のライブラリがあり、いくつかの追加機能でメモリを割り当てると思います(正確な違いを知るには、各ライブラリのドキュメントを読む必要があります) . この関数自体も malloc を使用する場合があります。

于 2013-09-12T10:19:05.210 に答える