fcrackzipを使ってみた

ZIPファイルのパスワードを解析するためのツール「fcrackzip」は、Ubuntuならapt-getでインストールすることができる。

$ sudo apt-get install fcrackzip

zipファイルをパスワードつきで作る。パスワードは「test」で。

$ zip -j -D -P test log.zip sources/*.log
  adding: ddnsupdate_20120408.log (deflated 96%)
  adding: ddnsupdate_20120409.log (deflated 94%)
  adding: ddnsupdate_20120410.log (deflated 94%)
  adding: ddnsupdate_20120411.log (deflated 94%)
  adding: ddnsupdate_20120412.log (deflated 94%)
  adding: ddnsupdate_20120413.log (deflated 94%)
  adding: ddnsupdate_20120414.log (deflated 94%)
  adding: ddnsupdate_20120415.log (deflated 94%)
  adding: ddnsupdate_20120416.log (deflated 94%)
  adding: ddnsupdate_20120417.log (deflated 94%)
  adding: ddnsupdate_20120418.log (deflated 94%)
  adding: ddnsupdate_20120419.log (deflated 94%)
  adding: ddnsupdate_20120420.log (deflated 94%)
  adding: ddnsupdate_20120421.log (deflated 94%)
  adding: ddnsupdate_20120422.log (deflated 89%)

「-l 4」でパスワードの文字列長「4」を指定して解析をかける。

$ fcrackzip -l 4 log.zip 
possible pw found: test ()

文字列長を指定しないと、6文字で解析を始めるようだ。「-l 4-6」と指定すると最小4・最大6で解析させられる。
mkpasswd.plと組み合わせて、パスワードの文字列長と解析時の文字列長の組合せでどのくらい時間がかかるのか調べてみようと思ったが、時間かかりそうなので中断した。mkpasswd.plで指定できる最小サイズは7なんだけど、これだけでもブルートフォースで調べていくと壮大な試行回数がいるんだよね……。

for i in `seq ${LEN_MIN} ${LEN_MAX}`
do
	# パスワードを生成する
	zippasswd=`mkpasswd.pl -l $i`
	# ZIPファイルを作成する
	zippath=${ARCHIVE_DIR}/length_${i}.zip
	zip -P ${zippasswd} ${zippath} ${SOURCEFILES}

	# パスワードの長さがわかっている
	check_length=$i
	# パスワードの最大長がわかっている
	#check_length=$LEN_MAX
	# パスワードの最小長と最大長がわかっている
	#check_length=${LEN_MIN}-${LEN_MAX}

	# 解析する
	time fcrackzip -l $check_length $zippath
done

mkpasswd.plもapt-getでインストールできる

$ sudo apt-get install libstring-mkpasswd-perl

Perlかな?「.pl」がつかないmkpasswdもあって、使い方と機能が少し違う模様。

$ mkpasswd --help
使い方: mkpasswd [OPTIONS]... [PASSWORD [SALT]]
PASSWORD を crypt(3) で暗号化

      -m, --method=TYPE     select method TYPE
      -5                    like --method=md5
      -S, --salt=SALT       use the specified SALT
      -R, --rounds=NUMBER   use the specified NUMBER of rounds
      -P, --password-fd=NUM read the password from file descriptor NUM
                            instead of /dev/tty
      -s, --stdin           like --password-fd=0
      -h, --help            display this help and exit
      -V, --version         output version information and exit

If PASSWORD is missing then it is asked interactively.
If no SALT is specified, a random one is generated.
If TYPE is 'help', available methods are printed.

Report bugs to <md+whois@linux.it>.

$ mkpasswd .pl --help
Usage: mkpasswd.pl [-options]
    -l # | --length=#   length of password (default = 9)
    -d # | --digits=#   min # of digits (default = 2)
    -c # | --lower=#    min # of lowercase chars (default = 2)
    -C # | --upper=#    min # of uppercase chars (default = 2)
    -s # | --special=#  min # of special chars (default = 1)
    -2 | --distribute   alternate hands
	--nodigits          alias for --digits=0
	--nolower           alias for --lower=0
	--noupper           alias for --upper=0
	--nospecial         alias for --special=0

backtrackとかいうOS

ブラッディ・マンデイとかいうドラマが影響しているせいか、クラッキングがかっこよかったり面白く見える若い人は多いんだろうか。ペネトレーションテストを目的にしたBackTrackというOSがある。
BackTrack - Wikipedia
最新版はUbuntu.10.04をベースにしている。

クラック目的っぽいアプリケーション

ISOを取得してVMWareでLive起動してみた。dpkgでインストール済みのパッケージを取り出して、「crack」を含むアプリケーションを調べてみると、以下これだけある。

aircrack-ng (1.2-bt0)
Aircrack-ng wireless exploitation and enumeration suite
fcrackzip (1.0-bt1)
fcrackzip is a zip password cracker, similar to fzc, zipcrack and others.
findmyhash (1.1.2-bt0)
Cracks different types of hashes using free online services.
gerix-wifi-cracker-ng (2.0-bt2)
Aicrack-NG (WPA/WEP) GUI with pyrit support on cracking
hashcat (0.38-bt0)
cpu based multihash cracker
hydra (7.2-bt0)
A very fast network logon cracker which support many different services.
john (1.7.9-jumbo-5-bt0)
John the Ripper is a fast password cracker. Besides several crypt(3) password hash types most commonly found on various Unix flavors, supported out of the
mdk3 (6.0-bt1)
MDK is a proof-of-concept tool to exploit common IEEE 802.11 protocol weaknesses using the oslib of aircrack-ng.
ncrack (0.4-bt0)
Ncrack is a high-speed network authentication cracking tool.
oclhashcat (0.25-bt0)
GPU based password cracker with nvidia and ati support
oclhashcat+ (0.07-bt0)
GPU based password cracker with crypt md5, DES and Apache MD5 support and a enhanced rule engine.
oclhashcat-lite (0.09-bt0)
Very fast single hash GPU based password cracker
pack (0.0.2-bt0)
Password Analysis and Cracking Toolkit
sipcrack (0.3-bt2)
SIPcrack is a suite for sniffing and cracking the digest authentification used in the SIP protocol
sucrack (1.2.3-bt0)
A multithreaded Linux/UNIX tool for brute-force cracking local user accounts via su.
wepcrack (0.1-bt2)
WEPCrack is an open source tool for breaking 802.11 WEP secret keys.

名称あるいは、その説明でなんとなく目的はわかる。
ちなみにUbuntuでこれらのパッケージ名で検索すると、インストール可能なものはけっこうある。

kosuke@anatama:~/tmp$ apt-cache search fcrackzip
fcrackzip - zip アーカイブ用パスワードクラッカ
kosuke@anatama:~/tmp$ 

backtrackのsources.listの中身

「/etc/apt/sources.list」の中身は次のようになっていた。

deb http://all.repository.backtrack-linux.org revolution main microverse non-free testing
deb http://32.repository.backtrack-linux.org revolution main microverse non-free testing
deb http://source.repository.backtrack-linux.org revolution main microverse non-free testing

これをUbuntuのsources.listの追記したらbacktrackのパッケージを追加できるようになるのかもしれないけど、試してないのでわかりません。

なぜ調べないのか

Yahoo!知恵袋で自分のわかるジャンルでクソ回答をばらまくという気晴らしがある。もちろん、自分の回答が役に立てば嬉しいし、自分の知識量を推し量る意味でも、他人の疑問に関心を持つことはいいと思う。
なぜ、こんなことを自分で調べられないのか、と思う質問が割とある。本当にそれが調べたいことなのか、と思うことがある。もちろん、質問者の怠慢ではなく、調べるアプローチが本当に分からないのだ、ということは自分の身に置き換えて理解はできるので、そういう苛立ちはぐっと飲み込む。
質問も回答も無料でできるのだから、質問内容も回答内容もそれなりなんだろう、と思うことがある。個人的には質問者は回答者に敬意を示すべきだから、回答に難癖を付けたり条件をつけるべきではないと思っている。しかし、回答すること自体が気晴らしのようなものだし、回答者側から我々に敬意を示せ、とアピールするのも違うかな、と思っている。
何か調べたいと思ったときに、はてな人力検索を開いて、過去の質問を調べることがある。Yahoo!知恵袋で同じことはしない。ググったときにひっかかることはあるから、参考程度にはしている。

アイスリボンの雰囲気

アイスリボンというプロレス団体の特色は、ローティーンからなる若年層から三十代後半まで選手の年齢層が幅広いことと、いわゆる女子プロっぽさに染まっていないところにあると思う。アイスリボンを立ち上げたさくらえみが退団した後、団体を牽引するのはプロレスレビューを条件に映画出演のオーディションを勝ちとった藤本つかさ志田光。ともすればタレント部門扱いされかねない位置付けだけど、実際はメーンイベンターでかつ、団体の精神的支柱である。特に藤本は昨年、被災地キャラバンとして被災地各所をバスで回って試合をして、米インディのチカラプロのマットで試合をしたということで、個人的には大いに感心した。いい試合するしね、実際のところ……。プロレスはキャリアでも老舗でもないのだと思った2011年だった。

プリンス・オブ・ペルシャ

昨年で30になった僕が中学生だったころ、90年代半ばというのはそれまで主流だったNECのPC98シリーズからWindowsに変わりつつあるいわば過渡期で、たいていのPC雑誌でWindows 3.1の特集が組まれていた。Windows 3.1が普及したとは言いがたいけど。公立の中学校でパソコンの授業が行われ始めた時期でもあった。「パソコン部」という部活動があって、活動内容はというとほとんどがパソコンを使って遊ぶ自由時間だった。生徒の父兄のなかにはPC98にどっぷりハマっている人がいて、その資産を持ってきてくれるメンバーが多くはないけどけっこういた。僕はPC向けゲームの面白さをそこで覚えたようなものだった。
コンパイルの雑誌付属のゲームを持ってくるとかは可愛いほうで、市販されているゲームをたくさん持ってくる人がいて、希望する人は空のフロッピーを持参してコピーしていた。昨今の中高生はCDを買わずYoutubeや違法ダウンロードでコンテンツを入手するのを当たり前のように思っていて、著作物への規範意識の低下が激しいとよく言うけど、ゲームをコピーさせてもらって遊ぶことを、当時の僕や部活のメンバーは当たり前のようにしていた。
プリンス・オブ・ペルシャ」というアクションゲームがあった。難易度はやや高めだけど、理不尽な難しさがあるわけではない、バランスのとれた良ゲーでそれなりに楽しんでいたことを覚えている。「Life and death」よりは好きだった(手術ゲーム)。そのプリンス・オブ・ペルシャソースコードGithubに公開されたとのことだ。

Apple2向けのソースコードらしいが、他機種移植のアドバイスを記したというPDFファイルも一緒に公開されている。

Ubuntuプリンス・オブ・ペルシャが遊べる

Ubuntu上でビルドして遊べるのかな、と思って調べたら、ビルドするまでもなくDOSBoxで遊べるらしいことがわかった。
以下は2006年のUbuntu本家のフォーラムの投稿。

hi,
this game may be old but it's a classic!

1) at the terminal x@y:/$ sudo aptitude install dosbox
2) create directory /prince with sudo. take ownership and relax all the permissions on that directory.
3) visit abandonia and search for "prince"
4) download it and unzip it into a newly created /prince directory.
5) from the terminal start dosbox (DOS emulator)-- x@y:/$ dosbox
6) within dosbox virtual mount the directory-- z:\> mount x /prince
7) change to that virtual mounted drive-- z:\> x:
8. start prince! x:\> prince

NOTE: the text in bold are the strings to use.
NOTE2: if the game appears slow within the dosbox / game hold down CONTROL and tap F12. you should see the cpu cycles: 3000 increase higher thus increasing the speed of the game
NOTE3: if you can't get out of prince with ALT+TAB just press CONTROL + F1 two times to get a menu and get your mouse to start working again!
NOTE4: CONTROL + F8 to quit!

Kudos.

PS. another classic game is DUNE 2 also found on the same website.

http://ubuntuforums.org/showthread.php?t=282744

基本的にはこの投稿の通りでプリンス・オブ・ペルシャが遊べるようになった。
まずdoxboxをインストールする

$ sudo apt-get install dosbox

abandoniaで「prince」で検索すると「prince of persia」があるので、ZIPファイルをダウンロードする。
任意のディレクトリにZIPを展開する。

$ unzip ~/ダウンロード/Prince\ of\ Persia.zip -d ~/tmp/prince

DOSBoxを起動する。

$ dosbox

次のように「Z:\」とプロンプトが表示された画面がでるので、最初にZIPを展開したディレクトリをマウントする。ドライブレターをXにしてマウントする例。

Z:\> mount x /home/username/tmp/price

カレントのドライブを変更し、ゲームを起動する。

Z:\> x:
X:\> prince

これで懐かしのプリンス・オブ・ペルシャが起動する。

PC-9801向けではなくあくまでPC-AT互換機のDOS向けのようなので、画面のイメージはだいぶ違うけど、操作感や雰囲気はPC98シリーズのままだった。PC-9801向けゲームも遊べたらいいんだけど、DOSBoxでは無理らしい。
同じサイトに「Life and Death」もあった。起動するところまで確認してすぐ閉じた。

youtube-dlでファイル取得できない場合の対処方法

youtube-dlでファイルリスト等を指定してファイルもしくはURLを取得するとき、ページが取得できない等の問題でエラーが出ると、そこで止まってしまう。

~/tmp$ youtube-dl -g http://www.youtube.com/playlist?list=PLA8DF5851908F2348
ERROR: unable to download video webpage: HTTP Error 404: Not Found
~/tmp$ 

エラーがでるファイルを無視して次を処理するためには、「-i」というオプションをつけてやればいい。

~/tmp$ youtube-dl -i -g http://www.youtube.com/playlist?list=PLA8DF5851908F2348

これでエラーになったのは飛ばして次を取得するようになる。

smplayer(mplayer)で動画再生できなくなることがある(音声は出る)

何をして発生するかは分からないが、smplayerで動画を見ると、音声だけでて映像がでなくなってしまうことがある。
ログには次のエラーが延々と記録されている。

X11 error: BadValue (integer parameter out of range for operation)
  • ログオフ/再起動する等で再生できるようになる
  • 他のプレイヤー・TotemやParoleでは再生できる

X11のキャッシュとかが影響しているような気がする。ググると同じトラブルの事例がいくつか見つかるが、解決策になりそうな情報は見つけられていない。

smplayer実行時の引数

smplayerのログによると、実行時の引数は次のようになっていた。

/usr/bin/mplayer \
 -noquiet \
 -nofs \
 -nomouseinput \
 -sub-fuzziness 1 \
 -identify \
 -slave \
 -vo xv \
 -ao pulse \
 -nokeepaspect \
 -framedrop \
 -nodr \
 -double \
 -input nodefault-bindings:conf=/dev/null \
 -stop-xscreensaver \
 -wid 73400669 \
 -monitorpixelaspect 1 \
 -ass \
 -embeddedfonts \
 -ass-line-spacing 0 \
 -ass-font-scale 1 \
 -ass-styles /home/kosuke/.config/smplayer/styles.ass \
 -fontconfig \
 -font Arial \
 -subfont-autoscale 0 \
 -subfont-osd-scale 20 \
 -subfont-text-scale 20 \
 -subcp ISO-8859-1 \
 -subpos 100 \
 -volume 100 \
 -nocache \
 -osdlevel 0 \
 -vf-add screenshot \
 -slices \
 -channels 2 \
 -af scaletempo,equalizer=0:0:0:0:0:0:0:0:0:0 \
 -softvol \
 -softvol-max 110 /home/kosuke/path/to/video.avi

たぶん、mplayerで引数指定しなかった場合もほぼこれらと同じ値になる、のかな。

「-vo」の指定を変えたら映像がでるようになった

映像の出力先を「-vo」で指定するようになっていて、「xv」が設定されている。解決策として妥当かどうかはわからないが、「x11」に変更すると映像がちゃんと表示するようになった。

僕の環境で「-vo」で指定できる値は次のようになっていた。

$ mplayer -vo help

mplayer: Symbol `ff_codec_bmp_tags' has different size in shared object, consider re-linking
MPlayer SVN-r33713-4.6.1 (C) 2000-2011 MPlayer Team
Available video output drivers:
	xmga	Matrox G200/G4x0/G550 overlay in X11 window (using /dev/mga_vid)
	mga	Matrox G200/G4x0/G550 overlay (/dev/mga_vid)
	tdfxfb	3Dfx Banshee/Voodoo3/Voodoo5
	3dfx	3dfx (/dev/3dfx)
	vdpau	VDPAU with X11
	xv	X11/Xv
	gl_nosw	OpenGL no software rendering
	x11	X11 ( XImage/Shm )
	xover	General X11 driver for overlay capable video output drivers
	sdl	SDL YUV/RGB/BGR renderer (SDL v1.1.7+ only!)
	gl	OpenGL
	gl2	X11 (OpenGL) - multiple textures version
	dga	DGA ( Direct Graphic Access V2.0 )
	fbdev	Framebuffer Device
	fbdev2	Framebuffer Device
	svga	SVGAlib
	matrixview	MatrixView (OpenGL)
	aa	AAlib
	caca	libcaca
	v4l2	V4L2 MPEG Video Decoder Output
	directfb	Direct Framebuffer Device
	dfbmga	DirectFB / Matrox G200/G400/G450/G550
	xvidix	X11 (VIDIX)
	cvidix	console VIDIX
	null	Null video output
	xvmc	XVideo Motion Compensation
	mpegpes	MPEG-PES to DVB card
	yuv4mpeg	yuv4mpeg output for mjpegtools
	png	PNG file
	jpeg	JPEG file
	gif89a	animated GIF output
	tga	Targa output
	pnm	PPM/PGM/PGMYUV file
	md5sum	md5sum of each frame

smplayerの設定画面から指定可能な値をいくつか試してみたところ、映像がでない、mplayerが「予期せぬエラー」で落ちる、映像はでるがチラつきがみられるもの、といくつかのパターンがあった。
totemとparole(XFCE標準)だとこの問題は起きていないので、ビデオ出力がどうなってるのか調べたかったが、「totem --help」でオプションを調べても分からない。
smplayerの設定画面で見ると「X11」は「X11(低速)」と表記されているので、再生品質に影響しそうだが、見てわかるほどの違いはなかったので、しばらくこれで様子をみる。