首页
社区
课程
招聘
[原创]现学现用之windbg的高级玩法外篇一:获取某软件的聊天记录
发表于: 2013-9-20 21:22 71165

[原创]现学现用之windbg的高级玩法外篇一:获取某软件的聊天记录

2013-9-20 21:22
71165

现学现用之windbg的高级玩法外篇一:获取某软件的聊天记录

不知道直接点名会不会请去喝茶,我不爱喝茶,所以就不直接点名了。
测试环境
某软件版本:2013 正式版sp2            在这里简称Tx
调试软件:windbg 6.12
逆向分析工具:ida 6.0
系统版本:xp sp3
其他工具:xuetr0.45


声明:本软件只是用来演示windbg的用法,本人是纯洁的。所以假设各位童鞋也和楼主一样,否则请自愿离开
本文只限于技术交流,如果有人根据本文做出非法用途的工具与楼主无关。


好,废话少说,开练。
首先,我通过xuetr看到有软件获取聊天内容的方法是Hook了KernelUtil!Util::Msg::SaveMsg194
楼主是个懒人,不想再另辟新径去找其他方法了。咱们就通过KernelUtil!Util::Msg::SaveMsg194函数来分析怎么获取聊天内容吧。
把kernelUtil放到ida里看了一下,分析出函数定义:
int __cdecl Util::Msg::SaveMsg194(wchar_t const *, unsigned long, unsigned long, unsigned long, struct ITXMsgPack *, struct ITXData *)
由于这次分析ida是配角,所以大部分分析的工作就交给windbg了。每个参数是干啥的,等会就能见分晓

开启某软件,然后用windbg附加调试。
查看KernelUtil!Util::Msg::SaveMsg194

0:000> [COLOR=Red]x KernelUtil!Util::Msg::SaveMsg194[/COLOR]
3189b75a KernelUtil!Util::Msg::SaveMsg194 (<no parameter info>)
3189bb3a KernelUtil!Util::Msg::SaveMsg194 (<no parameter info>)
0:025> [COLOR=Red]bm KernelUtil!Util::Msg::SaveMsg194[/COLOR]
  1: 3189b75a @!"KernelUtil!Util::Msg::SaveMsg194"
  2: 3189bb3a @!"KernelUtil!Util::Msg::SaveMsg194"
0:025> [COLOR=Red]bl[/COLOR]
 1 e 3189b75a     0001 (0001)  0:**** KernelUtil!Util::Msg::SaveMsg194
 2 e 3189bb3a     0001 (0001)  0:**** KernelUtil!Util::Msg::SaveMsg194
0:025>[COLOR=Red] g[/COLOR]
Breakpoint 2 hit
eax=4c12fd1a ebx=00000000 ecx=31877650 edx=0012db48 esi=3016a33c edi=056c0864
eip=3189bb3a esp=0012db54 ebp=0012dfdc iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
KernelUtil!Util::Msg::SaveMsg194:
3189bb3a 6a2c            push    2Ch
0:000> [COLOR=Red]dd esp[/COLOR]
0012db54  03409695 [COLOR=Blue]035c918c[/COLOR] [COLOR=Blue]5556ae**[/COLOR] [COLOR=Blue]4c12fd**[/COLOR]
0012db64  [COLOR=Blue]5556ae**[/COLOR] [COLOR=Blue]05aa6868 059b3908 [/COLOR]996b7eb3
0012db74  300b5467 300d64b9 056c0860 300a771a
0012db84  05929680 05929680 0012dba0 71a2265b
0012db94  00000020 01376978 059b3908 0012dc0c
0012dba4  07779a18 30820a35 035c918c 0012dbd0
0012dbb4  00000010 05aa6868 059b3908 00000020
0012dbc4  01376978 0012dc0c 0012dc38 0012dc10
0:000> [COLOR=Red]du poi(esp+4)[/COLOR]
[B][COLOR=Blue]035c918c[/COLOR][/B]  "buddy" //擦这个不是聊天内容
0:000> [COLOR=Red]? poi(esp+8)[/COLOR]
Evaluate expression: 14317***** = [B][COLOR=Blue]5556ae**[/COLOR][/B] [COLOR=Blue]//14317*****正是楼主发送的对方账号。账号做了打码处理[/COLOR]
0:000> [COLOR=Red]? poi(esp+c)[/COLOR]
Evaluate expression: 12763***** = [B][COLOR=Blue]4c12fd**[/COLOR][/B] [COLOR=Blue]//127631****正是正在调试的账号[/COLOR]
0:000> [COLOR=Red]? poi(esp+10)[/COLOR]
Evaluate expression: 14317***** = [B][COLOR=Blue]5556ae**[/COLOR][/B]
0:000> [COLOR=Red]dd poi(esp+14)[/COLOR]
[COLOR=Blue][B]05aa6868  [/B][/COLOR]318f9fa8 318f9f98 00000006 3016a23c
05aa6878  3016a22c 00000000 00040000 00000000
05aa6888  05ad35f8 05aa0000 059d8ec0 059d8ec4
05aa6898  059d8ec4 00000000 00080004 0408012c
05aa68a8  059d8db8 059d8db8 059d8db8 00000000
05aa68b8  700a0c76 00000101 00040002 040e0120
05aa68c8  05aa0000 003f0178 0002000f 04080122
05aa68d8  00008000 00000004 0000000d 0000000b
0:000> [COLOR=Red]dd poi(esp+18)[/COLOR]
[B][COLOR=Blue]059b3908  [/COLOR][/B]3016a270 3016a260 3016a24c 3016a23c
059b3918  3016a22c 00000001 00000000 00010000
059b3928  00016300 00000001 095af8f8 095afc40
059b3938  01896740 0000000f 0008000a 040c0110
059b3948  30168f40 00000001 059b3948 00000000
059b3958  c54dd1c9 4511ad06 d6749aa1 42b25ff5
059b3968  00000000 00000000 00000000 00000000
059b3978  00000000 3028475c 07777b70 059d8248
0:000> [COLOR=Red]!address 318f9fa8                     [/COLOR]
Failed to map Heaps (error 80004005)
Usage:                  Image
Allocation Base:        31800000
Base Address:           318f3000
End Address:            31932000
Region Size:            0003f000
Type:                   01000000    MEM_IMAGE
State:                  00001000    MEM_COMMIT
Protect:                00000002    PAGE_READONLY
More info:              lmv m KernelUtil
More info:              !lmi KernelUtil
More info:              ln 0x318f9fa8
0:000> [COLOR=Red]dds 318f9fa8 l5[/COLOR]
318f9fa8  31886259 KernelUtil!Util::Msg::ConvertCharFormatMsgPackToRichEdit+0xf18
318f9fac  318da1e0 KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x500
318f9fb0  31884d3a KernelUtil!Util::Msg::SetMsgDB2StorageMode+0x98
318f9fb4  318dd504 KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x3824
318f9fb8  318dd516 KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x3836
0:000>[COLOR=Red] !address 3016a270 [/COLOR]
Usage:                  Image
Allocation Base:        30000000
Base Address:           3014e000
End Address:            301c1000
Region Size:            00073000
Type:                   01000000    MEM_IMAGE
State:                  00001000    MEM_COMMIT
Protect:                00000002    PAGE_READONLY
More info:              lmv m Common
More info:              !lmi Common
More info:              ln 0x3016a270
0:000> [COLOR=Red]s -u 0 f000000 "ddlxtest2"[/COLOR]
01475e98  0064 0064 006c 0078 0074 0065 0073 0074  d.d.l.x.t.e.s.t.
0779c308  0064 0064 006c 0078 0074 0065 0073 0074  d.d.l.x.t.e.s.t.
0:000> [COLOR=Red]s -u 0 f000000 01475e98[/COLOR]
0:000> [COLOR=Red]s -u 0 f000000 0779c308[/COLOR]
0:000>[COLOR=Red] ba r4 0779c308[/COLOR]
0:000> [COLOR=Red]ba r4 01475e98[/COLOR]
0:000> [COLOR=Red]g[/COLOR]
Breakpoint 0 hit
eax=00000064 ebx=05acfc00 ecx=00000012 edx=00000002 esi=0779c308 edi=05acfc26
eip=78145078 esp=0012d8e8 ebp=0012d8f0 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010202
MSVCR80!LeadUpVec+0x3c:
78145078 8807            mov     byte ptr [edi],al          ds:0023:05acfc26=00
0:000> [COLOR=Red]ub[/COLOR]
MSVCR80!LeadUpVec+0x24 [F:\dd\vctools\crt_bld\SELF_X86\crt\src\intel\memcpy.asm @ 245]:
78145060 83c703          add     edi,3
78145063 83f908          cmp     ecx,8
78145066 72cc            jb      MSVCR80!memcpy+0x84 (78145034)
78145068 f3a5            rep movs dword ptr es:[edi],dword ptr [esi]
7814506a ff249524511478  jmp     dword ptr MSVCR80!TrailUpVec (78145124)[edx*4]
78145071 8d4900          lea     ecx,[ecx]
78145074 23d1            and     edx,ecx
[COLOR=Blue]78145076 8a06            mov     al,byte ptr [esi][/COLOR]
0:000> [COLOR=Red]r esi[/COLOR]
esi=0779c308
0:000>[COLOR=Red] kb n 10[/COLOR]
 # ChildEBP RetAddr  Args to Child              
00 0012d8f0 30030e71 05acfc26 0779c308 00000014 MSVCR80!LeadUpVec+0x3c [F:\dd\vctools\crt_bld\SELF_X86\crt\src\intel\memcpy.asm @ 259]
WARNING: Stack unwind information not available. Following frames may be wrong.
01 0012d910 318e1b49 059bc360 [COLOR=Blue]0779c308 [/COLOR]00000014 Common!Util::Extension::CreateExtensionSort+0x572b
02 0012d958 318dda9c 019bc360 b2d95feb 05aa688c KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x7e69
03 0012d988 318dfedb [COLOR=Blue]05847a70 [/COLOR]059bc360 0012da4c KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x3dbc
04 0012d9b8 318dff6b 0012d9ec b2d95f83 05aa6868 KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x61fb
05 0012d9e0 0328d5e0 [COLOR=Blue]05aa6868 [/COLOR]059bc360 996b7b57 KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x628b
06 0012da38 0326ca46 01ab9aa4 062e2cb0 0770c4b8 IM!DllUnregisterServer+0x2a994
07 0012da98 3189b727 057a2310 05aa6868 01ab9aa4 IM!DllUnregisterServer+0x9dfa
08 0012daf4 3189beab 035c918c 07779a18 05aa6868 KernelUtil!Util::MsgImport::FindAutoQQMsgFileFullPath+0x4a6
[COLOR=Red]09 0012db50 03409695 035c918c 5556ae** 4c12fd** KernelUtil!Util::Msg::SaveMsg194+0x371[/COLOR]
0a 0012dfdc 033d52c0 035c918c 05aa6868 00000000 IM!DllUnregisterServer+0x1a6a49
0b 0012e07c 033d6f08 05aa6868 00000000 00000001 IM!DllUnregisterServer+0x172674
0c 0012e0a0 033d7125 05aa6868 00000000 05a56438 IM!DllUnregisterServer+0x1742bc
0d 0012e0d4 6629a5eb 056c0864 05aa6868 00000000 IM!DllUnregisterServer+0x1744d9
0e 0012e12c 64c20f8d 059d19a0 05aa6868 05599278 AppFramework!DllUnregisterServer+0x9851c
0f 0012e140 662903e9 05a560c8 05aa6868 05ae3f88 ChatFrameApp!DllUnregisterServer+0x1fb6a
01 0012d910 [COLOR=Red]318e1b49 [/COLOR]059bc360 [COLOR=Blue]0779c308 [/COLOR]00000014 Common!Util::Extension::CreateExtensionSort+0x572b
0:000> [COLOR=Red]ub 318e1b49 l10[/COLOR]
KernelUtil!CDRStrCodecBaseHttp2Cs::AddRef+0x7e42:
318e1b22 8d4de8          lea     ecx,[ebp-18h]
318e1b25 51              push    ecx
318e1b26 56              push    esi
318e1b27 ff5050          call    dword ptr [eax+50h]
318e1b2a 8b06            mov     eax,dword ptr [esi]
318e1b2c 8b4dec          mov     ecx,dword ptr [ebp-14h]
318e1b2f 8945e4          mov     dword ptr [ebp-1Ch],eax
318e1b32 0fb745e8        movzx   eax,word ptr [ebp-18h]
318e1b36 57              push    edi
318e1b37 50              push    eax
[COLOR=Blue]318e1b38 83c114          add     ecx,14h[/COLOR]
[COLOR=Blue]318e1b3b ff15f4348f31    call    dword ptr [KernelUtil!ValidateBugReport+0xef2e (318f34f4)][/COLOR]
[COLOR=Blue]318e1b41 50              push    eax[/COLOR]
318e1b42 8b45e4          mov     eax,dword ptr [ebp-1Ch]
318e1b45 56              push    esi
318e1b46 ff5050          call    dword ptr [eax+50h]

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

收藏
免费 6
支持
分享
最新回复 (109)
雪    币: 458
活跃值: (306)
能力值: ( LV12,RANK:400 )
在线值:
发帖
回帖
粉丝
2
前排学习。。感谢分享。
2013-9-20 21:24
0
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
3
沙发自己坐
2013-9-20 21:24
0
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
4
我以为我能坐上沙发呢
2013-9-20 21:25
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
mark,LZ 继续
2013-9-20 21:35
0
雪    币: 212
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
向楼主学习
2013-9-20 21:39
0
雪    币: 53
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
膜拜大神!!
2013-9-20 21:53
0
雪    币: 9695
活跃值: (2501)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
“首先,我通过xuetr看到有软件获取聊天内容的方法是Hook了KernelUtil!Util::Msg::SaveMsg194。”
我对这句话倒是很感兴趣,楼主用xuetr怎么能看到有软件获取聊天内容的方法是Hook了KernelUtil!Util::Msg::SaveMs194 ?
2013-9-20 22:16
0
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
9
xuetr 选择用户层钩子,进程钩子,扫描一下就出来了
2013-9-20 23:24
0
雪    币: 458
活跃值: (306)
能力值: ( LV12,RANK:400 )
在线值:
发帖
回帖
粉丝
10
哈哈,如果 我再迟疑一下,你就坐在沙发上了。
2013-9-21 00:39
0
雪    币: 9941
活跃值: (2143)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
这命令用得行云流水
2013-9-21 01:01
0
雪    币: 211
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
强帖留名。。。。
2013-9-21 07:45
0
雪    币: 1737
活跃值: (110)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
好东西啊。。。
2013-9-21 07:50
0
雪    币: 480
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢楼主,好厉害啊。
2013-9-21 09:10
0
雪    币: 47
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
学习 学习 ~~
2013-9-21 09:30
0
雪    币: 27
活跃值: (127)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
16
好贴啊,顶楼主
2013-9-21 09:32
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
我了个去,这是个什么东东啊,呵呵,看不懂,学习去喽!!!!!!!!!!!!!1111
2013-9-21 09:47
0
雪    币: 5188
活跃值: (3427)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
"刚惨咱们看到定义,共有6个参数。" 刚才~
2013-9-21 11:00
0
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
19
好贴。牛人
2013-9-21 12:22
0
雪    币: 245
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
支持楼主辛苦了
2013-9-21 12:29
0
雪    币: 47147
活跃值: (20450)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
21
厉害,另外排版也用心,看的舒服。
2013-9-21 12:33
0
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
22
哈哈,疏忽写错了
2013-9-21 12:55
0
雪    币: 541
活跃值: (654)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
23
能得到老大的赞许,是我等小辈的荣幸
2013-9-21 13:00
0
雪    币: 1233
活跃值: (907)
能力值: ( LV12,RANK:750 )
在线值:
发帖
回帖
粉丝
24
不错的教程 哈哈
2013-9-21 13:14
0
雪    币: 370
活跃值: (15)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
25
去下了0.2中秋版学习去
2013-9-21 13:43
0
游客
登录 | 注册 方可回帖
返回
//