联系站长 加入收藏 设为首页 繁體中文 RSS
  首页 | 生活百科 | 电脑网络 | 高手学堂 | 语录名言 | 读书文学 | 极品软件 | 奇趣图片 | 站长微博  
 您的位置: 精品百字节网 >> 高手学堂 >> 源码学堂 >> 正文 当前没有通告!
   □  C语言实现QQ显IP关键代码    4星级
C语言实现QQ显IP关键代码
[ 作者:佚名     来源:网络     点击数:     更新时间:2008-03-11     文章录入:Admin
【字体:
[内容提要]
暂无简介

C语言实现QQ显IP关键代码
 
 static const DWORD UnknownSig=0x1E3A86BA;
static const LPSTR szQQUSER_DYNAMIC_DATA="QQUSER_DYNAMIC_DATA";
typedef void( *pPrepareDynData)(LPVOID IQQData,LPSTR szCmd,const DWORD* szSig,LPVOID* pDynamicData);
VOID PrepareData(LPVOID IQQData,LPVOID* pDynamicData)
{
pPrepareDynData PrepareDynData=(pPrepareDynData)*(LONG *)(*(LONG *)IQQData+0x54);
PrepareDynData(IQQData,szQQUSER_DYNAMIC_DATA,&UnknownSig,pDynamicData);
}
DWORD GetDyncDWORD(LPVOID DynamicData, int iOffset,LPCSTR szCmd)
{
DWORD dwRet=0;
__asm
{
lea eax,dwRet
push eax
push szCmd
mov eax, DynamicData
push eax
mov ecx,[eax]
mov eax,ecx
add eax,iOffset
call [eax]
}
return dwRet;
}
static const LPSTR szdwRecentIP="dwRecentIP";
static const LPSTR szdwIP="dwIP";
static const LPSTR szdwC2CIP="dwC2CIP";
DWORD GetIP(DWORD Uin)
{
DWORD dwRet=0;
LPVOID IQQData=NULL;
if (!GetFriendQQData(g_IQQCore,Uin,&IQQData)) return dwRet;
LPVOID DynamicData=NULL;
PrepareData(IQQData,&DynamicData);
if (NULL==DynamicData) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x34,szdwC2CIP);//ecx+18
if (dwRet) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x34,szdwIP);
if (dwRet) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x34,szdwRecentIP);
return dwRet;
}
static const LPSTR szwRecentPort="wRecentPort";
static const LPSTR szwPort= "wPort";
static const LPSTR szwC2CPort= "wC2CPort";
DWORD GetPort(DWORD Uin)
{
DWORD dwRet=0;
LPVOID IQQData=NULL;
if (!GetFriendQQData(g_IQQCore,Uin,&IQQData)) return dwRet;
LPVOID DynamicData=NULL;
PrepareData(IQQData,&DynamicData);
if (NULL==DynamicData) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x30,szwC2CPort);//ecx+14
if (dwRet) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x30,szwPort);
if (dwRet) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x30,szwRecentPort);
return dwRet;
}
static const LPSTR szwProcotol = "wProcotol";
DWORD GetVer(DWORD Uin)
{
DWORD dwRet=0;
LPVOID IQQData=NULL;
if (!GetFriendQQData(g_IQQCore,Uin,&IQQData)) return dwRet;
LPVOID DynamicData=NULL;
PrepareData(IQQData,&DynamicData);
if (NULL==DynamicData) return dwRet;
dwRet=GetDyncDWORD(DynamicData,0x30,szwProcotol);
return dwRet;
}

上一篇文章:没有了 下一篇文章:WEB打印方案
发表评论 □告诉好友 □打印此文 □收藏此页 □关闭窗口 □返回顶部
 最新热点文章
 kingcms批量替换Url目录格式思路
 添加删除Windows组件出错的解决方法
 IIS安装配置出现问题的解决办法
 ps中用钢笔画图锚点规律总绍
 Xp系统下如何架设网站站点?
 通过对页面进行压缩提高网站速度方案
 一些js代码,慢慢研究
 
 最新推荐文章
 添加删除Windows组件出错的解决方法
 IIS安装配置出现问题的解决办法
 ps中用钢笔画图锚点规律总绍
 Xp系统下如何架设网站站点?
 根据时段网站变换不同风格的代码
 EditPlus 代码段实用指南
 网站采集原型
 
 最新图文
  ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
关于本站 | 免责申明 | 网站地图 | 联系站长 | 友情链接 | 与我同在
冀ICP备06032589号
  Copyright© 2006-2009 100byte.Com All Rights Reserved
网站声明:本网站是公益性质网站,部分内容来源于网络,如有侵犯您权利的地方,请与精品百字节站长联系,尽快修正.
Powered By CreateLive CMS 本站法律顾问:(冀港)武镇海律师
点击这里给我发消息