能力值:
( LV2,RANK:10 )
|
-
-
2 楼
今天第一次登陆,没事在家里装了个softice 本来想学习一下,但是装了之后联众弹出窗口说有softice不能运行。因为我的联众号经常下军棋,所以决定自已动手去掉联众这个限制。在家里从早上弄到现在终于去掉了,现在把过程说一下 。
对于破解我是一个地道的菜鸟,本来想学习softice,今天装了一下,结果弄得玩不成联众,不能用softice调试,就下了个olldbg.
1. 首先备份glword.exe.,然后olldbg载入glword.exe
2.找到程序开发员开发的入口00488B79.
00488B65 |. 46 |INC ESI
00488B66 |. 8975 8C |MOV DWORD PTR SS:[EBP-74],ESI
00488B69 |.^EB F5 \JMP SHORT GLWorld.00488B60
00488B6B |> 6A 0A PUSH 0A
00488B6D |. 58 POP EAX
00488B6E |> 50 PUSH EAX
00488B6F |. 56 PUSH ESI
00488B70 |. 53 PUSH EBX
00488B71 |. 53 PUSH EBX ; /pModule
00488B72 |. FF15 10624900 CALL DWORD PTR DS:[<&KERNEL32.GetModuleHandleA>] ; \GetModuleHandleA
00488B78 |. 50 PUSH EAX
00488B79 |. E8 CA2A0000 CALL GLWorld.0048B648
00488B7E |. 8945 98 MOV DWORD PTR SS:[EBP-68],EAX
00488B81 |. 50 PUSH EAX ; /status
00488B82 |. FF15 146D4900 CALL DWORD PTR DS:[<&MSVCRT.exit>] ; \exit
00488B88 |. 8B45 EC MOV EAX,DWORD PTR SS:[EBP-14]
00488B8B |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
00488B8D |. 8B09 MOV ECX,DWORD PTR DS:[ECX]
00488B8F |. 894D 88 MOV DWORD PTR SS:[EBP-78],ECX
00488B92 |. 50 PUSH EAX
00488B93 |. 51 PUSH ECX
00488B94 |. E8 27000000 CALL <JMP.&MSVCRT._XcptFilter>
00488B99 |. 59 POP ECX
3.根踪进去,发现afxwinmain调用,在此处再根进去
0048B650 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
0048B654 |. FF7424 10 PUSH DWORD PTR SS:[ESP+10]
0048B658 |. E8 43000000 CALL <JMP.&MFC42.#1576_?AfxWinMain@@YGHPAUHINSTANCE__@@0PA>
0048B65D \. C2 1000 RETN 10
0048B660 /$ E8 FDC6FFFF CALL <JMP.&MFC42.#1168_?AfxGetModuleState@@YGPAVAFX_MODULE>
0048B665 |. 8B4C24 04 MOV ECX,DWORD PTR SS:[ESP+4]
0048B669 |. 8B5424 08 MOV EDX,DWORD PTR SS:[ESP+8]
0048B66D |. 85C9 TEST ECX,ECX
0048B66F |. 8848 14 MOV BYTE PTR DS:[EAX+14],CL
4.再次进去发现初始化函数AfxWinInit
73D3CF4A FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
73D3CF4E FF7424 1C PUSH DWORD PTR SS:[ESP+1C]
73D3CF52 E8 C1CC0800 CALL MFC42.#1575_?AfxWinInit@@YGHPAUHINSTANCE__@@0PADH@Z
73D3CF57 85C0 TEST EAX,EAX
73D3CF59 74 3C JE SHORT MFC42.73D3CF97
73D3CF5B 85FF TEST EDI,EDI
73D3CF5D 74 0E JE SHORT MFC42.73D3CF6D
73D3CF5F 8B07 MOV EAX,DWORD PTR DS:[EDI]
5.继续努力,根进去,发现了一系列的初始化
包括,用户名,口令,代理服务器,color,
界面喜好等等,不过最终找到了检测softice
的调用,并且有一个跳转,看下面的语句
,注意地址0040F824处,此处就是检测softice后的跳转,查表用winhex找到0040F824对应的物理位移,将74改为75.运行联众,成功去掉了检测。
0040F7FC . 8D4C24 24 LEA ECX,DWORD PTR SS:[ESP+24]
0040F800 . 89AC24 F4030000 MOV DWORD PTR SS:[ESP+3F4],EBP
0040F807 . E8 FE820700 CALL <JMP.&MFC42.#800_??1CString@@QAE@XZ>
0040F80C . 33C0 XOR EAX,EAX
0040F80E . E9 3F080000 JMP GLWorld.00410052
0040F813 > 8BBE C40A0000 MOV EDI,DWORD PTR DS:[ESI+AC4]
0040F819 . B9 81000000 MOV ECX,81
0040F81E . 33C0 XOR EAX,EAX
0040F820 . 3BEB CMP EBP,EBX
0040F822 . F3:AB REP STOS DWORD PTR ES:[EDI]
0040F824 . 74 4B JZ SHORT GLWorld.0040F871
0040F826 . 6A FF PUSH -1
0040F828 . 6A 10 PUSH 10
0040F82A . 68 23E00000 PUSH 0E023
0040F82F . E8 2C870700 CALL <JMP.&MFC42.#1199_?AfxMessageBox@@YGHIII@Z>
0040F834 . 8D4C24 28 LEA ECX,DWORD PTR SS:[ESP+28]
0040F838 . C68424 F4030000 05 MOV BYTE PTR SS:[ESP+3F4],5
0040F840 . E8 C5820700 CALL <JMP.&MFC42.#800_??1CString@@QAE@XZ>
0040F845 . 8D4C24 20 LEA ECX,DWORD PTR SS:[ESP+20]
0040F849 . C68424 F4030000 04 MOV BYTE PTR SS:[ESP+3F4],4
这是我第一次在看雪上发表这方面的文章,也是第一次尝试修改别人的东西。有不妥的地方,请指正。
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
呵呵,联众这个是比较白痴的检查方法了。其实到 MFC 运行库下断 AfxMessageBox 即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
弄了一天的东西,对大家没用吗?
|
能力值:
( LV8,RANK:130 )
|
-
-
5 楼
我来支持一下
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
惭愧,看了半天,没看见关键检测点。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
看来好象对我有用哦。
但我的QQ还是搞不定。
请问,能帮个忙吗??
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
支持一下!
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
最初由 zhupf 发布 看来好象对我有用哦。
但我的QQ还是搞不定。
请问,能帮个忙吗??
要把qq怎么样??
|