本文作者为:
foxabu 所有,
我用我的网站把图贴出DOC文章贴出来方便广大坛友!
原文为:
随便找个OD吧。。反正没有反调试处理,大公司的软件都这样
新版大厅是VS2003编译的 和老版有点不一样。
新版本除了让资源占的更多以外 我没有看到有什么好的。。。
点第三个出现错误提示
看看模块窗口 这个比较可疑
04111020 M> B8 06301104 mov eax,MsgBox.04113006
在唯一的输出函数上下断点
向上看看堆返回 凭感觉像上翻到一定的时候
0012BDDC |01E564A2 返回到 MGRoom.01E564A2
这个名称告诉我们应该是大厅调用的这个函数。。
向上翻
看到这里
01E5453B 50 push eax
01E5453C 8D85 7CFFFFFF lea eax,dword ptr ss:[ebp-84]
01E54542 EB 43 jmp short MGRoom.01E54587
01E54544 837D 08 FE cmp dword ptr ss:[ebp+8],-2
01E54548 75 45 jnz short MGRoom.01E5458F
01E5454A 80A5 7CFFFFFF 00 and byte ptr ss:[ebp-84],0
01E54551 6A 1F push 1F
01E54553 59 pop ecx
01E54554 33C0 xor eax,eax
01E54556 8DBD 7DFFFFFF lea edi,dword ptr ss:[ebp-83]
01E5455C 68 80000000 push 80
01E54561 F3:AB rep stos dword ptr es:[edi]
01E54563 66:AB stos word ptr es:[edi]
01E54565 AA stos byte ptr es:[edi]
01E54566 8D85 7CFFFFFF lea eax,dword ptr ss:[ebp-84]
01E5456C 68 0FE20000 push 0E20F
01E54571 50 push eax
01E54572 8BCE mov ecx,esi
01E54574 E8 5B060000 call MGRoom.01E54BD4
01E54579 8BCE mov ecx,esi
01E5457B E8 A4060000 call MGRoom.01E54C24
01E54580 50 push eax
01E54581 8D85 7CFFFFFF lea eax,dword ptr ss:[ebp-84]
01E54587 50 push eax
01E54588 8BCE mov ecx,esi
01E5458A E8 46040000 call MGRoom.01E549D5
01E5458F 5F pop edi
01E54590 5E pop esi
01E54591 C9 leave
有比较的痕迹,所以我们在这个地方下断
先把把房间关闭了来,我们来对比返回值
通过比较可以很容易发现
01E537C5 /75 0A jnz short MGRoom.01E537D1
01E537C7 |FF75 F8 push dword ptr ss:[ebp-8]
01E537CA |8BCE mov ecx,esi
01E537CC |E8 6E0C0000 call MGRoom.01E5443F
01E537D1 \8D45 FC lea eax,dword ptr ss:[ebp-4]
这里就是关键过程
022756B6 . 3BC3 cmp eax,ebx
022756B8 7C 09 jl short MRoomMgr.022756C3
022756BA . 8B4424 1C mov eax,dword ptr ss:[esp+1C]
022756BE . 8308 FF or dword ptr ds:[eax],FFFFFFFF
022756C1 . EB 16 jmp short MRoomMgr.022756D9
022756C3 > 8BCE mov ecx,esi
022756C5 . E8 88010000 call MRoomMgr.02275852
022756CA . 83F8 08 cmp eax,8
022756CD . 7C 0C jl short MRoomMgr.022756DB
022756CF . 8B4424 1C mov eax,dword ptr ss:[esp+1C]
这里就是比较过程。
022756CA . 83F8 08 cmp eax,8
022756CD . 7C 0C jl short MRoomMgr.022756DB
这里也不能够大于8个房间 JMP
修改掉
修改完以后保存以后
运行一下。
OK
至此就宣告破解