这些天下来了广州,又不能出去,只能在家闭关!内心闷骚的我,就开始玩起了地下城,玩了几把,手动起来真累,就想研究下脚本。
外挂大概分三种:
1.内存级外挂,指直接修改游戏内存中玩家信息的外挂,简单理解是破了游戏的服务器,修改数据库中存储的信息。
2.数据流外挂,指截住游戏向服务器发起请求的信息,达到修改请求数据。如DNF,爆1000个金币,正常向服务器发起请求的是1000个金币,这个时候拦截,修改成100万金币。
3.脚本级外挂,指写成一个自动化脚本,不用手动去操作游戏。
以前在公司都忙着写业务,没有去研究过其他的,现在只能新开始学。一般来说写外挂都是C,LUA,VBS。用JAVA写的应该少。
VB的脚本语言已经很出名了,只要是 个游戏都会开游戏盾,去扫描进程,那样很容易发现VB脚本,另外加上我也不懂VB语言,所以直接去学习JAVA写脚本吧。当然VB也会去关注的。
首先写一个微信自动聊天吧,其实就是控制键盘,向对方发送信息。刚开始,来个简单的。
这个是控制键盘的各种作用。
/*Robot robot = new Robot();
//延迟1000毫秒
robot.delay(1000);
//模拟手动按下电脑键盘上的某个键
robot.keyPress(KeyEvent.VK_0);
//按下左键
robot.mousePress(InputEvent.BUTTON1_MASK);
//按下滚轴键
robot.mousePress(InputEvent.BUTTON2_MASK);
//按下右键
robot.mousePress(InputEvent.BUTTON3_MASK);
//松开左键
robot.mouseRelease(InputEvent.BUTTON1_MASK);
//松开滚轴键
robot.mouseRelease(InputEvent.BUTTON2_MASK);
//松开右键
robot.mouseRelease(InputEvent.BUTTON3_MASK);
//松开空格键 可以随机选择,如VK_K设置松开K键
robot.keyRelease(KeyEvent.VK_SPACE);*/
我这边是直接跑Mian方法了,没有打成jar来跑。
1.写一个main方法
public static void main(String[] args) throws AWTException {
Robot robot = new Robot();
//这个是下面的方法
weChat();
}
2.写一个方法,//这个是写着娱乐用的,方法命名就用中文拼音了,新手切记工作中不能这样用。
//写一个微信自动聊天,在玩游戏的时候,女朋友发信息了,怎么办,那么就用这个吧。
public static void weChat() throws AWTException {
Robot robot = new Robot();
ni();
zai();
ma();
send();
//1分钟后发信息
robot.delay(60000);
ni();
chi();
fan();
le();
ma();
send();
robot.delay(60000);
wo();
chi();
le();
send();
robot.delay(60000);
}
3.键盘发送中文汉字,为了复用,我就每一个汉字写成一个方法了。
//发送
public static void send() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
}
//你
public static void ni() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_N);
robot.keyRelease(KeyEvent.VK_N);
robot.keyPress(KeyEvent.VK_I);
robot.keyRelease(KeyEvent.VK_I);
}
//在
public static void zai() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_Z);
robot.keyRelease(KeyEvent.VK_N);
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_I);
robot.keyRelease(KeyEvent.VK_I);
}
//吗
public static void ma() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_M);
robot.keyRelease(KeyEvent.VK_M);
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_SPACE);
robot.keyRelease(KeyEvent.VK_SPACE);
}
//吃
public static void chi() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_C);
robot.keyRelease(KeyEvent.VK_C);
robot.keyPress(KeyEvent.VK_H);
robot.keyRelease(KeyEvent.VK_H);
robot.keyPress(KeyEvent.VK_I);
robot.keyRelease(KeyEvent.VK_I);
}
//饭
public static void fan() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_F);
robot.keyRelease(KeyEvent.VK_F);
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_N);
robot.keyRelease(KeyEvent.VK_N);
}
//le
public static void le() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_L);
robot.keyRelease(KeyEvent.VK_L);
robot.keyPress(KeyEvent.VK_E);
robot.keyRelease(KeyEvent.VK_E);
}
//我
public static void wo() throws AWTException {
Robot robot = new Robot();
//来开始编写
robot.keyPress(KeyEvent.VK_W);
robot.keyRelease(KeyEvent.VK_W);
robot.keyPress(KeyEvent.VK_O);
robot.keyRelease(KeyEvent.VK_O);
}
4.溜了溜了,剩下的靠大家去完善了,研究其他功能去了。这个只是简单操作键盘,重要的部分是破开服务器,或者拦截请求,伪造请求。溜了溜了