驱动精灵(WinDriver Ghost)算法分析

驱动精灵(WinDriver Ghost)算法分析

2004/10/15 0:57:00来源:本站整理作者:蓝点我要评论(0)
软件大小: 11?? KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 系统备份
应用平台: Win9x/NT/2000/XP
下载地址: http://ln-down.skycn.net/down/WinDriverGhost202.exe(个人版)
http://sdhttp.skycn.net/down/WinDriverGhost201Ent.exe(企业版)
软件介绍:
驱动精灵是一个非常实用的驱动程序备份工具,经常重装电脑的人一定
有找驱动程序的经验,要不就原版驱动程序已经不见了,就是事先没有备份
起来,找起来相当费时;现在你只要利用驱动精灵的驱动程序备份功能,在
电脑重装前,将你目前电脑中的最新版本驱动程序通通备份下载,待重装完
成时,再试用它的驱动程序还原功能安装,这样,便可以节省掉许多许动程
序安装的时间,并且在也不怕找不到驱动程序了。

-----------------------------------------------------------------

下面我们开始(以个人版为例)

程序用upx加壳,我们不必管他,在这里不需脱壳即可找到注册码!
运行trw2000,载入程序,提示要注册,否则只能使用15天(随便他怎么说)
好,填入用户名,注册码,下bpx hmemcpy,点击注册,程序被拦截(典型
的DELPHI程序),bc*,pmodule,然后按几次f12+f10经过几个ret后来到这里:

****************************************************************
:0049D229 8B45E4 mov eax, dword ptr [ebp-1C]---->用户名
:0049D22C E8737BF6FF call 00404DA4---->取用户名长度
:0049D231 0557040000 add eax, 00000457---->eax=eax+457h(1111d)
如果用户名是abc,则位数3d,eax=3d+1111d=1114d(45Ah)
:0049D236 8D55E8 lea edx, dword ptr [ebp-18]
:0049D239 E872C2F6FF call 004094B0---->上面结果放到eax(10进制),ecx(16进制)
:0049D23E 8D55E0 lea edx, dword ptr [ebp-20]
:0049D241 8B45FC mov eax, dword ptr [ebp-04]
:0049D244 8B8000030000 mov eax, dword ptr [eax+00000300]
:0049D24A E85566FAFF call 004438A4
:0049D24F 8B45E0 mov eax, dword ptr [ebp-20]
将用户名放到eax,然后与黑名单比较
这是我破解的第一个有黑名单的程序

* Possible StringData Ref from Code Obj ->"DiSTiNCT"
|
:0049D252 BA5CD64900 mov edx, 0049D65C
:0049D257 E88C7CF6FF call 00404EE8
:0049D25C 0F8432030000 je 0049D594---->用户名为DiSTiNCT不行
:0049D262 8D55DC lea edx, dword ptr [ebp-24]
:0049D265 8B45FC mov eax, dword ptr [ebp-04]
:0049D268 8B8000030000 mov eax, dword ptr [eax+00000300]
:0049D26E E83166FAFF call 004438A4
:0049D273 8B45DC mov eax, dword ptr [ebp-24]

* Possible StringData Ref from Code Obj ->"Team iNSaNE"
|
:0049D276 BA70D64900 mov edx, 0049D670
:0049D27B E8687CF6FF call 00404EE8
:0049D280 0F840E030000 je 0049D594---->为Team iNSaNE不行
:0049D286 8D55D8 lea edx, dword ptr [ebp-28]
:0049D289 8B45FC mov eax, dword ptr [ebp-04]
:0049D28C 8B8000030000 mov eax, dword ptr [eax+00000300]
:0049D292 E80D66FAFF call 004438A4
:0049D297 8B45D8 mov eax, dword ptr [ebp-28]
…………
……
…………
:0049D372 BA00D74900 mov edx, 0049D700
:0049D377 E86C7BF6FF call 00404EE8
:0049D37C 0F8412020000 je 0049D594---->同上,最后一个黑名单,下面开始sn的计算……
:0049D382 6814D74900 push 0049D714---->“M”入栈
:0049D387 8B45FC mov eax, dword ptr [ebp-04]
:0049D38A FFB02C030000 push dword ptr [eax+0000032C]---->“TW”入栈
:0049D390 6820D74900 push 0049D720---->“20”入栈
:0049D395 FF75E8 push [ebp-18]---->开头计算的结果入栈
:0049D398 682CD74900 push 0049D72C---->“-”入栈
:0049D39D 8D55B8 lea edx, dword ptr [ebp-48]
:0049D3A0 8B45FC mov eax, dword ptr [ebp-04]
:0049D3A3 8B8000030000 mov eax, dword ptr [eax+00000300]
:0049D3A9 E8F664FAFF call 004438A4
:0049D3AE 8B45B8 mov eax, dword ptr [ebp-48]---->用户名
:0049D3B1 8D55BC lea edx, dword ptr [ebp-44]
:0049D3B4 E89BFDFFFF call 0049D154---->用户名转换为16进制(如abc=616263)
:0049D3B9 FF75BC push [ebp-44]---->此结果入栈
:0049D3BC 8D45EC lea eax, dword ptr [ebp-14]
:0049D3BF BA06000000 mov edx, 00000006
:0049D3C4 E89B7AF6FF call 00404E64---->注册码计算,见下面
:0049D3C9 8D45E8 lea eax, dword ptr [ebp-18]---->开头计算的结果
:0049D3CC BA38D74900 mov edx, 0049D738
:0049D3D1 E8AE77F6FF call 00404B84
:0049D3D6 8D55B4 lea edx, dword ptr [ebp-4C]
:0049D3D9 8B45FC mov eax, dword ptr [ebp-04]
:0049D3DC 8B8004030000 mov eax, dword ptr [eax+00000304]
:0049D3E2 E8BD64FAFF call 004438A4
:0049D3E7 8B55B4 mov edx, dword ptr [ebp-4C]错sn
:0049D3EA 8B45EC mov eax, dword ptr [ebp-14]正确sn
:0049D3ED E8EE7CF6FF call 004050E0---->关键比较
:0049D3F2 85C0 test eax, eax
:0049D3F4 0F849A010000 je 0049D594---->跳了就over
:0049D3FA 8B45FC mov eax, dword ptr [ebp-04]
:0049D3FD 8B8004030000 mov eax, dword ptr [eax+00000304]
:0049D403 33D2 xor edx, edx
:0049D405 E8CA64FAFF call 004438D4
:0049D40A 8D45EC lea eax, dword ptr [ebp-14]
:0049D40D E8DA76F6FF call 00404AEC
:0049D412 6A00 push 00000000
…………
……
**********************************************************
注册码计算:
:00404E64 53 push ebx
:00404E65 56 push esi
:00404E66 57 push edi
:00404E67 52 push edx
:00404E68 50 push eax
:00404E69 89D3 mov ebx, edx
:00404E6B 31FF xor edi, edi
:00404E6D 8B4C9414 mov ecx, dword ptr [esp+4*edx+14]---->“M”
:00404E71 85C9 test ecx, ecx
:00404E73 7406 je 00404E7B
:00404E75 3908 cmp dword ptr [eax], ecx
:00404E77 7502 jne 00404E7B
:00404E79 89CF mov edi, ecx
:00404E7B 31C0 xor eax, eax
------------>>>>>循环开始(将前面入栈的所有内容依次连接起来即为注册码)
如“M”“TW”“20”“1114”“-”“616263”=“MTW201114-616263”
:00404E7D 8B4C9414 mov ecx, dword ptr [esp+4*edx+14]
:00404E81 85C9 test ecx, ecx
:00404E83 7409 je 00404E8E
:00404E85 0341FC add eax, dword ptr [ecx-04]
:00404E88 39CF cmp edi, ecx
:00404E8A 7502 jne 00404E8E
:00404E8C 31FF xor edi, edi
:00404E8E 4A dec edx
:00404E8F 75EC jne 00404E7D
<<<<<------------循环结束
:00404E91 85FF test edi, edi
:00404E93 7414 je 00404EA9---->跳走
:00404E95 89C2 mov edx, eax
:00404E97 89F8 mov eax, edi
:00404E99 8B37 mov esi, dword ptr [edi]
:00404E9B 8B76FC mov esi, dword ptr [esi-04]
:00404E9E E885020000 call 00405128
:00404EA3 57 push edi
:00404EA4 0337 add esi, dword ptr [edi]
:00404EA6 4B dec ebx
:00404EA7 EB08 jmp 00404EB1
:00404EA9 E802FDFFFF call 00404BB0
:00404EAE 50 push eax
:00404EAF 89C6 mov esi, eax
------------>>>>>循环开始(又循环一遍?)
:00404EB1 8B449C18 mov eax, dword ptr [esp+4*ebx+18]
:00404EB5 89F2 mov edx, esi
:00404EB7 85C0 test eax, eax
:00404EB9 740A je 00404EC5
:00404EBB 8B48FC mov ecx, dword ptr [eax-04]
:00404EBE 01CE add esi, ecx
:00404EC0 E88FDBFFFF call 00402A54
:00404EC5 4B dec ebx
:00404EC6 75E9 jne 00404EB1
<<<<<------------循环结束
:00404EC8 5A pop edx---->将结果放到edx
:00404EC9 58 pop eax
:00404ECA 85FF test edi, edi
:00404ECC 750C jne 00404EDA
:00404ECE 85D2 test edx, edx
:00404ED0 7403 je 00404ED5
:00404ED2 FF4AF8 dec [edx-08]
:00404ED5 E866FCFFFF call 00404B40
:00404EDA 5A pop edx
:00404EDB 5F pop edi
:00404EDC 5E pop esi
:00404EDD 5B pop ebx
:00404EDE 58 pop eax
:00404EDF 8D2494 lea esp, dword ptr [esp+4*edx]
:00404EE2 FFE0 jmp eax
:00404EE4 C3 ret
**************************************************
企业版算法同个人版类似,大家自己破解一下试试:)

算法总结:
用户名:abc
注册码(个人版):MTW201114-616263("MTW20"+"1111+用户名长度"+"-"+"用户名的ascii码")
注册码(企业版):WDW202225-616263("WDW20"+"2222+用户名长度"+"-"+"用户名的ascii码")

2003.04.09

    
    
     
    
    

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 囧
      囧
  • 0 恶心
      恶心
  • 0 期待
      期待
  • 0
      难过
  • 0 不错
      不错
  • 0 关注
      关注
  • 最新评论
  • 热门评论
共有评论(0)条 查看全部评论
高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲

注:您的评论需要经过审核才会显示出来