最初由 小虾 发布
这个CrackMe没有在隐藏方面下功夫(原因是自己功力弱,不懂得如何更好的隐藏) ,只是在比较正确注册码时用了Timer时间作第二次检测。主要的方面还是在算法上,我想看看这个算法容易不容易解密。
请楼主解释一下如何由输入的key转为name算出的四个key, 即这段代码,我感兴趣:
:00451920 8BD7 mov edx, edi
:00451922 8BC6 mov eax, esi
:00451924 E897FCFFFF call 004515C0 <== 将转为hex的四个key如果正确通过一定的演算倒推回 name 计算得到的四个对应的key
我卡在这里了,是自己的算法还是现成的算法,肯定不是密码学的算法?
即这段代码?难道是密码学?什么方法?请说得详细点:
* Referenced by a CALL at Address:
|:00451924
|
:004515C0 55 push ebp
:004515C1 8BEC mov ebp, esp
:004515C3 83C4F8 add esp, FFFFFFF8
:004515C6 53 push ebx
:004515C7 56 push esi
:004515C8 57 push edi
:004515C9 8955FC mov dword ptr [ebp-04], edx
:004515CC 8BF8 mov edi, eax
:004515CE C745F88946DF25 mov [ebp-08], 25DF4689
:004515D5 BE01000000 mov esi, 00000001
:004515DA BB48504500 mov ebx, 00455048
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00451672(C)
|
:004515DF 333B xor edi, dword ptr [ebx]
:004515E1 81F783547698 xor edi, 98765483
:004515E7 8BC7 mov eax, edi
:004515E9 3556486598 xor eax, 98654856
:004515EE 0D54934658 or eax, 58469354
:004515F3 C1E005 shl eax, 05
:004515F6 8BD6 mov edx, esi
:004515F8 0FAFD6 imul edx, esi
:004515FB 81C26884C5EB add edx, EBC58468
:00451601 C1E203 shl edx, 03
:00451604 33C2 xor eax, edx
:00451606 51 push ecx
:00451607 B968000000 mov ecx, 00000068
:0045160C 33D2 xor edx, edx
:0045160E F7F1 div ecx
:00451610 59 pop ecx
:00451611 8BC2 mov eax, edx
:00451613 8B0485002C4500 mov eax, dword ptr [4*eax+00452C00]
:0045161A 3145FC xor dword ptr [ebp-04], eax
:0045161D 330B xor ecx, dword ptr [ebx]
:0045161F 81F13884B6ED xor ecx, EDB68438
:00451625 8BC1 mov eax, ecx
:00451627 3548893545 xor eax, 45358948
:0045162C 0D64253884 or eax, 84382564
:00451631 C1E003 shl eax, 03
:00451634 8BD6 mov edx, esi
:00451636 0FAFD6 imul edx, esi
:00451639 81C285369845 add edx, 45983685
:0045163F C1E205 shl edx, 05
:00451642 33C2 xor eax, edx
:00451644 51 push ecx
:00451645 B998000000 mov ecx, 00000098
:0045164A 33D2 xor edx, edx
:0045164C F7F1 div ecx
:0045164E 59 pop ecx
:0045164F 8BC2 mov eax, edx
:00451651 8B0485002C4500 mov eax, dword ptr [4*eax+00452C00]
:00451658 314508 xor dword ptr [ebp+08], eax
:0045165B 8BC7 mov eax, edi
:0045165D 8B7DFC mov edi, dword ptr [ebp-04]
:00451660 8945FC mov dword ptr [ebp-04], eax
:00451663 8BC1 mov eax, ecx
:00451665 8B4D08 mov ecx, dword ptr [ebp+08]
:00451668 894508 mov dword ptr [ebp+08], eax
:0045166B 46 inc esi
:0045166C 83C304 add ebx, 00000004
:0045166F 83FE21 cmp esi, 00000021
:00451672 0F8567FFFFFF jne 004515DF
:00451678 A124504500 mov eax, dword ptr [00455024]
:0045167D 33C7 xor eax, edi
:0045167F 0345F8 add eax, dword ptr [ebp-08]
:00451682 8B1528504500 mov edx, dword ptr [00455028]
:00451688 3355FC xor edx, dword ptr [ebp-04]
:0045168B 03C2 add eax, edx
:0045168D 8B152C504500 mov edx, dword ptr [0045502C]
:00451693 33D1 xor edx, ecx
:00451695 03C2 add eax, edx
:00451697 8B1530504500 mov edx, dword ptr [00455030]
:0045169D 335508 xor edx, dword ptr [ebp+08]
:004516A0 03C2 add eax, edx
:004516A2 8945F8 mov dword ptr [ebp-08], eax
:004516A5 8B45F8 mov eax, dword ptr [ebp-08]
:004516A8 A334504500 mov dword ptr [00455034], eax
:004516AD 893D38504500 mov dword ptr [00455038], edi
:004516B3 8B45FC mov eax, dword ptr [ebp-04]
:004516B6 A33C504500 mov dword ptr [0045503C], eax
:004516BB 890D40504500 mov dword ptr [00455040], ecx
:004516C1 8B4508 mov eax, dword ptr [ebp+08]
:004516C4 A344504500 mov dword ptr [00455044], eax
:004516C9 5F pop edi
:004516CA 5E pop esi
:004516CB 5B pop ebx
:004516CC 59 pop ecx
:004516CD 59 pop ecx
:004516CE 5D pop ebp
:004516CF C20400 ret 0004