- UID
- 66880
注册时间2010-5-23
阅读权限30
最后登录1970-1-1
龙战于野
TA的每日心情 | 开心 2023-6-2 15:44 |
---|
签到天数: 18 天 [LV.4]偶尔看看III
|
Blackk第十轮第一课作业
中级作业··
如果错误,希望各位大大指出~~谢谢·
0054EF19 |. E8 6A8CEFFF call 00447B88 ; 取订单号位数
0054EF1E |. 8B85 64FFFFFF mov eax, dword ptr [ebp-9C] ; 订单号入EAX
0054EF24 |. E8 DBA6EBFF call 00409604 ; 订单号转为十六进制
0054EF29 |. B9 3A000000 mov ecx, 3A ; ECX=3A
0054EF2E |. 99 cdq
0054EF2F |. F7F9 idiv ecx
0054EF31 |. 8BC2 mov eax, edx ; 订单号/3A 余数送EAX 设为(Y)
0054EF33 |. 8D95 68FFFFFF lea edx, dword ptr [ebp-98]
…………
省略一些代码
0054EF51 |. E8 328CEFFF call 00447B88
0054EF56 |. 8B85 58FFFFFF mov eax, dword ptr [ebp-A8] ; 订单号入EAX
0054EF5C |. E8 A3A6EBFF call 00409604 ; 订单号转16进制
0054EF61 |. 8D95 5CFFFFFF lea edx, dword ptr [ebp-A4]
0054EF67 |. E8 80DCFFFF call 0054CBEC 关键CALL1
0054EF6C |. 8B85 5CFFFFFF mov eax, dword ptr [ebp-A4]
0054EF72 |. E8 8DA6EBFF call 00409604
0054EF77 |. 8D95 60FFFFFF lea edx, dword ptr [ebp-A0]
0054EF7D |. E8 4ADDFFFF call 0054CCCC 关键CALL2
0054EF82 |. 8B95 60FFFFFF mov edx, dword ptr [ebp-A0]
0054EF88 |. 58 pop eax
0054EF89 |. E8 E25CEBFF call 00404C70 ; 把Y和P拼凑 即为注册码
0054EF8E |. 8B95 68FFFFFF mov edx, dword ptr [ebp-98]
进入关键CALL1
0054CC09 |. 81F3 F1250B00 xor ebx, 0B25F1 ; 订单号十六进制和B25F1异或
0054CC0F |. 8BC3 mov eax, ebx
0054CC11 |. 33D2 xor edx, edx
0054CC13 |. 52 push edx
0054CC14 |. 50 push eax
0054CC15 |. 8D45 FC lea eax, dword ptr [ebp-4]
0054CC18 |. E8 B3C9EBFF call 004095D0 ; 异或结果转十进制(设为K)
0054CC1D |. 8B45 FC mov eax, dword ptr [ebp-4]
0054CC20 |. 0FB600 movzx eax, byte ptr [eax]
0054CC23 |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CC26 |. 0FB652 01 movzx edx, byte ptr [edx+1]
0054CC2A |. 03C2 add eax, edx ; K的[1]+[2]=A
0054CC2C |. B9 05000000 mov ecx, 5
0054CC31 |. 99 cdq
0054CC32 |. F7F9 idiv ecx
0054CC34 |. 80C2 34 add dl, 34 ; A/5的余数加上34
0054CC37 |. 8855 F8 mov byte ptr [ebp-8], dl ; 保存
0054CC3A |. 8B45 FC mov eax, dword ptr [ebp-4]
0054CC3D |. 0FB640 02 movzx eax, byte ptr [eax+2]
0054CC41 |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CC44 |. 0FB652 03 movzx edx, byte ptr [edx+3]
0054CC48 |. 03C2 add eax, edx ; K的[3]+[4]=B
0054CC4A |. B9 05000000 mov ecx, 5
0054CC4F |. 99 cdq
0054CC50 |. F7F9 idiv ecx
0054CC52 |. 8BDA mov ebx, edx
0054CC54 |. 80C3 33 add bl, 33 ; B/5的余数加33
0054CC57 |. 885D F9 mov byte ptr [ebp-7], bl ; 保存
0054CC5A |. 8D45 F4 lea eax, dword ptr [ebp-C]
…………
省略一些代码
0054CC85 |. B9 19000000 mov ecx, 19
0054CC8A |. E8 B982EBFF call 00404F48 ; 结果和K拼凑起来 结果设为R
CALL2
0054CCEB |. 81F3 8776FBDD xor ebx, DDFB7687 ; R和DDFB7687异或
0054CCF1 |. 8BC3 mov eax, ebx
0054CCF3 |. 33D2 xor edx, edx
0054CCF5 |. 52 push edx
0054CCF6 |. 50 push eax
0054CCF7 |. 8D45 FC lea eax, dword ptr [ebp-4]
0054CCFA |. E8 D1C8EBFF call 004095D0 ; 异或的结果转10进制(设为L)
0054CCFF |. 8B45 FC mov eax, dword ptr [ebp-4]
0054CD02 |. 0FB600 movzx eax, byte ptr [eax]
0054CD05 |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CD08 |. 0FB652 01 movzx edx, byte ptr [edx+1]
0054CD0C |. 03C2 add eax, edx ; L的[1]+[2]=E
0054CD0E |. B9 05000000 mov ecx, 5
0054CD13 |. 99 cdq
0054CD14 |. F7F9 idiv ecx
0054CD16 |. 80C2 66 add dl, 66 ; E/5的余数加66
0054CD19 |. 8855 F8 mov byte ptr [ebp-8], dl ; 保存
0054CD1C |. 8B45 FC mov eax, dword ptr [ebp-4]
0054CD1F |. 0FB640 02 movzx eax, byte ptr [eax+2]
0054CD23 |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CD26 |. 0FB652 03 movzx edx, byte ptr [edx+3] ; L的[3]+[4]=F
0054CD2A |. 03C2 add eax, edx
0054CD2C |. B9 05000000 mov ecx, 5
0054CD31 |. 99 cdq
0054CD32 |. F7F9 idiv ecx
0054CD34 |. 80C2 75 add dl, 75 ; F/5的余数加75
0054CD37 |. 8855 F9 mov byte ptr [ebp-7], dl ; 保存
0054CD3A |. 8B45 FC mov eax, dword ptr [ebp-4]
0054CD3D |. 0FB640 04 movzx eax, byte ptr [eax+4]
0054CD41 |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CD44 |. 0FB652 05 movzx edx, byte ptr [edx+5] ; L的[5]+[6]=G
0054CD48 |. 03C2 add eax, edx
0054CD4A |. B9 05000000 mov ecx, 5
0054CD4F |. 99 cdq
0054CD50 |. F7F9 idiv ecx
0054CD52 |. 80C2 7A add dl, 7A ; G/5的余数加上7A
0054CD55 |. 8855 FA mov byte ptr [ebp-6], dl ; 保存
0054CD58 |. 8B45 FC mov eax, dword ptr [ebp-4]
0054CD5B |. 0FB640 06 movzx eax, byte ptr [eax+6]
0054CD5F |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CD62 |. 0FB652 07 movzx edx, byte ptr [edx+7]
0054CD66 |. 03C2 add eax, edx
0054CD68 |. 8B55 FC mov edx, dword ptr [ebp-4]
0054CD6B |. 0FB652 08 movzx edx, byte ptr [edx+8] ; L的[7]+[8]+[9]=H
0054CD6F |. 03C2 add eax, edx
0054CD71 |. B9 05000000 mov ecx, 5
0054CD76 |. 99 cdq
0054CD77 |. F7F9 idiv ecx
0054CD79 |. 80C2 69 add dl, 69 ; H/5的余数加上69
0054CD7C |. 8855 FB mov byte ptr [ebp-5], dl ; 保存
…………
省略一些代码
0054CDE1 |. B9 09000000 mov ecx, 9
0054CDE6 |. E8 5D81EBFF call 00404F48 ; 和L一起拼凑结果 设为P
算法总结:
订单号的16进制 / 3A取余数 设为Y 假设是123123 Y=1E0F3 Mod 3A=2F(16)=47(10)
订单号的16进制 Xor B25F1(定值) 转换 10进制 设为k k=1E0F3 Xor B25F1=AC502=705794(10)
(k的第一位和第二位的ASCII码值 Mod 5)+34 我这里为 7 保存
(k的第三位和第四位的ASCII码值 Mod 5)+33 我这里为 6 保存
依次拼凑到K的后面 设为R R=70579476
R 的16进制和定值 DDFB7687 异或 结果转为10进制 设为L L=3654255507(10)
(L 十进制的第1位和第2位的ASCII码值相加 MOD 5 )+66 结果换成字符,保存 我这里为f
(L 十进制的第3位和第4位的ASCII码值相加后 MOD 5 )+75 结果换成字符,保存 我这里为u
(L 十进制的第5位和第6位的ASCII码值相加后 MOD 5 )+7A 结果换成字符,保存 我这里为}
(L 十进制的第7位和第8位第9位的ASCII值相加后 MOD 5 ) +上69 结果换成字符,保存 我这里为m
结果最后拼凑为
36m5u425}f5507 = p
p 和 Y 拼凑 即为最后的注册码 = 4736m5u425}f5507
所以注册信息为:
订单号:123123
注册码:4736m5u425}f5507 |
评分
-
查看全部评分
|