
【文章标题】: 爆破方正软件保护卡
【文章作者】: 思远软件
【作者邮箱】: c_s_y@126.com
【作者QQ号】: 495544622
【软件名称】: 方正软件保护卡
【软件大小】: 3.69M
【加壳方式】: 无
【编写语言】: Microsoft Visual C++ 5.0
【使用软件】: ollydbg 1.1
【操作平台】: XP SP3
【软件介绍】: 这篇文章非常简洁,是给初学者使用,高手飘过
【作者声明】: 本程序只合适学习研究使用,不要用于违法用途,否侧后果自负。
--------------------------------------------------------------------------------
【详细过程】
学校机房有保护卡,用上去真不爽,没办法,只能破掉他。
先试运行,随便输入一个密码,显示错误
用od载入,因为有出错,所以很明显,下段 bp MessageBoxA
运行,程序断到了平台领空。
在系统领空做事情是毫无意义的。alt+F9返回。

好了,弹起来了错误对话框,点击确定之后,系统回到了程序领空,现在的地址是0052BF94
这时候我们看不到明显的注册信息啊怎么打开保护卡输密码,不要着急,看堆栈。
0012F1A0 0012FCE4
0012F1A4 3636362D
0012F1A8/0012F278
0012F1AC|0045D7F5返回到 EzBACK_p.0045D7F5 来自 EzBACK_p.0052BF62
0012F1B0|00CCBC
看到了哪个,恩,看到了0045D7F5这个地址。
好我们到这个地址,下断点。
0045D7D5 /74 02 je short 0045D7D9 ;1
0045D7D7|. |EB 67 jmp short 0045D840
0045D7D9|> \6A 10 push 10
0045D7DB|.8D4D E8 lea ecx, dword ptr [ebp-18]
0045D7DE|.E8 E7841200 call 00585CCA
0045D7E3|.50 push eax
0045D7E4|.8D4D E4 lea ecx, dword ptr [ebp-1C]
0045D7E7|.E8 DE841200 call 00585CCA
0045D7EC|.50 push eax
0045D7ED|.8B4D F0 mov ecx, dword ptr [ebp-10]

0045D7F0|.E8 6DE70C00 call 0052BF62
0045D7F5|.8B4D F0 mov ecx, dword ptr [ebp-10]
0045D7F8|.81C1 010000 add ecx, 1
0045D7FE|.E8 A8220D00 call 0052FAAB
0045D803|.6A 00 push 0
0045D805|.6A FF push -1
0045D807|.6A 00 push 0
0045D809|.8B4D F0 mov ecx, dword ptr [ebp-10]
0045D80C|.81C1 010000 add ecx, 1
0045D812|.E8 743D1300 call 0059158B
0045D817|.C645 FC 03 mov byte ptr [ebp-4], 3
0045D81B|.8D4D E0 lea ecx, dword ptr [ebp-20]
0045D81E|.E8 B93A0D00 call 005312DC
0045D823|.C645 FC 01 mov byte ptr [ebp-4], 1
0045D827|.8D4D E4 lea ecx, dword ptr [ebp-1C]
0045D82A|.E8 AD3A0D00 call 005312DC
0045D82F|.C745 FC FFFFF>mov dword ptr [ebp-4], -1
0045D836|.8D4D E8 lea ecx, dword ptr [ebp-18]
0045D839|.E8 9E3A0D00 call 005312DC

0045D83E|.EB 76 jmp short 0045D8B6
0045D840|>8B55 F0 mov edx, dword ptr [ebp-10]
0045D843|.8B82 00020000 mov eax, dword ptr [edx+200]
0045D849|.8945 B4 mov dword ptr [ebp-4C], eax
0045D84C|.8B4D B4 mov ecx, dword ptr [ebp-4C]
0045D84F|.894D B8 mov dword ptr [ebp-48], ecx
0045D852|.837D B8 00 cmp dword ptr [ebp-48], 0
0045D856 74 1B je short 0045D873 ;2
0045D858|.8BF4 mov esi, esp
0045D85A|.6A 01 push 1
这时候我们来到这里。
稍微分析一下就可以了解,1和2处的指令,就是所谓的关键跳转,
好 我们改这2条的指令。
0045D7D5 把je改成jne
0045D856把je改成jne
好了,搞定。
由于这个是破解管理员设置的密码,所以没有所为的算法分析,关键代码为
0045BCB5|> /8B55 08 /mov edx, dword ptr [ebp+8]
0045BCB8|. |0355 E8 |add edx, dword ptr [ebp-18]

0045BCBB|. |0FBE02 |movsx eax, byte ptr [edx]
0045BCBE|. |8B4D E8 |mov ecx, dword ptr [ebp-18]
0045BCC1|. |0FBE540D EC |movsx edx, byte ptr [ebp+ecx-14]
0045BCC6|. |3BC2 |cmp eax, edx
0045BCC8|. |75 18 |jnz short 0045BCE2
0045BCCA|. |8B45 08 |mov eax, dword ptr [ebp+8]
0045BCCD|. |0345 E8 |add eax, dword ptr [ebp-18]
0045BCD0|. |0FBE08 |movsx ecx, byte ptr [eax]
0045BCD3|. |85C9 |test ecx, ecx
0045BCD5|. |74 0B |je short 0045BCE2
0045BCD7|. |8B55 E8 |mov edx, dword ptr [ebp-18]
0045BCDA|. |83C2 01 |add edx, 1
0045BCDD|. |8955 E8 |mov dword ptr [ebp-18], edx
0045BCE0|.^\EB D3 \jmp short 0045BCB5
这个管理员密码是我们大学的,泄露了不大好,所以此处也就不跟踪注册码了,
如果感兴趣,可以在当程序运行至底部的代码后怎么打开保护卡输密码,查看ebp地址,数据窗口中跟随
就可以找到
这里就爆破了(*^__^*)
2009年10月14日 8:11:05
[招生]科锐逆向工程师培训(3月6日远程教学报名特惠, 第37期)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-143677-1.html
雷达
吃吃喝喝打打几十块输赢的小麻将
对于进入12海里的外国舰船也不是立马就给予击沉和撞击