1. 什么是命令控制台
完美系列游戏的主程序(一般为elementclient.exe)在启动的时候,可以通过传递一些参数来启用某些功能,但是默认这些功能都是隐藏的. 这里所说的是在运行诛仙主程序的时候,向其传递"game:cpw console:1"参数从而使其支持命令控制台,进入游戏后可以通过shift+~组合键来打开控制台,并输入一系列命令来实现其他功能. 并非所有命令都可以有权限运行,比如有些可能需要有GM权限,有些可能需要服务端开启debug模式,但是还是有很多命令普通玩家也可以运行的,比如查看游戏内坐标等.
2.通过快捷方式或批处理来开启控制台
快捷方式法:
将elementclient.exe发送一个快捷方式到桌面然后右击该快捷方式--属性,在目标那一栏的后面加上 game:cpw console:1 这一段字符串后保存,双击该快
捷方式进游戏
批处理法:
@echo off
cls
start "" elementclient.exe game:cpw console:1
exit
进入游戏后,按shift + ~ 组合键即可显示控制台输入命令,再次按shift + ~ 组合键或者ESC键即可关闭控制台
3.直接修改elementclient.exe的汇编代码
第一,通过OD打开elementclient.exe后,在所有引用字符串中搜索"console:",然后双击可以看到如下类似的代码(不同版本可能偏移量不同):
0046546A |> 68 3C11BB00 PUSH elementc.00BB113C ; UNICODE "console:"
0046546F |. 56 PUSH ESI
00465470 |. FFD7 CALL EDI
00465472 |. 83C4 08 ADD ESP,8
第二,按空格或者右击,选择反汇编,将其修改为:
XOR EAX,EAX ;sets EAX to 0
INC EAX ;sets EAX to 1
MOV DWORD PTR ES:[00C1BF88],EAX ;puts EAX into 00C1BF88,
JMP SHORT 00465489 ;jumps to the end of the function
第三,修改完毕后拷贝到可执行文件然后保存为文件即可执行测试. 不过,对于第二步的00BC1D18地址和00462489地址会因不同版本而不同,方法如下:
//通过含有字符串"console:%d"上面哪一行的汇编代码中的PUSH指令即可获取00C1BF88.
00465479 |. 68 88BFC100 PUSH elementc.00C1BF88
0046547E |. 68 2411BB00 PUSH elementc.00BB1124 ; UNICODE "console:%d"
//通过含有字符串"noverchk"的那一行的汇编代码的偏移量即可获取00465489.
0046547E |. 68 2411BB00 PUSH elementc.00BB1124 ; UNICODE "console:%d"
00465483 |. 50 PUSH EAX
00465484 |. FFD3 CALL EBX
00465486 |. 83C4 0C ADD ESP,0C
00465489 |> 68 1011BB00 PUSH elementc.00BB1110 ; UNICODE "noverchk"