Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > Registry Crawler 4.0注册码算法分析(2)
【标  题】:Registry Crawler 4.0注册码算法分析(2)
【关键字】:C,算法分析,is,Re,raw,str,Registry,Crawler
【来  源】:网络

Registry Crawler 4.0注册码算法分析(2)

Your Ad Here * Possible StringData Ref from Data Obj ->"无法记录注册信息.

请联系 crawler@4dev.com"
                                |
:0040B0B3 68A88F4500              push 00458FA8
:0040B0B8 E866B50200              call 00436623
:0040B0BD 8BCE                    mov ecx, esi
:0040B0BF E8DE400200              call 0042F1A2
:0040B0C4 5E                      pop esi
:0040B0C5 5B                      pop ebx
:0040B0C6 83C408                  add esp, 00000008
:0040B0C9 C3                      ret



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B0AF(C)
|
:0040B0CA 6A40                    push 00000040

* Possible Reference to Dialog: 
                                |
:0040B0CC 68988F4500              push 00458F98

* Possible StringData Ref from Data Obj ->"欢迎使用 Registry Crawle 的完整版本. "
                                      ->"感谢你注册软件.

请重新启动程序,以解除所有未注"
                                      ->"册版本的功能限制."
                                |
:0040B0D1 68FC8E4500              push 00458EFC
:0040B0D6 8BCE                    mov ecx, esi
:0040B0D8 E80F110200              call 0042C1EC
:0040B0DD 8BCE                    mov ecx, esi
:0040B0DF E8BE400200              call 0042F1A2
:0040B0E4 5E                      pop esi
:0040B0E5 5B                      pop ebx
:0040B0E6 83C408                  add esp, 00000008
:0040B0E9 C3                      ret

======看看0040B047处的跳转是到哪儿了:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B047(C)
|
:0040B0EA 8BCE                    mov ecx, esi
:0040B0EC E80FFAFFFF              call 0040AB00 <<-------注意这个CALL,F10带过的话,EAX=0
:0040B0F1 85C0                    test eax, eax
:0040B0F3 7419                    je 0040B10E  <<------跳
:0040B0F5 6A40                    push 00000040

* Possible Reference to Dialog: 
                                |
:0040B0F7 68E88E4500              push 00458EE8

* Possible StringData Ref from Data Obj ->"你输入的注册信息仅能用于 Registry "
                                      ->"Crawler 3.x 版本.

要注册 4.0 "
                                      ->"以上版本,你需要新的注册信息.请与我们联系,将你?
                                      ->"淖⒉崧肷兜?Registry Crawler "
                                      ->"4.0 (E-mail sales@4dev.com). 注意在 "
                                      ->"E-mail 中你必须提供旧版本的注册码.

谢谢,
4Dev"
                                      ->"elopers Team."
                                |
:0040B0FC 68AC8D4500              push 00458DAC
:0040B101 8BCE                    mov ecx, esi
:0040B103 E8E4100200              call 0042C1EC
:0040B108 5E                      pop esi
:0040B109 5B                      pop ebx
:0040B10A 83C408                  add esp, 00000008
:0040B10D C3                      ret

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040B0F3(C)
|
:0040B10E 6A30                    push 00000030

* Possible Reference to Dialog: 
                                |
:0040B110 68A08D4500              push 00458DA0

* Possible StringData Ref from Data Obj ->"你输入的注册信息是无效的.
请重新输入你从 "
                                      ->"4Developers LLC 得到的用户 ID "
                                      ->"及相应的注册码.

如果你尚未注册,你可以点击下面"
                                      ->"的 '马上定购' 软件.如果你需要帮助,请发 "
                                      ->"E-mail 到: crawler@4dev.com"
                                |
:0040B115 68908C4500              push 00458C90
:0040B11A 8BCE                    mov ecx, esi
:0040B11C E8CB100200              call 0042C1EC
:0040B121 5E                      pop esi
:0040B122 5B                      pop ebx
:0040B123 83C408                  add esp, 00000008
:0040B126 C3                      ret
===================================================
由上面这段代码不难看出,Regstry Crawler 的注册码运算有两处:0040B040处的CALL,0040B0EC处的CALL,其中前者为4.0版的注册码运算,而后者为3.x版注册码的运算,3.x版的注册码运算与4.0版的有点像。注册码验证流程为:先将用户名用4.0版的注册码算法进行运算,并与用户输入的注册码进行比较,不同的话,再将用户名用3.x版的注册码算法进行运算,并与用户输入的注册码进行比较,如果相同,则提示用户更新注册码,如果不同,则跳出注册失败对话框。本文只是对4.0版的注册码运算进行分析,不讨论3.x版的算法,因此不进入第二个CALL。
===================================================
初步分析完成,进入第二次分析:
来到 0040B040处,按F8进入CALL,此时来到:

* Referenced by a CALL at Addresses:
|:0040AAF3  , :0040B040 
|
:0040ACF0 83EC24                  sub esp, 00000024
:0040ACF3 83C9FF                  or ecx, FFFFFFFF
:0040ACF6 33C0                    xor eax, eax
:0040ACF8 55                      push ebp
:0040ACF9 57                      push edi

* Possible Reference to Dialog: 
                                |
:0040ACFA BF10E54500              mov edi, 0045E510 <<------0045E510为用户名首地址 \
:0040ACFF F2                      repnz                                              \
:0040AD00 AE                      scasb                                        测试用户名长度->ECX
:0040AD01 F7D1                    not ecx                                            /
:0040AD03 49                      dec ecx                                            /
:0040AD04 8BE9                    mov ebp, ecx
:0040AD06 83FD08                  cmp ebp, 00000008
:0040AD09 7D06                    jge 0040AD11   <--------大于或等于8则跳,如果不跳,则不进行4.0版的注册码算法(此例中的用户名符合条件)
:0040AD0B 5F                      pop edi
:0040AD0C 5D                      pop ebp
:0040AD0D 83C424                  add esp, 00000024
:0040AD10 C3                      ret


==================下面开始注册码算法======================
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040AD09(C)
|
:0040AD11 53                      push ebx
:0040AD12 56                      push esi
:0040AD13 6810E54500              push 0045E510   <<-------用户名入栈
:0040AD18 E845D00100              call 00427D62     <<-------将用户名中所有的大写字母转成小写字母
:0040AD1D B907000000              mov ecx, 00000007
:0040AD22 33C0                    xor eax, eax
:0040AD24 8D7C2419                lea edi, dword ptr [esp+19]
:0040AD28 C644241800              mov [esp+18], 00
:0040AD2D F3                      repz
:0040AD2E AB                      stosd
:0040AD2F 66AB                    stosw
:0040AD31 83C404                  add esp, 00000004
:0040AD34 AA                      stosb
:0040AD35 8D442414                lea eax, dword ptr [esp+14]

* Possible Reference to Dialog: 
                                |
:0040AD39 68E48B4500              push 00458BE4  <<---------“8267-”入栈
:0040AD3E 50                      push eax

* Reference To: KERNEL32.lstrcpyA, Ord:0302h
                                |
:0040AD3F FF155C834400            Call dword ptr [0044835C]  <<-------“8267-”首地址->EAX
:0040AD45 33DB                    xor ebx, ebx  <<-------EBX清零,准备计数
Registry Crawler 4.0注册码算法分析(3):【上一篇】
Registry Crawler 4.0注册码算法分析(1):【下一篇】
【相关文章】
  • Revival 的算法跟踪(2)
  • Revival 的算法跟踪(3)
  • Roaring Falls Screensaver算法分析(1)
  • Roaring Falls Screensaver算法分析(2)
  • Roaring Falls Screensaver算法分析(3)
  • VirTime HTMLock V1.4.0 pj之温柔篇(1)
  • VirTime HTMLock V1.4.0 pj之温柔篇(2)
  • Windows System Optimizer V3.1算法分析
  • 简单算法——WinRCAD 2000公路设计软件
  • XDos V1.0.322 汉化版 算法分析(1)
  • 【随机文章】
  • ASP.NET强大的性能(二)
  • 什么是VPS?
  • 菜鸟必学:ASP.NET开发十大技巧
  • 也谈struts资源文件的中文问题
  • 容器,Connection,事务,DAO模式(侧重JDBC分析)
  • NativeXML数据库技术详解
  • 直击新年数字音符
  • 无线移动短信息服务平台(下)
  • 哈哈??要不要这次再辞职玩WOW呢?反复思量中
  • osgi介绍(二)一个假想的实例
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.