首页
社区
课程
招聘
[原创]WinDbg 动态内存补丁脚本示例
发表于: 2010-2-1 14:15 6245

[原创]WinDbg 动态内存补丁脚本示例

2010-2-1 14:15
6245

我的MSN 升到 2009后,一直有问题,时断时连。根本原因是公司防火墙屏蔽了7001端口,而MSN当无法收到echo.edge.messenger.live.com就认为网络有问题,会中断现有的连接(H
TTP代理),重新连接。

查了一下,在文件PresenceIM.dll中修改如下两处:
跳转点一、
.text:5F140800 83 7E 7C 0A                             cmp     dword ptr [esi+7Ch], 0Ah
.text:5F140804 75 12                                   jnz     short loc_5F140818  --> nop掉
.text:5F140806 53                                      push    ebx             ; lParam
.text:5F140807 53                                      push    ebx             ; wParam
.text:5F140808 68 00 05 00 00                          push    500h            ; Msg
.text:5F14080D FF 76 04                                push    dword ptr [esi+4] ; hWnd
.text:5F140810 FF 15 9C 13 10 5F                       call    ds:PostMessageW

跳转点二、
.text:5F1407E5 74 19                                   jz      short loc_5F140800  --> jmp
.text:5F1407E7 38 9E 88 00 00 00                       cmp     [esi+88h], bl
.text:5F1407ED C7 45 FC 0D 03 00 81                    mov     [ebp+var_4], 8100030Dh
.text:5F1407F4 75 0A                                   jnz     short loc_5F140800

但很明显,我的如上处理不够好,如果直接在文件里修改的话,有时候MSN启动的时候还是连不上。不想花太多时间了,就用WinDbg在MSN跑起来以后,动态在内存里改一下。

两个文件,一个是启动WinDbg的批处理文件patchmsn.bat,内容只有一行:

"C:\Program Files\Debugging Tools for Windows\windbg.exe" -pn msnmsgr.exe -c "$$>< E:\Program\WinDBGScript\MSN.txt"

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 1482
活跃值: (879)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
原来可以这样~
2010-2-3 14:46
0
雪    币: 8209
活跃值: (4518)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
3
万一这dll重定位到其他位置呢
2010-2-3 14:56
0
雪    币: 101
活跃值: (88)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
4
关于ASLR的东西我还没开始学。
2010-2-3 16:49
0
游客
登录 | 注册 方可回帖
返回
//