網(wǎng)絡(luò)安全編程:制作注冊機(jī)的工具——KeyMake
本文介紹一款制作注冊機(jī)的工具——KeyMake,其界面如圖1所示。
圖1 KeyMake工具界面
KeyMake的功能非常多,這里主要介紹“其他”菜單下的功能,如圖2所示。
圖2 “其他”菜單下的功能
KeyMake菜單有3個(gè)主要功能,分別是“內(nèi)存注冊機(jī)”、“制作文件補(bǔ)丁”和“制作內(nèi)存補(bǔ)丁”。分別以三個(gè)程序例子來制作3個(gè)補(bǔ)丁程序。
首先來制作“內(nèi)存注冊機(jī)”。在KeyMake的“其他”菜單下選擇“內(nèi)存注冊機(jī)”,出現(xiàn)“設(shè)置注冊機(jī)信息”界面,如圖3所示。
圖3 “設(shè)置注冊機(jī)信息”界面
在圖3中的“程序名稱”處選擇前面寫的CrackMe程序,然后單擊“添加”按鈕,出現(xiàn)“添加數(shù)據(jù)”界面,添加相應(yīng)的數(shù)據(jù),如圖4所示。
圖4 “添加數(shù)據(jù)”界面
在圖4中,首先要添加中斷地址,在“中斷地址”處輸入“00401E9E”,在“中斷次數(shù)”處輸入“1”,在“第一字節(jié)”處輸入“E8”,在“指令長度”處輸入“5”。為什么這么填寫呢?對于“中斷地址”、“第一字節(jié)”和“指令長度”的填寫方法,參考圖5就能夠明白。“中斷次數(shù)”是指在中斷地址被斷下第幾次后去讀取數(shù)據(jù)。由于正確“密碼”在內(nèi)存中,因此在“保存下列信息為注冊碼”窗口中選擇“內(nèi)存方式”,選擇“寄存器”為“EDX”。這里也對照圖5就可以明白。填寫完上面的內(nèi)容后,單擊“添加”按鈕則返回“設(shè)置注冊機(jī)信息”界面,然后單擊“生成”按鈕,將“內(nèi)存注冊機(jī)”放在與CrackMe相同的目錄下即可。然后運(yùn)行生成的注冊機(jī),會(huì)出現(xiàn)CrackMe程序界面,隨便輸入一個(gè)“賬號(hào)”和“密碼”,單擊“確定”按鈕即可出現(xiàn)正確的注冊碼,如圖6所示。
圖5 調(diào)用strcmp()函數(shù)的地址
圖6 “內(nèi)存注冊機(jī)”提示正確的注冊碼
制作“文件補(bǔ)丁”相對于“內(nèi)存注冊機(jī)”要簡單很多。制作“文件補(bǔ)丁”的KeyMake界面如圖7所示。
圖7 “制作文件補(bǔ)丁”界面
在圖7中,在“原始的文件”處選擇破解前的文件,在“已破解文件”處選擇已經(jīng)破解后的文件,然后單擊“制作”按鈕即可生成一個(gè)文件補(bǔ)丁程序。這里需要說明的是,之所以選擇“原始的文件”,是因?yàn)樯傻奈募a(bǔ)丁在對沒有破解的文件進(jìn)行打補(bǔ)丁前需要對文件的CRC校驗(yàn)和進(jìn)行計(jì)算,以防止由于文件版本的不同而導(dǎo)致文件破壞。
最后介紹一下“內(nèi)存補(bǔ)丁”。“內(nèi)存補(bǔ)丁”的制作也是比較容易的,打開“內(nèi)存補(bǔ)丁”的制作界面,然后依照圖8所示進(jìn)行設(shè)置。
圖8 “制作內(nèi)存補(bǔ)丁”界面
“制作內(nèi)存補(bǔ)丁”界面中的“添加數(shù)據(jù)”窗口中的相應(yīng)設(shè)置,請參考圖9進(jìn)行設(shè)置。
圖9 00401EAE地址處反匯編