archive-com.com » COM » N » NITOYON.COM

Total: 757

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • レジストリに RegSetValueEx で REG_SZ を設定するときのバイト数 - てっく煮ブログ
    bytes 4バイト test 書き込んだら なぜか5バイト分書き込めていた という状態 余計なおせっかいと言ってしまえばそれまで さらに小さいサイズを指定した場合 さらに1バイト減らしてみた test を書き込むのに cbData に3文字分のバイト数を渡すとどうなるか 変数名 パラメータ lpData TEXT test cbData 3 sizeof TCHAR この場合は NULL 文字を含まない形でレジストリに格納される set 3 bytes test 74 65 73 74 00 wrote 3 bytes このとき レジストリ上には test のうちの何文字が格納されているのだろうか 末尾に NULL は付加されているのだろうか 3文字分のバッファを渡して RegQueryValueEx で取得すると NULL を含まない形で tes の3文字が返ってきた query 3 bytes tesフフ 74 65 73 cc cc lpcbData 3 一方 NULL 文字を格納する余地を含んだバッファを RegQueryValueEx に渡してあげると NULL 文字が追加された tes 0 が返ってきた query 5 bytes tes フ 74 65 73 00 cc lpcbData 3 ただ このときの lpcbData には NULL 文字を含んだバイト数 4バイト ではなく レジストリに保存されたバイト数 3バイト が入っているので注意が必要だ Microsoft さんの余計なおせっかいにも似た優しさに惑わされてバグを生まないように注意したい NULL 文字を途中に含んだ文字列を書き込んだ場合 試しに途中に NULL 文字を含んだ文字列を書き込んでみるとどうなるだろう 変数名 パラメータ lpData TEXT t 0st cbData 5 sizeof TCHAR 5バイト分書き込むことができる set 5 bytes t st 74 00 73 74 00 wrote 5 bytes 取得すると NULL 文字を含んだ形で取得できた query 5 bytes t st 74 00 73 74 00 size 5 ただし レジストリエディタで値を確認する限りは 最初の NULL 文字までしか表示されない C の Microsoft Win32 RegistryKey GetValue を使って取得しても NULL 文字以降は取得できなかった こっそりと秘密の情報を格納するのに使えるかもしれない また 何も考えずにバッファサイズ分の文字をレジストリに格納していると NULL 文字以降の情報もレジストリに保存されてしまうので 秘密のデータがこっそり漏れてしまうかもしれないので注意が必要だ RegSetValue と RegQueryValue RegSetValue は現在は利用を推奨されていないが データの型に REG SZ しか指定できない時代の関数である分 REG SZ を書き込む場合には簡単に使える RegSetValue HKEY hKey キーのハンドル LPCTSTR lpSubKey 値の名前 DWORD dwType REG SZ でなければならない LPCTSTR lpData NULL 終端文字列 DWORD cbData 無視される RegSetValue の内部で文字列の長さからバイト数も決定してくれるので非常に楽だ RegQueryValue も現在は利用を推奨されていないが 途中に NULL 文字を含む文字列も取得できることが確認できた ソース 今回の実験に使ったソースを掲載しておく include windows h include stdio h include tchar h void dump5 LPCTSTR buf void testRegSetValueEx LPCTSTR buf DWORD size int main RegSetValueEx でサイズに正しい値を与えたとき testRegSetValueEx TEXT test 5 sizeof TCHAR RegSetValueEx でサイズに NULL 文字を含めるのを忘れたとき testRegSetValueEx TEXT test 4 sizeof TCHAR RegSetValueEx でサイズに小さい値を与えたとき testRegSetValueEx TEXT test 3 sizeof TCHAR testRegSetValueEx TEXT test 2 sizeof TCHAR testRegSetValueEx TEXT test 1 sizeof TCHAR RegSetValueEx でサイズに 0 を与えたとき testRegSetValueEx TEXT test 0 RegSetValueEx で NULL 文字を含む値を与えたとき testRegSetValueEx TEXT t 0 st 5 sizeof TCHAR void testRegSetValueEx LPCTSTR buf DWORD size DWORD dwType tprintf T set d bytes size dump5 buf exec RegSetValueEx HKEY LOCAL

    Original URL path: http://tech.nitoyon.com/ja/blog/2010/12/22/regsetvalueex-cbdata-size/ (2016-02-13)
    Open archived version from archive


  • タグ「C++」の記事一覧 - てっく煮ブログ
    の std vector に v 3 1 4 で push back 2007年12月11日 C Boost jsoncpp を試す 2006年11月17日 C C NET でクラス宣言するときの注意点 2004年12月29日 C VC ビルドエラー 2004年01月06日 C chkesp c のアサート 2004年01月05日 C wincore cppでASSERT 2003年12月22日 C タグ一覧に戻る About Profile nitoyon

    Original URL path: http://tech.nitoyon.com/ja/blog/tags/c++/ (2016-02-13)
    Open archived version from archive

  • スクリーン座標・クライアント座標の変換いろいろ - てっく煮ブログ
    Point DisplayObject localToGlobal pt Point JavaScript event screenX event screenY event clientX event clientY JavaScript prototype js Position positionedOffset Win32 ClientToScreen ScreenToClient GetWindowRect WinForms Control PointToClient Control PointToScreen WPF XAML MouseEventArgs GetPosition IInputElement relativeTo Visual TransformToAncestor Visual ancestor 自分が知ってるのはこのへんまで 他の環境ではどんな名前がついてるんだろな Tweet 2009年02月18日 編集履歴 ActionScript C Win32 WPF 50個のポリゴンでモナリザ を AS3 で jQuery と object タグの怪 Please enable JavaScript to view the comments powered by Disqus comments powered by Disqus About

    Original URL path: http://tech.nitoyon.com/ja/blog/2009/02/18/screen-client-transform/ (2016-02-13)
    Open archived version from archive

  • タグ「WPF」の記事一覧 - てっく煮ブログ
    スクリーン座標 クライアント座標の変換いろいろ 2009年02月18日 ActionScript C Win32 WPF Fleverlight 勉強会に参加してきた 2008年07月28日 Flex Silverlight WPF 勉強会 発表資料 Flex と WPF の概要について発表しました 2007年05月20日 Flex WPF 発表資料 タグ一覧に戻る About Profile nitoyon にとよん 京都のベンチャー会社勤務 プログラマ たまに趣味でデザイン 詳細 Subscribe twitter nitoyon Facebook ページ RSS Recent Entries

    Original URL path: http://tech.nitoyon.com/ja/blog/tags/wpf/ (2016-02-13)
    Open archived version from archive

  • プロセスの親子関係を知る - てっく煮ブログ
    services exe の子プロセスのようだ ちなみに services exeはwinlogon exeの子プロセスだ System Idle Process System smss exe csrss exe winlogon exe winlogon exe services exe svchost exe Explorer exe IEXPLORE exe ランチャー ランチャーから立ち上げたアプリ プロセスAの子プロセスがBで その子プロセスがCのとき TopLevelProcess exe A B C Bを殺すと CはAの子供にはならずに自動的にトップレベルのプロセスになるようだ TopLevelProcess exe A C 自作のアプリケーションで親子関係を知りたい場合は CreateToolhelp32Snapshot関数を呼び出して Process32First Process32Nextなどを呼び出しながらPROCESSENTRY32構造体の th32ParentProcessID を参照するとよいようだ なお NT4 0ではToolHelp functionsが提供されていないため この方法は使えないようだ 未確認 Tweet 2004年06月10日 編集履歴 Win32 NTFSの副次ストリーム LDAP勉強中 Please enable JavaScript to view the comments powered by Disqus

    Original URL path: http://tech.nitoyon.com/ja/blog/2004/06/10/p1/ (2016-02-13)
    Open archived version from archive

  • APIフックについてまとめておこう - てっく煮ブログ
    でぐぐってみると 誰かが昔公開されていたのを2次配布しているのが見つかる かも APIHijack APIフック用のライブラリ解説 code project DLL Injection and function interception tutorial The Code Project DLLs 同じくCode Project から NyaRuRuの日記 Japan internet com デベロッパー 別のプロセスにコードを割り込ませる3つの方法 某氏に解説してもらった内容をメモ Win32プロセスは EXE や DLL のファイルフォーマットである PE フォーマットのファイルをほぼそのままメモリ上にロードする形で起動される で PE フォーマットのバイナリでは API コールというのは全部間接ジャンプになっていて idata というセクションにそのジャンプ先の値を書き込んだテーブルが収められている コンパイル後のアセンブラでは call idata 52 って感じになっていて idata 領域に API の実アドレスが一杯並んでいる Windows の PE ローダは idata セクションのアドレステーブル中の値を書き換えることで ロードされたバイナリと API の実コードのある空間とをリンクする で dchook がやっているのは あるプロセスにおいて利用される API をフックするために そのプロセスのオンメモリな idata の中身を上書きするという作業 API のアドレスの代わりにフック関数のアドレスを書き込んでやる

    Original URL path: http://tech.nitoyon.com/ja/blog/2004/01/09/p1/ (2016-02-13)
    Open archived version from archive

  • Google Mapsでレーシング公開!
    2005年11月06日 Google Mapsでレーシング公開 Tweet Google Maps API を利用した便利なサービスが数々発表されているけど 別に遊びのために活用してもいいよね そんな思いから Google Mapsをレーシングゲームに応用してみました Google Mapsで鈴鹿サーキット試走 簡単操作のテスト版ですが それなりに楽しめると思います 時間測定や当たり判定がないのはご愛嬌ということで許してください 応用例 操作方法などはリンク先に書いたので ここではさらに応用例を考えてみます 実測地図を利用したRPG ドラクエ3をリアルな世界地図で とか リアル桃鉄 データさえ入力すれば実現できるはず オンラインゲーム化したら楽しそう フライトシミュレータ サテライト写真を使えば 実際に飛んでいる気分になる 高度が上がるにしたがって ズームレベルを変更するとリアリティーが出るかも シューティングゲーム インベーダから地球を救え 他にも面白いものが思いついたらコメントなりトラックバックなりで教えてくださいませ Tweet 2005年11月06日 編集履歴 目次 Google Mapsでレーシング公開 走っているように見える仕組み 公開して一週間の評判 Google Earth でもドライビング Please enable JavaScript to view the comments powered by Disqus comments powered by Disqus About Profile nitoyon にとよん 京都のベンチャー会社勤務 プログラマ たまに趣味でデザイン 詳細 Subscribe twitter nitoyon

    Original URL path: http://tech.nitoyon.com/javascript/application/racing/1.html (2016-02-13)
    Open archived version from archive

  • 公開して一週間の評判
    いろいろ考えてみました はてなブックマークでの大ヒット ターゲット層に絞った はてなブックマーク での評判がよかったのが素直にうれしいです 200人もの人にブックマークしていただいきました しかも肯定的なコメントばかりで うれしい限りです 二分された感想 いろいろな感想が見えてきますが 大きく分けてゲーム派とインターフェース派に分けられます ゲーム派 ブレーキをつけてくれ 当たり判定ない インターフェース派 ゲームにしたという発想が斬新 どこまでもいけるのが面白い 東京まで行ってみました どちらかというとインターフェース派が多いようです 私もゲームとして面白いとは考えていなくて 車ごしに地図を見る というインターフェースを楽しんでほしくて公開しました そのへんについては hiropon suburbia hatena さんが非常にうまくまとめてくれてます 今後 さて 今後はどうするんだよ とちょっと悩んでるのですが ワープ機能とサテライト化機能でもつけるかなーとぼんやり考えてます みんながスタート地点を登録できるようにすると面白いかなーとも ゆくゆくは当たり判定エディタを作って レースだけでなく Google マップでのゲーム作成に応用できれば とも思うんですよね 誰か作ってくれないかな Tweet 2005年11月15日 編集履歴 目次 Google Mapsでレーシング公開 走っているように見える仕組み 公開して一週間の評判 Google Earth でもドライビング Please enable JavaScript to view the comments powered by Disqus comments powered by Disqus About Profile nitoyon にとよん 京都のベンチャー会社勤務 プログラマ

    Original URL path: http://tech.nitoyon.com/javascript/application/racing/1week_summary.html (2016-02-13)
    Open archived version from archive



  •