後からのLargeAddressAware

 既存の32bitアプリで/3GBやwow64の恩恵(2GB越えのメモリ)を得る為のフラグ、LargeAddressAware。
 ソースがあるならリンクオプションで指定するのが筋だけど、ソースがあっても必ず/簡単にコンパイルに成功するとは限らない本末転倒な世界だし、設定は楽に出来る方がいい。

 んで、exeのPEヘッダをバイナリエディタで変更する。
 0x3CにPEヘッダの位置を指す値(アドレス)が入ってるので、そこへ移動。
 0x3Cからの差量的には微々たるもんなので、パっと見て、This is program~の文字列と幾らかのデータの後に続く「PE」の文字を探すのが手っ取り早い気がする。 先のアドレスが"P"を差してるはず。
 そのアドレス+0x16(10進:22)の位置のバイト(値は概ね0F?)が加工対象になる。
 で、対象バイトの第5bitを立てれば完了(byte or 0x20、byte|0x20)。 0x0Fだったら0x2F。


 Win2K Serverのリソースキット付属のImageCfg.exeなら該当bitに対応してるみたいだけど、NT4の物は駄目だった('A`)
 cpu割り当てのフラグはNT4のImageCfg.exeでもいけるのに('з`)

 んで、旧版のVmaid.exe(11年前の動画編集プログラムw)で上記の変更をしたけど、問題なく動く模様。
 とあるデータ処理でメモリ不足っぽい無応答になるのが、変更によって完遂出来るようになった。
 Vmaidのプラグイン(DLL)を使う場合は、個々にパッチしておかないとやばいかもしれんけど。

 明快、お手軽、起動が軽快で、ちょっとデータを弄る分には良いソフトなのにディスコンになったのが残念。
 一応、装い新たな新版が出てるけど、プラグイン分の機能が欠乏してたり、GTKが必要になってたりと、ちょっとモニョ。
 運用性に関しては面倒で試してないからアレだけど(;'з`)

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック