首页
社区
课程
招聘
[原创]截获QQ2010明文聊天消息附源码,最新版本QQ可用
2010-11-4 15:53 19532

[原创]截获QQ2010明文聊天消息附源码,最新版本QQ可用

2010-11-4 15:53
19532
声明:
本次逆向不以破坏QQ功能为目的
本次逆向不以耍流氓为目的
纯属学习娱乐
QQ版本:QQ2010 1, 55, 1870, 0
工具:OD VS2005
目的:截获QQ明文消息
定位到的关键代码段(位于GF.dll中):
3088F210   .  55            push    ebp
3088F211   .  8BEC          mov     ebp, esp
3088F213   .  8B45 10       mov     eax, dword ptr [ebp+10]
3088F216   .  8B4D 0C       mov     ecx, dword ptr [ebp+C]
3088F219   .  6A 00         push    0
3088F21B   ?  50            push    eax
3088F21C   ?  51            push    ecx
3088F21D   ?  8B4D 08       mov     ecx, dword ptr [ebp+8]
3088F220   .  83C1 04       add     ecx, 4
3088F223   ?  E8 28ACFFFF   call    30889E50

这部分就消息包和富文本框的交互,所以可以截获到很多东西..比如昵称 发送时间 消息内容 个性签名。
编写代码做Hook(额 代码写的超烂已经遭到无数人的鄙视了不要拍了...):
#include "stdafx.h"
DWORD dwQCMsg;
LPCWSTR lptext;
VOID QCMain()
{
	lptext = (LPCWSTR)dwQCMsg;

	MessageBox(NULL,lptext,L"QQ",MB_OK);
	return;
}
VOID AutoSendRequest()
{

	__asm{
				push    0
				push    eax
				push    ecx
				mov     dwQCMsg,ecx
				mov     ecx, dword ptr [ebp+8]
				add      ecx,4
				pushad
				call       QCMain
				popad
	}
	__asm{
				mov     eax,0x3088F223
				jmp      eax
	}
}

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
					 )
{
	if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
		__asm{
					mov eax,AutoSendRequest
					sub eax,0x3088f21d
					add eax,5
					mov ebx,0x3088f219
					mov word ptr [ebx], 0xe9
					mov	dword ptr [ebx+1],eax
					mov	dword ptr [ebx+5],0x9090909090
			}
    return TRUE;
}

注入DLL到QQ进程,就不写了QQ没有这个保护..
处女文不喜勿拍...
最后给个编译好的DLL
需要手动修改GF.dll的Text段的读写属性...

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

上传的附件:
收藏
点赞6
打赏
分享
最新回复 (19)
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
VC菜鸟 2010-11-4 16:06
2
0
后面dll的代码实在有点那个啥
说说咋定位的可能还有意思点
雪    币: 2105
活跃值: (394)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
exile 1 2010-11-4 16:07
3
0
需要手动修改GF.dll的Text段的读写属性... 你亮了
雪    币: 38
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whxright 2010-11-4 16:12
4
0
........我是菜鸟..
雪    币: 38
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whxright 2010-11-4 16:14
5
0
通过它几个DLL的导出函数跟过去的..你可以看看KernelUtil.dll的导出表
雪    币: 62
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
friendkill 2010-11-5 10:32
6
0
如果能够分析出QQ2010的通讯协议,做出一个小的CMDqq来挂机就好了
雪    币: 38
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whxright 2010-11-6 21:05
7
0
额....这个貌似已经有开放的协议了
雪    币: 6071
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2010-11-6 21:33
8
0
可以把qq做成加密通讯通道
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
snynistxu 2010-11-6 21:51
9
0
问问360他们研究透了
雪    币: 38
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whxright 2010-11-6 22:24
10
0
发哥太邪恶了...满脑子都是地下工作
雪    币: 220
活跃值: (626)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dayang 2010-11-6 22:42
11
0
360他们怎么还不发ODAY呀
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
nohack 2010-11-8 14:28
12
0
求调戏过程
雪    币: 324
活跃值: (113)
能力值: ( LV15,RANK:280 )
在线值:
发帖
回帖
粉丝
ctaotao 6 2010-11-9 21:20
13
0
感谢楼主分享。我测试了QQ2010,不行。3088F210 地址处,跟你的不相同。跪求详细关键点定位过程。
雪    币: 38
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
whxright 2010-11-10 10:47
14
0
可能和GF.dll加载的基质有关系
我的GF.dll代码段加载的基质是 30801000
那段关键代码的偏移是
0x3088F210-0x30801000
也有可能是 小版本号有差异.你先试试上面的不行再联系
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zchld 2010-11-10 19:29
15
0
求过程!!!!!
雪    币: 107
活跃值: (107)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
einyboy 2010-11-10 21:02
16
0
调用原有函数时参数变了啊
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
AsmBrat 2010-11-11 06:51
17
0
3楼的淫说你亮了 你就亮了.
不过还是灰常和谐, up一下.
这玩意啥时候就用上了...
雪    币: 121
活跃值: (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
salwtp 2010-11-12 08:52
18
0
可以说一下具体的调试过程不 学习中。。。
雪    币: 76
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yaneng 2011-6-20 10:29
19
0
学习~!!!!
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
游虫 2011-6-20 13:31
20
0
牛人啦。。。我是菜鸟...
游客
登录 | 注册 方可回帖
返回