「リバースエンジニアリング」を含む日記 RSS

はてなキーワード: リバースエンジニアリングとは

2017-09-11

https://anond.hatelabo.jp/20170910205249

まじな話をすると、N予備校プログラミング入門コースやるのがオススメ

https://www.nnn.ed.nico

一日8時間勉強時間があるなら、だいたい一ヶ月で終わる内容。

月額1000円だけどしっかり勉強すれば一ヶ月の無料間中に終わると思う。

もともとN高等学校のノンプログラマーの生徒をWebエンジニアとして就職させるために作られたカリキュラム講師曰く去年はこれで二人エンジニア就職を決めたらしい。

内容も相当親切に説明していて、プログラミングで何か作るだけじゃなくて、就職必要な環境構築やセキュリティまでみっちりやる。

http://qiita.com/sifue/items/7e7c7867b64ce9742aee#%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E6%A7%8B%E6%88%90%E3%81%95%E3%82%8C%E3%81%9F%E3%82%B3%E3%83%BC%E3%82%B9%E3%81%A8%E5%86%85%E5%AE%B9

講師が書いてる入門コースで習うことがまとめ。テキスト教材もあるけど授業も1項目を2時間で説明している。授業は週2の生放送とそのアーカイブがある。

↓みたいなことが学べる

----

Webプログラミング入門コース

Web ブラウザとは (Chrome, デベロッパーコンソール, alert)

はじめてのHTML (VSCode, HTML, Emmet)

さまざまなHTMLタグ (h, p, a, img, ul, tableタグ)

HTMLで作る自己紹介ページ (HTMLタグ組み合わせ, コンテンツ埋め込み)

はじめてのJavaScript (JS, ES6, エラー)

JavaScriptでの計算 (値, 算術演算子, 変数, 代入)

JavaScript論理を扱う (論理値, 論理積, 論理和, 否定, 比較演算子, if)

JavaScriptループ (ループ, for)

JavaScriptコレクション (コレクション, 配列, 添字, undefined)

JavaScript関数 (関数, 関数宣言, 引数, 戻り値, 関数呼び出し, 再帰)

JavaScriptオブジェクト (オブジェクト, モデリング, プロパティ, 要件定義)

はじめてのCSS (CSS, セレクタ, background-color, border)

CSSを使ったプログラミング (transform, id, class)

Webページの企画とデザイン (企画, 要件定義, モックアップ, 16進数カラーコード)

診断機能の開発 (const, let, JSDoc, インタフェース, 正規表現, テストコード)

診断機能組込み (div, 無名関数, アロー関数, ガード句, truthy, falsy)

ツイート機能の開発 (リバースエンジニアリング, URI, URL, URIエンコード)

Linux開発環境構築コース

LinuxというOS (VirtualBox, Vagrant, Ubuntuインストール, OS, CUIの大切さ)

コンピューター構成要素 (ノイマンコンピューター, プロセス, lshw, man, ps, dfの使い方)

ファイル操作 (pwd, ls, cd, mkdir, rm, cp, mv, find, ホストマシンとの共有ディレクトリ)

標準出力 (標準入力標準出力標準エラー出力パイプgrep)

vi (vimtutor)

シェルプログラミング (シバン, echo, read, 変数, if)

通信ネットワーク (パケット, tcpdump, IPアドレス, TCP, ルーター, ping)

サーバークライアント (tmux, nc, telnet)

HTTP通信 (http, https, DNS, hostsファイル, ポートフォワーディング)

通信をするボットの開発 (cron, ログ収集)

GitHubウェブサイトの公開 (GitHub, リポジトリ, fork, commit, 情報モラル)

イシュー管理とWikiによるドキュメント作成 (Issues, Wiki)

GitとGitHub連携 (git, ssh, clone, pull)

GitHubへのpush (init, add, status, インデックス, commit, push, tag)

Gitのブランチ (branch, checkout, merge, gh-pages)

ソーシャルコーディング (コンフリクト、プルリクエスト)

Webアプリ基礎コース

Node.js (Node.js, nodebrew, Linux, REPL, コマンドライン引数, プルリク課題)

集計処理を行うプログラム (集計, 人口動態CSV, Stream, for-of, 連想配列Map, map関数)

アルゴリズムの改善 (アルゴリズム, フィボナッチ数列, 再帰, time, プロファイル, nodegrind, O記法, メモ化)

ライブラリ (ライブラリ, パッケージマネージャー, npm)

Slackボット開発 (slack, mention, bot)

HubotとSlackアダプタ (hubot, yo)

モジュール化された処理 CRUD, オブジェクトライフサイクル, filter)

ボットインタフェースとの連携 (モジュールのつなぎ込み, trim, join)

同期I/Oと非同期I/O (同期I/O, 非同期I/O, ブロッキング)

例外処理 (try, catch, finally, throw)

HTTPサーバー (Web, TCPとUDP, Webサーバーの仕組み, Node.jsイベントループ, リスナー)

ログ (ログ, ログレベル)

HTTPのメソッド (メソッド, GET, POST, PUT, DELETE, CRUDとの対応)

HTMLフォーム (フォームの仕組み, form, input)

テンプレートエンジン (テンプレートエンジン, jade)

HerokuWebサービスを公開 (Webサービスの公開, heroku, dyno, toolbelt, login, create, logs)

認証利用者を制限する (認証, Basic認証, Authorizationヘッダ, ステータスコード)

Cookie を使った秘密匿名掲示板 (Cookie, Set-Cookie, expire)

UI、URI、モジュール設計 (モジュール設計, フォームメソッド制限, リダイレクト, 302)

フォームによる投稿機能の実装 (モジュール性, textarea, 303)

認証された投稿の一覧表示機能 (パスワードの平文管理の問題, 404, テンプレートのeach-in)

データベースへの保存機能の実装 (データベース, PostgreSQL, 主キー)

トラッキングCookieの実装 (トラッキング Cookie, IDの偽装, Cookie の削除)

削除機能の実装 (データベースを利用した削除処理, 認可, サーバーサイドでの認可)

管理者機能の実装 (Web サービス管理責任, 管理者機能の重要性)

デザインの改善 (Bootstrap, レスポンシブデザイン, セキュリティの問題があるサイトを公開しない)

脆弱性 (脆弱性, 脆弱性で生まれる損失, 個人情報保護法, OS コマンド・インジェクション)

XSS脆弱性対策 (XSS, 適切なエスケープ処理, リグレッション)

パスワード脆弱性対策(ハッシュ関数, メッセージダイジェスト, 不正アクセス禁止法, パスワードジェネレーター, 辞書攻撃)

セッション固定化攻撃脆弱性対策 (セッション, セッション固定化攻撃, ハッシュ値による正当性チェック)

より強固なセッション管理 (推測しづらいセッション識別子, 秘密鍵)

CSRF脆弱性対策 (CSRF, ワンタイムトークン)

安全なHerokuへの公開 (脆弱性に対する考え方, HTTPの廃止)

Webアプリ応用コース

Webフレームワーク (Express.js, フレームワーク導入, 簡単なAPI, セキュリティアップデート, Cookie パーサー, ミドルウェア, 外部認証, ロガー)

ExpressのAPI (app, Properties, Request, Response, Router)

GitHubを使った外部認証 (Passport, OAuth)

スティングフレームワーク (Mocha, レッド, グリーン, リファクタリング)

継続的インテグレーション (CircleCI)

クライアントフレームワーク (Webpack, Chrome 以外のブラウザでもES6)

DOM操作フレームワーク (jQuery, jQueryアニメーション, this)

AJAX (jQuery.ajax, クロスドメイン, 同一生成元ポリシー, x-requested-by, CORS)

WebSocket (WebSocket, WebSocketの状態遷移, Socket.io)

RDBとSQL (DDL, DCL, CREATE, DROP, INSERT, DELETE, UPDATE, WHERE)

データモデリング (リレーショナルモデル, 正規化)

テーブルの結合 (外部結合, 内部結合, 片側外部結合, JOIN ON)

インデックス (インデックス, 複合インデックス, Bツリー)

集計とソート (SUM, COUNT, ORDER BY, GROUP BY)

「予定調整くん」の設計 (要件定義、用語集、データモデル、URL設計モジュール設計、MVC)

認証とRouterモジュールの実装 (Mocha, supertest, passport-stub, モックテスト)

予定とユーザーの保存 (セキュリティ要件, UUID, 複合主キー)

予定とユーザーの一覧の表示 (非同期処理, Promise, then)

出欠とコメントの表示 (入れ子の連想配列, Promise.all, 子どもからデータを消す)

出欠とコメント更新 (Promiseチェイン, リファクタリング)

予定の編集と削除 (要件の衝突, 関数再利用)

デザインの改善 (this, グローバルオブジェクト)

セキュリティ対策と公開 (X-Frame-Options, Heroku環境変数)

2017-09-04

中国北朝鮮核ミサイル武装に全面的に反対でしょう

anond:20170904195506

北朝鮮中国の子分だから北朝鮮の核は中国容認している、あるいは協力していると考えている人を見かけるけれど、そんなことあるけがない。中国だって核ミサイルを突き付けられている側でしかないよ。

中国黒幕説の人は中国北朝鮮が盟友だから貿易を止めていないと見ているのかもしれないが、貿易を止めて恨まれたら北京ミサイルが飛んできかねないから止められないという事情だってある。

中国北朝鮮供与したロケット製造技術はせいぜい延坪島に打ち込んでいたロケット弾程度のもの。それ以上の技術北朝鮮エジプトから複製を請け負ったソ連スカッドミサイルリバースエンジニアリングから得ている。あとはイランあたりとの協力から

そもそも中国ロケット技術アメリカNASAの流れをくむものだし、北朝鮮ロケット技術ソ連パクリ、と系統が異なる。

2016-09-13

あー悔しい

久しぶりに素晴らしい3DCG作品を見た。(例の不気味の谷を越えた少女ではないです)

ただのエロGifだし、一線級の人なら簡単マネできる代物なのかもしれないけど。

自分でもこういうものを作りたいと思う。

しか3DCG作品というのは、動(静)画にレンダリングされてしまえば、それがどういう作られ方をしたのか全く見当がつかない。

リバースエンジニアリングができない。完全なる暗中模索である

それを試行錯誤するのが、数学の未解決問題を解いているようで面白いといえば面白いのだが。

モデルボーンまで入れられたとして、この肌のシェーダーはどうなっているのか? コンポジットは?

からない!分からない!分からない!

善意の誰かがシェーダーを公開してくれるのを待つほかない。

悔しいなあ羨ましいなあどうしてこれを作ったのが自分じゃないんだろう?

2016-04-12

人間性』に言及し始めたとき、その組織は終わってる

筆者は建設業という斜陽産業に勤めている。

いろいろ突っ込まれることを前提でエントリをぶちまけるので、忌憚ない意見が聞けたら良いなとおもっている。

経緯について

さることの昨年九月、とある財閥企業グループの子会社転職をした。

親会社にくっついたエンジニアリング会社といえば聞こえは良いが、要するに工事会社だ。親会社不採算利益率の低い部門分社化しただけのことだ。

この企業転職して数ヶ月、起こったこととそれに対する意見をぶちまける。異論反論、大募集だ。ただし討論に興味はない。

思ったことをぶちまける代わりに、それに対して思ったことが返ってくることを期待する。

マリーはおおまかにいって以下にまとめることができる。

工事会社としての技術力とは一体なんなのか、それは情報漏えいを恐れるようなレベルのものなのか

②内部の人間同士で『人間性』に言及し始めるようなら、その組織は終わってる

ドメスティックタイプ企業における『コミュニケーション能力』という名の限界

工事会社技術力など存在しない

会社に入ってきて思うのだが、いわゆる施工規準施工方法に関するデータ流出上層部が過度に恐れているように思える。

しかもそれは本質的な『情報漏えい』に関する健全な怖れというよりは、子会社ありがちな親会社風評被害を怖れての脊髄反射に見える。

PCシンクライアントにするのは良いが、いくつかのクラウドサービスアクセス禁止にするのはいかがなものか。はてはフラッシュメモリからフリーソフトダウンロードまで規制されている。

顧客情報流出を怖れるのは良いとして、施工規準施工方法に関する教育データぐらいある程度コピーして弊害があるか?

原価見積りに関するデータ流出することで、利益源泉が素っ裸になってしまリスクは分かるが、正直言って建設業関係中小エンジニアリング会社に、セキュリティをかけてまで守る技術などない。

厳密に言えば、工事会社技術力とは要するに資金力のことだ。

とてつもない機械をどっかから買ってきて、数値を入力して、資金力にものを言わせて人を雇って、膨大な工期を費やして建築物を完成させるというだけのことだ。

だいたいエンジニアリング会社なんて、自社の技術なんてなにも持っちゃいない。

太陽光発電事業者なんかがよく自らをEPCエンジ調達と構築をワンストップで行う事業モデル)とか言っちゃってるわけだが

要するに知識と人員情報収集力&編集力はあるから必要なもんは金かけて集めてきて設計して作ってやんよ、っていうだけの話だったりする。

からエンジニアリング会社プラントに持ってく装置設備ほとんどは、実は盤屋に筐体だけ作らせて中身は中小メーカーやどこぞの電子メーカー製品の寄せ集めだったりする。

ぶっちゃけ施工会社としてのエンジニアリング会社エンジニアリングっつーよりはむしろ商社に近い。投資事業モデルを使ってないだけ。

客先常駐型の派遣モデル収益を上げているが、結局設備のもの校正サービスメーカー技術者を呼ぶわけで、ビジネスの形が顧客との利益相反になってる。

これが例えばプロパティマネジメントのように、顧客の一部となって設備投資利益の最大化を目指す形ならばいざ知らず、結局は政府公共工事に縋る建設コンサルタント業界ほとんど変わらない。

相手メーカーに切り替わっただけの話で、二年三年単位で作られる景気を見越した設備投資計画によって投入された予算に従うだけ&なるべくそ予算を多く取るために張り切るだけのビジネスだ。

現代における技術力の意味合いはどちらかといえばもっとサイエンスであったりコンピューティングものだと思う。

少なくとも、いくら工事会社が『我々の技術力を守る』だのと言っても、そこに書かれていることのほとんどは日本電気事業法だの高圧ガス安法だのに則ったものを超えられないし、そこから幾らでもリバースエンジニアリングが可能なものしかないと思う。

まりなにが言いたいのかというと、会社PC持ち帰れないんだから教育資料ぐらいクラウドサーバーにアップして家でテスト受けることを許可しろ

人間性』に言及し始めたとき、その組織は終わってる

職場仕事成果物に対する評価を下すならまだしも、従業員人間性に言及が終始するような職場は終わってる。それは単なる噂話や陰口の温床だ。上司が部下の人間性に口を出す組織も終わってる。

コミュ障アスペ発達障害うつ病についての言及をするような職場、とりわけそれを「脱落者」「人として未熟」という組織も同様だ。まず間違いなく組織として終わっている。

大抵そういう組織には〝明確なタスク〟が置かれていない。

仕事をするにしても各自に割り振られたタスクのものがなく、社内営業や油売りによって仕事を獲得するような組織だ。

指示系統にせよ、組織でありながら組織化が徹底されてない証拠だ。

誤解を怖れずにはっきり言うが、そもそも『人間性』に着目しはじめたとき、その組織もあるいはその人間関係ある意味で終わってる。

定義されきっていない命題には地図がない。

多くのビジネス書では地図よりコンパスの方が重要だとよく言われるが、はっきり言ってそれは嘘だ。

コンパスはたしか重要だが、それよりも地図を手に入れることの方が先決だ。

コンパス主観だが、地図自分がいる位置を相対化して知る事ができる唯一のツールだ。GPSがあっても上空から映像がなければ何の役にもたたない。

人間性を期待するべき側とそうでない側がTPOで変化する。また人間性の定義もTPOで変化するし、人間性を評価する人間もまたTPOで変化する。

そして多くの場合人間の語る評価ポジショントークで、現代人は一個人でありながら日常生活の中でさまざまなポジションに立つ(親であり上司であり母であり父であり弟であり..)から人間性の評価軸そのもの普遍ではない。

人間関係一元的ものではない。人は誰と対面しているかによってコロコロと相を切り替えるので、ある人間から見た印象が必ずしも別の人間から見た印象と一致するわけではない。

しかもそれは個々の人間が持つ評価軸に連動しており、その評価軸は各々の視野・視座によって変化する視点であり、複雑系曖昧だ。

『評判』そのものに実は信頼性などなく、『何故その人はそのような評価を下したのか』に着眼し、評価を下した人間立場や背景にまで目を広げなければ、客観的な『結論』を得ることは難しい。

facebookの『いいね』の個数は重要ではない。『どこの誰が〝いいね〟を押しているのか』が重要で、さらに言えば〝何故いいねを押したか〟の方がもっと重要だ。

その理由の如何によっては、『いいね』そのものデータ指標として無視するという選択すら十分ありうる。

ビジネス現場において、始末書反省文に人間性に対する言及があってはならない。

それはなんら解決にはならない。根本的な問題が仮に人間性にあるとしても、それを逆手に取って上手に外的要因に沿って問題に取り組んでいく以外に道はない。

上司パワハラであるからといって、我々は生計を立てることを諦めるわけにはいかないし、部下や従業員怠惰傲慢であるからといって、具体的な目標を立てずにビジネスが進展することはありえない。

結論を言えば、『人間性』に言及し始めることは、ビジネスにおいて必須たる〝コト〟に向かう姿勢を歪める。

それが蔓延する組織は、組織化が上手くいっていないか、もしくはそのビジネス限界を迎えているかのどちらかだ。

(※ 筆者の場合所属しているのは子会社タイプ工事会社なので、ビジネスのものが危うく、社内が内向きになっているのだと考えている)



コミュニケーション能力』という名の幻想

阿吽の呼吸のことを『コミュニケーション能力』と呼ぶ時代はとうに終わっている。

今後はアスペ時代になるだろう。

すべては文脈宣言言語によって語られ、記述構造化が優位に立つ時代になるはずだ。

これはますます今後進んでくだろう。

曖昧さは削られていく。

世界全体で大きなストーリー崩壊した今、ドメスティック企業において求められていた『コミュニケーション能力』を担保にした『仕事が出来るヤツ』『仕事が出来ないヤツ』の評価軸は揺らぐだろう。

なにが言いたいのかというと、現場ごとに施工ごとに異なる大同小異の部分で小さく競い合うのは不毛だし醜くてむしろ哀しくなってくるから辞めろ。

たかだが一つの装置の細かい機能に過ぎない部分で知識自慢と知恵比べをするのは不毛から辞めろ。

文脈レベルでの競い合いなんざ無意味だ、職人同士の張り合いは趣味でやれ。ささやかな自慢なら良いが、無駄プライドを持つと逆に扱いづらくで邪魔だ。

2013-10-15

http://anond.hatelabo.jp/20131015124148

そもそも、その条項では、単純利用だからリバースエンジニアリング許可が及ばないのでは?

LGPLリバースエンジニアリング許可の条項が及ぶのは2次的著作物場合で単純利用は2次的著作物に当たらない場合が多い。

 

法的責任を求める場合弁護士相談してください。

http://mfsocket.blogspot.com/2011/06/lgpl.html

 

ただ、そもそも、リバースエンジニアリングの拒否するライセンスが合法かどうか?というのはまた別な話だと思う。

プログラムを入手した場合で、その製品に製造上の問題がある場合、それを修正する権利著作権法上認められていて著作権適用範囲外。

法律で認められている権利の行使に必要ものを除外する個別契約無効化出来る場合ほとんどだから(個別契約法律では法律が優先する)

制限された合法的な目的でのリバースエンジニアリングの拒否って違法なんじゃない?とはおもう。

※それを購入した場合で、欠陥による問題が合った場合メーカー依存せず購入した当事者が自主的に改変する場合など

逆にそれ以外の場合に、そもそも、リバースエンジニアリングが合法か違法日本では明確な判断が無い気がする。

 

また、LGPLは使うんだけど、オープンソースじゃないというのは、認められてはいるけどオープンソース活動への貢献としてじゃぁ何をするのか?

オープンソースから得た利益をどうやって、オープンソース還元するのか?という人道的な問題は、別問題だと思う。

LGPLライセンスの孫ライブラリを使う場合はどうなる?

LGPLライセンスライブラリを動的リンクする場合リバースエンジニアリングを許可しなくてはいけないらしい。

しかし、次の場合はどうなるのだろう?

アプリケーションAはライブラリBを動的リンクし、ライブラリBはライブラリCを動的リンクする」

CがLGPLライセンスで、BはBSDライセンス

この場合、Bはリバースエンジニアリングを許可しないといけないが、Aはどうなのだろう? AはCを間接的に利用するが、LGPLリバースエンジニアリング許可の強制力がAにも及ぶのだろうか?

2013-03-23

プロテクト強化後のもふったーも予想以上に酷かった件(追記あり)

ことのあらまし
  1. Twitterクライアントもふったーの作者「TweetDeckのconsumer secret簡単に抜ける、終わってる」(http://blog.livedoor.jp/blackwingcat/archives/1760823.html)
  2. 別の誰か「もふったーのconsumer secretも簡単に抜ける」(http://d.hatena.ne.jp/kusano_k/20130318/1363640368)
  3. もふったーの作者「プロテクト強化した」(http://blog.livedoor.jp/blackwingcat/archives/1762970.html)

プロテクトかけたアルゴリズムを実装したバージョン差し替え」たなんて言われると本当に「プロテクト」がかかっているのか確かめてみたくなるのが人情というもの。というわけで、プロテクト強化後のもふったー(v0.9.6b)からconsumer secretが抜けるか試してみた。結論から言うと、あっけなく取り出せた。以下に手順を記す。

手順

動作がよくわかっていないアプリケーションを解析して仕様を明らかにすることをリバースエンジニアリングと呼ぶ。ソフトウェアリバースエンジニアリングは基本的に対象を逆アセンブルしてひたすら読むことによって行う(その補助に1命令ずつ実行してレジスターやメモリーの様子を観察することもある)。しかし、よっぽど小規模なものでなければオブジェクトコード全体を逆アセンブルして最初から最後まで読むなんてのは不可能だ。人間の読速度には限界があるし、時間も有限だからだ。そして、詳しい動作を知りたい部分というのは全体のごく一部であることが多いので全逆アセンブリを読むのには非常に無駄が多い。

からリバースエンジニアリングはいかに詳らかにすべき動作を行っているコードを絞り込むか(=読むべき逆アセンブリを少なくするか)が重要になる。

この場合も同様だ。TwitterGUIクライアントを頭から読むのは到底無理なので、どうやって解析すべきコードの範囲を狭めるかを考えた。それにはOAuth認証においてconsumer secretがどのような役割を果たすのかを知る必要がある。

OAuth認証で、consumer secretはそのままサーバーに送信されたりはしない。signatureの生成にHMAC-SHA1が使われ、その鍵にconsumer secretが使われる。HMACは次のように算出される。

HMAC (K,m) = H ((K ⊕ opad) ∥ H ((K ⊕ ipad) ∥ m))

ここで

である

まずはこのあたりから攻めようと思った。SHA-1計算はいくつか特徴的な定数が使われるので、そこからSHA-1計算に使われているであろう関数444190を特定する。この関数エントリーポイントに中断点(ブレークポイント)を設定してOAuth認証をさせるべくもふったーの「ブラウザ認証ボタンを押す。狙い通り中断するので関数を抜けるまで実行する。関数401100の4012DAに出た。少し下を見るとこのようになっている。

CPU Disasm
Address   Hex dump          Command                                      Comments
00401311  |.  33F6          xor     esi, esi
00401313  |   8D8C24 A40000 /lea     ecx, [local.54]
0040131A  |.  394C24 14     |cmp     dword ptr ss:[local.90], ecx
0040131E  |.  75 0E         |jne     short 0040132E
00401320  |.  3BF5          |cmp     esi, ebp
00401322  |.  73 29         |jae     short 0040134D
00401324  |.  0FB68434 A400 |movzx   eax, byte ptr ss:[esi+esp+0A4]
0040132C  |.  EB 21         |jmp     short 0040134F
0040132E  |   3BF5          |cmp     esi, ebp
00401330  |.  73 1B         |jae     short 0040134D
00401332  |.  8B5424 18     |mov     edx, dword ptr ss:[local.89]
00401336  |.  52            |push    edx                                 ; /Arg1 =  [LOCAL.89]
00401337  |.  8D8C24 FC0000 |lea     ecx, [local.33]                     ; |
0040133E  |.  8BD6          |mov     edx, esi                            ; |
00401340  |.  E8 CB4D0000   |call    00406110                            ; \mofooter.00406110
00401345  |.  83C4 04       |add     esp, 4
00401348  |.  0FB6C0        |movzx   eax, al
0040134B  |.  EB 02         |jmp     short 0040134F
0040134D  |   33C0          |xor     eax, eax
0040134F  |   34 5C         |xor     al, 5C
00401351  |.  888434 B80000 |mov     byte ptr ss:[esi+esp+0B8], al
00401358  |.  83C6 01       |add     esi, 1
0040135B  |.  83FE 40       |cmp     esi, 40
0040135E  |.^ 72 B3         \jb      short 00401313
00401360  |.  895C24 3C     mov     dword ptr ss:[local.80], ebx
0040134F  |   34 5C         |xor     al, 5C

が注意を引く。もしかしてこれはopadとのxorではないか?

00401351  |.  888434 B80000 |mov     byte ptr ss:[esi+esp+0B8], al

xorした結果を格納している。

先ほどの中断点は無効化しこのループを抜けた地点である401360まで飛ばす。この時点でesp+0B8を見ると次のようになっている。

Hex dump
64 2E 16 64|37 04 32 6D|0F 0D 26 29|3A 37 1F 2F|
18 69 6E 6E|0D 25 29 33|11 34 29 69|12 36 24 1E|
05 16 33 6A|04 3B 0E 68|7A 5C 5C 5C|5C 5C 5C 5C|
5C 5C 5C 5C|5C 5C 5C 5C|5C 5C 5C 5C|5C 5C 5C 5C|

あとはこれと5Cとをxorすればconsumer secretが手に入る。終わり。

追伸

はてな増田スーパーpre記法で半角の<>が含まれていると投稿が出来ないのを早く直してください。

3/23 18:45追記

もふったーの作者から反応があった。「本気だったつもりのもふったーのデバッグ処理が残ってた」らしい(http://blog.livedoor.jp/blackwingcat/archives/1763951.html)。修正したとのことなので最新版(v0.9.6e)を見てみた。確かに若干変更されているが何の問題もない。SHA-1の呼び出しに中断点を設置して渡されているバイト列を見るだけ。

CPU Disasm
Address   Hex dump          Command                                  Comments
00401324  |.  8D4424 20     |lea     eax, [local.102]
00401328  |.  50            |push    eax                             ; /Arg1 = 
00401329  |.  E8 623A0400   |call    00444D90                        ; \mofooter.00444D90

ここでeaxが指すメモリーを見ると以下のようになっている。

01 23 45 67|89 AB CD EF|FE DC BA 98|76 54 32 10|
F0 E1 D2 C3|00 02 00 00|00 00 00 00|40 00 00 00|
40 4F 73 53|62 54 5C 7E|59 57 53 42|55 45 7A 57|
61 47 7A 5B|42 4F 7B 61|5D 66 5E 7A|42 7F 40 63|
79 66 05 55|79 4C 60 42|02 10 36 36|36 36 36 36|
36 36 36 36|36 36 36 36|36 36 36 36|36 36 36 36|

先頭32バイトゴミ無視して0x36とxorすればconsumer secretが得られる。

2012-09-11

http://anond.hatelabo.jp/20120911152614

いや、利用規約って何書いてもOKではなかったはずよ?

正統な業務の範囲内で プログラムに改変を加える権利というのは著作権法上で保証されているし。

科学技術の発展目的でのリバースエンジニアリングを禁止って できたかどうかわからん

 

利用規約に書いても法律上認められていない権利の主張は無効からなぁ。

正統な利用目的を阻害する利用規約はそもそも利用規約無効よ?

 

※できないのは改変したプログラム頒布とか そういう行為からなぁ。頒布せずに不具合の確認のためだけの改変だと、利用規約のほうが無効化される確率のほうが高いのではないか

2012-05-18

ハッカーVimを使う」 騙される若者たちなのか

Eclipseemacsvimより優れている点を挙げてみよう。

 

 

リファクタリング機能が強力 →本当か

CVSリポジトリの構成を直接覗ける →redmineとかを使ったほうがいいんじゃないのか

デバッガグラフィカル → それ、うれしいか

・設定できる警告メッセージの種類が豊富。→警告そんなにいるのか

復元機能が非常に充実している。 →バージョン管理ソフトがあれば普通だし

 CVSのように以前の状態に復元すること、以前の状態の →diffじゃダメか、というかなんでいまどきCVSなの

 ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能存在する。

プラグインの数が豊富、膨大。 → 数があってもつかえるのは少ない

プラグイン開発環境Eclipse自体に用意されている。 →開発環境を使って作る程のものでもなく、バッチファイルとかスクリプトでよくね

ライセンス形態CPLであり商用利用もしやすい。 →eclipse組み込んで出荷するの?

・上位版にWSADが存在する。 →WSDADってなに、WebSpereの残骸?

IBMバックアップがついている。→それは何か役に立つの

Smalltalkで有名なVisualworksの影響を受けているため、

JUnitプラグイン(Eclipse標準装備)によるテストファーストリファクタリングの他、eXtreme Programming環境が充実している。→Jenkinsのほうがよくね

SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!→コマンドラインから実行するsvnコマンドを覚えておくとはターゲットでも動いて便利だよ

・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!→スタック見るだけのことじゃないの

プラグインによってはURLを指定するだけでプラグイン自動ダウンロード自動インストール

自動アップデートができるためプラグインインストールが非常に容易。→勝手に変わったら怖くない

Eclipseから直接Tomcat, JBossなどを再起動できるSysdeoプラグインJBoss-IDEプラグイン

 という強力なプラグインが充実している。→えー、今頃Tomcat

EclipseUML Omondoプラグインによりクラス図などを書いたり、

 UMLによるModel Driven Architecture, リバースエンジニアリング

 などを即座に実現できる。→これは何だかからない

RSSリーダープラグインMP3プラグインAll The Newsプラグイン

など様々なプラグインが充実している。→それ開発ツールじゃなくて携帯でやったほうがよくね

PHP開発が可能なTruStudioプラグインPerl開発が可能なPerl E.P.I.C. プラグイン

C/C++開発が可能なCDTプラグインAspectJ開発が可能なAJDTプラグインなど

言語プラグインが充実している。→Java以外は所詮おまけだけどね

・そのほかにD言語プラグインC#プラグインPythonプラグインJavaScriptEditorプラグイン

CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン

Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン

ゲームができるプラグイン、メーラとしてつかえるプラグインWikiプラグインHibernateプラグイン

FindBugsプラグインCheckStyleプラグイン、JalopyプラグインSobalipseプラグインソロプログラマープラグイン

など様々なプラグインが充実している。→それぞれ単機能ソフトのほうが充実してるんじゃないの

 

 

どうしてもeclipseというなら止めないけど

2012-02-17

ハッカーVimを使う」 騙される若者たち

Eclipseemacsvimより優れている点を挙げてみよう。

 

 

リファクタリング機能が強力

CVSリポジトリの構成を直接覗ける

デバッガグラフィカル

・設定できる警告メッセージの種類が豊富

復元機能が非常に充実している。

 CVSのように以前の状態に復元すること、以前の状態の

 ソースコードとの比較も容易。CVS(Eclipse標準装備)/Subversionプラグインにもこの機能存在する。

プラグインの数が豊富、膨大。

プラグイン開発環境Eclipse自体に用意されている。

ライセンス形態CPLであり商用利用もしやすい。

・上位版にWSADが存在する。

IBMバックアップがついている。

Smalltalkで有名なVisualworksの影響を受けているため、

JUnitプラグイン(Eclipse標準装備)によるテストファーストリファクタリングの他、eXtreme Programming環境が充実している。

SubclipseプラグインによりSubversionにも対応できる。これはCVSよりも強力!

・Call Hierarchyプラグイン(Eclipse3.0から標準装備)によりメソッドの呼び出し階層を調べることができる。この機能は強力だ!

プラグインによってはURLを指定するだけでプラグイン自動ダウンロード自動インストール

自動アップデートができるためプラグインインストールが非常に容易。

Eclipseから直接Tomcat, JBossなどを再起動できるSysdeoプラグインJBoss-IDEプラグイン

 という強力なプラグインが充実している。

EclipseUML Omondoプラグインによりクラス図などを書いたり、

 UMLによるModel Driven Architecture, リバースエンジニアリング

 などを即座に実現できる。

RSSリーダープラグインMP3プラグインAll The Newsプラグイン

など様々なプラグインが充実している。

PHP開発が可能なTruStudioプラグインPerl開発が可能なPerl E.P.I.C. プラグイン

C/C++開発が可能なCDTプラグインAspectJ開発が可能なAJDTプラグインなど

言語プラグインが充実している。

・そのほかにD言語プラグインC#プラグインPythonプラグイン、JavaScriptEditorプラグイン

CSSプラグイン, HTMLプラグイン, XMLプラグイン、(Jakarta)Velocity UIプラグイン

Apache Antプラグイン(Eclipse標準装備)、非常に強力なApache Mavenを使うことができるプラグイン

ゲームができるプラグイン、メーラとしてつかえるプラグインWikiプラグインHibernateプラグイン

FindBugsプラグインCheckStyleプラグイン、JalopyプラグインSobalipseプラグインソロプログラマープラグイン

など様々なプラグインが充実している。

 

 

以上、老害に騙されずにEclipseを使いましょう。

2011-09-29

日本海外Warezについて

動画共有サイトにおけるアニメをアップロードする際の「慣習・しきたり」にワロタwwwwww:【2ch】ニュー速VIPブログ(`・ω・´)

これを見て書きたくなったので。

日本以外のWarez

多くの場合、複数人で構成される「チーム」単位音楽映画アプリケーションゲームなどをクラックアップロードされている。

それほど専門的な知識を必要としない音楽映画アップロードを行う「チーム」は星の数ほどある一方で、リバースエンジニアリングなどの知識が必要になるアプリケーションゲームアップロードする「チーム」はそれほど多くはない。

「チーム」は、Topsiteと呼ばれるごく限られた人しかアクセスできないFTPサーバーWarezアップロードする。

Warezを扱うFTPサーバーは、アップロード量:ダウンロード可能量=1:1とか1:2とかいう制限があるのが常なので、それらTopsiteにアクセスできる人(キャリア)は「チーム」が直接アップロードしていない別のFTPサーバーに広めようとする。キャリア間の争いは熾烈で、ダウンロードからサーバーへのアップロード自動化したり、協定を結んでキャリアチームを作ったりする人もいる。

Torrentに関してもFTPと同様であり、torrentファイルストック検索可能にするトラッカーサイトにもダウンロード量に制限がある会員制のものがあるため、キャリアたちはそちらにもWarezを広めようとする。

「チーム」がリリースしたWarezがググって出てくるようなrapidshareとかオープンなトラッカーに出回るのはもっと後だ。

このように多層化されているため、「チーム」自体が摘発されることはそれほど多くない。

ちなみに「チーム」がFTPサーバーアップロードする際のファイル名や中身などについては厳格な決まりがあり、その一部はここで見ることができる。

Standard (warez) - Wikipedia, the free encyclopedia

日本Warez

日本場合は他の国と大分事情が異なり、「チーム」がリリースするという文化はほぼ無い。個人がめいめいにアップロードクラックを行っている。

とは言っても全くのバラバラというわけではなく、クラックアップロードに利用される掲示板は数カ所に固定されている。

海外のように多層化されているわけではなく、一次放流者が直接オープンP2Pとかにアップロードするのでちょくちょく逮捕されている。

P2Pが登場する以前までは、会員制の掲示板Web割れ)やFTPサーバーでのやりとりが主流だった。

当時の様子については以下の記事が非常に秀逸なので読んでほしい。

今日から僕のwarez人生について書いてみようと思うよ。 part1:アルファルファモザイクだった

Web割れはP2Pが登場してから長らく下火だったが、プロバイダP2P規制の普及やrapidshareなどの大容量ストレージサービスの登場によりここ数年でP2Pを凌ぐほどに盛り返している。今回逮捕された動画共有サイトの隆盛もこの流れに位置づけられるんじゃないかな。

参考

Category:Warez - Wikipedia, the free encyclopedia

Warez - Wikipedia

2010-01-08

マイクロソフト包括契約に基づくソフトウェア利用に関する同意書

     マイクロソフト包括契約に基づくソフトウェア利用に関する同意書

 私はマイクロソフト オペレーションズ ピー・ティー・イー・リミテッド(甲)と大

阪大学(乙)とのキャンパスグリーメント契約(以下、本契約)に基づき、甲と乙が提

供するソフトウェア(以下、本ソフトウェア)を利用するにあたり、以下の事項に同意し

ます。

共通事項

・本ソフトウェアで利用可能となる甲社製の製品(以下、製品)の使用は、甲乙が締結し

 たキャンパスグリーメント基本契約書と製品使用権説明書の適用を受け、その関連条

 項に従うこと。

・本ソフトウェアを利用する権利について、乙が独自に定めている制限に従うこと。

・本ソフトウェアダウンロードする方法は、乙の指定に従うこと。

・本ソフトウェアの利用について、甲乙から技術サポートを提供されないこと。

・本ソフトウェアの使用方法について、甲乙から電話によるサポートを受けることができ

 ないこと。

・本ソフトウェアについて付与された権利を、売却その他の方法譲渡しないこと。

・本ソフトウェアインストールした媒体または購入した媒体を、売却その他の方法で譲

 渡しないこと。

・本ソフトウェアレンタルリース、または貸与しないこと。

・本ソフトウェアを実際に実行できるか否かは、システムの必要最低条件その他の事情

 よって影響されることがあり、それらについて事前調査し、実行後の責任を負うこと。

・本ソフトウェアリバースエンジニアリング、逆コンパイルおよび逆アセンブルを行わ

 ないこと。

・本ソフトウェアは、単一の本ソフトウェアとしてライセンス許諾されるものであり、そ

 の構成部分を、2台以上のコンピュータでの使用のために分離しないこと。

大阪大学が購入したコンピュータ、もしくは賃貸借しているコンピュータ(以下、大学

PC)において本ソフトウェアを利用する場合

・本ソフトウェア大学管理PCのみにインストールすること。(大学内で、業務のために

 個人所有PCを利用していても大学管理PCとはなりません。)

・本ソフトウェア大学管理PCインストールする者は、ソフトウェア管理者またはソフ

 トウェア管理者の指示を受けた者であること。

・本ソフトウェア大学管理PCインストールした後は、ソフトウェア管理台帳に記入す

 ること。

・本ソフトウェア大学管理PCインストールするにあたり、著作権保護するため、ラ

 イセンス管理をおこなう責任を負うこと。

・本ソフトウェアを一時利用者に対して利用させる場合は、大学管理PCに限って利用させ

 ること。

賃貸借しているPCを返却する際には、本ソフトウェアを返却するPCから削除すること。

・乙が本契約更新しなかった場合、契約終了時点で、直ちに本ソフトウェア大学管理

 PCから削除すること。

個人が所有するコンピュータ(以下、個人所有PC)において本ソフトウェアを利用する場

・本ソフトウェアを個人所有PC1台のみにインストールすること。

・個人所有PC1台に対してOffice製品は1つに限りインストールすること。

・個人所有PC1台に対してWindows製品は1つに限りインストールすること。

・個人所有PCで利用する本ソフトウェアバージョンやエディションを変更する場合は、

 必ず使用していたものを消去の上、インストールすること。

・本ソフトウェアメディアで購入する場合は、乙の指定に従うこと。

・本ソフトウェアを個人所有PCインストールするにあたり、著作権保護するため、ラ

 イセンス管理をおこなう責任を負うこと。

・本ソフトウェアインストールする個人所有PCにおいて、本ソフトウェアを利用できる

 のは本人のみであること。

・本ソフトウェア家族および一時利用者に対して利用させないこと。

・本ソフトウェアを利用する個人が教職員である場合、利用目的製品の自学自習目的

 し、個人的な理由で利用しないこと。

・退学等により乙の学生でなくなった時点(卒業、又は修士博士課程の修了を除く)、

 又は退職等により乙の職員でなくなった時点で、直ちに本ソフトウェアを個人所有PC

 ら削除すること。

・乙が本契約更新しなかった場合、契約終了時点で、直ちに本ソフトウェアを個人所有

 PCから削除すること。

・万一、本ソフトウェアを紛失した際には、必ず対応窓口に届け出ること。

大阪大学学生卒業後に本ソフトウェアを利用する場合

・利用する本ソフトウェアは、卒業時点で個人所有PC1台にインストールされているバー

 ジョンに限ること。

PC1台に仮想化技術等を利用して同じ製品を複数インストールしないこと。

卒業後は、本ソフトウェアの新規インストールおよび再インストールができないこと。

・適用される製品使用権説明書は最新のものであること。

・甲が変更した製品の使用に関する取扱の変更に従うこと。

・上記以外の事項については、学生使用許諾証明書に準ずること。

 大阪大学は、この同意をもって「キャンパスグリーメント基本契約書」10条a項に規

定される卒業生に対する学生使用許諾証明書の交付とします。

<参考資料>

キャンパスグリーメント基本契約

製品使用権証明

学生使用許諾証明

2009-10-17

http://anond.hatelabo.jp/20091017030228

いやあ、ロジックの問題じゃないと思うけれどなあ。

前提(公理)+ロジック→結論、であって、前提そのものはロジックでは導けないでしょう。前提そのものが食い違ってる時に、いくらロジックだけ見て正当性を確認してもあんまり意味がない。むしろ、ロジックだけを見てると話がどんどん末節の方に逸れてゆく恐れがある。

他人の持っている前提、見ている世界を知るっていうのは、ロジックを理解することとは違う。「他人の靴を履いてみる」って言葉があるけどさ。共感とか想像力の問題だよ。ロジック言葉を使って理解できるけど、前提については「自分がその位置に立って、自分の目で見て、感じる」ことしかできない。

元増田はわりとロジック寄りの人みたいだから、こう考えるとわかりやすいかも。前提がunknownで、結論というか結果が目に見えていて、それから一応のロジックが語られている。後者2つから前提をリバースエンジニアリングするんだ。ただしひとつ注意。人間自分が思っていることをそのままは喋らない。だから語られた言葉を文字通り解釈してはいけない。じゃあどうすればいいんだってことになるけれど、そこもリバースエンジニアリングだね。「語られなかったこと」に注目するとか。「理解できない」と思ったら、そこに何かの見落としがある。それが手がかりだ。ぐっどらっく。

2009-10-12

時間が足りない

やりたいことが多すぎて時間が足りない。死ぬ。

2009-10-06

生命男子の続・生命世界の紹介7コンセプト

ブクマが20もついたので続き.

細胞骨格と結合組織・発生と組織形成

細胞骨格というと,モーターの役割つまり骨格筋における化学エネルギー運動エネルギーの変換を取り持つアクチンミオシンすべり説が有名だけれど,細胞骨格はどうやら細胞生理において輸送作用をもち重要な機能を持つらしい.この辺を拡散モデルとの対比の分子モーターモデルで説明するのはちょっと理系カップルならではかな.次元が減るのと熱物理化学的な親和性のための吸着力で輸送が可能になるというお話細胞外骨格や結合基質もつながる.

結合組織は単に体の支持・結合に役立つだけではなく免疫情報伝達・熱と物質輸送等さまざまな機能がある.膠原病から反対に考えてみると普段の結合組織は発生と同様に機能が生理的に制御されている.

で,発生.発生はもう受精卵がヒトになるというので面白いこと請け合い.ちょっと妊娠の話とか混ぜて彼女の考え方を聞いてみてもよいかも,・・・,ではなくてモルフォゲンモデルという古典的な制御のモデルだけでなく最新のモデルの話もあわせて,アポトーシスの話や系統発生繰り返し説にふれてみるとよいかも.発生と完全に地続きのはなしになる.内部状態と環境とが幹細胞の分裂とできた細胞分化とにかかわってくるんだ.

細胞生理―シグナル伝達と細胞環境間における統合と出入力モデル

人間の器官レベルの制御機構神経系と内分泌系が担っていて,後者の支配を前者が受け持つから神経系―受容効果系は人間重要な部分.基本的には前者が高コストだから後者の低コストの制御も合わせて使うと考えればよい.糖の出し入れをいちいち神経で支配していたらエネルギーがかかりすぎる.

んで,システムバイオロジーやさきほどの細胞情報伝達のつながりで,ある細胞につきそこへの全入力エネルギー物質・輻射)・エントロピー・テンパラチャー)と全出力と全内部統合演算とを想定するモデルを考えられるから,細胞の出入力と内部統合につきシステム建設することが多細胞でも重要なんだなどと自分の扱う細胞システム生物学宣伝をしてみる.

個体の行動モデル

単細胞でも人間でも何でもよいのだけれど,先ほどと同じで出入力統合あるいは受容統合効果で考えることは同じ.で,感覚器からの情報統合して,記憶などとも統合し出力をすることを考えるのだけれどこれがしこたま難しい.単細胞生物でも走性に記憶バイアスがかかることなんかが知られているけれど,ブラックボックスとして考えたくなる.強いて僕が考えていることはある入力に大しては特異的に発現しやすい出力があるということから統合のあり方を考えていくのと,神経の機能回路モデル数学的に建設していくのと,があるけど全然専門外.恋した僕の気持ちも僕にはわからない.

単細胞生物生理と地表生態系の類比

地表(海含む)では重力が卓越していて生物や多くの物質は地表に束縛される.そこで単細胞生物と同様に生態系は多くのコンポーネントがあるシステムだと考えることができる.そのサブシステムとしては大陸・海洋・気象・太陽系との関係なんかがある.ある個体や生物種・生物群の動態は細胞内における細胞小器官の動態に似ているかな.どちらもシステム特性を規定しているのは物理法則だという点は共通.

確率過程の生命への応用

ダーウィンはすごく頭がよかった.で『The Origin of Species by Means of Natural Selection: The Preservation of Favoured Races in the Struggle for Life』(1st,1859)のなかで

The slightest advantage in one being, at any age or during any season, over those with which it comes into competition, or better adaptation in however slight a degree to the surrounding physical conditions, will turn the balance.

という一節がある.(個体に変異が起こりその)性質がほんの少しでも有利なら生態系バランスを変化さす,と括弧内をつけくわえてみると,変異と自然選択のモデルが考えられる.たとえば点変異がDNAにおこって対照状態で細胞生理の変化を定量的に計測ないしシミュレートするモデルとか.

そんなのでなくとも分子動態を確率的に扱ってみるとか.

数学物理学と制御工学細胞

僕の興味はというと数理モデル物理法則のもとに組み立て細胞の制御システムモデルリバースエンジニアリング的に,帰納することにあるんだよと再び告白.

承前:http://anond.hatelabo.jp/20091005002132

遺伝子・転写・翻訳で三概念と数えれば十個あったのです!

2009-10-02

絵も描けてプログラムも書けて作曲も出来てリバースエンジニアリングも出来る高校生女の子を見つけて死にたくなった。

2009-05-10

シリコンバレーから将棋を観る」英語版からの超訳版。

http://d.hatena.ne.jp/umedamochio/20090420/p1

を受けて、

http://d.hatena.ne.jp/shotayakushiji/20090508/1241797762

http://modernshogi.pbworks.com/

と言う形で下訳された「シリコンバレーから将棋を観る」の英語版。

これにエキサイト翻訳をかけ、だいたいのところをつかみつつ、超訳をかましてみました。

シリコンバレーから将棋を観る」のリバースエンジニアリングと言えます。

リバースエンジニアリングに正当性を持たせるため、「シリコンバレーから将棋を観る」は購入はもちろん、ブログ引用などに目を通すことすらしていません。純粋英語版だけを元にしています。

このため、特に邦題、固有名詞、会話の語調などが間違っている可能性がありますので、その点はご承知おき下さい。

また、今のところ実施したのは前文のみです。

下訳は1時間超訳は全く別のDVDながら見しながら3時間ほどで終わらせましたので、その程度の精度と取っていただければ。

ツールとして、アルク英辞郎(http://www.alc.co.jp/)を始め、オンライン辞書Amazon書籍検索Wikipediaなどを活用しました。IT革命仕事のツールが便利になったってのは本当ですね。

忙しい人のために要約しておきますと、

と、こんな感じみたいですが、実際のところどうなんでしょう?

前文「指さない将棋ファン」宣言

 20世紀末に起きたIT革命と急速なグローバル化社会はより複雑に大きく変わりました。得られる情報は増え、仕事に使う道具も増えました。その結果、昔(と言っても20年ほど前ですが)に比べ、今は、自分に合った仕事をやりたいとか、やりがいのある仕事をやりたいとか、そういった仕事できちんと生活したいと思うと、一人前になるために必要な期間も、そうなってから働く時間も、ずいぶん長くなってしまっています。良いか悪いかは別にして、「自分趣味に関することを勉強しよう」とか「趣味仕事にしよう」というのがなかなか難しい時代なのです。

 将棋は、日本社会日本の文化として、日本人の心に深く根付いています。日本人なら、小学生、あるいは中学生の時は、将棋でよく遊んでたな、という人も多いでしょう。ただ、そんな時代は長くありません。将棋に夢中だった男の子女の子も、10代後半以降、専門の勉強が増えるなどして忙しくなると、だんだん将棋を指さなくなります。私も他の皆さん同様、そうやって将棋を指さなくなったうちの一人でした。

 10代末から始めてきた自分の専門をいかして働き、それで家族を養っていこうと、日本を去りシリコンバレーで生活してきた、というのが、私のこの25年のことでした。そうして私は自然将棋を指さないでいました。

 とはいえ、日々忙しいなか、たま余暇には将棋に関する情報に触れていました。著名な将棋関連本でしたらほぼ全ての書籍を読んでいましたし、雑誌"将棋世界"を定期購読したりしていました。ですから、遠く離れた場所から、日本将棋棋士の魅力にとりつかれていたと言えます。

 将棋を"指したり"、"腕が上がったり"、する暇は全くありませんでしたが、今でも将棋を"観戦したり"、棋譜を"読んで楽しんだり"、将棋から"人生のヒントを得たり"することは日常のことになっています。例えば、米長邦雄永世棋聖(日本将棋連盟会長)が記した名著「人間における勝負の研究 - さわやかに勝ちたい人へ」(82年、祥伝社)は私が大学にいる時に出版されたものですが、私にとっての必携の本でした。重要な決定に関わる時、この本が自分を助けてくれたことが何回もありました。また、金子金五郎九段については、おそらくこの本の中でも何度も語るでしょうが、単に彼の本がいい、だけにとどまりません。彼の本は、私の執筆の手本となっていますし、彼の生き方が、私が後半生に目指したい生き方でもあります。

「指さない将棋ファン」である私。

 私はこうして将棋に係わってきましたが、将棋はほとんど指してきませんでした。そのため、将棋が好き、といったことや、趣味将棋、といったことを公言してはいけないと思っていました。将棋を好きと言うためには将棋が上手くなければいけない、そんな空気があるように見えるのは私だけでしょうか。将棋界の一員になるには、敷居が高すぎると考えたのです。それで、私は一人静かに将棋を愛し続けました。

 40代になり、暇になってきたので、私は愛する将棋について、自分ブログでつぶやき始めました。

 すると、驚いたことに、かなりの反応があったのです。日本にも、将棋を指さなくなって長くなっても、心の中では将棋を愛し続けていた人がいたのだとわかりました。

 小学校の同級生で、今は外科医をしている友達に30年ぶりに会った時にいちばん盛り上がった話題は、前に私がブログで書いた話がきっかけでした。

梅田、お前、子供の時から将棋が好きだったのか。俺も下手の横好きでな。医学部に入ったら、将棋を指す暇なんてなくなっちゃたけど。でもなあ、今度中二になる俺の息子が、将棋クラブに入っていて、毎週あいつと毎週日曜のNHK将棋番組を見るのが楽しいんだよな」

「なら、将棋の大ファンじゃないか」

「いや、未だに将棋を指す時間はないし、下手だし」

将棋を見るのが好きなら、俺と一緒で、十分趣味と言えるよ。プロ棋士はすごいよなあ」

「今から5,6年経ったら、オペも引退だろうし、そうしたら暇になるから、その時は将棋観戦ももうちょっと楽しいだろうな」

彼と将棋について話している時間はあっという間に思えましたが、それは子供時代にタイムスリップしたひとときでした。

また、S社の技術関連責任者10名と、新技術商業化に関してぶっちゃけ会議を行った時のことです。会議の後で、そのうちの1人のソフトウェア技術者、私はこの人とは初対面でしたが、彼が私に話をしに近づいてきました。30代で、凄腕の技術者です。

梅田さん。将棋が好きって本当ですか?」

「ええ」

ブログ将棋に関するエントリ、読むの好きですよ」

「それはうれしい。仕事のあとでそういう話が聞けるのはいいですね。」

自分高校の時には初段を取ったくらいの腕前だったんですが、大学に入ってからはソフトウェアにかかりっきりで、将棋を指す暇がなくなってしまったんですよ。でも、時々雑誌とかテレビとかインターネット将棋をみていましたし、それで鳥肌の立つこともありましたよ。あれは本当に面白いものです。学生時代将棋に没頭する人たちがいて、彼らはアマ有段者だったりするんです。そういう人が仕事場にいるんですが、ああいう人たちを見ていると、どうも自分将棋ファンだと公言するだけの資格がないように感じてしまって。」

「そんなことはないでしょう。あなたは"指さない将棋ファン"だし、"趣味将棋観戦です"と言えばいいんです。私は自分趣味を言う時には"将棋"ではなく"将棋観戦"と言いますよ」

また別の機会には、K社の役員会議オブザーバーとして加わって、そこの社長と話しました。

「ええ、自分羽生さんの本を会社経営の参考にするためにいつも読んでます。生きている間に1度は彼に会いたいと思っています。10年以上もアメリカで疲れる暇もなく働いているせいで誰とも将棋を指せなかったのですが、でも将棋に関する雑誌はずっと読んできました。役員会に招集されて日本に戻っても、すぐに世界一周に飛び立たないといけないので、雑誌を読むのは主に機内でですけどね。将棋を指す暇は全くありません。」

将棋の大ファンじゃないですか!」

「いえいえ。上手くはないんです。子供の時にはいつでも将棋で遊んでましたが。今となっては将棋の腕を磨く時間すらとれません。今はコンピュータ将棋も強くなりましたが、自分にとっては羽生さんが活躍しているのを遙か遠くから静かに見守るのが、自分将棋の腕を磨くよりもいいと考えてます。」

「そのうち、タイトル戦の大盤解説を一緒に見に行きましょう?」

「いいですね」

将棋界は完璧才能で成り立っています。谷川浩司。あの人が出てきた時は、まさしくそ才能完璧才能の人が現れたと思いました。しばらくしたら、羽生善治が現れました。10年経って、別の完璧才能が現れるんです。なんというか、将棋界はかくも信じがたき世界ですよ。私が強く将棋に惹かれるのもそこです。でも私は将棋を指すのがうまくないんです。上手くないですから、将棋界の外から静かに見守ります。」

どうも世界中に、彼らのような"指さない将棋ファン"がまだまだ隠れていそうです。

 最初ブログ将棋エントリをこわごわ書いていました。将棋の上手い人がそれを読んで「こいつは将棋を知らないな、まともに指せもしないのになんでこんなことを書いているんだ」と思われるのではないかと思ったのです。

 しかしながら、隠れ将棋ファンの皆さんから来た思いがけない反応をみて、私は将棋界で何かお役立ちの一端を担えるのではないか、また"指さない将棋ファン"というコンセプトが、ファン層を厚く、広くするために重要ではないか、と思うようになりました。

 子供将棋人口を増やすために親に将棋を広める、というのも大事ですし、それ以上に、将棋グローバルになるるためにも大事です。

 また、羽生さん、佐藤さん、深浦さん、渡辺さんのようなプロ棋士と仲良くなったのですが、同じようなことを皆さんも常々考えていたようで、"指さない将棋ファン"や"将棋観戦のファン"が増えるよう、私を励ましてくれました。

 将棋を見て、楽しむのに、特段必要なものはありません。

 誰でもすぐに「指さない将棋ファン」になることができます。

 将棋を指さなくなっても、将棋界のことを考えている人、理由はともあれ将棋好きだけど、将棋が上手いとは言えない人、将棋を今まで指したことがないけれど、棋士の輝きに魅了されて、そのため将棋により興味が湧いた人。

 それらの人たちに向けて、私はこの本を書いています。

 将棋を指さずとも、将棋の楽しさはわかるように、素晴らしい棋士楽しみを感じられるように、何か変わったことがほしくて将棋を見始めたくなるように。

 本当にそうなって欲しいなと願いながら、私はこの本を書いています。

2009-04-24

http://anond.hatelabo.jp/20090424124145

こーゆー分野ではどこの国でもリバースエンジニアリング日常的に行われている

勿論そうで、後ろ暗いところのない企業や国なんて存在しないだろうけど、さすがに国のレベルであからさまにってのはないものな。

個人的には、中国がこれを押し通せるのかそれともどこかで妥協するのか、今後の東アジア情勢理解の為にも非常に興味がある。

中国、ITソースコード強制開示強行へ…国際問題化の懸念 : 経済ニュース : マネー経済 : YOMIURI ONLINE(読売新聞http://www.yomiuri.co.jp/atmoney/news/20090424-OYT1T00053.htm

ブコメ欄でパクリがどうのこうのとか言ってる人いるけどこーゆー分野ではどこの国でもリバースエンジニアリング日常的に行われているということを知らないのだろうか。

2009-03-28

http://anond.hatelabo.jp/20090328074135

私の知ってるIT企業のやること(複数企業における経験

・IT部門ができない部門間のすりあわせ

・IT部門が出来ない現行システムの調査/仕様書再作成(リバースエンジニアリング的な)

・IT部門が出来ないテスト設計

・IT部門が出来ない保守

・IT部門が出来ないユーザー意見とりまとめと提案

・IT部門のダメ人間管理

・てーか、IT部門が出来ない仕事全部やるんだよ!

ぶっちゃけ、IT部門はIT企業の指示通に手を動かしているだけで、あとは全てIT企業が指示やとりまとめしないと動きませんでした。

2009-03-04

id:wiseler の代わりに説明してみる

d:id:wiseler:20090303 による元ネタ

http://d.hatena.ne.jp/wiseler/20090303/p1

主張:

マジコン販売禁止では不正コピーはなくなるどころか,より被害は悪化する

ゲーム業界は「断固たる禁止」ではなく,異なった道を模索すべきである

背景:

マジコンとは

http://d.hatena.ne.jp/keyword/%a5%de%a5%b8%a5%b3%a5%f3

http://ja.wikipedia.org/wiki/%E3%83%9E%E3%82%B8%E3%82%B3%E3%83%B3

平たく言えば,ゲームソフト不正コピーや,不正コピーしたゲームプレイすることを可能にするもの

カジュアルコピーの氾濫

各種雑誌での紹介,口コミなどにより,「タダでゲームが遊べる機械」として一般的に認知され普及

誰でも簡単にマジコンを入手でき,容易に不正コピーされたゲームを取得できた

特に必要となる専門知識が無かったのが普及の最大要因であると考えられる

・法的手段によるマジコン禁止措置

最近では,販売前から任天堂正規のゲーム不正流通するなど,売上げに深刻な打撃を与えかねないところまできている

それを見かねた任天堂スクウェアエニックスなどゲーム業界各種は共同で,

マジコンを輸入・販売する業者に輸入販売の差止めを求めて東京地裁に提訴,販売差し止めの判決がなされた

ゲーム業界側の販売差し止めの意図

http://www.nintendo.co.jp/corporate/release/2008/080729.html

ゲームプログラムの複製物が、起動可能となるため、(略)極めて大きな損害を被っており」

と示しており,少なくともこの文章から素直にその目的を受け取ると,

マジコンが普及することにより,ゲーム全般の売り上げが損なわれることを阻止したい

ということになる.

では,なぜその手段として,「マジコンの販売差し止め」を選んだのか

結論から言えば,「一番コスト対効果が見込めるから」だと私は考えている

売り上げ被害阻止の方法はいくつか考えられるだろう

ソフト不正コピーをできないよう,ハード面を再開発する

アップロードしているユーザ著作権侵害で訴えるなどして辞めさせる

など

おそらくこれらも並行して行っていくつもりであろうが,

まずは,マジコンの普及を止めることが最も効率がよいと考えたのだと思う

大半の人は技術を持たない.パッケージ化されたもの=マジコン不正コピーが用意されて初めてその技術を用いることができる.

マジコンしか方法を知らない人にとっては,マジコンが入手できない=不正プレイすることができない,になるからだ


しかしながら,これでめでたしめでたしとはならず,まだ問題は残りつづける

なぜなら,ゲーム不正コピー自体はこれからも存在し続けるからだ

マジコン販売禁止でも不正コピーが出回る理由:

1 それでも不正コピーゲームを遊ぶ人がいる

 既製品としてのマジコンを奪われたとしても「タダで遊べる」という魅力がある限り

 他の方法エミュレーション自作マジコン,闇ルートからのマジコン取得)で不正コピーゲームを遊ぶ人はいるだろう

2 それでもマジコンエミュレーションソフトマジコン設計図?)を作り,売る人がいる

 リーガルリスクがあろうとも,1のような人を対象とした儲けがある限り,闇ルート確立して売る人は残る

3 だからこそ不正コピーを作成する人がいる

 1,2のような不正コピーが求められる環境が整うからこそ,不正コピーは残り,増え続ける

これらの問題は,ハードウェアの改良や法的処置などで改善されることはあっても,

リバースエンジニアリング不正利用者とのいたちごっこであり,根本の解決はない

結局のところ,ゲーム不正コピーする輩がいる限り,完全にこの問題を解決することはできない

さらに悪いことを言えば,その被害が確認できないという状況に陥る可能性がある

今までは,マジコン大手が一般のお店でマジコンを販売することが許されていたので,良くも悪くもその状況は理解しやすかったが

ルートが横行すると,大手が出所を隠蔽し,出回っている数や性能などが把握できなくなってしまう

そのため,ハードウェアの改良,法的処置というパッチすら当てられない状況になりうる


といって手をこまねくわけにもいかないので,異なる解決策を模索してみよう

先ほどのハードウェア改良などは,いわば強硬策である

この方法ではよほどの画期的改善が無い限り,いたちごっこに陥る.

では,逆にもっと柔軟な策はないだろうか

先ほどの理由1,2をもう一度見てみよう

1 それでも不正コピーゲームを遊ぶ人がいる

 なぜ不正なことをしてまで遊びたいかといえば,「タダ」だからである

2 それでもマジコンエミュレーションソフトマジコン設計図?)を作り,売る人がいる

 1のタダで遊びたい,という心理につけこめるから,儲けることができるのである

強硬策は,マジコン販売禁止などの方策で,無理やり両者を切り離そうとするものである

そうではなく,1にとって魅力的な,代替を示すことで,両者の関係を解消できないか

完璧技術・法的根拠によって,違反者0となる仕組みを作るのではなく

ある程度ととのった仕組みを作ることで,違反するためにはちょっと手間暇をかけないといけなくして

メリットがあまり感じられなくすることで,ゲーム業界が儲けを確保できる程度に違反者を減らせればいいのではないか


そこで提案するのが,「任天堂公式のマジコン」である

かなり突拍子の無いことを提起しているようだが,順を追って説明する

1にとって重要なのは,ゲームを遊ぶ上での価格である

これが可能な限りやすくなればよく,究極的にはタダになれば最高である

さて一般論として,ものを安くするには,中間のマージンを減らすことがよいことは周知事実だろう

では,ゲームソフトにおいてそれを実現するにはどうすればよいか

単純に考えれば,メモリーなどの物理的なモノを売るのではなく,デジタルデータのみを,直接販売するのがもっともよいだろう

そこで,ゲーム会社と購入者との購入契約を,任天堂公式のマジコン承認するという形を取るのはどうだろうか

この契約DRMのように(例えば)任天堂において一括管理されており,正式利用者にはサービスを提供し,

不正利用者を発見した場合には,ゲームができなくなるなどの処置を施すようにする.

このような形態に移行できれば,上記価格メリットに加えて,

ゲーム業界としては売り上げ動向の把握も容易になり,開発計画も立てやすくなり,ゲーム価格は適正なものになると考えられる

参考までに,同様の取り組みをPCで行っているSteamを紹介させていただく

http://ja.wikipedia.org/wiki/Steam

物理的なものにこだわらない仕組みであれば,体験版も可能であるし,

MMOなどで取られているような,基本無料拡張課金という提供も可能である.

場合によっては,広告などをうまく活用して無料ゲームも提供できるかもしれない.

あるいは,知り合い間ではゲームデータコピーを許容してお試し期間内にはタダで遊べる,などできるかもしれない.

重要なのは,今まで正式製品では実現できなかったことを,

ある程度の(ゲーム業界利益がもたらされるような)制約をもうけながらも提供すること である.


さて,以上が私の主張であるが,ここでは視点を変えて,公式マジコンを用いたアマチュア開発の可能性を示唆する

PCにおいては,ゲーム会社が作成するようなプロゲームのほかに,一般者が必ずしも営利目的としないアマチュアゲーム開発がされてきた.

その出来は様々であり,ものによってはプロにも匹敵するようなゲームもあり,ときに,ゲーム会社から正式に販売されることもあるほどである.

これらアマチュアによるゲーム開発は,プロによる「完成度」が求められるゲーム開発のオルタナティブとして重要な役割を果たしており,

荒削りではあるが,未知の可能性を秘めた原石がそこには確かに存在する.

専用ハードで展開されているゲームにおいても,このアマチュア開発の「可能性」を取り込むことはデメリットにはならないはずである.

しかしながら,現状の,非正規なマジコンによるアマチュア開発では,この可能性の発見,原石の掘り出しは難しい.

これら開発は正式に許可されたものではないため,ひそかにやらざるをえず,日の光を得ないからである.

その上,マジコンが販売禁止になったので,これからさらに闇ルートへと隠されていくわけである.

そこで,公式マジコンによる,正式なアマチュア開発への門戸開放である.

門戸開放とは,公式マジコンという技術提供だけではない.一般利用者への開発物提供の場を与えることも含めたものである.

ただし,アマチュアによるゲームプロによるゲームと同等に売り出すことは意図していないことを注意されたい.

アマチュア勝手ゲームを販売し始めたら,いわゆるアタリショックなどで知られるようなゲーム自体の質の低下を招きかねない

無法地帯を作るのではなく,ゲーム業界管理可能な範囲で自由に作ってもらうようにする.

敢えて誤解を恐れず言うと,ニコニコ動画などのような,

アマチュアが作り出したものだと一般利用者が理解してくれることを前提としたアマチュア特区である.

作り出されたものの中から,特に優秀で可能性のあるものに対しては,正規ルートによる販売を促進するのだ.


最後にまとめると,必ずしも法的根拠による厳しい措置は,すべての解決の道とはならず,負の連鎖に陥る可能性がある.

任天堂その他ゲーム開発会社には,より柔軟なシステムづくりによって,利用者にとっても,開発者にとっても利益がもたらされるよう努力を望む.

その可能性として,じゃあ思い切って公式マジコンもありじゃね?と思った次第です.

以上,本題(むしろ,以降が本題?)

id:wiselerの日記 http://d.hatena.ne.jp/wiseler/20090303/p1 を見て,伝えたいと思われる意図自分なりに代弁してみた.

議論の練習ということで,必ずしも私本人がこのようなことを強く切望しているわけではないので誤解しないでもらいたい.

工夫したポイントは,やはり「アマチュア開発」の説明である.

あくまで別の視点として,本論には一切登場させずに論じることで,議論の軸をぶらさないようにしたつもりである.

また,余計な,自分が知りえる知識を出すのではなく,必要性が無い場合は論じなかった.

マジコン歴史,詳しい仕組みは説明するだけ長文になり,理解の妨げになる.

原文が文章構成として一貫性が欠けるものとなっているのは,主観による言葉を多用しているのに,その主観がいちいちぶれるからである.

具体的には,

アマチュア開発者視点

アマチュア開発者にとっての死刑宣告」「アマチュア開発者の封じ込め」

ゲーム業界視点

ハードウェアメーカー目的・同利益

消費者視点

任天堂にとって良いこと尽くめ→我々消費者任天堂のような企業利益の視点で考えなければならないのかはなはだ疑問」

主観で書くなら,自分の立場を(少なくともその文単位における主観を)はっきりさせた上で,その主観からぶれないこと.

いろいろな利害をめぐる話を書くなら,客観性をもった言葉に徹すべき.

結局,言いたいことがわからない.

はっきり言わせて貰うが,これは議論云々以前の問題である.

いずれかの立場から,何が問題であると感じており,結論として何を言いたいのか.

「私はマジコンがなくなると,利用者はタダでゲームが出来なくなるので困ると思います.」

あまりに幼稚な主張だが,これは何が言いたいのか明確である.議論も可能だろう.

発言のよしあしではなく,この域にすら達していないことが問題なのだ.

追記

このエントリの主目的は,

近接上記の元日記に対するコメント

であり,

マジコンに対する深い考察や強い意思表明ではない

ので,ご留意を.

ただ,せっかくのコメントですので回答をば,させていただきます

……それって携帯電話上でjavaVMを動かしてるアレと何が違うの?

枠組みとしてはご指摘通り,同じだと思います.

正直に言えば,私もその点を元ネタに対して突っ込みたいくらいです.

とにかく自分で言える範囲の主張としては,もっとオープンにしてみるということです.

質云々はそんな気がしますが,まったくオープンに展開してない状態で,所詮アマチュアは・・・って言えないはずですよね?ってことですね.

そもそもゲームがそんなに重要なものじゃないから金かけたくないって思考じゃないのかね

少なくとも現状のDSでは,まともなゲームは一律数千円かかるのが現状です.

数百円程度のお手軽価格で簡素なゲームなら,わざわざ違反してまで手に入れなくなると思います.

DSiアプリ購入があるとかないとか 時代は変わったと思いますが)

今までの歴史上,オフィシャル以外でまともなのがない,というのはごもっとも.

ただ,繰り返しになって恐縮ですけど,公開の場が無かったのは一つの要因じゃないでしょうか.

なぜゲームお金を払うのか

近年の利用者が,「モノ」に対する価値を失いつつあるのは,このデジタル社会での宿命でしょうね.

じゃあどうやって,ゲームメーカーは生き残っていくのか.その答えが,

おっしゃるとおりのサービスへの対価を払うというシステムへの移行なのだと私も思います.

for ぶくま

"違反するためにはちょっと手間暇をかけないといけなくして メリットがあまり感じられなくすることで,"云々がマジコン禁止なのではないでしょうか

exactly そのとおりだと思いますよ.

それを元ネタに対するブックマークでは,「不正コピー撲滅の第一歩」と表現された方がいたのではないかと思います.

元ネタ側はそうではないと再反論していますが・・・)

ただ,元ネタ側をフォロー?すると,訴訟のときのゲームメーカーコメントには,法的処置をさらにとっていく,という

強硬な態度を見せていますので,本文のような指摘をさせていただいた,という体です.

マジコン業者はともかくとして,利用者にとってもゲームメーカーにとっても,もうちょっと平和的な解決はないのでしょうかね

長文読んだが無駄だった。頭でっかちすぎ。メリットデメリットが折り合わない。

長文ゴメンナサイ&目的の書物じゃなかったかもしれませんね.

ぶっちゃけていえば,「以上,本題」以下が本題のつもりの文章です.

メリットデメリットというのは,メーカーサイドがわざわざアマチュアに門戸を開けることについてでしょうかね.

ここも敢えて誤解を恐れず言えば,ニコニコ動画経営するニワンゴにおけるメリットデメリットと似たようなものだと思います.

敢えて大手任天堂危険を顧みないで行うほどのイノベーションではないという話であればそのとおり.

ですが,それは人それぞれの考え方ですので,ね.

wiselerは「メダパニ」を唱えた。はてな市民はこんらんしている。/という状況なの?流れをよく知らないけど。

大体合ってる

2009-03-03

http://anond.hatelabo.jp/20090303145021

DSカセット部分か何かにロイヤリティがあって

こういう事はできないわけじゃないけどね。

ロイヤリティは例えば

任天堂DS用」とDSロゴを表示して販売できるかとか言う話しだったりするから

表示しないでもいいマジコン同人ゲーに効果は及ばない。

DSカセットの形状で意匠を取るにしても(意登1260043)とかあるけど

マジコンは形が違うので効果が及ばない

で、著作権だけど

これはもう十分に議論されていると思う

リバースエンジニアリングは合法だからね

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん