瑞鲁手机APP下载网_专注推荐好用的手机APP和游戏APP

算法分析 V1.45

TurboPho v2.50 算法分析

人气:0引自:瑞鲁下载网

下载地址: http://www.stepok.com/Chs/tphoto/index.htm 试验码:12345-67890-abcdef-ghijk0042A4F0 /$ 8B5424 04 MOV EDX,DWORD PTR SS:[ESP+4]0042A4F4 |. 53 PUSH EBX0042A4F5 |. 55 PUSH EBP0042A4F6 |. 56 PUSH ESI0042A4F7 |. 57 PUSH EDI0042A4F8 |. 8BFA MOV EDI,EDX0042A4FA |. 83C9 FF OR ECX,FFFFFFFF0042A4FD |. 33C0 XOR EAX,EAX0042A4FF |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]0042A501 |. F7D1 NOT ECX0042A503 |. 49 DEC ECX0042A504 |. 83F9 05 CMP ECX,5====>注册码第一部分必须5位。0042A507 |. 74 07 JE SHORT TurboPho.0042A5100042A509 |. 5F POP EDI0042A50A |. 5E POP ESI0042A50B |. 5D POP EBP0042A50C |. 5B POP EBX0042A50D |. C2 1000 RETN 100042A510 |> 8B5C24 18 MOV EBX,DWORD PTR SS:[ESP+18]0042A514 |. 83C9 FF OR ECX,FFFFFFFF0042A517 |. 8BFB MOV EDI,EBX0042A519 |. 33C0 XOR EAX,EAX0042A51B |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]0042A51D |. F7D1 NOT ECX0042A51F |. 49 DEC ECX0042A520 |. 83F9 05 CMP ECX,5====>注册码第二部分必须5位。0042A523 |. 74 07 JE SHORT TurboPho.0042A52C0042A525 |. 5F POP EDI0042A526 |. 5E POP ESI0042A527 |. 5D POP EBP0042A528 |. 5B POP EBX0042A529 |. C2 1000 RETN 100042A52C |> 8B6C24 1C MOV EBP,DWORD PTR SS:[ESP+1C]0042A530 |. 83C9 FF OR ECX,FFFFFFFF0042A533 |. 8BFD MOV EDI,EBP0042A535 |. 33C0 XOR EAX,EAX0042A537 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]0042A539 |. F7D1 NOT ECX0042A53B |. 49 DEC ECX0042A53C |. 83F9 06 CMP ECX,6====>注册码第三部分必须6位。0042A53F |. 74 07 JE SHORT TurboPho.0042A5480042A541 |. 5F POP EDI0042A542 |. 5E POP ESI0042A543 |. 5D POP EBP0042A544 |. 5B POP EBX0042A545 |. C2 1000 RETN 100042A548 |> 8B7424 20 MOV ESI,DWORD PTR SS:[ESP+20]0042A54C |. 83C9 FF OR ECX,FFFFFFFF0042A54F |. 8BFE MOV EDI,ESI0042A551 |. 33C0 XOR EAX,EAX0042A553 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]0042A555 |. F7D1 NOT ECX0042A557 |. 49 DEC ECX0042A558 |. 83F9 05 CMP ECX,5====>注册码第四部分必须5位。0042A55B |. 74 07 JE SHORT TurboPho.0042A5640042A55D |. 5F POP EDI0042A55E |. 5E POP ESI0042A55F |. 5D POP EBP0042A560 |. 5B POP EBX0042A561 |. C2 1000 RETN 100042A564 |> 0FBE42 04 MOVSX EAX,BYTE PTR DS:[EDX+4]===>取第一部分假码的第5位的ASSII值35。0042A568 |. 99 CDQ====>清零。0042A569 |. B9 07000000 MOV ECX,70042A56E |. F7F9 IDIV ECX====>除以7。EAX=7,EDX=4.0042A570 |. B9 05000000 MOV ECX,50042A575 |. 8BFA MOV EDI,EDX====>商移入EDI。EDI=4.0042A577 |. 8B5424 14 MOV EDX,DWORD PTR SS:[ESP+14]====>第一部分假码12345移入EDX。0042A57B |. 0FBE42 02 MOVSX EAX,BYTE PTR DS:[EDX+2]====>取第一部分假码的第3位的ASSII值33。0042A57F |. 99 CDQ0042A580 |. F7F9 IDIV ECX====>除以5。EAX=A,EDX=1.0042A582 |. 8B4C24 14 MOV ECX,DWORD PTR SS:[ESP+14]====>第一部分假码12345移入ECX。0042A586 |. 03FA ADD EDI,EDX====>商相加。EDI=4+1=5.0042A588 |. 0FBE51 01 MOVSX EDX,BYTE PTR DS:[ECX+1]====>取第一部分假码的第2位的ASSII值32。0042A58C |. 0FBE09 MOVSX ECX,BYTE PTR DS:[ECX]====>取第一部分假码的第1位的ASSII值31。0042A58F |. 8D0457 LEA EAX,DWORD PTR DS:[EDI+EDX*2]====>EAX=EDI+第2位的ASSII值*2=5+32*2=69。0042A592 |. 03C1 ADD EAX,ECX====>EAX=EAX+第1位的ASSII值31=9A。0042A594 |. B9 1A000000 MOV ECX,1A0042A599 |. 99 CDQ0042A59A |. F7F9 IDIV ECX====>除以1A。EAX=5,EDX=18.0042A59C |. 0FBE06 MOVSX EAX,BYTE PTR DS:[ESI]====>取第四部分假码的第1位的ASSII值67。0042A59F |. 80C2 41 ADD DL,41====>商加41。DL=18+41=59.0042A5A2 |. 81E2 FF000000 AND EDX,0FF====>取两位。0042A5A8 |. 3BC2 CMP EAX,EDX====>EDX的值是否等于第四部分假码的第1位的ASSII值67。0042A5AA |. 74 09 JE SHORT TurboPho.0042A5B5====>相等则跳,否则GAME OVER!0042A5AC |. 5F POP EDI0042A5AD |. 5E POP ESI0042A5AE |. 5D POP EBP0042A5AF |. 33C0 XOR EAX,EAX0042A5B1 |. 5B POP EBX0042A5B2 |. C2 1000 RETN 100042A5B5 |> 0FBE53 02 MOVSX EDX,BYTE PTR DS:[EBX+2]====>取第二部分假码的第3位的ASSII值38。0042A5B9 |. 0FBE43 03 MOVSX EAX,BYTE PTR DS:[EBX+3]====>取第二部分假码的第4位的ASSII值39。0042A5BD |. 895424 18 MOV DWORD PTR SS:[ESP+18],EDX====>保存第二部分假码的第3位的ASSII值38。0042A5C1 |. BF 03000000 MOV EDI,30042A5C6 |. 99 CDQ0042A5C7 |. F7FF IDIV EDI====>除以3。EAX=13,EDX=0。0042A5C9 |. 0FBE43 04 MOVSX EAX,BYTE PTR DS:[EBX+4]====>取第二部分假码的第5位的ASSII值30。0042A5CD |. 0FBE4E 01 MOVSX ECX,BYTE PTR DS:[ESI+1]====>取第四部分假码的第2位的ASSII值68。0042A5D1 |. 8D3C80 LEA EDI,DWORD PTR DS:[EAX+EAX*4]====>EDI=EAX+EAX*4=F0。0042A5D4 |. 8B4424 18 MOV EAX,DWORD PTR SS:[ESP+18]====>第二部分假码的第3位的ASSII值38移入EAX。0042A5D8 |. 03C2 ADD EAX,EDX====>EAX=EAX+EDX=38+0=38。0042A5DA |. 0FBE13 MOVSX EDX,BYTE PTR DS:[EBX]====>取第二部分假码的第1位的ASSII值36。0042A5DD |. 03F8 ADD EDI,EAX====>EDI=EDI+EAX=F0+38=128。0042A5DF |. 0FBE43 01 MOVSX EAX,BYTE PTR DS:[EBX+1]====>取第二部分假码的第2位的ASSII值37。0042A5E3 |. 8D1457 LEA EDX,DWORD PTR DS:[EDI+EDX*2]====>EDX=EDI+EDX*2=128+36*2=194。0042A5E6 |. BF 1A000000 MOV EDI,1A0042A5EB |. 03C2 ADD EAX,EDX====>EAX=37+194=1CB。0042A5ED |. 99 CDQ0042A5EE |. F7FF IDIV EDI====>除以1A。EAX=11,EDX=11。0042A5F0 |. 80C2 41 ADD DL,41====>DL=11+41=52。0042A5F3 |. 81E2 FF000000 AND EDX,0FF====>取两位。0042A5F9 |. 3BCA CMP ECX,EDX====>EDX的值是否等于第四部分假码的第2位的ASSII值68。0042A5FB |. 74 09 JE SHORT TurboPho.0042A606====>相等则跳,否则GAME OVER!0042A5FD |. 5F POP EDI0042A5FE |. 5E POP ESI0042A5FF |. 5D POP EBP0042A600 |. 33C0 XOR EAX,EAX0042A602 |. 5B POP EBX0042A603 |. C2 1000 RETN 100042A606 |> 0FBE55 03 MOVSX EDX,BYTE PTR SS:[EBP+3]====>取第三部分假码的第4位的ASSII值64。0042A60A |. BF 1A000000 MOV EDI,1A0042A60F |. 8D0452 LEA EAX,DWORD PTR DS:[EDX+EDX*2]====>EAX=EDX*3=12C。0042A612 |. C1E0 03 SHL EAX,3====>左移3,EAX=960。0042A615 |. 2BC2 SUB EAX,EDX====>EAX=EAX-64=8FC。0042A617 |. 0FBE55 05 MOVSX EDX,BYTE PTR SS:[EBP+5]====>取第三部分假码的第6位的ASSII值66。0042A61B |. 03C2 ADD EAX,EDX====>EAX=FC+66=962。0042A61D |. 0FBE55 00 MOVSX EDX,BYTE PTR SS:[EBP]====>取第三部分假码的第1位的ASSII值61。0042A621 |. 03C2 ADD EAX,EDX====>EAX=962+61=9C3。0042A623 |. 99 CDQ0042A624 |. F7FF IDIV EDI====>除以1A。EAX=60,EDX=3。0042A626 |. 0FBE5E 02 MOVSX EBX,BYTE PTR DS:[ESI+2]====>取第四部分假码的第3位的ASSII值69。0042A62A |. 80C2 41 ADD DL,41====>DL=3+41=44。0042A62D |. 81E2 FF000000 AND EDX,0FF====>取两位。0042A633 |. 3BDA CMP EBX,EDX====>EDX是否等于第四部分假码的第3位的ASSII值69。0042A635 |. 74 09 JE SHORT TurboPho.0042A640====>相等则跳,否则GAME OVER!0042A637 |. 5F POP EDI0042A638 |. 5E POP ESI0042A639 |. 5D POP EBP0042A63A |. 33C0 XOR EAX,EAX0042A63C |. 5B POP EBX0042A63D |. C2 1000 RETN 100042A640 |> 0FBE45 01 MOVSX EAX,BYTE PTR SS:[EBP+1]====>取第三部分假码的第2位的ASSII值62。0042A644 |. 0FBE7E 03 MOVSX EDI,BYTE PTR DS:[ESI+3]====>取第四部分假码的第4位的ASSII值6A。0042A648 |. 8D14C5 000000>LEA EDX,DWORD PTR DS:[EAX*8]====>EDX=62*8=310。0042A64F |. 2BD0 SUB EDX,EAX====>EDX=310-62=2AE。0042A651 |. 8B4424 14 MOV EAX,DWORD PTR SS:[ESP+14]====>第一部分假码12345移入EAX。0042A655 |. 895424 14 MOV DWORD PTR SS:[ESP+14],EDX====>保存EDX。0042A659 |. 0FBE50 03 MOVSX EDX,BYTE PTR DS:[EAX+3]====>取第一部分假码的第4位的ASSII值34。0042A65D |. 035424 18 ADD EDX,DWORD PTR SS:[ESP+18]====>EDX=34+第二部分假码的第3位的ASSII值38=6C。0042A661 |. 0FBE45 02 MOVSX EAX,BYTE PTR SS:[EBP+2]====>取第三部分假码的第3位的ASSII值63。0042A665 |. 8B6C24 14 MOV EBP,DWORD PTR SS:[ESP+14]====>将原保存的2AE移入EBP。0042A669 |. 03D5 ADD EDX,EBP====>EDX=6C+2AE=31A。0042A66B |. BD 1A000000 MOV EBP,1A0042A670 |. 03C2 ADD EAX,EDX====>EAX=63+31A=37D。0042A672 |. 99 CDQ0042A673 |. F7FD IDIV EBP====>除以1A。EAX=22,EDX=9。0042A675 |. 80C2 41 ADD DL,41====>DL=9+41=4A。0042A678 |. 81E2 FF000000 AND EDX,0FF====>取两位。0042A67E |. 3BFA CMP EDI,EDX====>EDX是否等于第四部分假码的第4位ASSII值6A。0042A680 |. 74 09 JE SHORT TurboPho.0042A68B====>相等则跳,否则GAME OVER!0042A682 |. 5F POP EDI0042A683 |. 5E POP ESI0042A684 |. 5D POP EBP0042A685 |. 33C0 XOR EAX,EAX0042A687 |. 5B POP EBX0042A688 |. C2 1000 RETN 100042A68B |> 0FBE06 MOVSX EAX,BYTE PTR DS:[ESI]====>取第四部分假码的第1位的ASSII值59。0042A68E |. 8D148B LEA EDX,DWORD PTR DS:[EBX+ECX*4]====>EDX=44+52*4=18C。0042A691 |. 03CA ADD ECX,EDX====>ECX=52+18C=1DE。0042A693 |. 8D0440 LEA EAX,DWORD PTR DS:[EAX+EAX*2]====>EAX=59*3=10B。0042A696 |. 8D0C79 LEA ECX,DWORD PTR DS:[ECX+EDI*2]====>ECX=1DE+4A*2=272。0042A699 |. 5F POP EDI====>出栈。0042A69A |. 03C1 ADD EAX,ECX====>EAX=10B+272=37D。0042A69C |. B9 1A000000 MOV ECX,1A0042A6A1 |. 99 CDQ0042A6A2 |. F7F9 IDIV ECX====>除以1A。EAX=22,EDX=9。0042A6A4 |. 0FBE46 04 MOVSX EAX,BYTE PTR DS:[ESI+4]====>取第四部分假码的第5位的ASSII值6B。0042A6A8 |. 33C9 XOR ECX,ECX0042A6AA |. 5E POP ESI0042A6AB |. 5D POP EBP0042A6AC |. 5B POP EBX0042A6AD |. 80C2 41 ADD DL,41====>DL=9+41=4A。0042A6B0 |. 81E2 FF000000 AND EDX,0FF====>取两位。0042A6B6 |. 3BC2 CMP EAX,EDX====>EDX是否等于第四部分假码的第5位ASSII值6B。相等则注册成功。否则失败。0042A6B8 |. 0F94C1 SETE CL0042A6BB |. 8BC1 MOV EAX,ECX0042A6BD \. C2 1000 RETN 100042A6C0 /$ 8D81 5B020000 LEA EAX,DWORD PTR DS:[ECX+25B]0042A6C6 |. 8D91 54020000 LEA EDX,DWORD PTR DS:[ECX+254]0042A6CC |. 50 PUSH EAX0042A6CD |. 52 PUSH EDX0042A6CE |. 8D81 4E020000 LEA EAX,DWORD PTR DS:[ECX+24E]0042A6D4 |. 8D91 48020000 LEA EDX,DWORD PTR DS:[ECX+248]0042A6DA |. 50 PUSH EAX0042A6DB |. 52 PUSH EDX0042A6DC |. E8 0FFEFFFF CALL TurboPho.0042A4F00042A6E1 \. C3 RETN总结:注册码前三部分可以任意,但位数有规定。第四部分是根据前三部分的字符计算出来的。 本例的试验码12345-67890-abcdef-ghijk的后5位应改为YRDJJ。为什么请各位自己看吧!

专题文集:破解文章 windows
引用标题:《算法分析 V1.45》
来源地址:https://www.sdruilu.cn/index.php/news/tpart-21504.html