首页
社区
课程
招聘
[原创]天网防火墙 2.73 个人版 破解简单分析
发表于: 2005-1-31 20:41 4683

[原创]天网防火墙 2.73 个人版 破解简单分析

2005-1-31 20:41
4683
【破解作者】yancool[CZG][D.4s]
【软件名称】天网防火墙 2.73
【破解声明】纯属兴趣,吃菜长大的,如有失误之处,请各位大侠指点!
【软件简介】
天网防火墙个人版是个人电脑使用的网络安全程序,根据管理者设定的安全规则把守网络,提供强大的访问控制、信息过滤等功能,帮你抵挡网络入侵和攻击,防止信息泄露。天网防火墙把网络分为本地网和互联网,可针对来自不同网络的信息,来设置不同的安全方案,适合于任何方式上网的用户。

呵呵,此软件公司地址就在我上班的地方,相隔几栋大厦,走路大概5分种就能到。。。。

【破解过程】

软件启动时会判断你是否注册,如果未注册
会弹出窗口,“注册信无法破认,请重注册一次...”
好了,我们就从这里下手吧,W32dsm反编译天网主程序PFW.exe,找到相关字符,得到以下

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00405A43(C)
|
:00405A98 84DB                    test bl, bl
:00405A9A 0F853B010000            jne 00405BDB
:00405AA0 6824100000              push 00001024

* Possible StringData Ref from Data Obj ->"请您注册"
                                  |
:00405AA5 68BC8D5500              push 00558DBC
:00405AAA 66C745C82000            mov [ebp-38], 0020
:00405AB0 33C0                    xor eax, eax
:00405AB2 8D55EC                  lea edx, dword ptr [ebp-14]
:00405AB5 8945EC                  mov dword ptr [ebp-14], eax

呵呵,这里我们知道是从405A43过来的
那么我就试着在ollydby里405A43下断

004059AE  |.  8D45 F4          LEA     EAX, DWORD PTR SS:[EBP-C]
004059B1  |.  50               PUSH    EAX
004059B2  |.  BA B08D5500      MOV     EDX, 00558DB0                    ;  ASCII "pfw.dat"   这是不是保存注册码的文件捏?
004059B7  |.  8D45 F0          LEA     EAX, DWORD PTR SS:[EBP-10]
004059BA  |.  E8 B1E81100      CALL    00524270
004059BF  |.  FF45 D4          INC     DWORD PTR SS:[EBP-2C]
004059C2  |.  33C0             XOR     EAX, EAX
004059C4  |.  8945 FC          MOV     DWORD PTR SS:[EBP-4], EAX
004059C7  |.  8D55 F0          LEA     EDX, DWORD PTR SS:[EBP-10]
004059CA  |.  FF45 D4          INC     DWORD PTR SS:[EBP-2C]
004059CD  |.  8D4D FC          LEA     ECX, DWORD PTR SS:[EBP-4]
004059D0  |.  58               POP     EAX
004059D1  |.  E8 52EA1100      CALL    00524428
004059D6  |.  FF4D D4          DEC     DWORD PTR SS:[EBP-2C]
004059D9  |.  8D45 F0          LEA     EAX, DWORD PTR SS:[EBP-10]
004059DC  |.  BA 02000000      MOV     EDX, 2
004059E1  |.  E8 EAE91100      CALL    005243D0
004059E6  |.  FF4D D4          DEC     DWORD PTR SS:[EBP-2C]
004059E9  |.  8D45 F4          LEA     EAX, DWORD PTR SS:[EBP-C]
004059EC  |.  BA 02000000      MOV     EDX, 2
004059F1  |.  E8 DAE91100      CALL    005243D0
004059F6  |.  FF4D D4          DEC     DWORD PTR SS:[EBP-2C]
004059F9  |.  8D45 F8          LEA     EAX, DWORD PTR SS:[EBP-8]
004059FC  |.  BA 02000000      MOV     EDX, 2
00405A01  |.  E8 CAE91100      CALL    005243D0
00405A06  |.  66:C745 C8 0800  MOV     WORD PTR SS:[EBP-38], 8
00405A0C  |.  6A 14            PUSH    14                               ; /Arg3 = 00000014
00405A0E  |.  6A 30            PUSH    30                               ; |Arg2 = 00000030
00405A10  |.  8D8D A4FEFFFF    LEA     ECX, DWORD PTR SS:[EBP-15C]      ; |
00405A16  |.  51               PUSH    ECX                              ; |Arg1
00405A17  |.  E8 44D80F00      CALL    00503260                         ; \PFW.00503260
00405A1C  |.  83C4 0C          ADD     ESP, 0C
00405A1F  |.  33DB             XOR     EBX, EBX
00405A21  |.  68 B88D5500      PUSH    00558DB8                         ;  ASCII "rb"
00405A26  |.  837D FC 00       CMP     DWORD PTR SS:[EBP-4], 0
00405A2A  |.  74 05            JE      SHORT 00405A31
00405A2C  |.  8B45 FC          MOV     EAX, DWORD PTR SS:[EBP-4]
00405A2F  |.  EB 05            JMP     SHORT 00405A36
00405A31  |>  B8 BB8D5500      MOV     EAX, 00558DBB
00405A36  |>  50               PUSH    EAX                              ; |Arg1
00405A37  |.  E8 E4FB0F00      CALL    00505620                         ; \PFW.00505620
00405A3C  |.  83C4 08          ADD     ESP, 8
00405A3F  |.  8BF0             MOV     ESI, EAX
00405A41  |.  85F6             TEST    ESI, ESI
00405A43  |.  74 53            JE      SHORT 00405A98                   ; 试着改改,可是不对哦
00405A45  |.  6A 00            PUSH    0                                ; /Arg3 = 00000000
00405A47  |.  6A 00            PUSH    0                                ; |Arg2 = 00000000
00405A49  |.  56               PUSH    ESI                              ; |Arg1
00405A4A  |.  E8 19FF0F00      CALL    00505968                         ; \PFW.00505968
00405A4F  |.  83C4 0C          ADD     ESP, 0C
00405A52  |.  56               PUSH    ESI                              ; /Arg4
00405A53  |.  6A 01            PUSH    1                                ; |Arg3 = 00000001
00405A55  |.  68 00010000      PUSH    100                              ; |Arg2 = 00000100
00405A5A  |.  8D85 B8FEFFFF    LEA     EAX, DWORD PTR SS:[EBP-148]      ; |
00405A60  |.  50               PUSH    EAX                              ; |Arg1
00405A61  |.  E8 62FE0F00      CALL    005058C8                         ; \PFW.005058C8

405A43处断下,上下看看大体程序流程吧上面有一个PFW.DAT,可能是注册成功后,存放注册码的吧。。。我乱猜的。。。
到底哪里才是启动时调出注册窗口的代码呢,我试着改了两个跳转,都不对,晕。。。谁叫吾是菜鸟捏。。。
显然不在这一段代码里,代码应该要再向上一点的地方
重新运行,再来一次
405964处下断
看CPU窗口下提示行

Local Call from 00401F5C  此CALL来自401F5C

重新运行,再来一次,唉,我菜嘛,只能经过一次次的失败...
401F5C处下断,F7进此CALL,来到这里...

00402778  |.  895D AC       MOV     DWORD PTR SS:[EBP-54], EBX
0040277B  |.  8B4D A8       MOV     ECX, DWORD PTR SS:[EBP-58]
0040277E  |.  8948 30       MOV     DWORD PTR DS:[EAX+30], ECX
00402781  |.  8B4D AC       MOV     ECX, DWORD PTR SS:[EBP-54]
00402784  |.  8948 34       MOV     DWORD PTR DS:[EAX+34], ECX
00402787  |.  8BC3          MOV     EAX, EBX
00402789      E8 D6310000   CALL    00405964               此CALL F7进入,很眼熟哦,就是刚才我转了几圈的CALL
0040278E  |.  84C0          TEST    AL, AL                 OK,那么就那402789的CALL NOP掉,试着运行看看...真的可以用了,

晕....
00402790  |.  75 2F         JNZ     SHORT 004027C1  
00402792  |.  33C0          XOR     EAX, EAX
00402794  |.  BA 02000000   MOV     EDX, 2
00402799  |.  50            PUSH    EAX

主程序PFW.exe的破解到这里就可以了

00402789   E8 D6310000  CALL   00405964         ;NOP掉 改成5个90

=---=---=---=---=---=   升级部分的破解   =---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=  

PFWLiveUpdate.exe会通过ONLINEREG.exe检查你是否已经注册,那么我们就在找到ONLINEREG字符,来到下面这里

00404714   .  6A 00         PUSH    0
00404716   .  8D4C24 10     LEA     ECX, DWORD PTR SS:[ESP+10]
0040471A   .  6A 67         PUSH    67
0040471C   .  51            PUSH    ECX
0040471D   .  E8 E0240000   CALL    <JMP.&MFC42.#1147>
00404722   .  8B5424 0C     MOV     EDX, DWORD PTR SS:[ESP+C]
00404726   .  68 40100000   PUSH    1040                             ; /Style = MB_OK|MB_ICONASTERISK|MB_SYSTEMMODAL
0040472B   .  68 84A04000   PUSH    0040A084                         ; |Title = "天网升级提示"
00404730   .  52            PUSH    EDX                              ; |Text
00404731   .  6A 00         PUSH    0                                ; |hOwner = NULL
00404733   .  FF15 74834000 CALL    DWORD PTR DS:[<&USER32.MessageBo>; \MessageBoxA
00404739   >  56            PUSH    ESI                              ; /hObject
0040473A   .  FF15 2C804000 CALL    DWORD PTR DS:[<&KERNEL32.CloseHa>; \CloseHandle
00404740   .  E9 70010000   JMP     004048B5
00404745   >  E8 A6010000   CALL    004048F0
0040474A   .  85C0          TEST    EAX, EAX
0040474C   .  0F85 90000000 JNZ     004047E2                         ;这里改成JMP,就能跳过对话框"你现在还不是注册用户"
00404752   .  A0 E0AB4000   MOV     AL, BYTE PTR DS:[40ABE0]
00404757   .  84C0          TEST    AL, AL
00404759   .  0F85 56010000 JNZ     004048B5
0040475F   .  6A 00         PUSH    0
00404761   .  8D4C24 78     LEA     ECX, DWORD PTR SS:[ESP+78]
00404765   .  E8 36FDFFFF   CALL    004044A0
0040476A   .  8D4C24 74     LEA     ECX, DWORD PTR SS:[ESP+74]
0040476E   .  C68424 E80200>MOV     BYTE PTR SS:[ESP+2E8], 1
00404776   .  E8 25230000   CALL    <JMP.&MFC42.#2514>
0040477B   .  83F8 01       CMP     EAX, 1
0040477E   .  75 51         JNZ     SHORT 004047D1
00404780   .  8D8424 DC0100>LEA     EAX, DWORD PTR SS:[ESP+1DC]
00404787   .  50            PUSH    EAX
00404788   .  E8 E3130000   CALL    00405B70
0040478D   .  BF 50A54000   MOV     EDI, 0040A550                    ;  ASCII "ONLINEREG.EXE"

在40474C改一下跳转,没有要你注册了,只是说你“目前使用的是最新版本不需要升级”和“目前还没有可用的升级包”
晕倒。。。我在破解时破解时确实是新版本,待日后有更新,再看看。。能否升级才知道是否已破解成功

=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=---=
【破解总结】

主程序PFW.exe     
00402789      E8 D6310000   CALL    00405964      
改NOP

升级程序PFWLiveUpdate.exe的
0040474C   .  0F85 90000000 JNZ     004047E2   

0040474C   . /E9 91000000   JMP     004047E2

不知这样能否完全破解,还望各位GG指点了...

=---=---=---=---=---= 转载请保持原文完整性!谢谢你能耐心看完这篇文章  =---=---=---=---=---=

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 12342
活跃值: (4055)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持!
收下学习!
2005-1-31 22:06
0
雪    币: 296
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
支持酸GG^_^
2005-1-31 22:16
0
雪    币: 211
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
革命尚未成功,同志还需努力!
下个SetTimer,你会找到你需要的自效验.
升级程序还有个CRC效验,逆一下童老的程序你就知道了.
2005-1-31 22:54
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不错,支持一下
2005-2-1 13:00
0
雪    币: 200
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
你好是找个补丁补上,然后将那个备份了的PFW.exe和那个补了补丁的PFW.exe做一个比较看看

有好几处的代码不一样
2005-2-1 15:13
0
雪    币: 300
活跃值: (521)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
7
支持,学习ing~
2005-2-1 16:28
0
雪    币: 603
活跃值: (617)
能力值: ( LV12,RANK:660 )
在线值:
发帖
回帖
粉丝
8
最初由 leozem 发布
革命尚未成功,同志还需努力!
下个SetTimer,你会找到你需要的自效验.
升级程序还有个CRC效验,逆一下童老的程序你就知道了.


牛人来啦!
2005-2-1 17:08
0
游客
登录 | 注册 方可回帖
返回
//