找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 448|回复: 14

下文是DNF调试模式反汇编代码 请大神改成源码(5分)

[复制链接]

4530

主题

4万

回帖

13万

积分

出神入化

积分
139914
发表于 2025-9-25 07:56:22 | 显示全部楼层 |阅读模式
char __thiscall send_16_select_dungeon(int this, int a2, int j)
{
......
AllocatePacket(dword_A5BA58, 16);
j = a2;
EncryptPacket(dword_A5BA58, (int)&j, 2);
BYTE3(j) = v7;
EncryptPacket(dword_A5BA58, (int)&j + 3, 1);
BYTE3(j) = *(_BYTE *)(v3 + 320);
EncryptPacket(dword_A5BA58, (int)&j + 3, 1);
SendPacket(dword_A5BA58);
*(_DWORD *)(*((_DWORD *)dword_9D3244 + 17) + 4 * *(_DWORD *)(v3 + 184)) =      dword_A5E8DC ^ (*((_DWORD *)dword_9D3244 + 17)+ 4 * *(_DWORD *)(v3 + 184)) ^ 1;
*(_DWORD *)(*((_DWORD *)dword_9D3244 + 18) + 4 * *(_DWORD *)(v3 + 184)) = dword_A5E8DC ^ (*((_DWORD *)dword_9D3244 + 18)+ 4 * *(_DWORD *)(v3 + 184)) ^ 1;
*(_BYTE *)(*(_DWORD *)(v3 + 24) + 17) = 0;
*(_BYTE *)(*(_DWORD *)(v3 + 28) + 17) = 0;
v9 = *(_DWORD *)(v3 + 32);
*(_BYTE *)(v9 + 17) = 0;
*(_BYTE *)(*(_DWORD *)(v3 + 36) + 17) = 0;
sub_6CE570((int)dword_9D3834, v9, 60);
result = is_debug_mode;
if ( is_debug_mode )
{
dword_9D3CE0[0] = 0;
dword_9D3CE4 = 0;
dword_9D3CE8 = 0;
dword_9D3CEC = 0;
dword_9D3CF0 = 0;
dword_9D3CF4 = 0;
dword_9D3CF8 = 0;
dword_9D3CFC = 0;
dword_9D3D00 = 0;
dword_9D3D04 = 0;
dword_9D3D08 = 0;
dword_9D3D0C = 0;
dword_9D3D10 = 0;
......
v37 = cur_map_id;
*(_DWORD *)cur_map_id = 1001;
v59 = v37;
v38 = sub_7B7720(dword_9D37DC, 1001);
v39 = 0;
v61 = v38;
......
}
阿荣社区欢迎你(bbs.vul7.com)
回复

使用道具 举报

4530

主题

4万

回帖

13万

积分

出神入化

积分
139914
 楼主| 发表于 2025-9-25 07:57:20 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3979

主题

3万

回帖

12万

积分

出神入化

积分
128020
发表于 2025-9-25 07:57:57 | 显示全部楼层
这段代码似乎是使用C++或类似的编程语言写成的。
根据代码,它似乎涉及数据包通信,可能与视频游戏或在线应用有关。
函数“send_1_select_dungeon”使用三个整数参数调用,并分配一个大小为16的数据包。然后对第二个参数“a2”进行一些加密操作,并发送数据包。
之后,代码更新一些数据结构并将某些值设置为0。
如果变量“is_debug_mode”为true,则代码将另外几个变量设置为0,并执行与ID为1001的地图相关的一些操作。
--- 来自GPT
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4530

主题

4万

回帖

13万

积分

出神入化

积分
139914
 楼主| 发表于 2025-9-25 07:58:10 | 显示全部楼层
加三告辞
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4442

主题

3万

回帖

13万

积分

管理员

积分
136724
发表于 2025-9-25 07:59:03 | 显示全部楼层
这段代码似乎是用C++编写的,很可能是一个更大程序的一部分。函数send_16_select_dungeon()接受三个参数this、a2和j,它们都是整数。在函数中,似乎正在使用j和v7来分配和加密数据包,其中使用BYTE3(j)和*(_BYTE*)(v3+320)来加密数据包的部分。然后使用SendPacket()发送加密的数据包。在数据包发送之后,执行一系列操作以将各种值设置为0并重置存储器中的一些数据。最后,将变量cur_map_id设置为1001,并使用参数dword_9D37DC和1001调用函数sub_7B7720()。
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3896

主题

3万

回帖

12万

积分

出神入化

积分
127166
发表于 2025-9-25 07:59:11 | 显示全部楼层


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4530

主题

4万

回帖

13万

积分

出神入化

积分
139914
 楼主| 发表于 2025-9-25 07:59:27 | 显示全部楼层
1
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3960

主题

3万

回帖

12万

积分

出神入化

积分
127965
发表于 2025-9-25 07:59:53 | 显示全部楼层
这段反汇编代码是一个用于发送游戏网络包的函数。具体来说,它做了以下几件事情:
1. 分配了一个长度为16的网络包,并把传入的a2赋值给j变量。
2. 对j变量进行加密,分别对其前两个字节和第三个字节进行不同的加密,并将结果分别存储到分配的网络包中。
3. 发送通过加密后得到的网络包。
4. 修改一些游戏内部状态,比如清除某些变量、设置地图编号等。
其中,最后部分的代码只在调试模式下执行,用于清空一些调试相关的变量。
改写成原代码如下:
```c
char send_16_select_dungeon(int this, int a2, int j) {
AllocatePacket(dword_A5BA58, 16);
j = a2;
EncryptPacket(dword_A5BA58, (int)&j, 2);
BYTE3(j) = v7;
EncryptPacket(dword_A5BA58, (int)&j + 3, 1);
BYTE3(j) = *(_BYTE *)(v3 + 320);
EncryptPacket(dword_A5BA58, (int)&j + 3, 1);
SendPacket(dword_A5BA58);
*(_DWORD *)(*((_DWORD *)dword_9D3244 + 17) + 4 * *(_DWORD *)(v3 + 184)) = dword_A5E8DC ^ (*((_DWORD *)dword_9D3244 + 17)+ 4 * *(_DWORD *)(v3 + 184)) ^ 1;
*(_DWORD *)(*((_DWORD *)dword_9D3244 + 18) + 4 * *(_DWORD *)(v3 + 184)) = dword_A5E8DC ^ (*((_DWORD *)dword_9D3244 + 18)+ 4 * *(_DWORD *)(v3 + 184)) ^ 1;
*(_BYTE *)(*(_DWORD *)(v3 + 24) + 17) = 0;
*(_BYTE *)(*(_DWORD *)(v3 + 28) + 17) = 0;
v9 = *(_DWORD *)(v3 + 32);
*(_BYTE *)(v9 + 17) = 0;
*(_BYTE *)(*(_DWORD *)(v3 + 36) + 17) = 0;
sub_6CE570((int)dword_9D3834, v9, 60);
// Debug mode code
if ( is_debug_mode ) {
dword_9D3CE0[0] = 0;
dword_9D3CE4 = 0;
dword_9D3CE8 = 0;
dword_9D3CEC = 0;
dword_9D3CF0 = 0;
dword_9D3CF4 = 0;
dword_9D3CF8 = 0;
dword_9D3CFC = 0;
dword_9D3D00 = 0;
dword_9D3D04 = 0;
dword_9D3D08 = 0;
dword_9D3D0C = 0;
dword_9D3D10 = 0;
// ...
int v37 = cur_map_id;
*(_DWORD *)cur_map_id = 1001;
int v38 = sub_7B7720(dword_9D37DC, 1001);
int v39 = 0;
int v61 = v38;
// ...
}
}
```
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

发表于 2025-9-25 08:00:52 | 显示全部楼层
没看懂,这是可以自定义单机嘛
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4595

主题

4万

回帖

14万

积分

出神入化

积分
140459
发表于 2025-9-25 08:01:52 | 显示全部楼层
对不起 做不到

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4600

主题

4万

回帖

14万

积分

出神入化

积分
141778
发表于 2025-9-25 08:02:25 | 显示全部楼层
我认为意大利面就应该拌42号混凝土,后面我忘了
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3960

主题

3万

回帖

12万

积分

出神入化

积分
127965
发表于 2025-9-25 08:02:52 | 显示全部楼层
哥,问一下,开启真GM模式,需要打开文件,找不到呢。  taiwan _login.gm_manifest
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4600

主题

4万

回帖

14万

积分

出神入化

积分
141778
发表于 2025-9-25 08:03:08 | 显示全部楼层
我个人认为意大利面不应该拌混凝土

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4595

主题

4万

回帖

14万

积分

出神入化

积分
140459
发表于 2025-9-25 08:04:02 | 显示全部楼层
然而这个代码在所有客户端都有,而且这只是进图初始化的部分代码,只包含进图是否是调试,跟并不是完整调试模式,神牛给你的只是思路,不能死盯着这里

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4665

主题

4万

回帖

14万

积分

出神入化

积分
140256
发表于 2025-9-25 08:04:55 | 显示全部楼层
研究出来了吗
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表