zcat *|perl -e 'while();
1. hello world!
還是從最經典的 hello,world! 開始......
# perl -e 'print "hello,world!/n"'
hello,world!
完全不出意料,他沒有任何歧異的終於我們願意的輸出了"hello,world!",自然得就像我麼用echo或
printf()一樣。
這個程式按照傳統形態展開的話是這樣:
#!/usr/bin/perl
print "hello,world!/n";
我們在命令列上使用了perl 的-e引數,這將使perl把-e之後直接跟著的字串當作perl的程式自動內建
展開執行,免去了我們用vi或cat重寫檔案之苦。
-e引數的功能,就是自動把之後的字串作為程式主題執行,再之後的引數將作為perl指令碼的命令列
引數($argc 和 @argv)傳遞給程式語句。
2. 我要cat。
hello,world!看似完全沒有作用,其實我們可以豐富它,用它來完成任何工作--只要你的想象力夠豐富。
perl世界裡很有名的乙個專案就是ppt( power perl tools),用純perl重新實現了所有unix常用命令。
我們來看乙個最簡單的cat。
# perl -pe 1 /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.3 vi
就如同cat一樣,這行命令原樣的輸出了/etc/hosts檔案。我們來看看它實際做了些什麼:
#!/usr/bin/perl
for(@argv)}'
# 破解6位數字和6位字元以內簡單密碼的使用者
最後看看結果:
# perl -e '(""eq$c&&print"$u = [null]")||(crypt($u,$c)eq$c&&print"$u = $u/n")while($u,$c)=getpwent'
demo02 = demo02
demo03 = [null]
#perl -nle 'setpwent;(""eq$c&&print"$u = [null]")||(crypt($_,$c)eq$c&&print"$u = $_")while($u,$c)=getpwent'
p09uest
elly = p09uest
demo03 = [null]
# time perl -e 'while(($u,$c)=getpwent)}'
demo01 abc
real 0m48.714s
user 0m48.660s
sys 0m0.060s
第一行,是******版本,解出了兩個簡單使用者口令;
第二行,使互動式版本,根據使用者輸入進行解密;
第三行,窮舉版本...時間會比較長一點點哦,des加密破解速率大概在每秒數萬到數十萬個,md5破解速率
就只有數千個了。所以在bsd和linux等使用md5的平台上速度會大大慢於aix或hp-ux等商密出口限制平台。
還有點點小缺陷,就是使用a..zzzz,0..9999得出的字典集合,只是相應位數的純數字或純字母集合,不包括
混雜型別和特殊字元的。
不過這行程式用於簡單的使用者口令強度驗證時應該足夠了吧,最大的優點,一不許要編譯,二支援跨平台和
多種加密演算法的哦:p
在aix(des 56),linux(des 40),linux(md5 128),freebsd(md5 128)上測試通過,不過很不幸在hp-ux
上perl的getpwent是取不到passwd值的,也許perl不支援hp-ux上的tcb格式存放的shadow密碼吧。
mysql 匯出一句話 MySQL 匯出一句話
drop table if exists temp 如果存在temp就刪掉 create table temp cmd text not null 建立temp表,裡面就乙個cmd欄位 insert into temp cmd values php eval post cmd 把一句話木馬插入到te...
一句話提醒
1 在c 中,父窗體要訪問子窗體變數,需將子窗體變數設為public才能訪問。2 每 5 秒重新整理頁面 5 秒後重定向頁面 3 block 此元素將顯示為塊級元素,此元素前後會帶有換行符。inline 預設。此元素會被顯示為內聯元素,元素前後沒有換行符。4 document.getelementb...
一句話命令
bash 型別 wget r nc np 分片20m 上傳 bypy vvv s 20m upload mac下檢視埠占用 nettop nm tcp brew brew uninstall zsh brew services list brew services start brew servic...