当前位置:云瑞下载 → 游戏下载 → 游戏工具
  • 网站首页 软件下载 操作系统 游戏下载 手机软件 驱动下载 MAC软件 网站源码 素材下载 字体下载 软件教程 
  • 游戏封包截取发送工具 绿色免费版

    中文 15KB 免费软件 / 国产软件
    广告投放联系QQ:240226193

    对游戏数据包进行抓取截图,有序要的朋友可以看看。截获api是个很有用的东西,比如你想分析一下别人的程序是怎样工作的。这里我介绍一下一种我自己试验通过的方法。

    游戏封包截取工具使用方式

    首先

    我们必须设法把自己的代码放到目标程序的进程空间里去。windows hook可以帮我们实现这一点。setwindowshookex的声明如下:

    hhook setwindowshookex(

    int idhook, // hook type

    hookproc lpfn, // hook procedure

    hinstance hmod, // handle to application instance

    dword dwthreadid // thread identifier

    );

    具体的参数含义可以翻阅msdn,没有msdn可谓寸步难行。

    这里hook本身的功能并不重要,我们使用它的目的仅仅只是为了能够让windows把我们的代码植入别的进程里去。hook type我们任选一种即可,只要保证是目标程序肯定会调用到就行,这里我用的是wh_callwndproc。lpfn和hmod分别指向我们的钩子代码及其所在的dll,dwthreadid设为0,表示对所有系统内的线程都挂上这样一个hook,这样我们才能把代码放到别的进程里去。

    之后,我们的代码就已经进入了系统内的所有进程空间了。必须注意的是,我们只需要截获我们所关心的目标程序的调用,因此还必须区分一下进程号。我们自己的钩子函数中,第一次运行将进行最重要的api重定向的工作。也就是通过将所需要截获的api的开头几个字节改为一个跳转指令,使其跳转到我们的api中来。这是最关键的部分。这里我想截三个调用,ws2_32.dll中的send和recv、user32.dll中的getmessagea。

    dword dwcurrentpid = 0;

    hhook holdhook = null;

    dword psend = 0;

    dword precv = 0;

    getmessage pgetmessage = null;

    byte btnewbytes[8] = { 0x0b8, 0x0, 0x0, 0x40, 0x0, 0x0ff, 0x0e0, 0 };

    dword dwoldbytes[3][2];

    handle hdebug = invalid_handle_value;

    lresult callback callwndproc( int ncode, wparam wparam, lparam lparam )

    {

    dword dwsize;

    dword dwpidwatched;

    hmodule hlib;

    if( dwcurrentpid == 0 )

    {

    dwcurrentpid = getcurrentprocessid();

    hwnd hwndmainhook;

    hwndmainhook = ::findwindow( 0, mainhook );

    dwpidwatched = ::sendmessage( hwndmainhook, (wm_user+100), 0, 0 );

    holdhook = (hhook)::sendmessage( hwndmainhook, (wm_user+101), 0, 0 );

    if( dwcurrentpid == dwpidwatched )

    {

    hlib = loadlibrary( ws2_32.dll );

    psend = (dword)getprocaddress( hlib, send );

    precv = (dword)getprocaddress( hlib, recv );

    ::readprocessmemory( invalid_handle_value, (void *)psend, (void *)dwoldbytes[0], sizeof(dword)*2, dwsize );

    *(dword *)( btnewbytes + 1 ) = (dword)new_send;

    ::writeprocessmemory( invalid_handle_value, (void *)psend, (void *)btnewbytes, sizeof(dword)*2, dwsize );

    ::readprocessmemory( invalid_handle_value, (void *)precv, (void *)dwoldbytes[1], sizeof(dword)*2, dwsize );

    *(dword *)( btnewbytes + 1 ) = (dword)new_recv;

    ::writeprocessmemory( invalid_handle_value, (void *)precv, (void *)btnewbytes, sizeof(dword)*2, dwsize );

    hlib = loadlibrary( user32.dll );

    pgetmessage = (getmessage)getprocaddress( hlib, getmessagea );

    ::readprocessmemory( invalid_handle_value, (void *)pgetmessage, (void *)dwoldbytes[2], sizeof(dword)*2, dwsize );

    *(dword *)( btnewbytes + 1 ) = (dword)new_getmessage;

    ::writeprocessmemory( invalid_handle_value, (void *)pgetmessage, (void *)btnewbytes, sizeof(dword)*2, dwsize );

    hdebug = ::createfile( c:\\trace.log, generic_write, 0, 0, create_always, file_attribute_normal, 0 );

    if( holdhook != null )

    return callnexthookex( holdhook, ncode, wparam, lparam );

    return 0;

    上面的钩子函数,只有第一次运行时有用,就是把三个函数的首8字节修改一下(实际上只需要7个)。btnewbytes中的指令实际就是

    mov eax, 0x400000

    jmp eax

    这里的0x400000就是新的函数的地址,比如new_recv/new_send/new_getmessage,此时,偷梁换柱已经完成。再看看我们的函数中都干了些什么。以getmessagea为例:

    bool _stdcall new_getmessage( lpmsg lpmsg, hwnd hwnd, uint wmsgfiltermin, uint wmsgfiltermax )

    dword dwsize;

    char sztemp[256];

    bool r = false;

    //watch here before its executed.

    sprintf( sztemp, before getmessage : hwnd 0x%8.8x, msgmin 0x%8.8x, msgmax 0x%8.8x \r\n, hwnd, wmsgfiltermin, wmsgfiltermax );

    ::writefile( hdebug, sztemp, strlen(sztemp), dwsize, 0 );

    //watch over

    // restore it at first

    ::writeprocessmemory( invalid_handle_value, (void *)pgetmessage, (void *)dwoldbytes[2], sizeof(dword)*2, dwsize );

    // execute it

    r = pgetmessage( lpmsg, hwnd, wmsgfiltermin, wmsgfiltermax );

    // hook it again

    *(dword *)( btnewbytes + 1 ) = (dword)new_getmessage;

    ::writeprocessmemory( invalid_handle_value, (void *)pgetmessage, (void *)btnewbytes, sizeof(dword)*2, dwsize );

    //watch here after its executed

    sprintf( sztemp, result of getmessage is %d.\r\n, r );

    ::writefile( hdebug, sztemp, strlen( sztemp ), dwsize, 0 );

    if( r )

    {

    sprintf( sztemp, msg : hwnd 0x%8.8x, msg 0x%8.8x, wparam 0x%8.8x, lparam 0x%8.8x\r\ntime 0x%8.8x, x %d, y %d\r\n,

    lpmsg-hwnd, lpmsg-message,

    lpmsg-wparam, lpmsg-lparam, lpmsg-time,

    lpmsg-pt.x, lpmsg-pt.y );

    ::writefile( hdebug, sztemp, strlen( sztemp ), dwsize, 0 );

    }

    strcpy( sztemp, \r\n );

    ::writefile( hdebug, sztemp, strlen( sztemp ), dwsize, 0 );

    //watch over

    return r;

    先将截获下来的参数,写入到一个log文件中,以便分析。然后恢复原先保留下来的getmessagea的首8字节,然后执行真正的getmessagea调用,完毕后再将执行结果也写入log文件,然后将getmessagea的执行结果返回给调用者。

    整个截获的过程就是这样。你可以把其中的写log部分改成你自己想要的操作。这里有个不足的地方是,截获动作是不能够并发进行的,如果目标进程是多线程的,就会有问题。解决办法是,可以在每次new_getmessage中加入一个criticalsection的锁和解锁,以使调用变为串行进行,但这个我没有试验过。

    网络游戏的封包技术是大多数编程爱好者都比较关注的关注的问题之一,在这一篇里就让我们一起研究一下这一个问题吧。

    别看这是封包这一问题,但是涉及的技术范围很广范,实现的方式也很多(比如说apihook,vxd,winsock2都可以实现),在这里我们不可能每种技术和方法都涉及,所以我在这里以winsock2技术作详细讲解,就算作抛砖引玉。

    由于大多数读者对封包类编程不是很了解,我在这里就简单介绍一下相关知识:

    apihook:

    由于windows的把内核提供的功能都封装到api里面,所以大家要实现功能就必须通过api,换句话说就是我们要想捕获数据封包,就必须先要得知道并且捕获这个api,从api里面得到封包信息。

    vxd:

    直接通过控制vxd驱动程序来实现封包信息的捕获,不过vxd只能用于win9x。

    winsock2:

    winsock是windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,winsock2是winsock2.0提供的服务提供者接口,但只能在win2000下用。

    好了,我们开始进入winsock2封包式编程吧。

    在封包编程里面我准备分两个步骤对大家进行讲解:1、封包的捕获,2、封包的发送。

    首先我们要实现的是封包的捕获:

    delphi的封装的winsock是1.0版的,很自然winsock2就用不成。如果要使用winsock2我们要对winsock2在delphi里面做一个接口,才可以使用winsock2。

    1、如何做winsock2的接口?

    1)我们要先定义winsock2.0所用得到的类型,在这里我们以wsa_data类型做示范,大家可以举一仿三的来实现winsock2其他类型的封装。

    我们要知道wsa_data类型会被用于wsastartup(wversionrequired: word; var wsdata: twsadata): integer;,大家会发现wsdata是引用参数,在传入参数时传的是变量的地址,所以我们对wsa_data做以下封装:

    const

    wsadescription_len = 256;

    wsasys_status_len = 128;

    type

    pwsa_data = ^twsa_data;

    wsa_data = record

    wversion: word;

    whighversion: word;

    szdescription: array[0..wsadescription_len] of char;

    下载地址:游戏封包截取发送工具 绿色免费版
    网盘下载说明:由于网盘没有直接下载地址,目前所有软件、源码等下载下来的均为txt格式说明的.ZIP或.RAR压缩包,里面包含了真正多个网盘的下载地址、和下载密码,您可以根据需要选择相应的网盘下载、保存、转到自己的网盘存储。
    普通下载地址:
    官方本地下载 武汉电信下载
    北京联通下载 苏州电信下载
    四川电信下载 云南电信下载
    欢迎关注我们的抖音:LG18927773741
    相关阅读

      天刀格子(游戏工具) v1.0 安卓版

      天刀格子安卓版是一款集游戏金查询、装逼数据查询以及心法模拟器等功能于一体的游戏工具。为玩家们提供了天涯明月刀最新的游戏资讯和攻略信息,还可以自定义设置游戏闹钟,不错过精彩的游戏进度!快来云瑞下载吧下载吧。...

      3387我要做游戏工具 v3.13.10 官方版

      3387我要做游戏是一款专业的游戏制作软件,内置海量游戏制作素材与游戏制作视频,涵盖了古风、现代、唯美、魔幻等各种丰富,还提供了热门游戏实时排行,均可免费试玩,喜欢的朋友欢迎来云瑞下载吧下载!...

      米娱gm游戏工具 v1.1 安卓版

      米娱gm游戏工具是一款专业的gm游戏辅助工具,有了它玩家可以购买权限才可以进行一些特殊的操作,帮助你花少量的钱就能实现无限氪金,感兴趣的朋友欢迎来云瑞下载吧下载试玩!...

      95游戏工具 V1.6.0 安卓版_95手机游戏中心

      95游戏中心是中国领先的android安卓手机游戏市场,95游戏安卓市场官网打造成高质量、全免费、方便快捷的安卓游戏下载中心。用95游戏中心下载,安卓游戏玩家的首选!...

    本站出售联系QQ:240226193
  • ·火山小视频pc端 v8.2.0 官方最新版
  • ·携程旅行电脑版 v8.16.2 官方pc版
  • ·跆拳道教学视频 v6.2.3 安卓版
  • ·知米背单词电脑版 v4.9.7 官方最新pc版_附安装方法
  • ·2020年日历a4纸打印版 带农历
  • ·铁友火车票电脑版 v8.1.2 pc官方版
  • ·新浪体育nba直播客户端电脑版 v4.3.3.0 官方版
  • ·美图秀秀电脑版 v6.3.0.3 最新pc版
  • ·天猫精灵app电脑版 v3.21.2 官方版
  • ·唯品会电脑版 v7.7.3 pc最新版
  • ·优志愿电脑版 v6.9.9.1 官方pc版
  • ·火山小视频pc端 v7.8.5 官方最新版
  • ·携程旅行电脑版 v8.14.0 官方pc版
  • ·挖财记账理财电脑版 v12.0.6 免费pc版
  • ·李涛主讲Photoshop高手之路 全24集高清+全部素材
  • ·28天瑜伽养生计划 瑜伽视频教程 免费版_看视频学瑜伽
  • ·五行健康体操视频高清版
  • ·郑多燕健身舞全集视频教程 中文高清完整版
  • ·李阳疯狂英语全套教程
  • ·拉丁舞教学视频教程集合
  • ·浩辰CAD2010建筑视频教程
  • ·医视宝(医学教学视频) v10.11 最新免费版
  • ·GNS3模拟器GNS3-10视频教程
  • ·李涛最新AE视频教程 After Effects从入门到精通
  • ·沉浸式网络课堂 v1.0.22.742 绿色版
  • ·access2010数据库应用视频教程
  • ·西门子S7-200官方教学视频:编程基础
  • ·傲游浏览器国内版5.3.8.2000正式版
  • ·创序医考宝 v1.0.1 安卓版
  • ·乌鸦坐飞机系列表情包 含熊猫表情
  • ·肮脏的交易表情包 21p
  • ·生辰八字宝宝取名2015 v2015 电脑版
  • ·一应手指电脑版 v3.5 官方pc版
  • ·ChessBase14中文破解版
  • ·TXT杀手(txt分割器) 免费绿色版
  • ·无敌文件批处理大师 v1.2 破解版
  • ·荣誉证书打印软件 v6.5.0 官方版
  • ·芈月传孙俪自带表情包
  • ·豆娃qq表情包
  • ·联想S850e Recovery v5.5.0.4 中文绿色版
  • ·picture package(索尼摄像机随机软件) v1.8 升级版
  • ·超次元游戏海王星动漫qq表情包
  • ·欢乐颂赵医生王凯搜狗输入法皮肤
  • ·毛笔字生成器工具 v4.0.0.0 绿色免费版
  • ·江苏省招投标制作工具 v1.0 免费版
  • ·我的文档管理 v1.31 简体中文绿色免费版
  • ·小凡模拟器(DynamipsGUI) V2.83 简体中文版(支持win7)
  • ·360问答电脑版 v1.0.0.1022 官方最新版
  • ·文集(Uni-Tree) v1.50 绿色免费版
  • ·闪迪sandisk backup独立版软件 官方最新版
  • ·华华毫秒点击器 v1.0 官方版
  • ·TinyTool v1.0 绿色版
  • ·xenu死链接检测工具 v1.3.8 官网绿色版
  • ·红兔回复撰写平台 v0.1.4.8 官方版
  • ·Icool酷派手机同步软件 v1.2.1 官方最新版
  • ·小迅雷 v1.0.0 绿色免费版
  • ·MusicWire(国外音乐下载工具) v1.2 绿色版
  • ·伐木累爱奇艺会员分享 v1.2 免费版
  • ·支付宝集五福增强符工具 v1.0 最新版
  • ·hamachi中文版 v2.2.0.266 官方安装版
  • ·华为网盘控件 v1.2.0.6 官方最新版
  • ·酷音苹果手机助手(换铃神器) v1.0.9 官方版
  • ·小风流量监视 v1.0 绿色版
  • ·气功手推系列小人表情包
  • ·小米论坛自动回复软件 v3.3.6.1 绿色版
  • ·绿坝花季护航软件(上网管理) v3.11 官方版
  • ·她很漂亮崔始源搞笑qq表情包
  • ·三只柴犬出列表情包gif
  • ·RealVNC Enterprise v6.1.1 绿色版
  • ·立体效果pdf阅读器(soda pdf 3d reader) v1.0.4 免费中文版
  • ·原生五笔输入法 v1.0 免费版
  • ·木鱼BT资源搜索助手(资源搜索神器) V1.5 绿色版
  • ·神烦狗跳舞表情包动图 微信gif表情包
  • ·uTorrent easy client(BT种子下载插件) v2.4.6官方版
  • ·睿元快递单打印软件 v2.0.0.0 免费版
  • ·firefox浏览器国际版 v50.0.3 官方中文版
  • ·wpe中文版 v3.0 绿色版
  • ·战天猫(商品价格查询) v0.1 官方版
  • ·lg手机支援工具 v1.8.3.0 最新版
  • ·速龙安全浏览器 v3.2.2.7 官方pc版
  • ·欢乐通网络电话软件 v2014 官方版
  • ·搜狗输入法皮肤之奔跑吧兄弟王祖蓝
  • ·1188拼音输入法 v3.0.1.5248 官方版
  • ·蒙科立蒙文输入法2017 v7.18.4.0 官网最新版
  • ·拿剑小人qq表情包
  • ·新华拼音输入法 v5.6 官方版
  • ·豌豆荚 Win8专版 v2.31.0.1986 官方安装版
  • ·360wifi共享精灵 v5.3 官方免费版
  • ·DynaDoc Free Reader(wdl阅读器) v3.5 绿色版
  • ·essentialpim完美破解版 v4.21 免费版
  • ·逗图软件 v1.0 绿色版
  • ·联通宽带客户端官网版 v2.2.9.69 简体中文免费版
  • ·微店上架软件 v1.3 桌面版
  • ·糖小栗qq表情包
  • ·小白浏览器软件 v8.0.1018.3609 官网pc版
  • ·雨滴桌面皮肤 共100款 for win10/7/8
  • ·马云达沃斯qq表情包
  • ·VIP账号神器电脑版 v2.4.2 pc官方版
  • ·小米手机锁屏密码破解软件
  • ·玩转手机摄影软件 v8.2.0 官方版
  • 慧林主机系统序列号出售QQ:240226193
    云瑞下载 [szyunrui.cn] ICP备:粤ICP备15036350号-1
    '); })();