次序:21或22
時間:2008.05.27
地點:S402
內容:
①學術論文的研究動機:寫出該研究的重要性。
②測試程式產生obj檔。
③正確宣告extern以使用其他副程式的函數
④使用obj檔(承②)。
⑤variable scope。
Global variable與Local variable的差異在於生命週期。
時間分三種:1.Compile Time 2.Link Time 3.Run Time
(名稱可能有誤)
Global variable是在Compile Time就產生(這裡的產生就是系
統給一塊記憶體),然後包進obj檔裡。
Local variable:執行到該函數時才產生,即Run Time時產
生,該函數執行完即消失。
工作:①世昭至圖書館找五篇論文的研究動機,再找五篇學長姐專研文
件的研究動機。
②查閱相關書籍extern的用法。
2008年5月27日 星期二
Working - Jiayu 09
時間:2008/05/27
進度:2.正確宣告extern以使用其他副程式的函數
內容:
①開啟BCB。
(預設的Project1已有一個Unit1.cpp。)
②建立一個.c檔作為我們的副程式。
開啟BCB,最上排選單點選File >> New >> C File。
(目前這個我們新增的File1.c已經加入Project1。)
③在File1.c裡宣告一個變數ˋ一個函數,並定義之。例:
_________________________
int aaa=5;
void Selection_Sort(int *Num)
{
int min,temp,i,j;
for(i=0; i<=8; i++)
{
min=i;
for(j=i; j<=9; j++)
{
if(Num[j]<Num[min])
min=j;
}
temp=Num[i];
Num[i]=Num[min];
Num[min]=temp;
}
}
④以預設的Unit1.cpp作為我們的主程式,並呼叫副程式File1.c的變數ˋ函數來使用。
在Unit1.cpp裡宣告我們所用到的陣列ˋ副程式的變數ˋ副程式的函數。如下所示:
_________________________
int Num[10];
extern "C" void Selection_Sort(int*);
extern int aaa;
⑤在Unit1上新增兩個Label原件。Label1顯示副程式裡的函數正確執行後被修改的陣列值(如果該值還是原來的值,我們可知該副程式裡函數未成功執行。)。Label2顯示副程式裡的aaa變數值。
⑥在主程式裡定義陣列初值 >> 呼叫副程式的函數做排序 >> 顯示結果。
_________________________
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
for(int i=0; i<10; i++)
Num[i]=10-i;
Selection_Sort(Num);
Label1->Caption=IntToStr(Num[0]);
Label2->Caption=AnsiString(aaa);
}
進度:2.正確宣告extern以使用其他副程式的函數
內容:
①開啟BCB。
(預設的Project1已有一個Unit1.cpp。)
②建立一個.c檔作為我們的副程式。
開啟BCB,最上排選單點選File >> New >> C File。
(目前這個我們新增的File1.c已經加入Project1。)
③在File1.c裡宣告一個變數ˋ一個函數,並定義之。例:
_________________________
int aaa=5;
void Selection_Sort(int *Num)
{
int min,temp,i,j;
for(i=0; i<=8; i++)
{
min=i;
for(j=i; j<=9; j++)
{
if(Num[j]<Num[min])
min=j;
}
temp=Num[i];
Num[i]=Num[min];
Num[min]=temp;
}
}
④以預設的Unit1.cpp作為我們的主程式,並呼叫副程式File1.c的變數ˋ函數來使用。
在Unit1.cpp裡宣告我們所用到的陣列ˋ副程式的變數ˋ副程式的函數。如下所示:
_________________________
int Num[10];
extern "C" void Selection_Sort(int*);
extern int aaa;
⑤在Unit1上新增兩個Label原件。Label1顯示副程式裡的函數正確執行後被修改的陣列值(如果該值還是原來的值,我們可知該副程式裡函數未成功執行。)。Label2顯示副程式裡的aaa變數值。
⑥在主程式裡定義陣列初值 >> 呼叫副程式的函數做排序 >> 顯示結果。
_________________________
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
for(int i=0; i<10; i++)
Num[i]=10-i;
Selection_Sort(Num);
Label1->Caption=IntToStr(Num[0]);
Label2->Caption=AnsiString(aaa);
}
2008年5月26日 星期一
Meeting - 05/20 紀錄
※關於上週的Meeting,在討論程式以及文件前,老師提及了一些Outguess的方法以及新想法。由於我在奔跑借傳輸線時錯過了一些內容,因此以下僅就「我聽到的部分」以及「我理解的部分」作紀錄。
※時間:2008.05.20 14:30~16:40(大約)
※地點:s402
理論:Outguess上,假設藏資料時,(例如:將2改3,3改2),那麼分析histogram會發現2跟3趨近於一樣高,因此在chi-square的分析下,很容易會被發現破綻。
新想法→如果在2改3的時候,另外挑選一無辜數字3,將之改成2,那麼整張圖在被chi-square分析下,histogram並沒有改變,因此也就無法破解。
破解→
假設在藏的時候,將圖分成A,B,C,D四部份,如果在A區要把2改成3,但因為Outguess是隨機取一無辜3改2,倘若修改的部分不在A區,只要chi-square分析時也將圖片分成A,B,C,D來掃,最終還是可以發現histogram的詭異之處。
因此,新方法就是將圖片切成 N 個區域,為使histogram維持不變,盡量修改同一個區域的數值,如此一來,在chi-square的attack之下,histogram可以盡量維持不變。
因應的辦法就是,chi-square也將圖片切成 M 個部分來掃描。
--
本週練習主題:
Program
Prac將簡單function製作成obj,呼叫使用之。
※時間:2008.05.20 14:30~16:40(大約)
※地點:s402
理論:Outguess上,假設藏資料時,(例如:將2改3,3改2),那麼分析histogram會發現2跟3趨近於一樣高,因此在chi-square的分析下,很容易會被發現破綻。
新想法→如果在2改3的時候,另外挑選一無辜數字3,將之改成2,那麼整張圖在被chi-square分析下,histogram並沒有改變,因此也就無法破解。
破解→
假設在藏的時候,將圖分成A,B,C,D四部份,如果在A區要把2改成3,但因為Outguess是隨機取一無辜3改2,倘若修改的部分不在A區,只要chi-square分析時也將圖片分成A,B,C,D來掃,最終還是可以發現histogram的詭異之處。
因此,新方法就是將圖片切成 N 個區域,為使histogram維持不變,盡量修改同一個區域的數值,如此一來,在chi-square的attack之下,histogram可以盡量維持不變。
因應的辦法就是,chi-square也將圖片切成 M 個部分來掃描。
--
本週練習主題:
Program
Prac將簡單function製作成obj,呼叫使用之。
摘要 v.2
在本文件中,我們將會介紹「本專題所使用的論文」、「什麼是資訊隱藏」、「論文中提到的幾種隱藏方法以及該如何破解」、「為什麼要使用JPEG」、「JPEG格式」。
我們將會在:
第一章介紹「什麼是資訊隱藏」以及「為什麼要使用JPEG」。
第二章介紹「本專題所使用的論文」以及「論文中提到的幾種隱藏方法以及該如何破解」。
第三張介紹「JPEG格式」。
--
只是單純想嘗試不同風格的寫法,這次完全嘗試言簡意賅的提到內文會提起的部分。
我們將會在:
第一章介紹「什麼是資訊隱藏」以及「為什麼要使用JPEG」。
第二章介紹「本專題所使用的論文」以及「論文中提到的幾種隱藏方法以及該如何破解」。
第三張介紹「JPEG格式」。
--
只是單純想嘗試不同風格的寫法,這次完全嘗試言簡意賅的提到內文會提起的部分。
訂閱:
文章 (Atom)
