註冊原理:
1. 機器碼生成原理:
根據函式得到dwserial,然後與乙個常數0x51627384異或,結果的十六進製制表示就是機器碼。
lptstr pvolumenamebuffer = new tchar[256];
lptstr pfilesystemnamebuffer = new tchar[256];
//getvolumeinformation "c:\", vname, 255, serial, 0, 0, fsname, 255
dword dwserial = 0;
bool bsuc = getvolumeinformationa("c:\\", pvolumenamebuffer, 256, &dwserial, null, null, pfilesystemnamebuffer, 256);
dword dwmac = dwserial ^ 0x51627384;
2. 註冊碼生成原理;
無圖無真相,先上圖
註冊碼生成方法:
1. 先將機器碼平方,算出乙個數,將這個數轉換成十進位制表示(應該是20位左右的乙個數字),記為key1
2. 根據call 00403f58從key1中提取出乙個八位的數字.記為key2。
3.將key2與dwserial異或一下,轉換成十進位制數,記為key3.
4.從key3中取八位數字就是最終的機器碼。
關鍵**:
00469adf . e8 30a4f9ff call 00403f14
00469ae4 . 50 push eax ; |volumenamebuffer
00469ae5 . 68 cca64600 push 0046a6cc ; |c:\
00469aea . e8 bdcef9ff call ; \(initial cpu selection)
00469aef . a1 d8284700 mov eax, dword ptr [4728d8]
00469af4 . 35 84736251 xor eax, 51627384
00469af9 . 33d2 xor edx, edx
00469afb . 8945 d0 mov dword ptr [ebp-30], eax
00469afe . 8955 d4 mov dword ptr [ebp-2c], edx
00469b01 . ff75 d4 push dword ptr [ebp-2c]
00469b04 . ff75 d0 push dword ptr [ebp-30]
00469b07 . 8d95 64feffff lea edx, dword ptr [ebp-19c]
00469b0d . b8 08000000 mov eax, 8
00469b12 . e8 f1eaf9ff call 00408608 ; 十六進製制轉換成字串,生成機器碼
00469b17 . 8b95 64feffff mov edx, dword ptr [ebp-19c]
00469b1d . b8 d0284700 mov eax, 004728d0
00469b22 . e8 fd9ff9ff call 00403b24
00469b27 . ff75 d4 push dword ptr [ebp-2c] ; 0
00469b2a . ff75 d0 push dword ptr [ebp-30] ; 壓入機器碼
00469b2d . 8b45 d0 mov eax, dword ptr [ebp-30] ; eax = [ebp-30],d1769acc
00469b30 . 8b55 d4 mov edx, dword ptr [ebp-2c] ; edx = 0
00469b33 . e8 c0c7f9ff call 004062f8 ; a^2+b^2;機器碼平方
00469b38 . 52 push edx ; 平方的高八位
00469b39 . 50 push eax ; 平方的低八位
00469b3a . 8d45 dc lea eax, dword ptr [ebp-24]
00469b3d . e8 92eaf9ff call 004085d4 ; 生成一大坨資料,轉換成十進位制
00469b42 . 8d85 60feffff lea eax, dword ptr [ebp-1a0]
00469b48 . 50 push eax
00469b49 . 8b45 dc mov eax, dword ptr [ebp-24]
00469b4c . e8 ffa1f9ff call ; 20位的資料
00469b51 . 8bd0 mov edx, eax
00469b53 . 83ea 08 sub edx, 8 ; edx = 20-8 = 12
00469b56 . b9 08000000 mov ecx, 8 ; ecx = 8,取的位數
00469b5b . 8b45 dc mov eax, dword ptr [ebp-24] ; eax = 數字串
00469b5e . e8 f5a3f9ff call 00403f58 ; 從生成的資料中取了八位,62011121
00469b63 . 8b85 60feffff mov eax, dword ptr [ebp-1a0]
00469b69 . e8 16ebf9ff call 00408684 ; 十進位制轉換成十六進製制
00469b6e . 8945 d0 mov dword ptr [ebp-30], eax ; [ebp-30]=3b236f1
00469b71 . 8955 d4 mov dword ptr [ebp-2c], edx
00469b74 . a1 d8284700 mov eax, dword ptr [4728d8] ; eax = 0x8014e948
00469b79 . 33d2 xor edx, edx
00469b7b . 3345 d0 xor eax, dword ptr [ebp-30] ; eax 就是註冊碼
00469b7e . 3355 d4 xor edx, dword ptr [ebp-2c]
00469b81 . 8945 d0 mov dword ptr [ebp-30], eax
00469b84 . 8955 d4 mov dword ptr [ebp-2c], edx
00469b87 . 8d45 dc lea eax, dword ptr [ebp-24]
00469b8a . 50 push eax ; eax = pdisk
00469b8b . ff75 d4 push dword ptr [ebp-2c]
00469b8e . ff75 d0 push dword ptr [ebp-30]
00469b91 . 8d85 5cfeffff lea eax, dword ptr [ebp-1a4]
00469b97 . e8 38eaf9ff call 004085d4 ; 轉成十進位制
測試庖丁解牛分詞工具
因為筆者要在mapreduce中進行中文分詞解析資料,所以測試了一下庖丁解牛中文分詞器 paoding analysis 2.0.4 beta 現將使用過程小結 個人環境 linux eclipse 使用分為如下幾步 1.配置dic檔案 修改paoding analysis.jar中的paoding...
Blue Coat 庖丁解牛 雲安全勢在必行
本文講的是blue coat 庖丁解牛 雲安全勢在必行,移動網際網路與雲服務的熱潮讓如今的企業辦公環境發生了根本性的改變。業務系統和遠端服務都在通過雲端慢慢向移動終端遷移,基於雲的多樣化手段也催生了基於雲的全新的安全概念。受訪人blue coat大中華區技術總監 王躍霖 blue coat此前收購p...
庖丁解牛Linux核心分析 0x00 《庖丁解牛》
庖丁解牛 吾生也有涯,而知也無涯 以有涯隨無涯,殆已!已而為知者,殆而已矣!為善無近名,為惡無近刑。緣督以為經,可以保身,可以全生,可以養親,可以盡年。庖丁為文惠君解牛,手之所觸,肩之所倚,足之所履,膝之所踦,砉然嚮然,奏刀騞然,莫不中音。合於 桑林 之舞,乃中 經首 之會。文惠君曰 嘻,善哉!技蓋...