设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 11264|回复: 1
打印 上一主题 下一主题

驱动精灵v2.02 算法分析

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-23 01:20:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
驱动精灵(WinDriver Ghost)v2.02 算法分析
作者:LeNgHoSt[DFCG]
软件大小: 11?? KB
软件语言: 简体中文
软件类别: 国产软件 / 共享版 / 系统备份
应用平台: Win9x/NT/2000/XP
下载地址:[url=http://ln-down.skycn.net/down/WinDriverGhost202.exe]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码"

整理by 【破解魔域】http://crackmore.yeah.net
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 11:26 , Processed in 0.157973 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表