はてなキーワード: twitterクライアントとは
「プロテクトかけたアルゴリズムを実装したバージョンに差し替え」たなんて言われると本当に「プロテクト」がかかっているのか確かめてみたくなるのが人情というもの。というわけで、プロテクト強化後のもふったー(v0.9.6b)からconsumer secretが抜けるか試してみた。結論から言うと、あっけなく取り出せた。以下に手順を記す。
動作がよくわかっていないアプリケーションを解析して仕様を明らかにすることをリバースエンジニアリングと呼ぶ。ソフトウェアのリバースエンジニアリングは基本的に対象を逆アセンブルしてひたすら読むことによって行う(その補助に1命令ずつ実行してレジスターやメモリーの様子を観察することもある)。しかし、よっぽど小規模なものでなければオブジェクトコード全体を逆アセンブルして最初から最後まで読むなんてのは不可能だ。人間の読速度には限界があるし、時間も有限だからだ。そして、詳しい動作を知りたい部分というのは全体のごく一部であることが多いので全逆アセンブリを読むのには非常に無駄が多い。
だから、リバースエンジニアリングではいかに詳らかにすべき動作を行っているコードを絞り込むか(=読むべき逆アセンブリを少なくするか)が重要になる。
この場合も同様だ。TwitterのGUIクライアントを頭から読むのは到底無理なので、どうやって解析すべきコードの範囲を狭めるかを考えた。それには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記法で半角の<>が含まれていると投稿が出来ないのを早く直してください。
もふったーの作者から反応があった。「本気だったつもりのもふったーのデバッグ処理が残ってた」らしい(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|
既存のサービスの中には、公式にアカウントを切り替える機能を提供している所もあるけれど、完全に統合されてるものってまだないよね。
利用イメージとしてはこんな感じ。
打ち込みながら思ったけど、Twitterクライアントに既にありそうだなあ。
TwitterでふぁぼとRTってあるじゃない。
で、最近割りと「ふぁぼ爆撃」って言葉を聞くようになったと思うんです。
それで、TL(タイムライン)見てたら「ふぁぼ爆撃何が楽しいのか分からないし、迷惑」て書いてる人がいて、ちょっと疑問に思った。
ふぁぼ爆撃されたら嫌なの?曰くその人は「たまにふぁぼられるから、嬉しいのであって爆撃なんてされても、その人に対する好感度下がるだけ」と言っていた。
なんだかなぁ。。。
多分AndroidのTwitterクライアント「ShootingStar」を使ってる人は、ふぁぼ爆撃を喜ぶ側だし、爆撃をする側でもあると思うんだけど、"普通の"Twitterユーザーはふぁぼ爆撃をされたら不快に思うのかな。
(別にStS使ってる人だけがふぁぼ爆撃を楽しんでるって意味じゃないんですけど)
※ちなみに私はふぁぼ通知もRT通知も切ってて、ふぁぼとかRTとかあんまり気にしてない人なんで爆撃されても、あんまりそういう風に不快に思ったりとかはしない。StS使ってるような人にはYoruFukurouからふぁぼ爆撃してたりはするけど。
私は夫のTwitterアカウントを削除してしまって後悔した立場でした
鉄道模型でしたけど
かなり古いTweetがまさに大量(廃人用のTwitterクライアントも使っていた)という感じでした
結婚2年目ぐらいから「こんなにあるんだから売り払ってよ」と夫に言い続けたのですが
留守中に業者を呼んで引き取ってもらえるものは削除してもらいました
帰ってきた夫は「規制用の垢は好きにしていい」「今まで迷惑かけててごめん」と謝ってくれました
残っていたアカウントも全部処分してくれたのですごく嬉しかったです
でもその後夫はFacebookをはじめ自分のSNSアカウントを全てを捨て始めてしまいました
あまりにも行きすぎていて心配になり何かSNSを始めていいと言うのですが
かえって私が苦しくなってしまいました
これだけ夫のものがないと夫がふらっといなくなってしまいそうですごく恐いのです
こういう場合ってどうしたらいいんでしょう
僕はニートで、ニートというのはとてつもなく暇で人恋しいので、1日10時間くらいネットを見ていました。
2chのお気に入りスレに入り浸り、くだらないレス付けた後に更新ボタンを連打して、
それでも返事が無いようならば、はてブの人気エントリーを上から順に見て、なんとなく為になった気分になったら、
2chまとめサイトで人気のスレッドを軽く見て、時間が経ったらお気に入りスレッドを再度巡回してくだらないレスをつけ、
寝る前に「ああ、また虚無的な一日を過ごしてしまった……死にたい……」と思う日々が続いていました。
神様はなかなか助けてくれないし、このままではいけない、もっと為になる事を何かしなくては……
と思ってはみるものの、気がつけばネットサーフィンをしている……。
そんな僕ですが、ついにネットと上手に付き合う方法を発見したので、その手順を紹介します。
1.FireFox以外のブラウザをアンインストールしましょう。2chブラウザもアンインストールします。
2chはアドオンのchaikaとか使って見るようにしてください。お願いします。
僕は友達がいないのであまりやっていませんが、twitterとかを頻繁に見ている人は、twitterクライアントもアンインストールしましょう。
webでも見れるし、多分すてきなアドオンもあると思うのでそれで見ましょう。
IEは簡単にアンインストールできないっぽいので、ショートカットを根こそぎ消してみましょう。
2.FireFoxのアドオン、LeechBlockをインストールします。
制限時間を越えると、ネットが見れなくなるという恐ろしいアドオンです。
僕はめんどくさいので制限時間が過ぎると全サイトが見れない設定にしましたが、
設定画面は英語なのでちんぷんかんぷんですが、ググったらすぐに日本語の解説が見つかります。
これが最大のポイントで、僕は2時間ごとに15分見ていいという設定にしました。
24時間ごとに60分という設定も試しましたが、長いスパンで設定するのは中毒者にとってあまり良くないようです。
きっと一気に60分ネットを見たら、すぐにLeechBlockをアンインストールして、引き続きネットの海に浸り続けてしまうでしょう。
ネットに入り浸る時は大概、見たい記事を見た後に、ズルズルとショーモナイ情報を見続けるものだと相場が決まっています。
で、これをやると、15分という時間が勿体なくて、見たい情報を見た後にFireFoxをすぐ閉じるようになります。なるはずです。
ブラウザの右下に残り時間が表示されるので、ネット閲覧に時間制限というゲーム性が加わって、なんとなくスリリングな気分が味わえます。
そして、もし仮に15分経ってしまったとしても、2時間後にはまた見れるのです!
1日ネットが見れないとなると、それはもう途方もない長さに感じられて、
とても我慢できそうになくたって、1時間45分ならなんとかなるでしょう! なりますよね!
というわけで、もうやった事あるかもしれませんが、
この記事(http://www.drk7.jp/MT/archives/001769.html)が話題になっているので、自分も書いてみます。まずは自分の属性。
そもそもNexusSは国内で販売されてないので、NexusSとiPhone4のどちらがイイですか?と人に聞かれることは全くないですが、
NexusSの方が圧倒的によいと"私は思う"と(もし聞かれたら)答えます。今後の機種変も間違いなくGalaxy S2、3?、と買い続け
ていくと思います。一方で別の技術はもうわかったのでiPhone4は手放そうと思っており、iPhone5が出たら誰かに触らせてもらい
たいです。※NexusSは技適未通過端末なので、帰国前の使用感レポとなります
元記事に異論なし。音質は音楽聞かないから知らない。AndroidはiPhoneよりもっさりしてるし、落ちるし、電池減る。
Nexus Sの解像度はWVGA(800x480)とiPhone4(960x640)より劣るのに、画面自体が大きい分広く感じる。Nexus Sは4インチ、iPhone4
は3.5インチで、だいぶミスタイプが減った。Xperia arcは4.2インチなので確かに大きすぎるかも。Nexus Sはちょうど良い。
だいたい元記事通り。ランキングサイトを見て色々試すのが自分は楽しい。iPhoneでスクエニのゲーム買ったけど、結局スマホで
ゲームなんてやりにくいし放置。ゲームは3DSかPSPで良い。
で、大事なのはここから!速度・安定・電池を差し引いても自分がAndroidを選ぶ理由。
Androidアプリの良いところは、アプリ間の連携がシームレスなところ。写真とる→ギャラリー(iPhoneでいうアルバム)→共有から
直接twitterなどにうp、が可能。(http://www.gazo.cc/up/37699.jpg)iPhoneは写真とる→アルバムは移動出来るけど、うpする
には各アプリを立ち上げないといけない。ブラウザもメニュー→共有で、そのページを色んな方法でシェアできる。アプリ連携し
すぎ。あとページ内検索とかも地味に便利。
他にも良いアプリとしてはIMEのSimeji。←→キーとソーシャルIMEが便利すぎ。iPhoneだとiとiの間にカーソル合わせるとかほぼ
無理。ツイートする時に少し戻りたいとかもよくあるので、←→は不可欠。ソーシャルIMEの効果は
(http://www.gazo.cc/up/37694.jpg)参照。スマホは数字・記号が混ざった入力がだるいので助かる。
GoogleMapは拡大・縮小した時にコンパスが元に戻らないのが良い。(ブラウザにもついてる)- +ボタン便利。本来はマルチタッチ
非対応端末用だけど、片手で縮小出来るのが十分便利。iPhoneだと縮小時に左手に持ち替えるとかよくやってた。他にマイマップ
とか様々なレイヤが重ねられる。Latitudeは友人0だから意味無いんだけど、mixiのAndroidアプリ(上の画像の)みたいな感じで4sq
iPhoneは他のアプリが起動すると投げっぱなしで戻れないし、1つのアプリ内でも戻れなくて迷子になることがよくある。
だいたい左上が「戻る」系ボタンがあることが多いけどそうでないアプリもあるし、左上とか遠くて画面を覆い隠してしまう。
今では「戻るボタンが無いなんて、ブラウザバック禁止でブラウザ見るぐらいストレスだろ…」と思っている。
色んなアプリの新着がステータスバーに表示される通知機能が死ぬほど便利。twitterにおける通知(とウィジェット)の良さはこ
れ(http://ran.private.coocan.jp/omusubi/log/2010/12/android-twicca-beta.html)あたりを参照。iPhoneにもPush通知はあるけ
どすぐ見なくて良いものを保留、とかが出来ない。強制的にアクティブになるのが鬱陶しい。インテントと組み合わさると最強で
、こんなこと(http://www.gazo.cc/up/37695.jpg)が出来る。
上のtwitterクライアントのエントリでもあるようにウィジェットが便利で、ホームから色々設定変更が出来る。自分は家帰ったら
NoLockウィジェットでロックオフしてすぐ操作出来るようにしてるし、布団でごろごろ使う時にはScreenFilterウィジェットで好
みの程度暗くする。あと計画停電があった時はホームに付箋メモ貼ってすぐ確認出来るようにしてた。この辺はiPhoneでもJBすれ
ば出来る範囲なのかな。
他にもFLASHが動くとか、NFCがついてるとか、電源ボタンがサイドについてて使いやすいとか、丸っこくて可愛いとか、Macがなく
てもアプリ作れるとか、色々良いところはある。代わりに先に述べた体感速度、OSの安定度、充電池の悪さの他に、フォントが変
元々NexusSはAndroidアプリ開発用にと買っただけで、予想以上に気に入ってしまったのは誤算。久しぶりにiPhone使ったら「戻れ
ない」「←→ない」「通知ない」が死活問題だし、最近Softbankの電波はさらに悪化したのか屋外ですら300~500Kbpsしか出てい
ないことも多く、人が多いと100Kbpsも出てない。(前は1Mbpsとか普通に出てたので、ここ最近何かあったのか、場所・時間帯に
"自分は" Nexus S > iPhone4だが、我慢してiPhone4を使っている。iPhoneにはAndroidのようなワクワク感が無いのが残念だが、
カスタム面倒な人・初心者にはiPhoneを勧めているし、無難だとは思う。2.2か2.3以降のAndroidなら、用途や好みによってはオス
スメ。色々出来るから本当楽しい!アプリをアドオンで強化出来るとか感動したし!個人的には「iPhoneに貼る電子マネーシール
」「iPhoneでも音の組み合わせで決済」「iPhoneでFlash」「iPhoneで赤外線」とかにエネルギー使うのは勿体無いので、より自由
なAndroidが普及して技術が発展すると良いと思っている。
じゃあ何を使うべきか迷っている。Softbankは解約して本体売るつもり。回線はdocomoか、b-mobile+WiMaxか、auのEVO WiMax
(CDMA+WiMax)が良い気がしている。EVO WiMaxはかなり魅力的だけど、CDMA通信時の安定性が不安なのと、端末がHTC EVO一択にな
ってしまう。docomoの最新はXperia arcだけど、なんかぺりあってダサい感あるしGalaxy Sの方がNexus Sと似てて良さげ。ただ来
この記事(http://weekly.ascii.jp/elem/000/000/038/38214/)のように、SIMフリーの技適通過済みAndroid端末をデータ通信の
みで使うのが安いし早いのは魅力。でもIDEOSは小さいしスペックが…
この辺(http://gpad.tv/phone/docomo-sc02c-samsung-galaxy-s2/)を見るに、Galaxy S2の発売とレポを待つのが良いと思うので
、たぶんそうする。本当はすぐにでも変えたいので辛い。