




004E0BB3 mov edx, [local.5] ; edx 等于 處理后的字符串地址
004E0BB6 lea eax, [local.2]
004E0BB9 call 004046A4
004E0BBE inc ebx
004E0BBF dec esi
004E0BC0 jnz short 004E0B97
下面就是第二層算法 ,其實(shí)沒(méi)什么作用
004E0BC2 mov eax, [local.2] ; 將 運算的 東東 放到eax004E0BC5 call 0040469C ; 將 這字符串 前 4個(gè) 字節的 內容 給 eax004E0BCA mov esi, eax ; eax 給 esi004E0BCC test esi, esi ; 判斷 esi是否 為 0004E0BCE jle short 004E0BFC004E0BD0 mov ebx, 0x1 ; ebx 給 0x1 貌似要 計數器004E0BD5 mov eax, [local.2] ; 運算后的 假嗎 給 eax004E0BD8 call 0040469C ; 還是 剛才 那樣 給前4個(gè)字節 數據 給 eax004E0BDD sub eax, ebx ; eax- ebx004E0BDF mov edx, [local.2] ; 假嗎運算之 給 edx004E0BE2 mov dl, byte ptr [edx+eax] ; 第一次 取最后 一位004E0BE5 lea eax, [local.7] ; 估計 又是 將此 東西 放入緩沖區004E0BE8 call 004045A8004E0BED mov edx, [local.7]004E0BF0 lea eax, [local.3]004E0BF3 call 004046A4004E0BF8 inc ebx004E0BF9 dec esi004E0BFA jnz short 004E0BD5第二層算法作用也就是 把第一層算法得出的字符串倒過(guò)來(lái)
ASCII '5494A4F405545585'
004E0BFC lea eax, [local.2] 將處理后的字符串 的二級指針給轉化為 一級指針給eax 這個(gè)是第一層算法算出的004E0BFF push eax 壓入棧,保存起來(lái)004E0C00 mov ecx, 0x4 初始化變量?。澹幔。健。埃?/blockquote>004E0C05 mov edx, 0x1 初始化變量?。澹洌。健。埃?/blockquote>004E0C0A mov eax, [local.3] ; 將倒轉后的字符串也就是第二層算法 后的字符串地址給eax004E0C0D call 004048FC 執行后?。澹幔。健〉罐D字符串前四個(gè)字節?。担矗梗础∽址亩壷羔?/blockquote>004E0C12 lea eax, [local.3] 二級指針給eax 轉換為 一級指針004E0C15 push eax 指針入?!”4?/blockquote>004E0C16 mov ecx, 0x4 初始化值004E0C1B mov edx, 0x5 初始化值004E0C20 mov eax, [local.3] 倒轉字符串地址給?。澹幔 ?/blockquote>004E0C23 call 004048FC 執行后?。澹幔。健〉罐D后字符串 接著(zhù)在后四位?。矗粒疲醋址亩壷羔槨?/blockquote>004E0C28 mov eax, [local.2] 將前四位字符串地址給eax004E0C2B call 0040469C 計算出他的長(cháng)度004E0C30 cmp eax, 0x4 判斷長(cháng)度是否等于?。埃础〉扔趧t跳,我先撤了。已經(jīng)跳了004E0C33 jge short 004E0C64004E0C35 mov eax, [local.2]004E0C38 call 0040469C004E0C3D mov ebx, eax004E0C3F cmp ebx, 0x3004E0C42 jg short 004E0C64004E0C44 /lea ecx, [local.8]004E0C47 |mov eax, ebx004E0C49 |shl eax, 0x2004E0C4C |xor edx, edx004E0C4E |call 00409528004E0C53 |mov edx, [local.8]004E0C56 |lea eax, [local.2]004E0C59 |call 004046A4004E0C5E |inc ebx004E0C5F |cmp ebx, 0x4004E0C62 \jnz short 004E0C44004E0C64 mov eax, [local.3] 接著(zhù)后四位的字符串地址給eax?。矗粒疲?/blockquote>004E0C67 call 0040469C 計算器其長(cháng)度004E0C6C cmp eax, 0x4 判斷長(cháng)度 跳了004E0C6F jge short 004E0CA0004E0C71 mov eax, [local.3]004E0C74 call 0040469C004E0C79 mov ebx, eax004E0C7B cmp ebx, 0x3004E0C7E jg short 004E0CA0004E0C80 /lea ecx, [local.9]004E0C83 |mov eax, ebx004E0C85 |shl eax, 0x2004E0C88 |xor edx, edx004E0C8A |call 00409528004E0C8F |mov edx, [local.9]004E0C92 |lea eax, [local.3]004E0C95 |call 004046A4004E0C9A |inc ebx004E0C9B |cmp ebx, 0x4004E0C9E \jnz short 004E0C80004E0CA0 lea eax, [local.10]004E0CA3 push eax004E0CA4 mov eax, dword ptr [edi+0x4] 在這產(chǎn)生一個(gè)新的字符串?。觯辏玻叮福觯玻埃保场〔灰婀诌@個(gè)字符串是固定的 就是這個(gè)軟件的exe名稱(chēng)和版本004E0CA7 mov ecx, 0x4004E0CAC mov edx, 0x1004E0CB1 call 004048FC 取前四位字符串?。觯辏玻?/blockquote>004E0CB6 push [local.10]004E0CB9 push 004E0D20 ; UNICODE '-'004E0CBE push [local.2]004E0CC1 lea eax, [local.11]004E0CC4 push eax004E0CC5 mov eax, dword ptr [edi+0x4]004E0CC8 mov ecx, 0x5004E0CCD mov edx, 0x5004E0CD2 call 004048FC 取后?。滴蛔址。福觯玻埃?/blockquote>004E0CD7 push [local.11]004E0CDA push 004E0D20 ; UNICODE '-' 看到這 杠號是不是很熟悉啊,哈哈 你已經(jīng)拆到了004E0CDF push [local.3]004E0CE2 mov eax, [local.1]004E0CE5 mov edx, 0x6004E0CEA call 0040475C004E0CEF xor eax, eax004E0CF1 pop edx004E0CF2 pop ecx004E0CF3 pop ecx004E0CF4 mov dword ptr fs:[eax], edx004E0CF7 push 004E0D11004E0CFC lea eax, [local.11]004E0CFF mov edx, 0xA004E0D04 call 004043E4到最后就是 將前面出現過(guò)的字符串組裝了,我就不廢話(huà)了vj26-54948v201-A4F4 ?。担矗梗词菍⒂脩?hù)名經(jīng)過(guò)二層算法獲得的前四個(gè)字節的字符串A4F4是在后四位的字符串 其他的就是這個(gè)軟件的?。澹迕Q(chēng)了 最后這個(gè)就是注冊碼了。。我們測試下。。
注冊成功,哈哈,肚子太餓了,我就偷懶下,寫(xiě)這個(gè)帖子花了我三個(gè)小時(shí),邊分析邊寫(xiě)帖子,大伙給我點(diǎn)動(dòng)力把。一路 艱難險阻是不是都過(guò)來(lái)了?是否體驗到算法帶來(lái)的成就感?本次教程到此結束,我是?。蹋伲眩椋睿纾伲濉∥覑?ài)雪坡姐, 感謝大家支持。
聯(lián)系客服