这一段call是计算注册码的,到:0056ED3B 8BFB mov edi, ebx这一行,真注册码已经在ebx里了。
寄存器当前状态:eax和ebx:输入的用户名;ecx:机器码;edx和esi:输入的单位名;edi:输入的假注册码。
另外,机器码和注册码都是8位的,中间加“-”。其它的我看不懂了。
请帮我分析算法,越详细越好,我很菜不懂汇编,如能教我写出注册机,那最好!谢谢!
:0056EC48 55 push ebp ;此时ebp:0012F3AC
:0056EC49 8BEC mov ebp, esp ;此时esp:0012F330
:0056EC4B 83C4EC add esp, FFFFFFEC
:0056EC4E 53 push ebx
:0056EC4F 56 push esi
:0056EC50 57 push edi
:0056EC51 33DB xor ebx, ebx
:0056EC53 895DEC mov dword ptr [ebp-14], ebx
:0056EC56 895DF0 mov dword ptr [ebp-10], ebx
:0056EC59 894DF4 mov dword ptr [ebp-0C], ecx
:0056EC5C 8955F8 mov dword ptr [ebp-08], edx
:0056EC5F 8945FC mov dword ptr [ebp-04], eax
:0056EC62 8B45FC mov eax, dword ptr [ebp-04]
:0056EC65 E8AE58E9FF call 00404518
:0056EC6A 8B45F8 mov eax, dword ptr [ebp-08]
:0056EC6D E8A658E9FF call 00404518
:0056EC72 33C0 xor eax, eax
:0056EC74 55 push ebp
:0056EC75 6865ED5600 push 0056ED65
:0056EC7A 64FF30 push dword ptr fs:[eax]
:0056EC7D 648920 mov dword ptr fs:[eax], esp
:0056EC80 33FF xor edi, edi
:0056EC82 8D55F0 lea edx, dword ptr [ebp-10]
:0056EC85 8B45FC mov eax, dword ptr [ebp-04]
:0056EC88 E837FFFFFF call 0056EBC4
:0056EC8D 8B55F0 mov edx, dword ptr [ebp-10]
:0056EC90 8D45FC lea eax, dword ptr [ebp-04]
:0056EC93 E8E454E9FF call 0040417C
:0056EC98 8D55EC lea edx, dword ptr [ebp-14]
:0056EC9B 8B45F8 mov eax, dword ptr [ebp-08]
:0056EC9E E821FFFFFF call 0056EBC4
:0056ECA3 8B55EC mov edx, dword ptr [ebp-14]
:0056ECA6 8D45F8 lea eax, dword ptr [ebp-08]
:0056ECA9 E8CE54E9FF call 0040417C
:0056ECAE 8B45FC mov eax, dword ptr [ebp-04]
:0056ECB1 E8AE56E9FF call 00404364
:0056ECB6 8BF0 mov esi, eax
:0056ECB8 85F6 test esi, esi
:0056ECBA 7E2D jle 0056ECE9
:0056ECBC BB01000000 mov ebx, 00000001
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0056ECE7(C)
|
:0056ECC1 8B45FC mov eax, dword ptr [ebp-04]
:0056ECC4 33C9 xor ecx, ecx
:0056ECC6 8A4C18FF mov cl, byte ptr [eax+ebx-01]
:0056ECCA 83E107 and ecx, 00000007
:0056ECCD 8B45FC mov eax, dword ptr [ebp-04]
:0056ECD0 0FB64418FF movzx eax, byte ptr [eax+ebx-01]
:0056ECD5 50 push eax
:0056ECD6 8B45F4 mov eax, dword ptr [ebp-0C]
:0056ECD9 5A pop edx
:0056ECDA 51 push ecx
:0056ECDB 8BCA mov ecx, edx
:0056ECDD 99 cdq
:0056ECDE F7F9 idiv ecx
:0056ECE0 59 pop ecx
:0056ECE1 D3E2 shl edx, cl
:0056ECE3 03FA add edi, edx
:0056ECE5 43 inc ebx
:0056ECE6 4E dec esi
:0056ECE7 75D8 jne 0056ECC1
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0056ECBA(C)
|
:0056ECE9 8B45F8 mov eax, dword ptr [ebp-08]
:0056ECEC E87356E9FF call 00404364
:0056ECF1 8BF0 mov esi, eax
:0056ECF3 85F6 test esi, esi
:0056ECF5 7E21 jle 0056ED18
:0056ECF7 BB01000000 mov ebx, 00000001
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0056ED16(C)
|
:0056ECFC 8B45F8 mov eax, dword ptr [ebp-08]
:0056ECFF 0FB64418FF movzx eax, byte ptr [eax+ebx-01]
:0056ED04 8BD0 mov edx, eax
:0056ED06 83CAFF or edx, FFFFFFFF
:0056ED09 2355F4 and edx, dword ptr [ebp-0C]
:0056ED0C 8B4DF8 mov ecx, dword ptr [ebp-08]
:0056ED0F 0FAFD0 imul edx, eax
:0056ED12 03FA add edi, edx
:0056ED14 43 inc ebx
:0056ED15 4E dec esi
:0056ED16 75E4 jne 0056ECFC
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0056ECF5(C)
|
:0056ED18 8BC7 mov eax, edi
:0056ED1A E871A1E9FF call 00408E90
:0056ED1F 8BD8 mov ebx, eax
:0056ED21 660FAF5DF4 imul bx, word ptr [ebp-0C]
:0056ED26 0FB7DB movzx ebx, bx
:0056ED29 03DF add ebx, edi
:0056ED2B 8B45F4 mov eax, dword ptr [ebp-0C]
:0056ED2E E85DA1E9FF call 00408E90
:0056ED33 66F7EF imul di
:0056ED36 0FB7C0 movzx eax, ax
:0056ED39 03D8 add ebx, eax
:0056ED3B 8BFB mov edi, ebx 真注册码在ebx里
:0056ED3D 33C0 xor eax, eax
:0056ED3F 5A pop edx
:0056ED40 59 pop ecx
:0056ED41 59 pop ecx
:0056ED42 648910 mov dword ptr fs:[eax], edx
:0056ED45 686CED5600 push 0056ED6C
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0056ED6A(U)
|
:0056ED4A 8D45EC lea eax, dword ptr [ebp-14]
:0056ED4D BA02000000 mov edx, 00000002
:0056ED52 E8B153E9FF call 00404108
:0056ED57 8D45F8 lea eax, dword ptr [ebp-08]
:0056ED5A BA02000000 mov edx, 00000002
:0056ED5F E8A453E9FF call 00404108
:0056ED64 C3 ret
:0056ED65 E93A4DE9FF jmp 00403AA4
:0056ED6A EBDE jmp 0056ED4A
:0056ED6C 8BC7 mov eax, edi
:0056ED6E 5F pop edi
:0056ED6F 5E pop esi
:0056ED70 5B pop ebx
:0056ED71 8BE5 mov esp, ebp
:0056ED73 5D pop ebp
:0056ED74 C3 ret
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课