導航:首頁 > 編程語言 > wvt文件編程

wvt文件編程

發布時間:2023-01-14 04:43:05

⑴ 什麼是驅動軟體

  1. 驅動程序一般指的是設備驅動程序(Device Driver),是一種可以使計算機和設備通信的特殊程序。相當於硬體的介面,操作系統只有通過這個介面,才能控制硬體設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。因此,驅動程序被比作「 硬體的靈魂」、「硬體的主宰」、和「硬體和系統之間的橋梁」等。

  2. 驅動程序(Device Driver)全稱為「設備驅動程序」,是一種可以使計算機和設備通信的特殊程序,可以說相當於硬體的介面,操作系統只能通過這個介面,才能控制硬體設備的工作,假如某設備的驅動程序未能正確安裝,便不能正常工作。正因為這個原因,驅動程序在系統中的所佔的地位十分重要,一般當操作系統安裝完畢後,首要的便是安裝硬體設備的驅動程序。不過,大多數情況下,並不需要安裝所有硬體設備的驅動程序,例如硬碟、顯示器、光碟機等就不需要安裝驅動程序,而顯卡、音效卡、掃描儀、攝像頭、Modem等就需要安裝驅動程序。另外,不同版本的操作系統對硬體設備的支持也是不同的,一般情況下版本越高所支持的硬體設備也越多。

  3. 設備驅動程序用來將硬體本身的功能告訴操作系統,完成硬體設備電子信號與操作系統及軟體的高級編程語言之間的互相翻譯。當操作系統需要使用某個硬體時,比如:讓音效卡播放音樂,它會先發送相應指令到音效卡驅動程序,音效卡驅動程序接收到後,馬上將其翻譯成音效卡才能聽懂的電子信號命令,從而讓音效卡播放音樂。

  4. 所以簡單的說,驅動程序提供了硬體到操作系統的一個介面以及協調二者之間的關系,而因為驅動程序有如此重要的作用,所以人們都稱「驅動程序是硬體的靈魂」、「硬體的主宰」,同時驅動程序也被形象的稱為「硬體和系統之間的橋梁」。驅動程序即添加到操作系統中的一小塊代碼,其中包含有關硬體設備的信息。有了此信息,計算機就可以與設備進行通信。驅動程序是硬體廠商根據操作系統編寫的配置文件,可以說沒有驅動程序,計算機中的硬體就無法工作。操作系統不同,硬體的驅動程序也不同,各個硬體廠商為了保證硬體的兼容性及增強硬體的功能會不斷地升級驅動程序。如:Nvidia顯卡晶元公司平均每個月會升級顯卡驅動程序2-3次。驅動程序是硬體的一部分,當安裝新硬體時,驅動程序是一項不可或缺的重要元件。凡是安裝一個原本不屬於電腦中的硬體設備時,系統就會要求安裝驅動程序,將新的硬體與電腦系統連接起來。驅動程序扮演溝通的角色,把硬體的功能告訴電腦系統,並且也將系統的指令傳達給硬體,讓它開始工作。

  5. 驅動程序可以界定為官方正式版、微軟WHQL認證版、第三方驅動、發燒友修改版、Beta測試版。

    更多請參考:http://ke..com/link?url=QMwlS3U3IGbX9ZgYK_3Wg3CkwAET7A--hrhjIpqlmXSZARq


⑵ C語言實訓

/*8、學生成績管理系統
學生屬性:學號,姓名,入學年月,有成績的學期數,四門課的成績等9個成員,
在編程中要求當執行狀態輸入i為輸入學生記錄,輸入D為刪除,輸入s為查詢(以學號為查詢條件,輸入p為將整個學生記錄輸出,使用結構數組或結構指針編程)
*/
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#include "string.h"
#include "windows.h"

int stu_num=0; //全局變數,已輸入成績的學生人數

struct student //結構體數組,用於儲存學生的數據
{
char num[11]; //儲存學號
char name[11]; //儲存名字
char sex[3]; //儲存性別
char date[11]; //儲存入學年月
int term; //儲存學期數
float score1; //儲存成績1
float score2; //儲存成績2
float score3; //儲存成績3
float score4; //儲存成績4
}student[100];

void warning() //警告函數
{
char a;
printf("您所查找的學生暫無數據,按任意鍵返回重新輸入");
a=getch(); //儲存任意鍵
}

void input() //輸入函數
{
char a;
do
{
system("cls");
printf("(i)輸入學生數據\n(e)返回主菜單\n請輸入您要執行的選項:");
a=getch(); //獲取輸入選項
if(a=='i'||a=='I') //輸入學生數據
{
system("cls"); //清屏函數
printf("下面輸入第%d個學生的數據\n學號:",stu_num+1); //以下操作儲存學生數據於結構體中
scanf("%s",&student[stu_num].num);
printf("姓名:");
scanf("%s",&student[stu_num].name);
printf("性別:");
scanf("%s",&student[stu_num].sex);
printf("入學年月:");
scanf("%s",&student[stu_num].date);
printf("學期:");
scanf("%d",&student[stu_num].term);
printf("成績1:");
scanf("%f",&student[stu_num].score1);
printf("成績2:");
scanf("%f",&student[stu_num].score2);
printf("成績3:");
scanf("%f",&student[stu_num].score3);
printf("成績4:");
scanf("%f",&student[stu_num].score4);
stu_num++;
}
if(a=='e'||a=='E') //退出輸入函數
{
break; //強制結束循環以退出輸入函數
}
}while(1);
}

void output() //輸出函數
{
system("cls"); //清屏函數
int i,j;
printf("學號\t 姓名 性別 入學年月 學期 成績1 成績2 成績3 成績4\n");
for(i=0;i<stu_num;i++) //通過for語句逐個輸出學生數據
{
printf("%-12s%-8s%-8s%-10s%-6d%-8.2f%-8.2f%-8.2f%-5.2f\n",student[i].num,student[i].name,student[i].sex,student[i].date,student[i].term,student[i].score1,student[i].score2,student[i].score3,student[i].score4);
}
printf("按任意鍵返回主菜單");
j=getch(); //儲存任意鍵
}

void revise() //修改函數
{
int i=0;
char a,num[11],name[11];
st: system("cls"); //清屏函數
printf("(x)按學號查找修改\n(m)按名字查找修改\n(e)返回主菜單\n請輸入您要執行的選項:");
a=getch(); //獲取輸入選項
if(a=='x'||a=='X') //按學號查找
{
printf("請輸入該學生學號:");
scanf("%s",&num); //輸入查找數據並用for語句進行逐個對比
for(i=0;i<stu_num;i++)
{
if(strcmp(num,student[i].num)==0)
{
break; //找到後結束循環
}
}
}
else if(a=='m'||a=='M') //按姓名查找
{
printf("請輸入該學生姓名:");
scanf("%s",&name); //輸入查找數據並用for語句進行逐個對比
for(i=0;i<stu_num;i++)
{
if(strcmp(name,student[i].name)==0)
{
break; //找到後結束循環
}
}
}
else if(a=='e'||a=='E') //退出修改函數
{
return;
}
else //為了防止選錯選項
{
goto st;
}
if(i==stu_num) //未找到學生數據時提示警告並重新查找
{
warning();
goto st;
}
system("cls");
printf("您要更改的學生的信息為:\n"); //輸出欲修改的學生信息
printf("學號\t 姓名 性別 入學年月 學期 成績1 成績2 成績3 成績4\n");
printf("%-12s%-8s%-8s%-10s%-6d%-8.2f%-8.2f%-8.2f%-5.2f\n",student[i].num,student[i].name,student[i].sex,student[i].date,student[i].term,student[i].score1,student[i].score2,student[i].score3,student[i].score4);
printf("請更新該學生的數據\n學號:"); //找到後進行數據更新
scanf("%s",&student[i].num);
printf("姓名:");
scanf("%s",&student[i].name);
printf("性別:");
scanf("%s",&student[i].sex);
printf("入學年月:");
scanf("%s",&student[i].date);
printf("學期:");
scanf("%d",&student[i].term);
printf("成績1:");
scanf("%f",&student[i].score1);
printf("成績2:");
scanf("%f",&student[i].score2);
printf("成績3:");
scanf("%f",&student[i].score3);
printf("成績4:");
scanf("%f",&student[i].score4);
printf("該學生數據已修改,按任意鍵返回");
a=getch(); //儲存任意鍵
}

void search() //查詢函數
{
int i=0;
char a,num[11],name[11];
st: system("cls"); //清屏函數
printf("(x)按學號查找\n(m)按名字查找\n(e)返回主菜單\n請輸入您要執行的選項:");
a=getch(); //獲取輸入選項
if(a=='x'||a=='X') //按學號查找
{
printf("請輸入該學生學號:");
scanf("%s",&num); //輸入查找數據並用for語句進行逐個對比
for(i=0;i<stu_num;i++)
{
if(strcmp(num,student[i].num)==0)
{
break; //找到後結束循環
}
}
}
else if(a=='m'||a=='M') //按姓名查找
{
printf("請輸入該學生姓名:");
scanf("%s",&name); //輸入查找數據並用for語句進行逐個對比
for(i=0;i<stu_num;i++)
{
if(strcmp(name,student[i].name)==0)
{
break; //找到後結束循環
}
}
}
else if(a=='e'||a=='E') //退出查詢函數
{
return;
}
else //為了防止選錯選項
{
goto st;
}
if(i==stu_num) //未找到學生數據時提示警告並重新查找
{
warning();
goto st;
}
printf("學號\t 姓名 性別 入學年月 學期 成績1 成績2 成績3 成績4\n");
printf("%-12s%-8s%-8s%-10s%-6d%-8.2f%-8.2f%-8.2f%-5.2f\n",student[i].num,student[i].name,student[i].sex,student[i].date,student[i].term,student[i].score1,student[i].score2,student[i].score3,student[i].score4);
printf("按任意鍵返回主菜單");
a=getch();
}

void del() //刪除函數
{
int i=0,j;
char a,num[11],name[11];
st: system("cls"); //清屏函數
printf("(x)按學號查找刪除\n(m)按名字查找刪除\n(e)返回主菜單\n請輸入您要執行的選項:");
a=getch(); //獲取輸入選項
if(a=='x'||a=='X') //按學號查找
{
printf("請輸入該學生學號:");
scanf("%s",&num); //輸入查找數據並用for語句進行逐個對比
for(i=0;i<stu_num;i++)
{
if(strcmp(num,student[i].num)==0)
{
break; //找到後結束循環
}
}
}
else if(a=='m'||a=='M') //按姓名查找
{
printf("請輸入該學生姓名:");
scanf("%s",&name); //輸入查找數據並用for語句進行逐個對比
for(i=0;i<stu_num;i++)
{
if(strcmp(name,student[i].name)==0)
{
break; //找到後結束循環
}
}
}
else if(a=='e'||a=='E') //退出刪除函數
{
return;
}
else
{
goto st; //為了防止選錯選項
}
if(i==stu_num) //未找到學生數據時提示警告並重新查找
{
warning();
goto st;
}
for(j=i;j<stu_num;j++) //通過for語句進行數據覆蓋實現刪除學生數據
{
student[j]=student[j+1];
}
stu_num-=1;
printf("該學生數據已刪除,按任意鍵返回主菜單");
a=getch();
}

void menu() //目錄函數
{
do
{
char a;
st: system("cls"); //清屏函數
printf("\t\t 歡迎使用學生成績管理系統 1.22版\n\n\n\t\t\t(i)輸入學生數據\n\n\t\t\t(d)刪除學生數據\n\n\t\t\t(o)查看學生數據\n\n\t\t\t(s)查詢學生數據\n\n\t\t\t(r)修改學生數據\n\n\t\t\t(e)退出系統\n\n\n請輸入您要執行的選項:"); //主菜單
a=getch(); //獲取輸入選項
switch(a)
{
case 'i': //進入輸入函數
case 'I':
input();
break;
case 'o': //進入輸出函數
case 'O':
output();
break;
case 'r': //進入修改函數
case 'R':
revise();
break;
case 'd': //進入刪除函數
case 'D':
del();
break;
case 's': //進入查找函數
case 'S':
search();
break;
case 'e': //退出程序
case 'E':
return;
default: //為了防止選錯選項
goto st;
}
}while(1);

}

void main()
{
printf("組員:\n李東海 陳志銳\n凌華富 林繼其\n杜德偉 鍾鵬琿\n\n\n\n\t\t請稍後……"); //鳴謝欄
Sleep(7000);
menu();
}

這個是我們幾個人做的期末作業,你可以拿去參考;如果windows函數不能用,就把他刪除掉還有sleep這個也一起刪除掉。

⑶ C#如何驗證一個PE文件的數字簽名是否正確

和網上大量的討論如何製作數字簽名和驗證數字簽名的文章本同,本文使用微軟自帶的API進行PE文件數字簽名有效性的驗證,使用語言C#。
我們可以在windows系統下直接右鍵查看某個PE文件數字簽名的有效性,如下圖:
這讓我們想到,微軟必然自帶了對PE文件數字簽名的驗證辦法,經過查找資料,確定其來自下圖所示的dll文件里的WinVerifyTrust函數。
該函數在C#里的調用原型如下:
C#

[DllImport("wintrust.dll", PreserveSig = true, SetLastError = false)]
private static extern uint WinVerifyTrust(IntPtr hWnd, IntPtr pgActionID, IntPtr pWinTrustData);

關於這個函數的使用,可以查看MSDN上的說明 。
(2) 構建將要用到的數據結構
根據微軟官方材料,我們在使用這個函數前還得先准備幾個數據結構:

using System;
using System.Runtime.InteropServices;

namespace VerifyDigitalSignature
{
public enum AllocMethod
{
HGlobal,
CoTaskMem
}

public enum UnionChoice
{
File = 1,
Catalog,
Blob,
Signer,
Cert
}

public enum UiChoice
{
All = 1,
NoUI,
NoBad,
NoGood
}

public enum RevocationCheckFlags
{
None = 0,
WholeChain
}

public enum StateAction
{
Ignore = 0,
Verify,
Close,
AutoCache,
AutoCacheFlush
}

public enum TrustProviderFlags
{
UseIE4Trust = 1,
NoIE4Chain = 2,
NoPolicyUsage = 4,
RevocationCheckNone = 16,
RevocationCheckEndCert = 32,
RevocationCheckChain = 64,
= 128,
Safer = 256,
HashOnly = 512,
UseDefaultOSVerCheck = 1024,
LifetimeSigning = 2048
}

public enum UIContext
{
Execute = 0,
Install
}

#region UnmanagedPointer class

internal sealed class UnmanagedPointer : IDisposable
{
private IntPtr m_ptr;
private AllocMethod m_meth;

internal UnmanagedPointer( IntPtr ptr, AllocMethod method )
{
m_meth = method;
m_ptr = ptr;
}

~UnmanagedPointer()
{
Dispose( false );
}

#region IDisposable Members

private void Dispose( bool disposing )
{
if ( m_ptr != IntPtr.Zero )
{
if ( m_meth == AllocMethod.HGlobal )
{
Marshal.FreeHGlobal( m_ptr );
}
else if ( m_meth == AllocMethod.CoTaskMem )
{
Marshal.FreeCoTaskMem( m_ptr );
}

m_ptr = IntPtr.Zero;
}

if ( disposing )
{
GC.SuppressFinalize( this );
}
}

public void Dispose()
{
Dispose( true );
}

#endregion

public static implicit operator IntPtr( UnmanagedPointer ptr )
{
return ptr.m_ptr;
}
}

#endregion

internal struct WINTRUST_FILE_INFO : IDisposable
{
public WINTRUST_FILE_INFO( string fileName, Guid subject )
{
cbStruct = (uint)Marshal.SizeOf( typeof( WINTRUST_FILE_INFO ) );
pcwszFilePath = fileName;

if ( subject != Guid.Empty )
{
pgKnownSubject = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Guid ) ) );
Marshal.StructureToPtr( subject, pgKnownSubject, true );
}
else
{
pgKnownSubject = IntPtr.Zero;
}

hFile = IntPtr.Zero;
}

public uint cbStruct;
[MarshalAs( UnmanagedType.LPTStr )]
public string pcwszFilePath;
public IntPtr hFile;
public IntPtr pgKnownSubject;

#region IDisposable Members

public void Dispose()
{
Dispose( true );
}

private void Dispose( bool disposing )
{
if ( pgKnownSubject != IntPtr.Zero )
{
Marshal.DestroyStructure( this.pgKnownSubject, typeof( Guid ) );
Marshal.FreeHGlobal( this.pgKnownSubject );
}
}

#endregion
}

[StructLayout( LayoutKind.Sequential )]
internal struct WINTRUST_DATA : IDisposable
{
public WINTRUST_DATA( WINTRUST_FILE_INFO fileInfo )
{
this.cbStruct = (uint)Marshal.SizeOf( typeof( WINTRUST_DATA ) );
pInfoStruct = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( WINTRUST_FILE_INFO ) ) );
Marshal.StructureToPtr( fileInfo, pInfoStruct, true );
this.dwUnionChoice = UnionChoice.File;

pPolicyCallbackData = IntPtr.Zero;
pSIPCallbackData = IntPtr.Zero;

dwUIChoice = UiChoice.NoUI;
fdwRevocationChecks = RevocationCheckFlags.None;
dwStateAction = StateAction.Ignore;
hWVTStateData = IntPtr.Zero;
pwszURLReference = IntPtr.Zero;
dwProvFlags = TrustProviderFlags.Safer;

dwUIContext = UIContext.Execute;
}

public uint cbStruct;
public IntPtr pPolicyCallbackData;
public IntPtr pSIPCallbackData;
public UiChoice dwUIChoice;
public RevocationCheckFlags fdwRevocationChecks;
public UnionChoice dwUnionChoice;
public IntPtr pInfoStruct;
public StateAction dwStateAction;
public IntPtr hWVTStateData;
private IntPtr pwszURLReference;
public TrustProviderFlags dwProvFlags;
public UIContext dwUIContext;

#region IDisposable Members

public void Dispose()
{
Dispose( true );
}

private void Dispose( bool disposing )
{
if ( dwUnionChoice == UnionChoice.File )
{
//WINTRUST_FILE_INFO info = new WINTRUST_FILE_INFO();
//Marshal.PtrToStructure(pInfoStruct, info);
//info.Dispose();
Marshal.DestroyStructure( pInfoStruct, typeof( WINTRUST_FILE_INFO ) );
}

Marshal.FreeHGlobal( pInfoStruct );
}

#endregion
}
}

(3)構建我們的驗證類
Shell
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using Microsoft.Win32;

namespace VerifyDigitalSignature
{
public class Authentication
{
[DllImport( "wintrust.dll", PreserveSig = true, SetLastError = false )]
private static extern uint WinVerifyTrust( IntPtr hWnd, IntPtr pgActionID, IntPtr pWinTrustData );

private static List<Guid> GetTrustGuid()
{
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Providers\Trust\Initialization\
List<Guid> trustGuids = new List<Guid>();
RegistryKey hklm = Registry.LocalMachine;
RegistryKey initialization = hklm.OpenSubKey( @"SOFTWARE\Microsoft\Cryptography\Providers\Trust\Initialization" );
string[] guidNames = initialization.GetSubKeyNames();

foreach ( string guidName in guidNames )
{
trustGuids.Add( new Guid( guidName ) );
}

return trustGuids;
}

public static uint CSWinVerifyTrust( string fileName )
{
uint result = 1516356;

try
{
List<Guid> trustGuids = GetTrustGuid();

foreach ( Guid guid in trustGuids )
{
Guid wintrust_action_generic_verify_v2 = guid;

WINTRUST_FILE_INFO fileInfo = new WINTRUST_FILE_INFO( fileName, Guid.Empty );
WINTRUST_DATA data = new WINTRUST_DATA( fileInfo );
UnmanagedPointer guidPtr = new UnmanagedPointer( Marshal.AllocHGlobal( Marshal.SizeOf( typeof( Guid ) ) ), AllocMethod.HGlobal );
UnmanagedPointer wvtDataPtr = new UnmanagedPointer( Marshal.AllocHGlobal( Marshal.SizeOf( typeof( WINTRUST_DATA ) ) ), AllocMethod.HGlobal );

IntPtr pGuid = guidPtr;
IntPtr pData = wvtDataPtr;

Marshal.StructureToPtr( wintrust_action_generic_verify_v2, pGuid, true );
Marshal.StructureToPtr( data, pData, true );

result = WinVerifyTrust( IntPtr.Zero, pGuid, pData );

if ( result == 0 )
{
break;
}
}
}
catch ( Exception ex )
{
throw new Exception( "VerifyDigitalSignature error.", ex );
}

return result;
}
}
}

注意這里,WinVerifyTrust的返回值有多種,0表示數字簽名各項指標都是正常的,其他代碼我們下一部分再來討論。

⑷ auto病毒是什麼病毒呀,詳細點最後哦

AUTO病毒(auto專殺):AUTO病毒。該病毒的主要症狀:除系統盤外,其它盤滑鼠左鍵雙擊打不開,右鍵單擊打開菜單會出現一個OPEN的選項。每個盤都有兩個這樣的文件:autorun.inf 和 sxs.exe,當然可能有些人並不是sxs.exe,而是以其它命名的*.exe的文件。
該病毒是rose病毒的變種, rose病毒症狀:雙擊盤符無法打開,只能通過右鍵打開;幾天之後刪除系統NTDETECT.COM文件,導致系統無法啟動。
傳播途徑:U盤、MP3、移動硬碟可見,此毒不除,電腦玩完。一般的殺毒軟體基本只能查出來,但是都殺不了。

網上也講了許多方法,其中有兩種方法比較普遍:注冊表法和專殺工具法。注冊表法由於過於復雜,所以建議對注冊表知之甚少的朋友少用,搞不好毒殺不掉,反倒把自己的系統搞跨,實在不值得。當然就還有另外了一種方法專殺工具法,去網上找一個專殺工具,就可將其徹底殺掉。

現在網上主要的專殺工具有兩個:RavMonE Killer和江民的落雪專殺TrojanKiller。

下載地址:AUTO專殺工具RavMonE Killer

下載專殺工具.殺完之後,再重啟電腦,打開我的電腦,選中硬碟盤符,點右鍵選擇」打開「(千萬不能雙擊打開,否則木馬又會進行復制),"工具"-"文件夾選項"-"查看"-"顯示所有隱藏文件"讓隱藏文件顯示,找到該盤下的RavMonE.exe文件,autorun.inf文件,超級文本以fot開頭的文件,全部刪除.在確定沒有上述文件後,退出U盤,再插入檢查是否有"Auto「,如果沒有,則刪除成功.

下載地址:江民落雪專殺TrojanKiller

( 告訴大家比較簡單的用法 例如 你用的是 江民落雪專殺TrojanKiller 先下載,殺過之後再右擊重命名各個盤,就應該OK啦!!!
Auto病毒查殺(注冊表法)

現象:U盤無法打開,而且用傳統的刪除inf文件的方法也不行!

解決手段:
1、打開任務管理器(ctrl+alt+del或者任務欄右鍵點擊也可),終止所有ravmone.exe的進程

2、進入c:\windows,刪除其中的ravmone.exe

3、進入c:\windows,運行regedit.exe,在左邊依次點開HK_Loacal_Machine\software\Microsoft\windows\CurrentVersion\Run\,在右邊可以看到一項數值是c:\windows\ravmone.exe的,把他刪除掉

4、完成後,病毒就被清除了。

對移動存儲設備,如果中毒,則把文件夾選項中隱藏受保護的操作系統文件鉤掉,點上顯示所有文件和文件夾,點擊確定,然後在移動存儲設備中會看到如下幾個文件,autorun.inf,msvcr71.dl,ravmone.exe,都刪除掉,還有一個後綴為tmp的文件,也可以刪除,完成後,病毒就清除了。

至此為止,您機器上的「木馬」就算完全解除了.

現在是您的移動設施,首先你您的移動設施拔出,再插入(這個步驟不能少).在我的電腦中該盤符上按住滑鼠右鍵.檢查第一個選項是否為"Auto「,如果是,那就是該盤已中馬,如果不是,可以放心雙擊使用,如果為"Auto「了,目前有兩種解決方法:

1,格式化該移動設施,該法刪除比較徹底,適合文件不多、空間不大的移動設施,格式化後,問題完全解決

2,點右鍵選擇」打開「(千萬不能雙擊打開,否則木馬又會進行復制),找到該盤下的ravmonE.exe文件,autorun文件,超級文本以fot開頭的文件,全部刪除(autorun、超級文本以fot為隱藏,可以在我的電腦窗口最上端-工具-文件夾選項-查看-顯示所有隱藏文件讓它顯示),在確定沒有上述文件後,退出U盤,再插入檢查是否有"Auto「,如果沒有,則刪除成功.

總結一下: 1、避免中此種木馬只需在開啟移動設施的時候右鍵-打開進入即可,這樣拷貝或打開盤內文件均不會被感染,木馬的傳播方式是「雙擊該盤盤符」。

2、通過觀察是否有"Auto「判斷該盤是否中過此類木馬,再通過"Auto「解決方案進行處理uto病毒專殺軟體

閱讀全文

與wvt文件編程相關的資料

熱點內容
能否給隱藏相冊加密 瀏覽:596
糖心app改什麼名 瀏覽:823
戰地1控伺服器如何部署 瀏覽:394
xp還原系統輸入命令 瀏覽:323
mysql命令行版本 瀏覽:303
如何進入itunes找文件夾 瀏覽:832
CAD中重復命令使用 瀏覽:477
心智pdf 瀏覽:475
網站電台直播間源碼 瀏覽:852
文件夾14c和18c的區別 瀏覽:34
android隱式調用 瀏覽:667
plc的編程指令邊沿繼電器 瀏覽:723
voc文件夾 瀏覽:865
租廣東聯通伺服器注意什麼雲空間 瀏覽:934
javascript高級程序設計pdf 瀏覽:292
pwm單片機原理 瀏覽:348
ai演算法在線修復圖片 瀏覽:982
scratch編程中如何做射擊游戲 瀏覽:479
at89c51編程器 瀏覽:344
項目經理叫醒程序員 瀏覽:344