_HpbChkPwd解析メモ

/*
  _HpbChkPwd(keyin, escEncrypted, defaultUrl, target) 
  redirect_url to keyin 
  遷移先が判明しているときに、パスワードの候補を挙げるプログラム
*/

var indexbase = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
function pos(a) {
  return indexbase.indexOf(a)
}

ec = "escEncrypted" // あらかじめソースに入っているKey
e = unescape(ec)
el= e.length
d= "RedirectURL(full_path)" // 判明しているリダイレクト先
dl= d.length

for(i =2; i < 10; i++) {
  j = i
  anser = ''
  for(ii = 0; ii < i; ii++) {
    j--;
    if (j < 0) {
     j = i - 1;
    }
    chr1 = pos(d.charAt(j));
    chr2 = pos(e.charAt(j));
    A = chr2 - chr1 - ii;
    if (A < 0) {
      nbase = (chr1 + ii - chr2) / 0x5f;
      A += (0x5f * Math.ceil(nbase));
    }
    anser += indexbase.charAt(A);
  }
  print(anser);
}

DoCoMoのIModeIDの大切なこと

IModeIDは結構な頻度でAAAAAAというIDのユーザと AaaaAA というIDのユーザが来る。つまりMySQLにBinary属性を付けておかないと、MySQLは大文字小文字を区別しないので、同じユーザとして扱われてしまうので注意が必要だ。ということを教えてもらった

 ALTER TABLE USERS MODIFY DEVIECEID VARCHAR(64) BINARY;

rake db:migrateでversionが固定される

なんか rake db:migrateで versionが2に固定される。VERSION=10とかに上げて 次にrake:migrateとかやると、また VERSION 2に戻される。

問題のコード rails-2.0.2/lib/tasks/databases.rake

  desc "Migrate the database through scripts in db/migrate. Target specific version with VERSION=x. Turn off output with VERBOSE=false."
  task :migrate => :environment do
    ActiveRecord::Migration.verbose = ENV["VERBOSE"] ? ENV["VERBOSE"] == "true" : true
    ActiveRecord::Migrator.migrate("db/migrate/", ENV["VERSION"] ? ENV["VERSION"].to_i : nil)
    Rake::Task["db:schema:dump"].invoke if ActiveRecord::Base.schema_format == :ruby
  end

CentOS x86_64だと ログインした際に環境変数 VERSIONに 2.6.18-53.1.21.el5 とかカーネルのバージョンが記録される。で

 ActiveRecord::Migrator.migrate("db/migrate/", "2.6.18-53.1.21.el5".to_i)

とかで2になるというw

.zshrc に unset VERSION とか入れておいたけど いきなりdropしそうで心配すぎる。

Identicon

Identiconは一意なseedからユニークな画像を生成する、いわゆる画像版のHash値

http://www.docuverse.com/blog/9block?code=1233456&size=32

codeは32bitの整数、sizeは16〜64を指定する。

何に使用するかというと

  • 2chのIDみたいに IP+ユーザエージェントのハッシュ値に使用し、人を(一時的に)特定する
  • Yahooのログインシールみたいにログイン後、ユーザのシーケンシャルなIDなどを元に生成し、トップページに表示することによりフィッシング詐欺などを防ぐ。

Rubyの場合

gem install quilt

identicon = Quilt::Identicon.new 123456, :type => :code
identicon.write 'sample15_15_code.png'

で生成ができる。

これが図形ではなくて、動物とかだったりしたらおもしろいなぁ

http://www.docuverse.com/blog/donpark/2007/01/18/visual-security-9-block-ip-identification
http://github.com/swdyh/quilt/

ブラウザからのアクセスで携帯の端末IDを付加する

お手軽にFireFoxでUserAgentの偽装はUserAgentSwatcherを使用すればよいのだけれど、X_JPHONE_UIDとかX_UP_SUBNOの端末IDを付加するにはModify Headers が便利。

https://addons.mozilla.org/ja/firefox/addon/967

Modify Headers
Modify Headers posted by (C)だんだn