首页
社区
课程
招聘
[求助]请问用ollydbg能够不能够破pubwin啊
2004-11-30 15:39 3766

[求助]请问用ollydbg能够不能够破pubwin啊

2004-11-30 15:39
3766
收藏
免费 1
打赏
分享
最新回复 (3)
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
OllyDbg 2004-11-30 17:04
2
0
:D 不干好事!!!!
又来一个想免费上网的~
准确地说
如果服务器不开通的话,进去了也不能上网的说
雪    币: 150
活跃值: (116)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
乱乱 1 2004-11-30 18:22
3
0
是啊  好像是基于硬件的东西
雪    币: 61
活跃值: (160)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
pendan2001 4 2004-11-30 19:54
4
0
现在的网吧,大部分都安装了pubwin4,用起来有很多限制,总之很不爽啊!!
   虽然,网上有很多工具来破掉Punwin,但是大多版本过时或者有诸多限制
有的甚至暗藏木马,所以在下就在这里介绍一种方法,破解网吧的限制,使得
上网更加自由,即使你是初学破解的人,或者从来没有接触过软件破解知识也可以完成,只要你一步步跟着做就可以了。当然,高手对在下的方法自然不屑一看,还望不要见笑。
   好了,现在就开始。
   首先,了解一下背景,大家有可能知道Pubwin的一些版本是采用明码比较的方式处理密码,所以在网上下载一个winhex就可以搞定,具体方法可以上网找一下,不过,现在的版本可不是简单的明码比较了。
   测试环境是(win98+Pubwin4.3.0.1),这个版本把密码进行加密并存放在内存的某个地方,所以用上面的方法就不灵了。笔者通过跟踪,发现这个版本的pubwin的处理方式只是把用户输入的密码进行加密,并且调用MSVCRT_mbscmp函数对加密后的字串和内存中的正确的密码加密字串相比较,如果相同就继续执行,否则,就跳出一个消息框,提示用户输入的密码错误。
   好了,知道了以上的知识,就可以进行破解了
1.启动trw2000
按Browse,选择Pubwin4.exe,然后load,装载pubwin4。
2。设置断点:
      输入,bpx messageboxa,回车。
   3。按Ctrl+N,返回windows,打开“管理工具”--》“系统设置”随意在输
      入密码栏内输入几个数字,并点“确定”。
   4。TRW2000拦截断点,形如下:
      0167:BFC041B7 C20400           RET      04
      USER32!MessageBoxA
      0167:BFC041BA 55               PUSH     EBP
      0167:BFC041BB 8BEC             MOV      EBP,ESP
      0167:BFC041BD 6A00             PUSH     BYTE +00
      0167:BFC041BF FF7514           PUSH     DWORD [EBP+14]
      0167:BFC041C2 FF7510           PUSH     DWORD [EBP+10]
      0167:BFC041C5 FF750C           PUSH     DWORD [EBP+0C]
      0167:BFC041C8 FF7508           PUSH     DWORD [EBP+08]
      0167:BFC041CB E84CECFFFF       CALL     `USER32!MessageBoxExA`
      0167:BFC041D0 5D               POP      EBP
     此时,按F12键,发现返回Windows界面,点“确定”后,又返回TRW2000
     再按一次F12和F10键,来到如下地址:
     0167:0040F479 52               PUSH     EDX
     0167:0040F47A 6850154300       PUSH     DWORD 00431550
     0167:0040F47F FF1508594200     CALL     `MSVCRT!_mbscmp`
     0167:0040F485 83C408           ADD      ESP,BYTE +08
     0167:0040F488 85C0             TEST     EAX,EAX
     0167:0040F48A 7509             JNZ      0040F495
     0167:0040F48C 8BCE             MOV      ECX,ESI
     0167:0040F48E E8730C0100       CALL     `MFC42!ord_000012F5`
     0167:0040F493 EB4E             JMP      SHORT 0040F4E3
     0167:0040F495 6A30             PUSH     BYTE +30
     0167:0040F497 6810FE4200       PUSH     DWORD 0042FE10
     0167:0040F49C 68F8FD4200       PUSH     DWORD 0042FDF8
     0167:0040F4A1 8BCE             MOV      ECX,ESI
     0167:0040F4A3 E8520C0100       CALL     `MFC42!ord_00001080`
     发现地址形如:XXXX:0040XXXX,回到程序领空,点代码窗口,并向上
     翻屏,果然发现`MSVCRT!_mbscmp`函数,于是,在此处设置内存断点,
    在命令窗口输入:
    bpm 40F485 X do "r eax 00000000"
    (40F485这个地址要视,不同情况而定,即只要在MSVCRT!_mbscmp的下一句

设置断点即可)
    分析一下,程序在CALL MSVCRT!_mbscmp这一行对加密的密码字串和用户输入的密码比较,如果相同返回0,否则返回-1(FFFFFFFF),返回值放入eax中

所以只要把放在eax中的值改为0,那不就万事OK了。
    在设置了以上断点后,按Ctrl+N ,返回windows,打开“管理工具”--》“系统设置”随意在输入密码栏内输入几个数字,并点“确定”。返回了TRW2000界面,按F5键,看看,是不是出现了系统设置界面?
   至此,整个破解过程就完成了,如果你是高手当然不会放过上面的密码加密
过程了,仔细分析以下,不难得出真正的密码,在下的这个方法只不过是“爆破法”,目的是让初学者从实例中了解破解的过程,又不乏实用性。
游客
登录 | 注册 方可回帖
返回