文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页精文荟萃破解文章 → TurboPho v2.50 算法分析

TurboPho v2.50 算法分析

时间:2004/10/15 0:57:00来源:本站整理作者:蓝点我要评论(0)

 

下载地址: http://www.stepok.com/Chs/tphoto/index.htm

试验码:12345-67890-abcdef-ghijk

0042A4F0 /$ 8B5424 04 MOV EDX,DWORD PTR SS:[ESP+4]
0042A4F4 |. 53 PUSH EBX
0042A4F5 |. 55 PUSH EBP
0042A4F6 |. 56 PUSH ESI
0042A4F7 |. 57 PUSH EDI
0042A4F8 |. 8BFA MOV EDI,EDX
0042A4FA |. 83C9 FF OR ECX,FFFFFFFF
0042A4FD |. 33C0 XOR EAX,EAX
0042A4FF |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
0042A501 |. F7D1 NOT ECX
0042A503 |. 49 DEC ECX
0042A504 |. 83F9 05 CMP ECX,5====>注册码第一部分必须5位。
0042A507 |. 74 07 JE SHORT TurboPho.0042A510
0042A509 |. 5F POP EDI
0042A50A |. 5E POP ESI
0042A50B |. 5D POP EBP
0042A50C |. 5B POP EBX
0042A50D |. C2 1000 RETN 10
0042A510 |> 8B5C24 18 MOV EBX,DWORD PTR SS:[ESP+18]
0042A514 |. 83C9 FF OR ECX,FFFFFFFF
0042A517 |. 8BFB MOV EDI,EBX
0042A519 |. 33C0 XOR EAX,EAX
0042A51B |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
0042A51D |. F7D1 NOT ECX
0042A51F |. 49 DEC ECX
0042A520 |. 83F9 05 CMP ECX,5====>注册码第二部分必须5位。
0042A523 |. 74 07 JE SHORT TurboPho.0042A52C
0042A525 |. 5F POP EDI
0042A526 |. 5E POP ESI
0042A527 |. 5D POP EBP
0042A528 |. 5B POP EBX
0042A529 |. C2 1000 RETN 10
0042A52C |> 8B6C24 1C MOV EBP,DWORD PTR SS:[ESP+1C]
0042A530 |. 83C9 FF OR ECX,FFFFFFFF
0042A533 |. 8BFD MOV EDI,EBP
0042A535 |. 33C0 XOR EAX,EAX
0042A537 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
0042A539 |. F7D1 NOT ECX
0042A53B |. 49 DEC ECX
0042A53C |. 83F9 06 CMP ECX,6====>注册码第三部分必须6位。
0042A53F |. 74 07 JE SHORT TurboPho.0042A548
0042A541 |. 5F POP EDI
0042A542 |. 5E POP ESI
0042A543 |. 5D POP EBP
0042A544 |. 5B POP EBX
0042A545 |. C2 1000 RETN 10
0042A548 |> 8B7424 20 MOV ESI,DWORD PTR SS:[ESP+20]
0042A54C |. 83C9 FF OR ECX,FFFFFFFF
0042A54F |. 8BFE MOV EDI,ESI
0042A551 |. 33C0 XOR EAX,EAX
0042A553 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
0042A555 |. F7D1 NOT ECX
0042A557 |. 49 DEC ECX
0042A558 |. 83F9 05 CMP ECX,5====>注册码第四部分必须5位。
0042A55B |. 74 07 JE SHORT TurboPho.0042A564
0042A55D |. 5F POP EDI
0042A55E |. 5E POP ESI
0042A55F |. 5D POP EBP
0042A560 |. 5B POP EBX
0042A561 |. C2 1000 RETN 10
0042A564 |> 0FBE42 04 MOVSX EAX,BYTE PTR DS:[EDX+4]===>取第一部分假码的第5位的ASSII值35。
0042A568 |. 99 CDQ====>清零。
0042A569 |. B9 07000000 MOV ECX,7
0042A56E |. F7F9 IDIV ECX====>除以7。EAX=7,EDX=4.
0042A570 |. B9 05000000 MOV ECX,5
0042A575 |. 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 CDQ
0042A580 |. 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,1A
0042A599 |. 99 CDQ
0042A59A |. 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 EDI
0042A5AD |. 5E POP ESI
0042A5AE |. 5D POP EBP
0042A5AF |. 33C0 XOR EAX,EAX
0042A5B1 |. 5B POP EBX
0042A5B2 |. C2 1000 RETN 10
0042A5B5 |> 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,3
0042A5C6 |. 99 CDQ
0042A5C7 |. 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,1A
0042A5EB |. 03C2 ADD EAX,EDX====>EAX=37+194=1CB。
0042A5ED |. 99 CDQ
0042A5EE |. 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 EDI
0042A5FE |. 5E POP ESI
0042A5FF |. 5D POP EBP
0042A600 |. 33C0 XOR EAX,EAX
0042A602 |. 5B POP EBX
0042A603 |. C2 1000 RETN 10
0042A606 |> 0FBE55 03 MOVSX EDX,BYTE PTR SS:[EBP+3]====>取第三部分假码的第4位的ASSII值64。
0042A60A |. BF 1A000000 MOV EDI,1A
0042A60F |. 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 CDQ
0042A624 |. 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 EDI
0042A638 |. 5E POP ESI
0042A639 |. 5D POP EBP
0042A63A |. 33C0 XOR EAX,EAX
0042A63C |. 5B POP EBX
0042A63D |. C2 1000 RETN 10
0042A640 |> 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,1A
0042A670 |. 03C2 ADD EAX,EDX====>EAX=63+31A=37D。
0042A672 |. 99 CDQ
0042A673 |. 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 EDI
0042A683 |. 5E POP ESI
0042A684 |. 5D POP EBP
0042A685 |. 33C0 XOR EAX,EAX
0042A687 |. 5B POP EBX
0042A688 |. C2 1000 RETN 10
0042A68B |> 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,1A
0042A6A1 |. 99 CDQ
0042A6A2 |. 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,ECX
0042A6AA |. 5E POP ESI
0042A6AB |. 5D POP EBP
0042A6AC |. 5B POP EBX
0042A6AD |. 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 CL
0042A6BB |. 8BC1 MOV EAX,ECX
0042A6BD \. C2 1000 RETN 10
0042A6C0 /$ 8D81 5B020000 LEA EAX,DWORD PTR DS:[ECX+25B]
0042A6C6 |. 8D91 54020000 LEA EDX,DWORD PTR DS:[ECX+254]
0042A6CC |. 50 PUSH EAX
0042A6CD |. 52 PUSH EDX
0042A6CE |. 8D81 4E020000 LEA EAX,DWORD PTR DS:[ECX+24E]
0042A6D4 |. 8D91 48020000 LEA EDX,DWORD PTR DS:[ECX+248]
0042A6DA |. 50 PUSH EAX
0042A6DB |. 52 PUSH EDX
0042A6DC |. E8 0FFEFFFF CALL TurboPho.0042A4F0
0042A6E1 \. C3 RETN

总结:注册码前三部分可以任意,但位数有规定。第四部分是根据前三部分的字符计算出来的。 本例的试验码12345-67890-abcdef-ghijk的后5位应改为YRDJJ。为什么请各位自己看吧!

    
    
     
    
    
     

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 去除winrar注册框方法

最新文章 比特币病毒怎么破解 比去除winrar注册框方法 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据

人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程