突然の独り言!

「力」は正義とは言わないが、「力」がなければ正義は実現できない 。「力」があっても使い方を間違えれば弱者から見れば、強者から見た正義にしかならない。かといって弱者はいくら吠えても正義は実現できないのが現実である。 皆が聖人君子でないことは明らかなのだ。 人間性とは生まれつき、或いは育ちから、はたまた本人の性格から形成されていく。 国民全体の人間性の向上には教育の果たす役割は大であると思う。

ところで「力」は維持発展させるだけでなく内部崩壊しないようなガス抜きが必要である。 色々な不満を解消させる仕組みの構築は重要だと思う。

与えられた条件において不満ばかり言うのではなく、努力精進する人になるような教育が必要だと思う。 まず不満に思う内容について自己に対する不満と他人に対する不満、社会に対する不満とに分けて 考えてみよう。自己に対する不満は自己と対話して改善することが可能である。 他人に対する不満は対話しただけで解消すると思ってはならない。

漠然としたなりたい姿やあるべき姿をイメージして具体化してみよう。 そしてそのようになるために何をすべきか検討してみよう。 努力が成果に結びつかないときは何が悪いのか考えてみよう。 PDACを活動の基準としよう。

いくら自頭がよくても知識が足りなければ凡人と変わりないのである。 すべてに秀でてなくてもよい。だがしかし勝負出来る分野を持つことは重要である。

全然無関係だがこのツリー階層はLGBTの理解に役立つと思った。2と10が人口のほとんど(94%)を占めているがその他が6%もいるそうだ。

f:id:gyokusen_since:20190207083855p:plain


出所がいまいちだがこんなのもある。

f:id:gyokusen_since:20190207084928p:plain

 

例外対応の標準化、ログ、発生個所の特定方法(ソースの行番号)などについて

 例外対応の標準化

参考となるURL

ログ出力の仕組みと実装について

参考となるURL

発生個所の特定方法(ソースの行番号)

例外やメッセージ出力時にすぐにソースコードのどこで発生したか特定する方法について検討

EXCEL パスワード設定の解除方法について その2

f:id:gyokusen_since:20190122150104p:plain

 前回の記事でパスワード解除はすべて試してみた。

ところでこの調査において課題がいろいろ出てきた。

1.拡張子xlsとxlsxの関係

2.拡張子xlsとxlsmの関係

3.共有による保護の関係

4.アドインされたVBAのロックの解除方法

その他

・comアドインにされたらソースコードは全く見れません。

Vectorにあるエクセルマクロでソースがみれないようにしてあるものを解除できるかチェックしてみた

VBAソースコードをロックするプロダクトがシェアウエアで結構な値段がしていることとそのロックが解除できるか試してみたい気もするがお金がもったいないのでやめた。

・ここまで調査してきて完ぺきに近いVBAプロジェクトのロックツールを発見した。

www.vector.co.jp

 上記のロック方法について色々試行錯誤を繰り返してほぼ同様と思われる実現方法を発見した。ここで紹介すると作者はシェアウエアで商売しているので妨害行為となる可能性があるので概要だけで詳細な手順の紹介は控えることにする。

・一旦共有状態のファイルになったものを手作業で色々いじって実現したものである。これをプログラムで実現する方法を試すとなるとまたまた何日もかかりそうw

・なおxlsファイルは同じやり方ではうまくいかなかった。それで一旦xlsmにファイル形式を変換して実施したら最初からxlsmファイルの場合と同様にうまくいった。出来上がったxlsmファイルを開いて今度はxls形式のファイルに変換して作成したらうまくいった。

ロック関連の調査作業はこれで終了する。

最後にまとめ

・色々なロック方法があるがもっともスマートな方法があることがわかった。現状では上記のツールのシェアウエア購入してプロテクトすることが最強と思われる。

 

EXCEL パスワード設定の解除方法について

f:id:gyokusen_since:20190122150104p:plain

パスワード設定による保護解除の一覧表について

表形式にまとめたらここに張り付けます。
とりあえず箇条書きで失礼します。

  1. 読み取りパスワード
  2. 書き込みパスワード
  3. シートの保護パスワード
  4. ブックの保護パスワード
  5. VBAのパスワード

===============

読み取りパスワード

これを簡単に解除する方法はなさそうです。
つまりEXCELのデータ自体を許可した人以外に見られたくない場合は8桁の4種混合パスワード(英大文字、英子文字、数字、半角記号)ならその組み合わせの数が
77^8=1,235,736,291,547,680 (=77^8/(60*60*24*365*10^6)=39.18年)
でまず解除不可能というわけです。
(1秒間に100万回のパスワード入力が可能とした場合の計算結果です)
因みに4桁のパスワードなら解除できそうです。
計算式=36^4/(100*60)=約280分=5時間程度
但し英大文字が混ざっている場合は・・・
計算式=62^4/(100*60)=約279時間=約3日間
CPU使用率を見ると17%ぐらいだったので
・英子文字だけのパスワード4桁のケースとして実行
・英子文字+数字だけのパスワード4桁のケースとして実行
・英大文字+英子文字+数字だけのパスワード4桁のケースとして実行
をそれぞれエクセルブックをコピーしてトライすればいいかなとは思います。
ちょっと調べた限りではほとんどフリーのソフトはありませんでした。
6桁までなら解除OKのソフトはありましたがパスワード試行範囲を指定できないので不採用にしました。

書き込みパスワード

itojisan.xyz

シートの保護パスワード

neos21.hatenablog.com

ブックの保護パスワード

www.saka-en.com

VBAのパスワード

やり方は解除マクロを実行する方法
neos21.hatenablog.com
エラーを出させて解除する方法
stackoverflow.com
There is another (somewhat easier) solution, without the size problems. I used this approach today (on a 2003 XLS file, using Excel 2007) and was successful.

Backup the xls file
Open the file in a HEX editor and locate the DPB=... part
Change the DPB=... string to DPx=...
Open the xls file in Excel
Open the VBA editor (ALT + F11)
the magic: Excel discovers an invalid key (DPx) and asks whether you want to continue loading the project (basically ignoring the protection)
You will be able to overwrite the password, so change it to something you can remember
Save the xls file*
Close and reopen the document and work your VBA magic!
NOTE: Be sure that you have changed the password to a new value, otherwise the next time you open the spreadsheet Excel will report errors (Unexpected Error), then when you access the list of VBA modules you will now see the names of the source modules but receive another error when trying to open forms/code/etc. To remedy this, go back to the VBA Project Properties and set the password to a new value. Save and re-open the Excel document and you should be good to go!
サイズの問題がない、もう少し簡単な解決方法があります。私は今日(2003年のXLSファイルでExcel 2007を使用して)この方法を使用し、成功しました。

xlsファイルをバックアップします。
HEXエディタでファイルを開き、DPB = ...の部分を見つけます。
DPB = ...文字列をDPx = ...に変更します。
Excelでxlsファイルを開く
VBAエディタを開く(ALT + F11)
マジック:Excelは無効なキー(DPx)を発見し、あなたは(基本的に保護を無視して)プロジェクトをロードし続けるかどうかを尋ねます
パスワードを上書きすることができるようになるので、忘れないように変更してください。
xlsファイルを保存します*
文書を閉じて再度開き、VBAの魔法をこなしてください。
注:パスワードを新しい値に変更したことを確認してください。そうしないと、次回スプレッドシートを開くときにExcelがエラー(予期しないエラー)を報告し、VBAモジュールのリストにアクセスすると名前が表示されます。ソースモジュールですが、forms / code / etcを開こうとすると別のエラーを受け取ります。これを解決するには、VBAプロジェクトのプロパティに戻り、パスワードを新しい値に設定します。 Excel文書を保存して再度開くと、問題ないはずです。
f:id:gyokusen_since:20190128170913p:plain

EXCELのパスワード解除方法を試してみた!

f:id:gyokusen_since:20190122150104p:plain

このサイトの内容に従って確認してみた。
www.saka-en.com

===以下のサイトの記述で注意事項があります===
➡「読み取りパスワード」解除ツールはシェアウエアで使えませんでした。
=========================
Excelでよく利用するパスワード設定は以下のものがあります。
1.読み取りパスワード
2.書き込みパスワード
3.シートの保護パスワード
4.ブックの保護パスワード
5.VBAのパスワード
残念ながら「読み取りパスワード」の解除はここでは紹介できません。
解析が難しく、総当たりでパスワード解除を試みるしかありません。

※以下の解除ツールはシェアウエアになっています・・・
ここでは検証していませんが Vector に、「読み取りパスワード」解除ツールがありましたので解除したい方は試してみてください。
http://www.vector.co.jp/soft/win95/util/se393783.html
==========================
フリーの解除ツールはありますが、ちょっと簡単なパスワードで試しても解読できませんでした。

・読み取りパスワードだけはこれをかけられると「パスワードを使用して暗号化」ということでパスワード解除はホントにパスワード入力して解除するしかだめだった。わざわざバイナリーエディタで中身を見てみたがまずパスワードを初期化含めて対応は不可能な気がします。

ちなみにパスワード入力してヒットするためには相当絞り込まないといつまでたってもヒットしないのである。
ーーーーーーーーーーーーーーーーーーーーーーー
abcdefghijklmnopqrstuvwxyz 26
ABCDEFGHIJKLMNOPQRSTUVWXYZ 26
0123456789 10
@#!$&[]\;:'"^~| 約15
ーーーーーーーーーーーーーーーーーーーーーーー
組み合わせの数は77通りあるので3桁のパスワードなら77^3=456,533
1秒間に仮に1000回試行できるとすると456秒なのでこれは楽勝かもしれない。しかし8桁となると天文学的数字となる。77^8=1,235,736,291,547,680
1秒間に仮に百万回試行できたとしても12億秒かかってしまう。
因みに12億秒とは1.2x10^9なのでこれを60x60x24x365=31,536,000
で割ると約38年かかる計算なのである。
(これは8桁と決め打ちで計算しています)

仮に8桁のパスワードで英小文字+数字=36でやったとしても
36^8=2,821,109,907,456…280万秒...33日かかります。なお1秒間に100万回試行できるのかどうかはわかりません。1000回ぐらいだったら上記の1000倍かかることになります。

EXCELの拡張子がxlsxの場合は、書き込みパスワードやシートの保護やブックの保護だとハッシュコード4桁でパスワードが一致したらOKなので1秒間に100万回照合することは可能でしょうが単なるパスワード入力の場合も同様の処理コールして結果が返ってくるとは思えない気もします。パスワード解読のプロセス多重化が可能なら100万回も可能かもしれません。とにかくエクセルのデータ自体を情報漏洩から守るためには8桁のパスワードを上記の組み合わせでかけとけば安心かと思われます。

と記述しておいて有用な試行実績情報があった・・・
これから推測すると1秒間に15万回ほど試行できるみたいだ。
【参考】解析ツールによる解読時間 【情報処理推進機構(略称 IPA)のサイトより引用】
使用できる文字数と入力桁数によるパスワードの最大解読時間 (全ての組み合わせを試 みた場合)
4桁  6桁  8桁 10 桁
約 3 秒 約 37 分 約 17 日 約 32 年 英字(大・小文字区別無) 26 文字…………………
約 2 分 約 5 日 約 50 年 約 20 万年 英字(大・小文字)+数字 62 文字 ………
約 9 分 約 54 日 約 1 千年 約 1 千万年 英字(大・小文字)+数字+記号 93 文字…

※記号は 31 文字使用。 ※使用パソコン OS:Windows Vista Business 32bit 版、プロセッサ:Intel Core 2 Duo T7200 2.00GHz、メモリ:3GB ※【引用者注】文字の組み合わせや辞書ファイルの利用等によって、この表の解読時間よりもずっと短時間で解読されてしまう場合があります。