① Linux中unzip解壓時中文亂碼如何解決
更改源碼解決亂碼
調試發現問題出現在MultiByteToWideChar方法里,
如 MultiByteToWideChar(CP_ACP,0,fn,-1,tfn,MAX_PATH); 到這里時fn中的name屬性值還是正常的,在這個方法內部執行完tfn就亂了。
解決方法:
打開unzip.cpp源文件,找到函數
ZRESULT TUnzip::Get(int index,ZIPENTRY *ze)
{ // ......
// ......} 12345
這個函數里有
#ifdef UNICODE
MultiByteToWideChar(CP_UTF8,0,fn,-1,tfn,MAX_PATH);#else
strcpy(tfn,fn);#endif12345
把 CP_UTF8 改為CP_ACP, ( CP_ACP 指示要使用當前設置的 API 默認 Windows ANSI 代碼頁)
重新編譯後
這樣就解決了解壓中文文件名稱亂碼的問題
編譯時解決源碼問題(無需更改源碼)
上面的情況,我們我觀察到unzip源代碼這段開始的地方有判斷
#ifndef Ext_ASCII_TO_Native 1
這樣問題似乎更簡單了,不用改源代碼,只需在make時定義 Ext_ASCII_TO_Native 即可,這樣 Ext_ASCII_TO_Native 實際為一個空的宏,不進行任何轉換操作。
比如,使用下面的方法編譯
make -DExt_ASCII_TO_Native 1
或者在bash執行下面兩行
export LOCAL_UNZIP=-DExt_ASCII_TO_Native
make12
unzip解壓縮含中文文件名zip包是出現亂碼的問題解決!
如果您的系統已經安裝了unzip
方法一 unzip行命令解壓,指定字元集
通過unzip行命令解壓,指定字元集
unzip -O CP936 xxx.zip (用GBK, GB18030也可以)1
方法二 在環境變數中,指定unzip參數
在環境變數中,指定unzip參數,總是以指定的字元集顯示和解壓文件
/etc/environment中加入2行
UNZIP=」-O CP936″
ZIPINFO=」-O CP936″12
方法三 利用pyton來處理
復制以下內容(python)保存未myuzip.py文件腳本,並修改運行許可權為可運行(chmod +x uzip)
#!/usr/bin/env python# -*- coding: utf-8 -*-# uzip.pyimport osimport sysimport zipfileprint "Processing File " + sys.argv[1]
file=zipfile.ZipFile(sys.argv[1],"r");for name in file.namelist():
utf8name=name.decode('gbk') print "Extracting " + utf8name
pathname = os.path.dirname(utf8name) if not os.path.exists(pathname) and pathname!= "":
os.makedirs(pathname)
data = file.read(name) if not os.path.exists(utf8name):
fo = open(utf8name, "w")
fo.write(data)
fo.close
file.close()
這樣以後我們解壓縮時只需要運行此文件即可
./myuzip.py xxxx.zip
② 怎麼用DOS命令攻擊
DoS具有代表性的攻擊手段包括PingofDeathdos攻擊快閃族、TearDrop、UDPflood、SYNflood、LandAttack、IPSpoofingDoS等。
具體DoS攻擊方法很多,但大多都可以分為以下幾類:
利用軟體實現的缺陷
OOB攻擊(常用工具winnuke),teardrop攻擊(常用工具teardrop.cboink.cbonk.c),lan
軟體主流程圖
d攻擊,IGMP碎片包攻擊,jolt攻擊,Cisco2600路由器IOSversion12.0(10)遠程拒絕服務攻擊等等,這些攻擊都是利用了被攻擊軟體的實現上的缺陷完成DoS攻擊的。通常這些攻擊工具向被攻擊系統發送特定類型的一個或多個報文,這些攻擊通常都是致命的,一般都是一擊致死,而且很多攻擊是可以偽造源地址的,所以即使通過IDS或者別的sniffer軟體記錄到攻擊報文也不能找到誰發動的攻擊,而且此類型的攻擊多是特定類型的幾個報文,非常短暫的少量的報文,如果偽造源IP地址的話,使追查工作幾乎是不可能。
那麼如何造成這些攻擊的?通常是軟體開發過程中對某種特定類型的報文、或請求沒有處理,導致軟體遇到這種類型的報文運行出現異常,導致軟體崩潰甚至系統崩潰。下面結合幾個具體實例解釋一下這種攻擊的成因。
1997年5月7號有人發布了一個winnuke.c。首先建立一條到Win95/NT主機的TCP連接,然後發送TCP緊急數據,導致對端系統崩潰。139/TCP是Win95/NT系統最常見的偵聽埠,所以winnuke.c使用了該埠。之所以稱呼這種攻擊為OOB攻擊,因為MSG_OOB標志,實際應該是TCP緊急數據攻擊。
原始teardrop.c只構造了兩種碎片包,每次同時發送這兩種UDP碎片包。如果指定發送次數,將完全重復先前所發送出去的兩種碎片包。它可以偽造源ip並跨越路由器進行遠程攻擊,影響的系統包括Linux/WinNT/Win95。使用的方法是:
teardrop源ip目的ip[-s源埠][-d目的埠][-n次數]
比較新的一個DoS攻擊是Windows的SMB實現中的DoS攻擊,2002年8月發布,只要允許匿名連接的windows系統就可以進行遠程攻擊,強烈建議Windows用戶打相應的補丁。它的方法就是先和目標系統建立一個連接,然後發送一個特定的請求,目標系統就會蘭屏。發布的測試工具SMBdie.exe是圖形界面工具,輸入目標地址NETBIOS名稱即可。
從上面的討論可以看出,這種攻擊行為威力很大,而且難於偵察。但真實情況下它的危害僅現於漏洞發布後的不長的時間段內,相關廠商會很快發布補丁修補這種漏洞。所以上面提到的幾種較老的攻擊在現實的環境中,通常是無效的。不過最新的攻擊方法還是讓我們不寒而慄,我們可以做的就是關注安全漏洞的發布,及時打上新的補丁。如果你想偷懶的話,購買專業安全服務公司的相關服務應該是個更好的選擇。
利用協議的漏洞
如果說上面那種漏洞危害的時間不是很長,那麼這種攻擊的生存能力卻非常強。為了能夠在網路上進行互通、互聯,所有的軟體實現都必須遵循既有的協議,而如果這種協議存在漏洞的話,所有遵循此協議的軟體都會受到影響。
最經典的攻擊是synflood攻擊,它利用TCP/IP協議的漏洞完成攻擊。通常一次TCP連接的建立包括3個步驟,客戶端發送SYN包給伺服器端,伺服器分配一定的資源給這里連接並返回SYN/ACK包,並等待連接建立的最後的ACK包,最後客戶端發送ACK報文,這樣兩者之間的連接建立起來,並可以通過連接傳送數據了。而攻擊的過程就是瘋狂發送SYN報文,而不返回ACK報文,伺服器佔用過多資源,而導致系統資源佔用過多,沒有能力響應別的操作,或者不能響應正常的網路請求。
這個攻擊是經典的以小搏大的攻擊,自己使用少量資源佔用對方大量資源。一台P4的Linux系統大約能發到30-40M的64位元組的synflood報文,而一台普通的伺服器20M的流量就基本沒有任何響應了(包括滑鼠、鍵盤)。而且synflood不僅可以遠程進行,而且可以偽造源IP地址,給追查造成很大困難,要查找必須所有骨幹網路運營商,一級一級路由器的向上查找。
對於偽造源IP的synflood攻擊,除非攻擊者和被攻擊的系統之間所有的路由器的管理者都配合查找,否則很難追查。當前一些防火牆產品聲稱有抗DoS的能力,但通常他們能力有限,包括國外的硬體防火牆大多100M防火牆的抗synflood的能力只有20-30Mbps(64位元組syn包),這里涉及到它們對小報文的轉發能力,再大的流量甚至能把防火牆打死機。有些安全廠商認識到DoS攻擊的危害,開始研發專用的抗拒絕服務產品。
由於TCP/IP協議相信報文的源地址,另一種攻擊方式是反射拒絕服務攻擊,另外可以利用還有廣播地址,和組播協議輔助反射拒絕服務攻擊效果更好。不過大多數路由器都禁止廣播地址和組播協議的地址。
另一類攻擊方式是使用大量符合協議的正常服務請求,由於每個請求耗費很大系統資源,導致正常服務請求不能成功。如HTTP協議是無狀態協議,攻擊者構造大量搜索請求,這些請求耗費大量伺服器資源,導致DoS。這種方式攻擊比較好處理,由於是正常請求,暴露了正常的源IP地址,禁止這些IP就可以了。
進行資源比拼
這種攻擊方式屬於無賴打法,我憑借著手中的資源豐富,發送大量的垃圾數據侵佔完你的資源,導致DoS。比如,ICMPflood,mstreamflood,Connectionflood。為了獲得比目標系統更多資源,通常攻擊者會發動DDoS(DistributedDos分布式拒絕服務)攻擊者控制多個攻擊傀儡發動攻擊,這樣才能產生預期的效果。前兩類攻擊是可以偽造IP地址的,追查也是非常困難,第3種攻擊由於需要建立連接,可能會暴露攻擊傀儡的IP地址,通過防火牆禁止這些IP就可以了。對於難於追查,禁止的攻擊行為,我們只能期望專用的抗拒絕服務產品了。
攻擊程序
smurf、trinoo、tfn、tfn2k以及stacheldraht是比較常見的DoS攻擊程序,本文將對它們的原理以及抵禦措施進行論述,以幫助管理員有效地抵禦DoS風暴攻擊,維護站點安全。
③ 在單片機中,RET和RETI分別是什麼返回指令
在單片機中返回指令有RET、RETI或者跳轉指令SJMP或LJMP。
RET是一般子程序返回指令,執行該指令,會自動彈出被保護的地址給PC指針。
RETI是中斷服務程序返回指令,執行該指令,除了彈出被保護的地址指針給PC外,還會恢復影響中斷的一些標志位,比如定時器中斷的TFn標志。
④ TFN是什麼葯
1、TFN不是葯,而是一個多義詞;
2、TFN簇群式DOS攻擊一組進行各種DDoS攻擊的計算機程序,如ICMP泛洪攻擊、SYN泛洪攻擊、UDP泛洪攻擊和smurf攻擊;
3、TFN被認為是當今功能最強性能最好的DoS攻擊工具,幾乎不可能被察覺。
(4)tfn命令擴展閱讀:
TFN使用了分布式客戶伺服器功能,加密技術及其它類的功能,它能被用於控制任意數量的遠程機器,以產生隨機匿名的拒絕服務攻擊和遠程訪問。
客戶端用於聯系伺服器端,可以改變伺服器端的配置,衍生一個shell,控制攻擊許多其它的機器。你可以tfn-ffile從一個主機名文件讀取主機名,也可以使用tfn-hhostname聯系一個伺服器端。預設的命令是通過殺死所有的子線程停止攻擊。
參考資料來源:網路-tfn