げんたろう's備忘録

セキュリティに関して思ったことをまとめます。

windowsにおけるユーザディレクトリ名の変更

windowsでユーザー名を例えばg.katayamaにしちゃうと、C:\Users\g.katayama\~~がユーザーローカルのパスとなり、ほとんどのプログラムでそれ以下へアクセスすることができなくなります。かなり困るので、g.katayamaの部分を変更します。


(起動する部分は大体ファイル名を指定して実行から)

1.netplwizを起動から所望のユーザ名へユーザ名を変更

2.net user administrator /active:yes
で、administratorアカウントを使えるようにする。

3.サインアウトしてadministratorアカウントにサインイン

4.administratorアカウントからregeditを起動してHKEY_LOCAL_MACHINE -> SOFTWARE -> Microsoft -> Windows NT -> CurrentVersion -> ProfileList
内の中からProfileImagePathが現在のディレクトリ名になっているものを探し出し、それを所望のユーザ名へと変更

5.変更したのち、再起動して、もう一度administratorアカウントにサインイン

6.C:\Users\内の[前のユーザ名]になっているのを名前の変更して[新しいユーザ名]にする。

例えば僕ならg.katayamaからkatayamaへリネームした。

7.administratorアカウントをサインアウトして、元々のアカウントにサインインすればすべて完了です。

後は、いらないadministratorアカウントは/active:noにして再度実行すれば消える。

追記:

registry内の旧ユーザ名文字列を全て新ユーザ名文字列に置換する。

その際に、手作業でやると非常に大変なので、RegistryFinderというソフトウェアを用いた。

twicasにおけるアイテム自動化

twicasにおいて、アイテムを主導で投げるのは非常に手間であるということは諸君ら全てが認識しているところであるという前提に基づき、それを解消するためのソリューションを提供する。

twicasのアイテム投げ等々はjavascriptによって実行されていることは、容易に確認できる。
そこで、consoleからいろいろ実行してあげることで自動的にアイテムを投げてくれるようにできないかと考えた。

実装に関しては非常に容易である。以下に示す。

var user = 'hoge';
var i = 0;
var item = 'foo';

//user及びitemには任意の文字列を入れる。例えば:user = 'gntrua'; item='tea'

hoge = setInterval(function(){
  if(i==20)
    clearInterval(hoge);
  else if(i%2==0)
    giftItem(user, item, true);
  else
    postGift(item, '');
  i++;
},500);

と言った風である。これをワンラインで書いてあげれば良い。

右クリック等マウスイベント禁止への対策

日常使っている歌詞のサイト等ではドラッグやコピー、右クリックが禁止されている場合が多い。そのような場合の対処方法として、chrome等に実装されているconsoleから特定のコマンドを入力することで回避する方法について記載する。

ページソースを以下のようにすることで右クリックを行うことができるようになる。

document.onmousedown = function(){ return true; };
document.onmouseup = function(){ return true; };
document.onclick = function(){ return true; };
document.oncontextmenu = function(){ return true; };
document.ondragstart = function(){ return true; };
document.onselectstart = function(){ return true; };
document.oncopy = function(){ return true; };
document.oncut = function(){ return true; };
document.onbeforecopy = function(){ return true; };
document.onbeforecut = function(){ return true; };