2012年11月29日木曜日

Windows ctrl-alt-del のパスワードフック

以下の情報を参考に、Windows でユーザがパスワード変更した際の
流れをフックして入力パスワードを取得し、それをとあるクラウドサー
ビスにプッシュするような dll を作っている。

Installing and Registering a Password Filter DLL (Windows)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms721766%28v=vs.85%29.aspx

まぁ書いてあるとおりに作ればできるのだが一つハマったこと。

環境が Windows 2008 Server R2 で 64bit なんだけど、どうも Wow64
じゃダメみたいで、ちゃんと x64 でコンパイルする必要があった。

# x64 だと size_t が 64bit なので Warning が結構出たので、
# オーバフローしないように書き換えるのがメンドイ…

2012年11月26日月曜日

win32 dll プログラミング中

Error:PCH 警告: ヘッダーの停止はマクロまたは #if ブロックには配置できません。Intellisense PCH ファイルは生成されませんでした。

↑意味わからん

precompiled header のエラーだそうで、#include "stdafx.h"すべきだと。

2012年11月20日火曜日

.NET 4 て

あぁ、.NET とかやってる自分が悲しい。
VS2010 で x64 なアプリ(Windows の世界じゃ x86_64 てあまり言わんの?)
を作る必要があり、どうも解せなかったのがプロジェクトプロパティの「参照」
のところの .NET 関連の dll のパス。

ProgramFiles(x86)\Reference Assemblies

にある dll を参照してるんだけど、ちゃんと x64 なバイナリをコンパイルでき
ている模様。.NET4 って x86 と x64 共有なの?

2012年11月7日水曜日

gitoliteメモ

  • サーバ

    # su - gitolito
    $ gl-setup 管理者用ssh公開鍵
  • クライアント

    • 確認
      $ git clone ssh://gitolite@gitserver.example.com/testing
    • ユーザの追加等
      gitlite-admin リポジトリを clone
      $ git clone ssh://gitolite@gitserver.example.com/gitolite-admin

      conf/ 下を編集したり keydir/ 下に公開鍵を追加したりして commit 後 push
    • .ssh/id_rsa または .ssh/config に指定した秘密鍵以外の秘密鍵でアクセスしたいとき。

      GIT_SSH に "ssh -i .ssh/id_rsa_2 などとすれば良いと思ったがこれだとダメ。
      man git には以下のようにある。

         GIT_SSH
                    :
          To pass options to the program that you want to list in GIT_SSH you will need to wrap
          the program and options into a shell script, then set GIT_SSH to refer to the shell
          script.

      パスの通っているところに以下のようなスクリプトを作る(私の場合は
      ~/bin/ssh-git-2) 。

          #!/bin/sh
          ssh -i /home/ryo/.ssh/id_rsa_nu  ${@+"$@"}

      んで GIT_SSH=~/bin/ssh-git-2; export GIT_SSH 


    あと、git push すると warning: push.default is unset; とかの
    エラーがガーっと出るんだけど、ようわからんが以下で解決。

    git config --global push.default simple


gpgkey2ssh

gpg のキーで ssh したかったので調べたら、gpgkey2ssh なんつー
コマンドを発見。しかし以下のエラー

gpgkey2ssh xxxxxxxx
sh: gpg: command not found
gpgkey2ssh: gpgkey2ssh.c:278: main: Assertion `(algorithm_id == 1) || (algorithm_id == 17)' failed.
Aborted (core dumped)

gpg2 コマンドに対応していないぽい。redhat の bugzilla を見ると
FC13 の頃からの不具合で未だに直ってないみたい。

仕方なくパスの通るところに ln -s /usr/bin/gpg2 gpg したらできた。