| 网站首页 | 新闻中心 | 系统安全 | 网络安全 | 安全技术 | 下载中心 | 安全365社区 |
安全365
收藏本站
设为首页
会员登录:
站内搜索: 新闻中心 系统安全 网络安全 安全技术 下载中心
| 网络安全首页 | 信道安全 | 设备安全 | 协议安全 | Web安全 |
LiteIM/FreePlus的取IP代码
LiteIM/FreePlus的取IP代码
作者:T4nk的bl… 文章来源:T4nk的blog 点击数: 更新时间:2008-4-11 14:37:48

  随着珊瑚虫被TX镇压后 飘云 虫虫 Freeplus等陆续退出QQ 外挂(辅助工具)的行列 并发出关键代码

  随后的QQ显ip去广告等版本都是基于这些出来的 如:功夫QQ2008显ip版 飘云2008贺岁版显ip去广告 腾讯QQ2008 (显IP显隐身) 传美版 腾讯QQ彩虹显IP显隐身包括一些qq显ip显隐身最新版本|qq显ip显隐身最新版本|腾讯qq显ip显隐身下载|最新qq显ip显隐身|qq显ip显隐身版下载|qq显ip显隐身超级版 |腾讯qq显ip显隐身版|qq显ip显隐身补丁|qq显ip显隐身版|传美qq显ip显隐身|腾讯QQ显ip显隐身 等等

  QQ2008贺岁版显IP显隐身|珊瑚虫|传美|飘云|Fineplus|功夫|狂人|下载

  这是LiteIM/FreePlus的取IP代码,感兴趣的朋友看看吧.

  runjin的是汇编版本,这是c版本,希望有更多的人能读懂.后来者,愿它对你有益.闪了.

  源码:

  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;

  }

文章录入:小张    责任编辑:小张 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
     
     
    没有相关文章
    站长邮箱:webmaster@anquan365.com
    联系电话:86-10-67634029 点击这里给我发消息

    Copyright © 2006-2008 www.anquan365.com 北京华安普特网络科技有限公司 版权所有