摘要: 數(shù)據(jù)交換的格式,從結(jié)構(gòu)上看,所有的數(shù)據(jù)(data)最終都可以分解成三種類型:
第一種類型是標(biāo)量(scalar),也就是一個(gè)單獨(dú)的字符串(string)或數(shù)字(numbers),比如"北京"這個(gè)單獨(dú)的詞。
第二種類型是序列(sequence),也就是若干個(gè)相關(guān)的數(shù)據(jù)按照一定順序并列在一起,又叫做數(shù)組(array)或列表(List),比如"北京,上海"。
第三種類型是映射(mapping),也就是一個(gè)名/值對(duì)(Name/value),即數(shù)據(jù)有一個(gè)名稱,還有一個(gè)與之相對(duì)應(yīng)的值,這又稱作散列(hash)或字典(dictionary),比如"首都:北京"。
閱讀全文
摘要: //修改IAT實(shí)現(xiàn)本進(jìn)程API HOOK
//coded by xicao
//QQ:327062448
//E-MAIL:xicao54007@sina.com
#include
#include //ImageDirectoryEntryToData
#pragma comment(lib,"imagehlp.lib")
/************************************************************/
char *szModName = NULL ;
char *szHacked = "不好意思hook到了!" ;
DWORD dwHookFun ;
DWORD dwHookApiAddr;
PIMAGE_IMPORT_DESCRIPTOR pImportDesc ;
PIMAGE_THUNK_DATA32 pThunk;
U 閱讀全文
摘要: 兩年前就給自己列出了一個(gè)讀書清單,但進(jìn)展緩慢,看的經(jīng)典書籍仍然寥寥可數(shù),慚愧中......
現(xiàn)在將這個(gè)書單重新修改,一方面鞭策自己學(xué)習(xí),另一方面也表達(dá)對(duì)大牛們有如滔滔江水般的敬仰之意。
書單中列舉的都是相關(guān)領(lǐng)域的經(jīng)典書籍,必讀之作。此書單的編輯參考了很多網(wǎng)站,包括一些名家的推薦,例如侯捷,孟巖,榮耀,潘愛民等等,在此也向這些前輩表示感謝。^_^ 閱讀全文
摘要: UNICODE:它是用兩個(gè)字節(jié)表示一個(gè)字符的方法。比如字符'A'在ASCII下面是一個(gè)字符,可'A'在UNICODE下面是兩個(gè)字符,高字符用0填充,而且漢字'程'在ASCII下面是兩個(gè)字節(jié),而在UNICODE下仍舊是兩個(gè)字節(jié)。UNICODE的用處就是定長表示世界文字,據(jù)統(tǒng)計(jì),用兩個(gè)字節(jié)可以編碼現(xiàn)存的所有文字而沒有二義。
MBCS,它是多字節(jié)字符集,它是不定長表示世界文字的編碼。MBCS表示英文字母時(shí)就和ASCII一樣(這也是我們?nèi)菀装袽BCS和ASCII搞混的原因),但表示其他文字時(shí)就需要用多字節(jié)。
WINDOWS下面的程序設(shè)計(jì)可以支持MBCS和UNICODE兩種編碼的字符串,具體用那種就看你定義了MBCS宏還是UNICODE宏。MBCS宏對(duì)應(yīng)的字符串指針是char*也就是LPSTR,UNICODE對(duì)應(yīng)的指針是unsigned short*也就是LPWSTR,為了寫程序方便微軟定義了類型LPTSTR,在MBCS下他就是char*, 在UNICODE下它是unsigned char*,這樣你就可以重定義一個(gè)宏進(jìn)行不同字符集的轉(zhuǎn)換了。 閱讀全文
摘要: #include "netinet/tcp.h"
int keepAlive = 1; //設(shè)定KeepAlive
int keepIdle = 30; //開始首次KeepAlive探測(cè)前的TCP空閉時(shí)間
int keepInterval = 30; //兩次KeepAlive探測(cè)間的時(shí)間間隔
int keepCount = 3; //判定斷開前的KeepAlive探測(cè)次數(shù)
if(setsockopt(sockfd,SOL_SOCKET,SO_KEEPALIVE,(void*)&keepAlive,sizeof(keepAlive)) == -1)
{
printf("Socket Option setting(SO_KEEPALIVE) fail !\n");
return FALSE;
}
if(setsockopt(sockfd,SOL_TCP,TCP_KEEPIDLE,(void *)&ke 閱讀全文
摘要: 閱讀全文
摘要: 如果U盤夠大,可以在一個(gè)U盤安裝slax,pclinuxos,Linux Mint,puppy Linux等多種live linux。移動(dòng)硬盤原理相同,不做區(qū)分。
因?yàn)閁盤常用來拷貝文件,fat格式在多種操作系統(tǒng)上通用,所以用grub4dos管理U盤引導(dǎo)。
把U盤格成HDD格式:
用DiskGenius 3.2把U盤格式化為USB-HDD格式,推薦使用FAT32分區(qū);或者用U盤格式化工具(HPUSBFW.EXE )格式化為 HDD 格式。還有其它 工具如FlashBoot、 WIN PM 等。
將引導(dǎo)代碼寫入U(xiǎn)盤mbr:
Win32下,運(yùn)行g(shù)rubinst_gui.exe ,在“磁盤”處選中U盤,在“選項(xiàng)”區(qū)選中“不保存原來的mbr”、“不引導(dǎo)原來的mbr”、“啟動(dòng)時(shí)不搜索軟盤”、“輸出詳細(xì)信息”,點(diǎn)擊“安裝”即可。
拷貝grub4dos的grub.exe、grldr、menu.lst到u盤根目錄。
現(xiàn)在,U盤已經(jīng)可以用grub引導(dǎo),把電腦設(shè)置為U盤優(yōu)先引導(dǎo),測(cè)試一下grub的引導(dǎo)。
安裝linux live cd的過程分 閱讀全文
摘要: 背景(只是個(gè)人感想,技術(shù)上不對(duì)后面的內(nèi)容構(gòu)成知識(shí)性障礙,可以skip):
最近,基于某些原因和需要,筆者需要去了解一下Crypto++庫,然后對(duì)一些數(shù)據(jù)進(jìn)行一些加密解密的操作。
筆者之前沒接觸過任何加密解密方面的知識(shí)(當(dāng)然,把每個(gè)字符的ASCII值加1之流對(duì)明文進(jìn)行加密的“趣事”還是干過的,當(dāng)時(shí)還很樂在其中。),甚至一開始連Crypto++的名字都沒有聽過,被BS了之后,就開始了Crypto++的入門探索過程。
最初,大概知道了要了解兩大類算法中的幾個(gè)算法——對(duì)稱加密算法:DES、AES(后來因?yàn)槿似泛玫木壒室擦私饬讼路菍?duì)稱加密算法RSA,后文會(huì)詳述何謂“人品好”);散列算法(需要通過Hash運(yùn)算):SHA-256。
起初,筆者以為這樣的知名算法在網(wǎng)上應(yīng)該有很多現(xiàn)成的例子。筆者比較懶,對(duì)于自己不熟悉的東西,總希望找捷徑,直接找別人現(xiàn)(在已經(jīng)寫)成可(編譯運(yùn))行的代碼然后施展ctrl + C,ctrl + V算法(咳,什么算法,是大法!!!)。
However,發(fā)覺網(wǎng)上的例子不是稀缺,就是只有代碼沒有解釋。筆者覺得很難忍受這樣的“莫名其妙”(奇怪的 閱讀全文
摘要: 從官方網(wǎng)下載的Crypto++庫是開源的,只有源文件和幾個(gè)可以生成lib、dll的工程,以及一個(gè)使用的例子工程,因此希望生成自己建的工程能使用的SDK。
1.編譯鏈接生成cryptlib.lib
打開cryptest.sln,分別在Debug模式和Release模式下編譯鏈接cryptlib工程,成功后會(huì)在cryptopp54\\Win32\\output\\debug和cryptopp54\\Win32\\output\\release下生成cryptlib.lib文件。作者當(dāng)時(shí)用的是Crypto++ 5.4版本。
Build時(shí)方法是,右擊Solution Explorer中的cryptlib工程,單擊build。第一次時(shí)它會(huì)報(bào)錯(cuò)說“d:\\cryptopp54\\adler32.cpp(3) : fatal error C1033: cannot open program database ’d:\\cryptopp54\\win32\\cryptlib\\debug\\vc80.idb’”,沒關(guān)系,按這樣再build一次,就 閱讀全文
摘要: 首先,先上效果代碼
1//********************************************************************
2// TESTCLASS.H 文件注釋
3// 文件名 : TESTCLASS.H
4// 文件路徑: J:\CODING\TEST\C++解疑\CYUYAN\
5// 作者 : RIPPLE
6// 創(chuàng)建時(shí)間: 2009/10/3 11:02
7// 文件描述:
8//*********************************************************************
9#ifndef _H_TESTCLASS_H_
10#define _H_TESTCLASS_H_
11
12#include
13using namespace std; 閱讀全文