河內塔問題
#include<stdio.h>
#include<stdlib.h>
int fun_a(int)
void fun_b(int,int,int,int)
int main(void)
{
int n
int option
printf("題目二:河內塔問題\n")
printf("請輸入要搬移的圓盤數目\n")
scanf("%d",&n)
printf("最少搬移的次數為%d次\n",fun_a(n))
printf("是否顯示移動過程? 是請輸入1,否則輸入0\n")
scanf("%d",&option)
if(option==1)
{
fun_b(n,1,2,3)
}
system("pause")
return 0
}
int fun_a(int n)
{
int sum1=2,sum2=0,i
for(i=n i>1 i--)
{
sum1=sum1*2
}
sum2=sum1-1
return sum2
}
void fun_b(int n,int left,int mid,int right)
{
if(n==1)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
else
{
fun_b(n-1,left,right,mid)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
fun_b(n-1,mid,left,right)
}
}
標簽:
int
include
stdlib
fun_a
上傳時間:
2016-12-08
上傳用戶:努力努力再努力
木馬運行關鍵是隱藏,神不知鬼不覺才是王道.要隱藏,先要隱藏進程,Windows操作系統中程序以進程的
方式運行,大多數操作系統也是如此.任務管理器就可以看到當前運行的進程,所以有人HOOK相關枚舉進程的函
數,讓任務管理器不顯示木馬進程,也有人把自己的木馬注冊成服務運行,"任務管理器"不顯示服務的.這樣做只
是障眼法,進程還是存在的,最好的方法是讓進程不存在,讓木馬作為其他進程的一個線程來運行.Windows操
作系統提出了DLL的概念,其系統API都是通過DLL的形式出現的,應用程序動態鏈接到DLL來調用API,DLL在
內存中只存在一個副本就可以滿足不同應用程序的調用了,因此可以把木馬寫成DLL文件,讓他作為進程的一部
分運行,最好是系統進程的一部分,一般人很難看到一個進程加載了哪些DLL,也就很難發現這種木馬(用
IceSword可以看到進程的DLL模塊).
標簽:
Windows
HOOK
運行
進程
上傳時間:
2014-11-27
上傳用戶:kristycreasy