這些天下來了廣州,又不能出去,只能在家閉關!內心悶騷的我,就開始玩起了地下城,玩了幾把,手動起來真累,就想研究下腳本。
外掛大概分三種:
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.溜了溜了,剩下的靠大家去完善了,研究其他功能去了。這個只是簡單操作鍵盤,重要的部分是破開服務器,或者攔截請求,僞造請求。溜了溜了