首页
社区
课程
招聘
[原创]去掉WinPOP 30天试用限制和NAG窗口
发表于: 2006-1-1 14:58 4833

[原创]去掉WinPOP 30天试用限制和NAG窗口

qduwg 活跃值
35
2006-1-1 14:58
4833
题目:去掉WinPOP 30天试用限制和NAG窗口
程度:Very Easy!
工具:Ollydbg ,PEID
软件功能:在局域网内收发信息。

引子:
今天看到一个WINPOP2001 2.4,安装并实验了一下,就拿它来解闷。结果有30天限制,而且在30天之内时,提示你还剩XX天需要注册,过了30天则提示你30天已过,希望注册,如果不注册就不可以发信息了。当然注册是通过在线方式注册的,在程序窗口找不到注册的地方,只有通过爆破了,没有办法呀!!:)。通过用PEID查看,该程序用VB开发。

用OD打开这个程序,上下翻页,仔细观察。我们来到下面程序代码处:

0047E28A   . FF15 08124000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaI4Var>; 取已经用过的天数,在 EAX返回。
0047E290   . 8D4D B0        LEA ECX,DWORD PTR SS:[EBP-50]
0047E293   . 8945 E0        MOV DWORD PTR SS:[EBP-20],EAX            ; 用过天数 放在EBP-20内存
0047E296   . FF15 18104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>
0047E29C   . 8B45 E0        MOV EAX,DWORD PTR SS:[EBP-20]            ;用过天数放在EAX
0047E29F   . 3BC7           CMP EAX,EDI
0047E2A1   . 0F8C 52010000  JL WINPOP2.0047E3F9
0047E2A7   . 83F8 1E        CMP EAX,1E                               ;跟1EH比较,就是跟十进制30比较。
0047E2AA   . 0F8F 49010000  JG WINPOP2.0047E3F9                      ;如果大于30天则出现“已经超过30天,需要注册”的提示框。
0047E2B0   . B9 1E000000    MOV ECX,1E                                 否则出现“还有多少天需要注册”的 提示框。
0047E2B5   . 8D55 E0        LEA EDX,DWORD PTR SS:[EBP-20]
0047E2B8   . 2BC8           SUB ECX,EAX                              ;计算剩余天数,后边的提示框要用到。
0047E2BA   . 8D85 70FFFFFF  LEA EAX,DWORD PTR SS:[EBP-90]
0047E2C0   . 0F80 48020000  JO WINPOP2.0047E50E
0047E2C6   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E2C7   . 66:893D 485048>MOV WORD PTR DS:[485048],DI
0047E2CE   . 894D E0        MOV DWORD PTR SS:[EBP-20],ECX
0047E2D1   . 8995 78FFFFFF  MOV DWORD PTR SS:[EBP-88],EDX
0047E2D7   . C785 70FFFFFF >MOV DWORD PTR SS:[EBP-90],4003
0047E2E1   . FF15 B4114000  CALL DWORD PTR DS:[<&MSVBVM60.#536>]     ;  MSVBVM60.rtcStrFromVar
0047E2E7   . 8BD0           MOV EDX,EAX                              ;  WINPOP2.<ModuleEntryPoint>
0047E2E9   . 8D4D C4        LEA ECX,DWORD PTR SS:[EBP-3C]
0047E2EC   . FFD6           CALL ESI
0047E2EE   . B9 04000280    MOV ECX,80020004
0047E2F3   . B8 0A000000    MOV EAX,0A
0047E2F8   . 894D 88        MOV DWORD PTR SS:[EBP-78],ECX
0047E2FB   . 894D 98        MOV DWORD PTR SS:[EBP-68],ECX
0047E2FE   . 8D95 60FFFFFF  LEA EDX,DWORD PTR SS:[EBP-A0]
0047E304   . 8D4D A0        LEA ECX,DWORD PTR SS:[EBP-60]
0047E307   . 8945 80        MOV DWORD PTR SS:[EBP-80],EAX            ;  下面开始准备提示框的内容
0047E30A   . 8945 90        MOV DWORD PTR SS:[EBP-70],EAX            ;
0047E30D   . C785 68FFFFFF >MOV DWORD PTR SS:[EBP-98],WINPOP2.004326>;  UNICODE "WinPop 2000 Information"
0047E317   . C785 60FFFFFF >MOV DWORD PTR SS:[EBP-A0],8
0047E321   . FF15 24124000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaVarDu>;  MSVBVM60.__vbaVarDup
0047E327   . 8B5D C4        MOV EBX,DWORD PTR SS:[EBP-3C]
0047E32A   . 897D C4        MOV DWORD PTR SS:[EBP-3C],EDI
0047E32D   . 8B3D 50104000  MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>;  MSVBVM60.__vbaStrCat
0047E333   . 68 04264300    PUSH WINPOP2.00432604                    ;  UNICODE "You have"
0047E338   . 68 58064300    PUSH WINPOP2.00430658
0047E33D   . FFD7           CALL EDI                                 ;  <&MSVBVM60.__vbaStrCat>
0047E33F   . 8BD0           MOV EDX,EAX                              ;  WINPOP2.<ModuleEntryPoint>
0047E341   . 8D4D DC        LEA ECX,DWORD PTR SS:[EBP-24]
0047E344   . FFD6           CALL ESI
0047E346   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E347   . 8BD3           MOV EDX,EBX
0047E349   . 8D4D D8        LEA ECX,DWORD PTR SS:[EBP-28]
0047E34C   . FFD6           CALL ESI
0047E34E   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E34F   . FFD7           CALL EDI
0047E351   . 8BD0           MOV EDX,EAX                              ;  WINPOP2.<ModuleEntryPoint>
0047E353   . 8D4D D4        LEA ECX,DWORD PTR SS:[EBP-2C]
0047E356   . FFD6           CALL ESI
0047E358   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E359   . 68 58064300    PUSH WINPOP2.00430658
0047E35E   . FFD7           CALL EDI
0047E360   . 8BD0           MOV EDX,EAX                              ;  WINPOP2.<ModuleEntryPoint>
0047E362   . 8D4D D0        LEA ECX,DWORD PTR SS:[EBP-30]
0047E365   . FFD6           CALL ESI
0047E367   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E368   . 68 1C264300    PUSH WINPOP2.0043261C                    ;  UNICODE "days to Register..."
0047E36D   . FFD7           CALL EDI
0047E36F   . 8BD0           MOV EDX,EAX                              ;  WINPOP2.<ModuleEntryPoint>
0047E371   . 8D4D CC        LEA ECX,DWORD PTR SS:[EBP-34]
0047E374   . FFD6           CALL ESI
0047E376   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E377   . 68 CC104300    PUSH WINPOP2.004310CC                    ;  UNICODE "
"
0047E37C   . FFD7           CALL EDI
0047E37E   . 8BD0           MOV EDX,EAX                              ;  WINPOP2.<ModuleEntryPoint>
0047E380   . 8D4D C8        LEA ECX,DWORD PTR SS:[EBP-38]
0047E383   . FFD6           CALL ESI
0047E385   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E386   . 68 84264300    PUSH WINPOP2.00432684                    ;  UNICODE "For only 25$ to 708K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4y4@1j5i4c8A6L8$3&6Q4x3X3c8E0k6h3c8A6j5g2)9J5k6h3y4G2L8b7`.`."
0047E38B   . FFD7           CALL EDI
0047E38D   . 8D4D 80        LEA ECX,DWORD PTR SS:[EBP-80]
0047E390   . 8945 B8        MOV DWORD PTR SS:[EBP-48],EAX            ;  WINPOP2.<ModuleEntryPoint>
0047E393   . 8D55 90        LEA EDX,DWORD PTR SS:[EBP-70]
0047E396   . 51             PUSH ECX
0047E397   . 8D45 A0        LEA EAX,DWORD PTR SS:[EBP-60]
0047E39A   . 52             PUSH EDX
0047E39B   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>
0047E39C   . 8D4D B0        LEA ECX,DWORD PTR SS:[EBP-50]
0047E39F   . 6A 40          PUSH 40
0047E3A1   . 51             PUSH ECX
0047E3A2   . C745 B0 080000>MOV DWORD PTR SS:[EBP-50],8
0047E3A9   . FF15 88104000  CALL DWORD PTR DS:[<&MSVBVM60.#595>]     ;  MSVBVM60.rtcMsgBox这里显示提示框
0047E3AF   . 8D55 C4        LEA EDX,DWORD PTR SS:[EBP-3C]
0047E3B2   . 8D45 C8        LEA EAX,DWORD PTR SS:[EBP-38]
0047E3B5   . 52             PUSH EDX
0047E3B6   . 50             PUSH EAX                                 ;  WINPOP2.<ModuleEntryPoint>

=========================
解决方案:

1.把下面两条指令修改为AND EAX,0,机器码是25 00000000,刚好替换下面5个字节。
0047E29C   . 8B45 E0        MOV EAX,DWORD PTR SS:[EBP-20]            ;用过天数放在EAX
0047E29F   . 3BC7           CMP EAX,EDI

这样EAX的值总是取0,总是执行到第一个提示框。所以必须把第一个提示框NOP掉。
2.把下面的CALL NOP掉,需要6个NOP。
0047E3A9   . FF15 88104000  CALL DWORD PTR DS:[<&MSVBVM60.#595>]->nop nop nop nop nop nop

注意:0047E2A1和0047E2AA 处的跳转指令不能够随便修改后面的目标地址,否则因为堆栈不能保持平衡,程序出错。

后记:

第一次使用OD,还不是那么自如,比如怎么才能从任意想要的地址处开始执行呢?怎么象SICE那样执行程序呢?我还没有摸到门道。

QduWg

qduwg@163.com

破解时间:2005年12月29日

[培训]传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
菜鸟学习好文。。。。。。

2006-1-1 15:35
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不错。
    学习中。。。。
2006-1-1 16:12
0
雪    币: 158
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
多谢好文,支持.
2006-1-1 16:57
0
雪    币: 475
活跃值: (1130)
能力值: ( LV9,RANK:1410 )
在线值:
发帖
回帖
粉丝
5
感谢各位大侠的友情支持啊!:)我很感动,我为自己能够提供比较通俗易懂的文章而高兴!能够为菜鸟的成长提供一点贡献,我很高兴啊!QDUWG
2006-1-1 17:44
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我看明白了
谢谢 支持!
2006-1-1 20:48
0
雪    币: 389
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
7
CTRL+G
2006-1-2 21:16
0
游客
登录 | 注册 方可回帖
返回