- UID
- 37101
注册时间2007-11-4
阅读权限20
最后登录1970-1-1
以武会友
 
该用户从未签到
|
发表于 2008-5-22 14:03:16
|
显示全部楼层
我们开着
按钮突破专家之windows_enabler
这个软件
然后,OD载入,
下 bp MessageBoxA
然后输入注册码后,会断下,ALT+F9返回
确定后,一直单步来到这儿- 0040D25C E8 81170000 call 0040E9E2
- 0040D261 83C4 28 add esp, 28 ; 单步跟踪来到这个地方
- 0040D264 68 01000100 push 10001
- 0040D269 68 00000106 push 6010000
- 0040D26E 68 01000152 push 52010001
复制代码 然后向上,在下面的地方下断- 0040D0EC 6A FF push -1 ; 这里下断
- 0040D0EE 6A 08 push 8
- 0040D0F0 68 02000116 push 16010002
- 0040D0F5 68 01000152 push 52010001
- 0040D0FA E8 EF180000 call 0040E9EE ; 获得假码
复制代码 然后
单步来到这儿- 0040D1A3 E8 97FEFFFF call 0040D03F ; 这个是关键call
- 0040D1A8 83C4 08 add esp, 8
- 0040D1AB 83F8 00 cmp eax, 0
- 0040D1AE B8 00000000 mov eax, 0
- 0040D1B3 0F95C0 setne al
- 0040D1B6 8945 E8 mov [ebp-18], eax
- 0040D1B9 8B5D EC mov ebx, [ebp-14]
- 0040D1BC 85DB test ebx, ebx
- 0040D1BE 74 09 je short 0040D1C9
- 0040D1C0 53 push ebx
- 0040D1C1 E8 0A180000 call 0040E9D0
- 0040D1C6 83C4 04 add esp, 4
- 0040D1C9 837D E8 00 cmp dword ptr [ebp-18], 0
- 0040D1CD 0F84 B7000000 je 0040D28A ; 关键跳
复制代码 从这个地方我们可以知道
setne al
的值给[ebp-18]了
那么,我们怎么让al为零就是关键了
我们进入
0040D1A3 E8 97FEFFFF call 0040D03F ; 这个是关键call
后,可以知道- 0040D09E 1BC0 sbb eax, eax
- 0040D0A0 D1E0 shl eax, 1
- 0040D0A2 40 inc eax
- 0040D0A3 C3 retn
复制代码 这个地方经过这几步后,使eax为-1
那么我们直接让eax为零- 0040D09E B8 00000000 mov eax, 0
- 0040D0A3 C3 retn
复制代码 长度整好合适
为什么赋值为零呢?
o(∩_∩)o...,好像那个setne al,的意思是说,上面的
cmp eax,0
如果两个不相等,则al为1,相等则al为0
呵呵,简单的分析了下,不知道是不是这样的
o(∩_∩)o...,看看高手如何破解!
o(∩_∩)o...,每关的注册码没有跟踪到
o(∩_∩)o...,看看高手如何得到!!!
菜鸟先献丑了!! |
|