57907103 发表于 2017-3-27 21:48

文管王文件管理系统SQL网络版V6.62破解记录

软件百度官网
安装数据库,服务端,客户端。
先打开服务端,没看到任何提示需要注册的地方,也没有任何限制提示
再打开客户端,连接服务器,点击关于,可看到提示“网络试用版 授权用户数:10用户,试用次数:30次,已使用次数:6次”,输入任意字符串点击注册提示“您输入的注册码错误,请重新输
入!”

分析:
这个软件只看到客户端有提示需要注册的地方,并且有使用次数提示,
而在服务端却没有任何提示注册的地方和使用次数提示,
但是相同的客户端在与一个服务器连接30次之后,任然可以与其他服务器继续再试用30次,由此我猜测同一IP的客户端的试用次数是记录在服务器上面的,试用次数是通过服务器返回的

第一步:
查壳,ASPack 2.12 -> Alexey Solodovnikov,直接PEID秒脱
第二步:逆向
OD加载可能会提示网络超时,点击用户名后面的按钮重新连接服务器IP即可
1、过启动时的版本不一致
00639AA1   /0F8D CB000000 jge wgwclien.00639B72                  ;\\必须跳过,否则版本不匹配,不明白为什么官方的相同版本有此提示?
2、过启动注册验证
00609BE0   . /0F85 C1010000 jnz wgwclien.00609DA7                  ;\\必须跳过,否则下面就是启动时的注册码不正确
00609BE6   . |B8 40420F00   mov eax,0xF4240
00609BEB   . |A3 F0A17400   mov dword ptr ds:,eax
00609BF0   . |A3 04A27400   mov dword ptr ds:,eax
00609BF5   . |A3 0CA27400   mov dword ptr ds:,eax
00609BFA   . |8B55 B8       mov edx,dword ptr ss:
00609BFD   . |52            push edx
00609BFE   . |8B45 B4       mov eax,dword ptr ss:
00609C01   . |50            push eax
00609C02   . |FF15 44114000 call dword ptr ds:[<&MSVBVM60.__vbaStrCm>;msvbvm60.__vbaStrCmp
00609C08   . |85C0          test eax,eax
00609C0A   . |B8 04000280   mov eax,0x80020004
00609C0F   . |8985 D8FEFFFF mov dword ptr ss:,eax
00609C15   . |B9 0A000000   mov ecx,0xA
00609C1A   . |898D D0FEFFFF mov dword ptr ss:,ecx
00609C20   . |8985 E8FEFFFF mov dword ptr ss:,eax
00609C26   . |898D E0FEFFFF mov dword ptr ss:,ecx
00609C2C   . |C785 28FDFFFF>mov dword ptr ss:,wgwclien.00>;UNICODE "提示"
00609C36   . |C785 20FDFFFF>mov dword ptr ss:,0x8
00609C40   . |8D95 20FDFFFF lea edx,dword ptr ss:
00609C46   . |8D8D F0FEFFFF lea ecx,dword ptr ss:
00609C4C   . |8B1D C4124000 mov ebx,dword ptr ds:[<&MSVBVM60.__vbaVa>;msvbvm60.__vbaVarDup
00609C52   . |FFD3          call ebx                                 ;<&MSVBVM60.__vbaVarDup>
00609C54   . |C785 38FDFFFF>mov dword ptr ss:,wgwclien.00>;UNICODE "您输入的注册码错误,请重新输入!"
..............
00609DCE   . /0F85 9C140000 jnz wgwclien.0060B270                  ;\\不能跳,否则就跳过了“网络正式版。授权用户数:不限用户”
......................
00609EA9   . /0F84 0B070000 je wgwclien.0060A5BA                     ;\\不能跳,否则就跳过了“网络正式版。授权用户数:不限用户”
............
0060A4A4   . /75 0E         jnz short wgwclien.0060A4B4            ;\\不能跳,否则就不是不限用户数的正式版
0060A4A6   . |BA 90464300   mov edx,wgwclien.00434690                ;UNICODE "网络正式版 (授权用户数:不限用户)"
0060A4AB   . |B9 88A87400   mov ecx,wgwclien.0074A888
0060A4B0   . |FFD3          call ebx                                 ;msvbvm60.__vbaStrCmp
0060A4B2   . |EB 32         jmp short wgwclien.0060A4E6
0060A4B4   > \68 BC464300   push wgwclien.004346BC                   ;UNICODE "网络正式版授权用户数: "
到这里这个软件就可正常打开了,打开后点击关于可看到已经是 网络正式版【授权用户数:不限用户】,并且注册码那里自动填入了一组注册码,但是用这个注册码在没爆破的原程序里面输入后
注册确没有任何提示,直接关闭注册窗口。估计是个陷阱。 但是在上面几个地方爆破了的程序中注册不用改注册成功前面的跳转(下面这段)就可直接提示注册成功。


0065B4CB   . /75 40         jnz short wgwclien.0065B50D            ;\\跳向注册成功,必须跳
0065B4CD   . |A1 04C17400   mov eax,dword ptr ds:
0065B4D2   . |85C0          test eax,eax
0065B4D4   . |75 10         jnz short wgwclien.0065B4E6
0065B4D6   . |68 04C17400   push wgwclien.0074C104
0065B4DB   . |68 B0D34200   push wgwclien.0042D3B0
0065B4E0   . |FF15 54124000 call dword ptr ds:[<&MSVBVM60.__vbaNew2>>;msvbvm60.__vbaNew2
0065B4E6   > |8B35 04C17400 mov esi,dword ptr ds:
0065B4EC   . |8D4D CC       lea ecx,dword ptr ss:
0065B4EF   . |57            push edi
0065B4F0   . |51            push ecx
0065B4F1   . |8B1E          mov ebx,dword ptr ds:
0065B4F3   . |FF15 DC104000 call dword ptr ds:[<&MSVBVM60.__vbaObjSe>;msvbvm60.__vbaObjSetAddref
0065B4F9   . |50            push eax
0065B4FA   . |56            push esi
0065B4FB   . |FF53 10       call dword ptr ds:
0065B4FE   . |85C0          test eax,eax
0065B500   . |DBE2          fclex
0065B502   . |0F8D D2000000 jge wgwclien.0065B5DA
0065B508   . |E9 BE000000   jmp wgwclien.0065B5CB
0065B50D   > \8B35 C4124000 mov esi,dword ptr ds:[<&MSVBVM60.__vbaVa>;msvbvm60.__vbaVarDup
0065B513   .B9 04000280   mov ecx,0x80020004
0065B518   .894D 94       mov dword ptr ss:,ecx
0065B51B   .B8 0A000000   mov eax,0xA
0065B520   .894D A4       mov dword ptr ss:,ecx
0065B523   .BB 08000000   mov ebx,0x8
0065B528   .8D95 6CFFFFFF lea edx,dword ptr ss:
0065B52E   .8D4D AC       lea ecx,dword ptr ss:
0065B531   .8945 8C       mov dword ptr ss:,eax
0065B534   .8945 9C       mov dword ptr ss:,eax
0065B537   .C785 74FFFFFF>mov dword ptr ss:,wgwclien.004>;UNICODE "提示"
0065B541   .899D 6CFFFFFF mov dword ptr ss:,ebx
0065B547   .FFD6          call esi                                 ;<&MSVBVM60.__vbaVarDup>
0065B549   .8D95 7CFFFFFF lea edx,dword ptr ss:
0065B54F   .8D4D BC       lea ecx,dword ptr ss:
0065B552   .C745 84 60E94>mov dword ptr ss:,wgwclien.004>;UNICODE "注册成功!感谢您的使用 !"
--------------------------------------------------------------------------------------------------------------------------------
现在在客户端可无限次打开了,试用次数的功能PJ完成
我们将爆破后的客户端再复制10份,然后全部打开,当超过10个时就无法登录,提示10位用户同时在线!超出授权许可.")
说明授权用户数还没有逆向成功,感觉这个限制也应该是在服务端,我们还是从客户端接到来
00598387   /0F84 3C030000 je 爆破版.005986C9                        ;\\1、10位用户同时在线!超出授权许可,必须跳过1
..............
005C853B   /0F84 1D030000 je 爆破版.005C885E                        ;\\2、10位用户同时在线!超出授权许可,必须跳过2
..............
005CC17D   /0F84 40030000 je 爆破版.005CC4C3                        ;\\3、10位用户同时在线!超出授权许可,必须跳过3
..............
0063A940   /0F84 60030000 je 爆破版.0063ACA6                        ;\\4、10位用户同时在线!超出授权许可,必须跳过4
..............
00723F66   /0F84 62030000 je 爆破版.007242CE                        ;\\5、10位用户同时在线!超出授权许可,必须跳过5


到这里超过10位用户也可以登录服务端了,看起来好像已经PJ了,但是打开客户端连接服务端后,双击任意添加的文件,无法像打开10个以内客户端那样,直接将文件的各种信息显示在上面的
各编辑框内,但是可通过一个比较绕的办法实现,点击:增加(随便选给文件)----放弃,然后再选择需要双击的文件,再点修改---放弃,文件信息就自动同步到上面各编辑框了,感觉逆向的不
够完美,请大家指正。

57907103 发表于 2017-3-30 22:40

补充说明下:
1、软件启动提示需要更新版本是因为客户端安装后,安装目录的DLL文件夹下的ver.INI文件里面的版本记录不对,把他改成服务端的版本就不会提示了,服务端的版本是放在服务端的安装目录下的。
2、软件的使用次数等信息都是放在服务端的数据库里面的,默认是在D盘数据库安装目录WGWdate目录下,使用超过30次后把服务端的数据库重新配置一个名称的即可又从0次开始试用了。
3、软件的逆向地址是动态的,不同的电脑地址是不一样的,我上面的地址不适用于其他的电脑,只能脱壳后爆破,

动态的补丁不知道怎么打,有会的朋友请教教我,谢谢!

guiguzi 发表于 2017-4-1 13:48

{:5_116:}感谢分享

pla 发表于 2017-4-22 12:40

楼主师傅:我正在学习分析的一款软件,跟你叙述的大致一样,分服务器和客户端,双击运行后,会出提示框注册,有次数限制。限制使用99次,功能没有限制。载入OD后,先用暂停法,查看堆栈,跟踪后没有明显的明码,互相调用的太多,关键跳无法找到,后又学习API断点,也是关键跳无法找。像我这种情况有什么好的建议?谢谢

3622020 发表于 2017-4-22 15:30

谢谢楼主分享!~

baono 发表于 2017-6-23 16:06

按照你方法怎么行不通啊,还有你的注册码是怎么弄出来的

别管我了行 发表于 2022-4-21 02:14

ghostxu 发表于 2022-5-6 20:01

奉上小小红包希望笑纳

zyyujq 发表于 2022-5-6 20:50

好好学习.........

1370392 发表于 2022-11-10 15:55

能提供注册机就好了
页: [1] 2
查看完整版本: 文管王文件管理系统SQL网络版V6.62逆向记录