パスワードを忘れた? アカウント作成

こちらは、Egtraさんのユーザページですよ。 アナウンス:スラドとOSDNは受け入れ先を募集中です。

13285273 comment

Egtraのコメント: Re:どうすりゃいいのよ (スコア 1) 60

by Egtra (#3213297) ネタ元: 「UNLHA32.DLL」が7年ぶりにアップデート

>Known DLLsのDLLがそうでないDLLを読み込むこと
えー?なんで?
ふつうにwindows apiを使ってたらkernelやuserやgdiの関数を呼んでるもんだと思ってたら、全然違う場所から呼んでるってこと?

UNLHA32.DLLの例のページの記述によれば、kernel32.dllは別のDLL(本当はSystem32に存在する想定)に対するインポートを有しているということだと考えています。

#普段遣いのコンパイラはBorlandなのだが……
#一応VC++もコンパイル確認だけはしているが。
#あとmingw-JPとかlcc-win32とかWatcom C/C++とか…。

そうなると起動用EXEと主たる処理のDLLに分割するのが比較的簡単ではないでしょうか。DLLでは、通常通りインポートできます。EXEのほうで対処してそのDLLを読み込む(SetDefaultDllDirectoriesまたはLoadLibraryExでLOAD_LIBRARY_SEARCH_SYSTEM32を指定するなど)という方法が可能です。このDLLに分ける処理、自己解凍書庫でこれを実装するのは一層大変そうですが。

13284065 comment

Egtraのコメント: Re:どうすりゃいいのよ (スコア 1) 60

by Egtra (#3212535) ネタ元: 「UNLHA32.DLL」が7年ぶりにアップデート

kernel32.dllそのものは、Known DLLsに登録されているので大丈夫です(user32.dllやgdi32.dllもです)。システム以外のディレクトリから同名のDLLが読み込まれることはありません。問題は、そこに書かれているように、Known DLLsのDLLがそうでないDLLを読み込むことなのです。

使うAPIの全てを遅延ロードってとんでもなく面倒くさい。

それこそVisual C++の遅延読み込みを使えば良いと思います。ソースコードの変更は不要なので、そこまで面倒ではないでしょう。そして、次のいずれかを実施すれば良いだろうかと思います(どなたか間違っていたら教えてください)。

  • プロセス起動後すぐにSetDefaultDllDirectriesを呼び出す。
  • 通知フックのdliNotePreLoadLibraryを使い、自分でDLLを読み込む(適切な実引数を指定してLoadLiraryExを実行する)
  • Windows 8以降であれば、プロセス起動後すぐにSetProcessMitigationPolicyでProcessImageLoadPolicyのPreferSystem32Imagesフラグを指定する。

ただ、いずれの方法でも、そのURLの記事に書かれているWindows 7でのSSPICLI.DLLやWindows VistaのAPPHELP.DLLの場合まで対処するものではありませんので、その対策が別途必要です。

その他 SSPICLI.DLLとかBCRYPT.DLLとか聞いたことのないようなDLL名が上がっているが,具体的にどうやったのか。どうやるべきなのか。

これはProcess Monitorか何かで、実際に読み込まれるDLLを確認していったのではないかと思います。もちろん、各バージョンのWindowsごとに。ただ、そのURLの記事に書かれているIMEやウイルス対策ソフトなどが勝手にDLLを読み込んでくる問題を見落としがちという問題がありますが、どうしようもありません。

13279430 comment

Egtraのコメント: Re:すごい (スコア 1) 98

ほかにも、コンソール入力・出力のCONIN$とCONOUT$なんかもあります: CreateFile function (Windows)。厳密には、予約済みファイル名とは異なる扱いなのかもしれませんが、実用上はCON~LPT9と同じ予約済みファイル名として扱うのが良いと思います。

13206929 comment

Egtraのコメント: 来月はある (スコア 1) 8

by Egtra (#3182541) ネタ元: VISTA SP3 アップデートこれが最後か?

来月のセキュリティアップデートまではVista用のパッチも出ると思います。Windows XPのとき(ついにWindows XPのサポートが終了)もそうでしたが、サポート期限が終了する日は、毎月定例のパッチが公開される日のためです。

13170717 comment

Egtraのコメント: Re:Googleのやつのソース知りたい (スコア 1) 57

Windows Vistaからみたいで、Advances in Memory Management for Windowsで紹介されています。ゼロページの中身が本当にゼロであることを読み込んで確かめるなどと書いてあるので、ECCでなくても機能するのですかね。

昔は日本語でも公開されていたようなのですが、今は消えてしまったようです(ホワイトペーパー: Windows のメモリ管理の進歩 - NyaRuRuが地球にいたころ)。

13170001 comment

Egtraのコメント: Re:Googleのやつのソース知りたい (スコア 2) 57

ソースコードではなくて恐縮ですが、このかたのツイートはどうでしょうか。

https://twitter.com/xharaken/status/341668178239303680

「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユーザ数規模になるとけっこう日常的に起きます。なのでChromeで走ってるGCには、それらのビット異常を検知する機構をわざわざ入れてます。

12740816 comment

Egtraのコメント: Re:これは嘘じゃないけど、いくら何でも内容が酷い (スコア 1) 160

そうそう、話は変わりますが、SFU/SUAのいつからだか、Win32 APIを呼び出すアプリケーションも作れるようになっているそうなんですよね。

MSDN Blogs > Shan's Page > All Tags > mixedmode

12726001 comment

Egtraのコメント: Re:現実的な自律走行車は、誰がいつ作成・販売出来ますか? (スコア 1) 141

最近では、新幹線も自動運転できるようになっています。ただ、これはオートクルーズのほうが近い存在なのかもしれませんが。

“超正確”さらに進化 自分で考える新幹線「N700A」公開 JR東海 (2/3ページ) - SankeiBiz(サンケイビズ)(2012年の記事です)

操作は運転席のボタンを押すだけ。駅への停車時などは、運転士が従来通りアクセルを操作する。

ただ、この定速走行装置は、自然災害などトラブル発生時の運行遅れを取り戻すときだけ使用する。通常時に使用すると、速度の効率がよすぎて、時刻表よりも早く到着してしまうためという。

typodupeerror

日々是ハック也 -- あるハードコアバイナリアン

読み込み中...