【Excelゆる話】"意味が分かると怖いマクロ"を部長が実行してしまいました…

Поділитися
Вставка
  • Опубліковано 7 лис 2024

КОМЕНТАРІ • 110

  • @永畑リョウ
    @永畑リョウ 2 роки тому +28

    VBAを学ぶ前にも見たことがあって、その時は全然意味わかんかったんだけど今は意味がわかることに感動している。

  • @まるまる-p7c
    @まるまる-p7c Рік тому +8

    これ見ると、パスワードに英数字どっちも入れろとか大文字入れろとかの重要性がわかる。

  • @ぷにょーん
    @ぷにょーん 2 роки тому +138

    数字4桁程度のパスワードなら、いざという時にこうやって簡単にこじ開けられるから、ある意味便利だよ。

    • @じょえさん
      @じょえさん 2 роки тому +2

      ブルートフォースでなんとかなるかな。
      一回あたりの処理が大したことなかったらcudaで20分ぐらいで開くかもね

    • @v24tn45n8u
      @v24tn45n8u 2 роки тому +5

      簡単...?

  • @まさひろ-q2v
    @まさひろ-q2v 2 роки тому +25

    ランダムでパスワードを作成して閉じるプログラム。こんなプログラムを組む人に脱帽です。
    シンプルなコードですが、驚異の破壊力ですね!

  • @kusamochi_mochimochi
    @kusamochi_mochimochi 2 роки тому +19

    半年前はSUMすらわかってなかった私ですが、
    このチャンネルを見てから電卓を使わずに家計簿をつけられるようになりました

  • @うめはち
    @うめはち 2 роки тому +36

    後半のコードもパスワード解読だから、
    地味にやばいな…。つまり…、
    前半…悪用厳禁
    後半…悪用厳禁
    この動画全体…悪用厳禁!

  • @NonomGpm
    @NonomGpm 2 роки тому +27

    強いて挙げるなら、開くのに成功した時のパスワードをどこかに保存しておくといいかも?

  • @サンナナ-t2p
    @サンナナ-t2p 2 роки тому +7

    面白かったです❗️
    vba初心者なので、感心しました!

  • @zerocode9660
    @zerocode9660 2 роки тому +11

    最適解じゃないかな、少なくともVBA上では。
    アプリの仕組み上excelで実行させる他ないのでVBA一択になるだろうし、VBAに便利なメソッドが用意されてそうには無いし。ブルートフォースが一番。
    accessからの外部接続とかならもうちょいあれこれ出来るかも?

  • @Shippur010
    @Shippur010 2 роки тому +56

    報復にエクセル資料にコレとボタンを追加しておけば大惨事になるに違いない
    ボタンの名前「保存する」

  • @しんくろう-y5j
    @しんくろう-y5j 2 роки тому +25

    なるほど。これがVBAにおける一種のブルートフォース攻撃なんですね。わかりました😅

  • @忍者86
    @忍者86 2 роки тому +2

    これにアルファベット,記号を加えるとえらい組み合わせ&コードの長さになりますよね❓

  • @野端啓司
    @野端啓司 2 роки тому +20

    部長の”凄み”が分かる動画。
    実際この人パソコン素人じゃ無いだろ・・

  • @なかさん-b3c
    @なかさん-b3c 2 роки тому +14

    意味が解った途端くっそ恐ろしいと感じた…

  • @tashi3144
    @tashi3144 2 роки тому +3

    for to next使わなくてもon error gotoで良いのでは?

  • @五月雨-e1c
    @五月雨-e1c 2 роки тому +35

    昔ちょっとだけ齧った程度の知識じゃ理解できませんでした…でもやっぱりVBAって面白い

    • @自転車乗り-r6w
      @自転車乗り-r6w 2 роки тому +2

      vbaわかんないけど多分
      コード自体は
      このファイルに※正確には対象指定
      パスワードとして
      1~9999のどれかを設定し
      ファイルを閉じる
      (確認メッセージ出さない設定付き)
      って内容で
      それを実行したからファイルにパスワードかかっちゃったので
      それを
      1~9999総当りでパスワード入力
      ってやったってことだと思います

  • @照焼-o9m
    @照焼-o9m 2 роки тому +12

    VBAはよくわからないけど、他の言語使ってるとなんとなく挙動わかるね

  • @UltraChuken
    @UltraChuken 2 роки тому +19

    こんなに簡単にパスワードが解読されてしまうのも
    最初のパスワード設定が1~9999と簡単だったから。
    もし日本語や記号とかもパスワードに使える文字に入ってきたら
    もっと大変だったかも。

  • @lgchannel0918
    @lgchannel0918 2 місяці тому

    とりあえずパスワードがなんだったのか分かるようにメッセージ出すくらいしておけば良さそう笑

  • @このは-n2w
    @このは-n2w 2 роки тому +21

    部長ほんとすき

  • @v_horse05826
    @v_horse05826 2 роки тому +8

    なんかアレですね、ドラマでよく見るハッキングみたいw

  • @user-kr6vc6px5r05
    @user-kr6vc6px5r05 2 роки тому +3

    乱数は1つだけだし、
    パスワードは数字だけだから楽よね。

  • @chan.w5370
    @chan.w5370 2 роки тому +8

    授業でExcelのマクロを習ってる?んだけど、その担当の先生が「聞くより、自分で調べろ」って毎回怒ってくる。授業って何ですか?教えて下さい……

    • @pickupline28
      @pickupline28 2 роки тому +8

      あー……
      先生の言うこと、分かる気はする……
      結局、プログラムを書くようになると、ある程度「自分でググって情報をかき集めて、頭の中で再構築して正解に近づく能力」も大事になってくるから、その力を身につけろって意味かな?

    • @tokuyon2000
      @tokuyon2000 2 роки тому +7

      @@pickupline28
      先生「どうやって調べたらいいと思う?」
      →生徒回答
      →「それで調べてみなさい」or「こういう検索のしかたの方がよいだろう」
      ってな流れなら生徒に考えさせることもできるし授業としても有意義なものになるかな?

    • @02359
      @02359 2 роки тому +2

      独学でC++とか学んできた人だから先生の気持ちも少しはわかるけど
      だけどやはり学校だから調べ方教えるなりDocsの見方教えるなりしないといけない気がもする。金払ってるんだから聞かないと無駄じゃない?

  • @かるみあ-m7e
    @かるみあ-m7e 2 роки тому +4

    パスワードが「0000」の可能性……

  • @1826クロ
    @1826クロ 2 роки тому +9

    Openメソッドの一段下に
    If Err.Number 0Then
    Exit Sub
    End If
    Err.Number = 0
    と入れたら途中で開いた後に余計なことしないから少しだけ終わるの早くなるかな?

    • @reinejy
      @reinejy 2 роки тому +7

      それだとエラー出たら(パスワード違っていたら)終わっちゃいますよ
      やるんならOpenメソッドの下に
      If err.Number = 0 Then '開いたときにエラーが出なかったら↓の処理
      Debug.Print "Password:= " & i
      Exit Sub      ’このForのループの後に処理を入れたかったらExit Forで
      End If
      Err.Clear       '次のエラーが発生する前にいったんクリアする
      みたいな感じで、開いたらイミディエイトウィンドウにパスワードを記録して終了するって感じ

    • @zerocode9660
      @zerocode9660 2 роки тому +4

      開いたら止めたいなら例えば下記の様にすれば良い。
      for i = 1 to 9999
      err.clear
      workbooks.open filename:=fn,password:=i
      if err.number = 0 then exit for
      next

  • @ななしのごんべい-w7i
    @ななしのごんべい-w7i 2 роки тому +5

    尼○市職員「こ、これだー!」

  • @kozawa936
    @kozawa936 2 роки тому +17

    機密情報(22KB)

    • @dgrgasshurn
      @dgrgasshurn 2 роки тому +1

      22KB(ポケモンランクマッチシーズン24のポケモンシングル対応使用率ランキング)

    • @カーピィの偽物
      @カーピィの偽物 2 роки тому

      つまり機密情報=ポケモンのランキング.....はっ!もしや部長の会社はニンテ

  • @dmcreatorjapan
    @dmcreatorjapan 2 роки тому +1

    これ、つまり数字のパスワードって簡単に解読されてしまうってことか。
    だから最近は数字、アルファベット、アルファベットでも1文字は大文字など組み合わせないと登録できなくなってるんやな。

  • @ja5921
    @ja5921 2 роки тому +4

    For Each wb In Application.Workbooksでそれを実行したら一種のテロですねw

  • @おけけ資格勉強中
    @おけけ資格勉強中 Рік тому

    アルファベット込みパスワードファイルを開封するVBAもお願いしたいです

  • @hisanak3071
    @hisanak3071 2 роки тому +1

    開けるスクリプトを渡さず閉じてしまおう

  • @タイガース-v1p
    @タイガース-v1p 2 роки тому +2

    と言うことはパスワードがかかってる、エクセルファイルがあり、特定の者以外パスを知っていなくても、解除可能ってことか。

  • @assassin-hl5do
    @assassin-hl5do 2 роки тому +3

    1から順にではなく、ランダムでパスワード入力出来たら速いんですかね?

    • @renhoney2048
      @renhoney2048 2 роки тому +2

      可能だろうけど同じ数をPassとして試しちゃう可能性がある(てか多分そうなる)から早くはならないとおもう。

  • @冷やし中華始めませんか-n2n

    Excelのパスワードってバイナリエディタで編集すると簡単に変更できるんじゃなかったっけ…?
    0000ってパスワードを設定したエクセルのハッシュ値で置き換えると、置き換えられたエクセルのパスワードも0000になるみたいな…

    • @zerocode9660
      @zerocode9660 2 роки тому +8

      なる。office全般それ。正直何とかして欲しい。

    • @kino785
      @kino785 2 роки тому +1

      勉強になったけど、ところでなんでそんなこと知ってるんや?そんな有名な話なんか?

  • @忍者86
    @忍者86 2 роки тому +5

    すっ凄すぎる‼️😱もはやExcelを超越してWindowsを動かすプログラムになってしまった😓
    もはや、意味を理解することまでしか追従出来ない😑

  • @0813kiki
    @0813kiki 2 роки тому

    xlsxの拡張子をzipとかに変えて、中のファイルをごにょごにょすればどんなパスワードを書かれてても消せますね。

  • @min-owbdu
    @min-owbdu 2 роки тому

    え…VBAってこんなにクセつよいん…?

  • @Kurono_Roxu
    @Kurono_Roxu 2 роки тому +2

    昔、パスワードを無理やり上書きする方法があったなぁ……
    xlsmでも有効か分からないけどw

  • @タイガース-v1p
    @タイガース-v1p 2 роки тому +2

    なるほど、パワハラ上司への嫌がらせはこうするのか

  • @lockg.g.6193
    @lockg.g.6193 2 роки тому +12

    4桁で良かったね。
    一日あれば余裕。

  • @rarchan5944
    @rarchan5944 2 роки тому +1

    3:13
    理不尽すぎぃ!

  • @七福えると
    @七福えると 2 роки тому +5

    エラーじゃなかったらメッセージボックスで表示したら良さそう

  • @ccorn4221
    @ccorn4221 2 роки тому +2

    部長、絶対部下を試してるよな?

  • @三浦由章-f8j
    @三浦由章-f8j Рік тому

    シーター駐車場代⇒が鵜「」コミュニケーション「」「54」green=sター
    シーター

  • @warokihami
    @warokihami 2 роки тому +2

    意味がわかると怖いというか、意味不明過ぎて(明らかな悪意でコードが書かれていて)怖い。

  • @nnenko183
    @nnenko183 2 роки тому +13

    これ4桁数字とわかってたらあっさり総当たりされそうだけどわからん状態(英数記号入れて長さ上げて何回かループ入れることで生成とか)でやられたり総当たり対策やられたらまあ・・・きちいなぁ

    • @Kyadellack
      @Kyadellack 2 роки тому +1

      確か4桁の数字の中にアルファベット1文字加えられただけで10倍以上時間かかるとかって聞いた事あるな…

    • @labi3230
      @labi3230 2 роки тому +1

      @@Kyadellack
      数字は0〜9の10パターンしかないんで10×10×10×10=10,000通りで済みますが
      アルファベットを加えると10+26=36パターンになりますからね…どの桁がアルファベットかも分からないので
      36×36×36×36=1,679,616通り

    • @吸血鬼ヴァート
      @吸血鬼ヴァート 2 роки тому

      もしUnicodeの一覧からランダムってなったらやばい。𐎰や≩とかから選ばれるんでしょ?

    • @nnenko183
      @nnenko183 2 роки тому

      @@吸血鬼ヴァート それは入力が困難なのでパスワードとして実用的かどうかが問題になりますね

    • @nnenko183
      @nnenko183 2 роки тому

      困難というか面倒

  • @rina11922
    @rina11922 2 роки тому +2

    まぁあえていうならこの状態でロック解除できても、パスワードわからないんじゃないかな?
    新しいシートのA1にiを記入しておくといいんじゃないかな

    • @海苔拾い
      @海苔拾い 2 роки тому +1

      再保存する時にpw削除

  • @めんつゆは便利
    @めんつゆは便利 2 роки тому +5

    あ〜、cmd にも凶悪なコマンドあるなぁ。cドライブを即時消去するやつ。

  • @TV-tu4mw
    @TV-tu4mw 2 роки тому +1

    Pythonの時の直感?みたいなので一つ分かれば大体分かる(読めるだけ)

  • @user-xt6go9sz1o
    @user-xt6go9sz1o 2 роки тому +2

    4桁のパスワード総当たりでも10分かかるのか……!?

  • @200xpentium5
    @200xpentium5 2 роки тому +2

    ブルートフォース攻撃ですね...
    まあ、これが通用するのは限界がありますけどね。
    4桁パスワードなら最悪10,000回,平均5,000回程度の試行で開けられますし。

    • @deanna6164
      @deanna6164 2 роки тому

      なぜ4桁パスワードで最悪1000回の試行なんですか?

    • @200xpentium5
      @200xpentium5 2 роки тому

      @@deanna6164 素で間違えた。10,000通りですね。

  • @革量
    @革量 2 роки тому +15

    因みにですが、この事象になってもExcelファイルを構成するxml内に書かれているパスワードのコード消すと普通に使えますよ。

    • @NankotsuKomb
      @NankotsuKomb 2 роки тому +2

      読み取りパスワードでは使えない気が

    • @reinejy
      @reinejy 2 роки тому +3

      それはシート保護のパスワード

  • @shinya092424
    @shinya092424 2 роки тому +4

    もっと早くできるかちょっと挑戦してみたけど、所詮俺も素人。
    ダメだった。Application.ScreenUpdating = False(画面更新の停止)とApplication.Cursor = xlWait(マウスポインタの固定)
    くらいしか思いつかなかった。
    そして全然早くならなかったwww

    • @キエリカ
      @キエリカ 2 роки тому +2

      その辺りは画面更新等が発生しないと影響が無いですね。
      一番簡単な短縮方法はファイルを開けても処理が継続されるので、開けたら処理を終了するようにすることではないでしょうか?

  • @犬死丸
    @犬死丸 2 роки тому +1

    コンピュータ触ったらいかん人種やな

  • @takumih7276
    @takumih7276 2 роки тому +1

    VBAでできること

  • @katsukun1958
    @katsukun1958 2 роки тому +2

    Dim cells as Integer と打って実行すると、欠陥を持ったxlsmファイルに生まれ変わります。
    (コマンド「cells」をユーザ変数に定義してしまったからーです)
    Dim Count as Integer もやりがち。(1,2,3と数えるためのユーザー変数として使おうとして墓穴を掘る)

  • @たーゆぎ
    @たーゆぎ 2 роки тому +1

    PADで力押しを想像してたけど違ったw

  • @Scr_MIYUKINNGU
    @Scr_MIYUKINNGU 2 роки тому +8

    プログラマー「ん?え?あ?んーえー総当たり攻撃で無理矢理パスワード解除するか。」
    ド素人「ああああああああああ!もうこれはファイルを消してやり直すしかない…」
    玄人「…総当たり攻撃っての知ってるけどやり方わかんない。困った☆」
    わちょんのゆっくりIT(偏見)「よし。動画ネタにするか。処理はまた今度。」
    ワイ「明日本気出すからさぼります。」
    サボり魔(ネタ)「1年後に本気出すので今年はさぼります。」
    ちなみに総当たり攻撃は別名ブルートフォース攻撃とも言います。

  • @piG65a
    @piG65a 2 роки тому +1

    終了時に自動実行するようにしておくと。

  • @tile_shirokuro
    @tile_shirokuro 2 роки тому +3

    python使えば一瞬で終わる

  • @syunkunTrader
    @syunkunTrader 2 роки тому

    ua-cam.com/video/FDNz2nVhcfc/v-deo.html
    xlsまでは、Windows95でも動くようにダンプに近い形式になっていましたが、xlsxやxlsmになってからは、xml方式をzpi圧縮しているだけのファイルになっていますね。

  • @02359
    @02359 2 роки тому

    VC++は触れたことあるけどVBAは触れたことないなぁ

  • @zerono.7760
    @zerono.7760 2 роки тому +1

    これさ、アルファベット含んでたら詰みよね?

    • @ベベ-n3b
      @ベベ-n3b 2 роки тому

      わかりやすく数字にしているだけで0~9、A~Zの総当たりにすれば大丈夫ですよ。
      膨大な時間がかかりますけどね

  • @めひえる
    @めひえる 2 роки тому +1

    エクセルのパスワードって無意味なんだね

    • @mato315
      @mato315 2 роки тому

      無意味は言いすぎかと
      物置の南京錠程度の意味はあるかと。

  • @PASSWORD_123
    @PASSWORD_123 2 роки тому

    zip変換して、PASSWORD解除すればいいんじゃね?

  • @cookieheavy3044
    @cookieheavy3044 2 роки тому

    マクロ無効で開く

  • @galacticpretty
    @galacticpretty 2 роки тому +2

    와따시와 간고쿠데쓰

  • @まるり3016
    @まるり3016 2 роки тому +2

    え・・・今回、目の前でコードを書いた状態で数字の4桁ランダムとか「さいよわ」なパスワードだからいけますけど、パスワードかかってるんだったら
    どんなコードが書かれてるかすらわかんないのでは?
    普通にパスワードは文字列や下手したら特殊記号含めて、最低8文字とかがデフォじゃないですかね。
    そもそも、こんな「ほぼなんの意味も使いみちもない」コード書く機会があるかな🙄

    • @ペリカンハイウェイ
      @ペリカンハイウェイ 2 роки тому +1

      大文字小文字特殊記号も含めて総当たりするだけですが…
      こういうのってファイルのパスワードを忘れた時にやるから、もうちょっと工夫した方が早くはなりそうですね(自分がよく使う言葉で辞書攻撃するとか)

    • @_5742
      @_5742 2 роки тому

      @@ペリカンハイウェイ 今回4桁で10分だったので、1桁増える(5桁)だけでその10倍(100分)かかることになります
      8桁ともなると、、、
      まあ「入れそうなキーワード」が決まってるなら直接手で試したほうが早そうですね

    • @よっさん-j7l
      @よっさん-j7l Рік тому

      4桁数字はキャッシュカードやマイナンバーカードにも使われているから危ないね。

  • @tukarin
    @tukarin 2 роки тому +10

    少しかじったからこれは分かる
    さいしょの
    Dim i As long
    これはlong型(整数値を格納するもの)
    のiと言う変数を作る。
    次の
    For i=1 To 9999
    ------
    Next i
    はFor ○○
    ~Next のところまでをiに1を足しながら9999迄行くことを示している。iがもし9999まで行ったらこのループを抜けることにしている
    その中身のWorkbooks.open(~)
    は動画の通りそのworkbookを開くこと。
    実際には
    最初のworkbooksは範囲を指定していて、そこに対してOpen(開く動作)を指定している。引数にpassword,ファイルのパス名
    C:¥◇おふざけ¥機密情報.xlsm
    を指定しているから、これを改良するなら
    最初に
    Dim file As string
    file = inputbox("どのファイルを開きますか?")
    的なことをいれた方がいい気がする。
    (総当たりでは)
    (このままこのVBE のコードが使えるとは限らないよ)
    追記
    Workbooks.open(file,,, i)
    とする

  • @ドリームマスター-g5z

    そうだよな、普通にVBA組んでパスワード解除しようと思ったらそりゃエラー出るよなw