魔域游戏中的封包发送分析

      最近,闲来无事,研究了一下魔域游戏的封包发送与接收,下面,就把分包发送部分的一些东西与大家分享。

      相信对游戏进行过逆向分析的人都比较清楚,发送封包能够完成很多意想不到的功能,而这些功能如果通过调用游戏本身的call的话,操是非常繁杂的。所以,可以这么说,发送封包简化了对游戏逆向的步骤。发送分包是控制游戏的万能钥匙。

      寻找魔域封包发送的函数并不复杂,复杂的是,怎样去找封包数据的明文,也就是找到封包数据的加密函数。其实,这也不难。只要按照正规方法,耐心寻找,最终,游戏就会像被你扒光衣服的姑娘,呈现在你面。废话不说。步骤如下:

  1. 在封包发送函数send处下断点。做一个动作,如卖物品,这是,游戏就会断在封包发送的地方。如果你看一下发送数据缓冲区,你会发现,里边全部是密文,相同动作,封包数据完全不同。所以我们必须找到封包加密的函数。
  2. 在密文封包处下硬件写入断点。这是再卖物品,你会发现,游戏断在了另一个地方。取消硬件断点。返回函数上一级。你会发现,函数的一个参数就是send函数的封包发送缓冲区,很明显,这个函数就是封包加密函数,汇编代码如下:

              加密:
00DC0630    55              push    ebp
00DC0631    8B6C24 0C       mov     ebp, dword ptr [esp+C]
00DC0635    56              push    esi
00DC0636    33F6            xor     esi, esi
0

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
假设你的 HTML 文档包含以下代码: ```html <html> <head> <title>网页标题</title> </head> <body> <h1>网页正文</h1> <div> <h2>子标题1</h2> <p>段落1</p> <p>段落2</p> <h2>子标题2</h2> <p>段落3</p> <ul> <li>列表项1</li> <li>列表项2</li> </ul> </div> <div> <h3>子标题3</h3> <p>段落4</p> <ul> <li>列表项3</li> <li>列表项4</li> </ul> <h3>【魔域】</h3> <p>段落5</p> <ul> <li>列表项5</li> <li>列表项6</li> </ul> <h3>子标题4</h3> <p>段落6</p> </div> </body> </html> ``` 你可以使用 Python 的 `lxml` 库来遍历 HTML 文档的元素,以下是一个示例代码: ```python from lxml import etree # 解析 HTML 文档 html = ''' <html> <head> <title>网页标题</title> </head> <body> <h1>网页正文</h1> <div> <h2>子标题1</h2> <p>段落1</p> <p>段落2</p> <h2>子标题2</h2> <p>段落3</p> <ul> <li>列表项1</li> <li>列表项2</li> </ul> </div> <div> <h3>子标题3</h3> <p>段落4</p> <ul> <li>列表项3</li> <li>列表项4</li> </ul> <h3>【魔域】</h3> <p>段落5</p> <ul> <li>列表项5</li> <li>列表项6</li> </ul> <h3>子标题4</h3> <p>段落6</p> </div> </body> </html> ''' root = etree.HTML(html) # 遍历出"【魔域】"的句柄及其所有子孙句柄 def find_handles_with_title(root, target_title): handles = [] for elem in root.iter(): # 如果当前元素的文本内容等于目标标题,则将其添加到句柄列表 if elem.text == target_title: handles.append(elem) return handles # 获取指定句柄的所有子孙句柄 def get_descendant_handles(handle): descendants = handle.xpath(".//*") return descendants # 测试代码 target_title = "【魔域】" handles = find_handles_with_title(root, target_title) for handle in handles: print("Handle:", handle.tag) descendant_handles = get_descendant_handles(handle) for descendant_handle in descendant_handles: print("Descendant handle:", descendant_handle.tag) ``` 在上面的示例代码,`find_handles_with_title` 函数接受一个 `root` 元素和一个目标标题 `target_title`,返回一个包含所有匹配的句柄的列表。然后,`get_descendant_handles` 函数接受一个句柄,返回它的所有子孙句柄。最后,我们可以使用这两个函数来遍历出"【魔域】"的句柄及其所有子孙句柄。运行上面的示例代码,输出如下: ``` Handle: h3 Descendant handle: p Descendant handle: ul Descendant handle: li Descendant handle: li ``` 这表明我们成功地遍历出了"【魔域】"的句柄及其所有子孙句柄。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值