lnk

lnk

lnk檔案是用於指向其他檔案的一種檔案。 這些檔案通常稱為捷徑檔案,通常它以捷徑放在硬碟上,以方便使用者快速的調用。

基本介紹

  • 中文名:lnk
  • 指向:其他檔案的一種檔案
  • 稱為捷徑檔案
  • 安裝:Windows補丁程式
相關信息,Windows,修複方法,漏洞,lnk病毒,處理方法,

相關信息

Windows

windows的很多lnk檔案(也就是捷徑)都是帶有參數的。
/play—在打開連線後自動運行媒體檔案
"%1" —打開連線後自動出現檔案選取框選擇檔案
/Play "%L" —打開winamp後自動出現List選擇框選擇檔案播放列表
“.lnk”是WINDOWS系統默認的捷徑的擴展名,如果“資料夾選項”下設定為“隱藏已知檔案類型的擴展名”,正常情況下“.lnk”是不顯示的。你的捷徑的擴展名顯現出來,證明WINDOWS設定被中斷,捷徑為不可識別信息。

修複方法

(1)點擊“開始”→“運行”,鍵入“cmd”,進入命令提示符狀態,用鍵盤敲入assoc.lnk=lnkfile(中間無空格),按回車即可。
操作失誤:如果修改捷徑之後,反而是成了這個模樣,那一定是命令有誤,或者沒有注意最後不能有空格的提示,只要重新輸入正確的修復捷徑的命令即可。這時不要懷疑命令的正確性,只是多了一個空格而已。繼續在命令提示符視窗中按一下F3鍵(這樣會自動去除多餘的空格),回車執行命令就好了。
lnk
(2)點擊“開始”→“運行”,鍵入“regedit”,進入註冊表,搜尋“HKEY_LOCAL_MACHINE\SOFTWARE\CLASSES\”下的“.lnk”鍵,修改其值為“lnkfile”,保存即可。
兩種辦法本質一樣,如果你不懂註冊表建議採用第一種方法
______________________________________
WIN7系統電腦除了計算機,網路,資源回收筒以外的圖示都變成後綴為lnk的檔案了,也就是打開捷徑 的時候用別的程式打開後所有捷徑都變化的情況。
步驟1:Windows vista\Windows 7 作業系統修複方法.......1、首先 win開始鍵+r 2、打開運行程式 3、輸入: regedit 4、找到: 計算機\HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\currentversion\Explorer\FileExts\.lnk會發現有openwithlist 和 openwithprogids 兩項,如果有其他的選項將其刪除5、再將openwithlist 內的除默認以外的所有鍵值都刪除6、將openwithprogids內的除默認和lnkfile以外的所有鍵值都刪除.7、保存退出即可。
如何通過lnk檔案獲取該檔案的執行路徑和程式
function LinkFileInfo(const lnkFileName:string;var info:LINK_FILE_INFO;const bSet:boolean):boolean;
var
hr:hresult;
psl:IShelllink;
wfd:win32_find_data;
ppf:IPersistFile;
lpw:pwidechar;
buf:pwidechar;
begin
result:=false;
getmem(buf,MAX_PATH);
try
if SUCCEEDED(CoInitialize(nil)) then
if (succeeded(cocreateinstance(clsid_shelllink,nil,clsctx_inproc_server,IID_IShellLinkA,psl))) then
begin
hr:=psl.QueryInterface(iPersistFile,ppf);
if succeeded(hr) then
begin
lpw:=stringtowidechar(lnkfilename,buf,MAX_PATH);
hr := ppf.Load(lpw, STGM_READ);
if succeeded(hr) then
begin
hr := psl.Resolve(0, SLR_NO_UI);
if succeeded(hr) then
begin
if bSet then
begin
psl.SetArguments(info.Arguments);
psl.SetDescription(info.Description);
psl.SetHotkey(info.HotKey);
psl.SetIconLocation(info.IconLocation,info.IconIndex);
psl.SetIDList(info.ItemIDList);
psl.SetPath(info.FileName);
psl.SetShowCmd(info.ShowState);
psl.SetRelativePath(info.RelativePath,0);
psl.SetWorkingDirectory(info.WorkDirectory);
if succeeded(psl.Resolve(0,SLR_UPDATE)) then
result:=true;
end
else
begin
psl.GetPath(info.FileName,MAX_PATH, wfd,SLGP_SHORTPATH );
psl.GetIconLocation(info.IconLocation,MAX_PATH,info.IconIndex);
psl.GetWorkingDirectory(info.WorkDirectory,MAX_PATH);
psl.GetDescription(info.Description,CCH_MAXNAME);
psl.GetArguments(info.Arguments,MAX_PATH);
psl.GetHotkey(info.HotKey);
psl.GetIDList(info.ItemIDList);
psl.GetShowCmd(info.ShowState);
result:=true;
end;
end;
end;
end;
end;
finally
freemem(buf);
end;
end;
//*******************調用*****************
showmessage(\'FileName:\'+info.filename+#13+\'Description:\'+info.Description+#13+\'IconFilename:\'+info.IconLocation+\',\'+inttostr(info.IconIndex)+
#13+\'WordDir:\'+info.WorkDirectory+#13+\'Arguments:\'+info.Arguments+#13+\'ShorCuts:\'+shortcuttotext(s));
info.WorkDirectory:=\'D:\\Borland\\Delphi5\\projects\';
linkfileinfo(opendialog1.filename,info,true);
end;
end;
==============================================
function GetLinkFileName(sLinkFileName: string; var sTargetFileName: string): boolean;
var
psl: IShellLink;
ppf: IPersistFile;
hres, nLen: integer;
pfd: TWin32FindData;
pTargetFile: PChar;
pwLinkFileName: PWideChar;
begin
Result := false;
if SUCCEEDED(CoInitialize(nil)) then
begin
CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IID_IShellLinkA, psl);
if (SUCCEEDED(hres)) then
begin
hres := psl.QueryInterface(IID_IPersistFile, ppf);
if (SUCCEEDED(hres)) then
begin
nLen := MultiByteToWideChar(CP_ACP, 0, PChar(sLinkFileName), -1, pwLinkFileName, 0);
GetMem(pwLinkFileName, nLen);
ZeroMemory(pwLinkFileName, nLen);
MultiByteToWideChar(CP_ACP, 0, PChar(sLinkFileName), -1, pwLinkFileName, nLen);
ppf.Load(pwLinkFileName, STGM_READ);
GetMem(pTargetFile, MAX_PATH);
ZeroMemory(pTargetFile, MAX_PATH);
hres := psl.GetPath(pTargetFile, MAX_PATH, pfd, SLGP_UNCPRIORITY );
if (SUCCEEDED(hres)) then
begin
sTargetFileName := StrPas(pTargetFile);
Result := true;
end;
FreeMem(pTargetFile);
FreeMem(pwLinkFileName);
end;
end;
end;
end;

漏洞

2010年7月16日,Windows捷徑自動執行0day漏洞[CVE-2010-2568](微軟安全知識庫編 號2286198)被披露,很快網上已經可以找到利用這個漏洞攻擊的樣本。利用Windows捷徑自動執行0day漏洞可以做到:看一眼惡意軟體就中 毒,而根本不需要去執行它。金山毒霸安全實驗室預計在未來一段時間,這個漏洞將會被廣泛使用,網民須高度重視。
攻擊者利用Windows捷徑自動執行0day漏洞,可以製作一個特殊的lnk檔案(LNK是捷徑檔案的擴展名),當Windows解析這個 LNK檔案時,會自動執行指定的惡意程式。這個漏洞最佳利用通道是隨身碟、移動硬碟、數碼存儲卡,也可以是本地磁碟或網路已分享檔案夾,當隨身碟或網路已分享檔案 夾存在這樣的攻擊程式時,只需要使用資源管理器,或與資源管理器類似的應用程式查看這個資料夾,不需要手動運行病毒程式,病毒自己就會觸發。
這個漏洞最令人吃驚的地方在於,“不需要雙擊病毒檔案,僅看一眼檔案圖示就中毒”。幾年前,曾經有個叫“新歡樂時光 (VBS.KJ)”的病毒廣為流傳,VBS.KJ病毒會在每個資料夾下生成desktop.ini和folder.htt檔案(這兩個檔案控制了資料夾在 資源管理器中的顯示)。只要打開被病毒修改過的含有desktop.ini和folder.htt的資料夾,不需要雙擊病毒,看一眼就中毒。現在和新歡樂 時光傳播類似的病毒將要出現了,儘管我們現在還沒有看到很多病毒作者利用Windows捷徑漏洞傳播,但相信這種病毒攻擊一定會有。
Windows捷徑自動執行0day漏洞存在所有流行的Windows版本,包括尚未公開發布的Windows 7 SP1 beta和Windows 2008 R2 SP1 beta。意味著,這個風險幾乎遍布所有安裝了Windows的電腦。
防止這個漏洞被利用,微軟方面提供了幾個暫時緩解的方案
1.關閉捷徑圖示的顯示,不過這會讓Windows界面變得奇醜,因為一個個漂亮的桌面圖示和開始選單圖示全都不顯示了。
2.建議企業用戶關閉WebClient服務,個人用戶(一般不使用網路共享資源)可以不必考慮這個問題。
3.關閉隨身碟自動播放可以避免插上隨身碟的動作就中毒,只有手動查看資料夾才有風險。
4.以受限用戶許可權運行計算機可以降低風險
對於喜歡使用各種Windows美化版的用戶來說,可能麻煩更大一些,這些美化版大都修改了shell32.dll,針對這個Windows 捷徑自動執行0day漏洞的修補程式,可能去修補shell32.dll,可能會讓這些美化版出現一些問題。倘若這些真的發生了,那些使用美化版的盜 版Windows用戶也許會拒絕這個重要的安全補丁,從而加劇利用此漏洞的病毒傳播。
這是一個需要安全廠商和所有消費者高度關注的安全漏洞,希望微軟能在下一個例行補丁日到來之前提供應急補丁。金山毒霸安全實驗室提供以下臨時的緊急解決方案:
1.根本上解決,必須安裝Windows補丁程式。待微軟官方更新之後,用戶須立即使用金山衛士或Windows Update安裝補丁。
2.臨時解決辦法:安裝金山網盾,升級後,獲得對lnk漏洞(捷徑漏洞)的免疫能力。
3.安裝金山毒霸2011安全套裝,檢查隨身碟存儲的檔案,及時清理隨身碟中的病毒。
4.網管宜加強區域網路共享許可權的管理,關閉不受控的完全共享,避免病毒檔案在區域網路已分享檔案夾中傳播。

lnk病毒

一打開程式,如ttplayer.exe,就會在程式目錄下及任務管理器中生成
lnk病毒lnk病毒
ttplayer.exe.lnk
ttplayer.exe.lnk.lnk
ttplayer.exe.lnk.lnk.lnk
ttplayer.exe.lnk.lnk.lnk.lnk
ttplayer.exe.lnk.lnk.lnk.lnk.lnk
……
重灌系統也沒用。

處理方法

這個是最新的lnk病毒,不同於之前的lnk捷徑病毒。
這個病毒有感染次數限制,忘了是18次還是14次了。第一次發現就不要操作了,否則很變態一個病毒。等著防毒軟體更新入庫吧。
臨時處理方法:
講最後的那個(也就是最長的那個)lnk,複製後保存。(很重要)
然後在任務管理器中將其他的(不包括最長那個)的那些lnk都終止進程。
然後將最後那個lnk改名,一定要改名。
然後使用金山網盾(百度搜尋“金山網盾”。第一個連結就是)
用裡面的一鍵修復功能處理之後重啟。

相關詞條

熱門詞條

聯絡我們