Commit 24adc6c7 authored by Julien Fontanet's avatar Julien Fontanet

chore: one var per variable

parent c243ea1f
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request; var SMB2Request = SMB2Forge.request;
/* /*
* exists * exists
......
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request; var SMB2Request = SMB2Forge.request;
/* /*
* mkdir * mkdir
......
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request, var SMB2Request = SMB2Forge.request;
bigint = require('../tools/bigint'), var bigint = require('../tools/bigint');
MAX_READ_LENGTH = require('../structures/constants').MAX_READ_LENGTH; var MAX_READ_LENGTH = require('../structures/constants').MAX_READ_LENGTH;
/* /*
* readFile * readFile
...@@ -28,10 +28,10 @@ module.exports = function readFile(filename, options, cb) { ...@@ -28,10 +28,10 @@ module.exports = function readFile(filename, options, cb) {
if (err) cb && cb(err); if (err) cb && cb(err);
// SMB2 read file content // SMB2 read file content
else { else {
var fileLength = 0, var fileLength = 0;
offset = new bigint(8), var offset = new bigint(8);
stop = false, var stop = false;
nbRemainingPackets = 0; var nbRemainingPackets = 0;
// get file length // get file length
for (var i = 0; i < file.EndofFile.length; i++) { for (var i = 0; i < file.EndofFile.length; i++) {
fileLength += file.EndofFile[i] * Math.pow(2, i * 8); fileLength += file.EndofFile[i] * Math.pow(2, i * 8);
......
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request; var SMB2Request = SMB2Forge.request;
/* /*
* readdir * readdir
......
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request, var SMB2Request = SMB2Forge.request;
bigint = require('../tools/bigint'); var bigint = require('../tools/bigint');
/* /*
* rmdir * rmdir
......
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request, var SMB2Request = SMB2Forge.request;
bigint = require('../tools/bigint'); var bigint = require('../tools/bigint');
/* /*
* unlink * unlink
......
var SMB2Forge = require('../tools/smb2-forge'), var SMB2Forge = require('../tools/smb2-forge');
SMB2Request = SMB2Forge.request, var SMB2Request = SMB2Forge.request;
bigint = require('../tools/bigint'); var bigint = require('../tools/bigint');
/* /*
* writeFile * writeFile
...@@ -18,19 +18,19 @@ var SMB2Forge = require('../tools/smb2-forge'), ...@@ -18,19 +18,19 @@ var SMB2Forge = require('../tools/smb2-forge'),
* *
*/ */
module.exports = function writeFile(filename, data, options, cb) { module.exports = function writeFile(filename, data, options, cb) {
if (typeof options == 'function') { if (typeof options === 'function') {
cb = options; cb = options;
options = {}; options = {};
} }
options.encoding = options.encoding || 'utf8'; options.encoding = options.encoding || 'utf8';
var connection = this, var connection = this;
file, var file;
fileContent = Buffer.isBuffer(data) var fileContent = Buffer.isBuffer(data)
? data ? data
: Buffer.from(data, options.encoding), : Buffer.from(data, options.encoding);
fileLength = new bigint(8, fileContent.length); var fileLength = new bigint(8, fileContent.length);
function createFile(fileCreated) { function createFile(fileCreated) {
SMB2Request('create', { path: filename }, connection, function(err, f) { SMB2Request('create', { path: filename }, connection, function(err, f) {
...@@ -70,10 +70,10 @@ module.exports = function writeFile(filename, data, options, cb) { ...@@ -70,10 +70,10 @@ module.exports = function writeFile(filename, data, options, cb) {
} }
function writeFile(fileWritten) { function writeFile(fileWritten) {
var offset = new bigint(8), var offset = new bigint(8);
stop = false, var stop = false;
nbRemainingPackets = 0, var nbRemainingPackets = 0;
maxPacketSize = new bigint(8, 0x00010000 - 0x71); var maxPacketSize = new bigint(8, 0x00010000 - 0x71);
// callback manager // callback manager
function callback() { function callback() {
return function(err) { return function(err) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection, params) { generate: function(connection, params) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
var constants = require('../structures/constants'); var constants = require('../structures/constants');
module.exports = message({ module.exports = message({
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection) { generate: function(connection) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection, params) { generate: function(connection, params) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
var constants = require('../structures/constants'); var constants = require('../structures/constants');
module.exports = message({ module.exports = message({
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection, params) { generate: function(connection, params) {
...@@ -26,9 +26,9 @@ module.exports = message({ ...@@ -26,9 +26,9 @@ module.exports = message({
* HELPERS * HELPERS
*/ */
function parseFiles(buffer) { function parseFiles(buffer) {
var files = [], var files = [];
offset = 0, var offset = 0;
nextFileOffset = -1; var nextFileOffset = -1;
while (nextFileOffset != 0) { while (nextFileOffset != 0) {
// extract next file offset // extract next file offset
nextFileOffset = buffer.readUInt32LE(offset); nextFileOffset = buffer.readUInt32LE(offset);
...@@ -48,8 +48,8 @@ function parseFiles(buffer) { ...@@ -48,8 +48,8 @@ function parseFiles(buffer) {
} }
function parseFile(buffer) { function parseFile(buffer) {
var file = {}, var file = {};
offset = 0; var offset = 0;
// index // index
file.Index = buffer.readUInt32LE(offset); file.Index = buffer.readUInt32LE(offset);
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection, file) { generate: function(connection, file) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'), var message = require('../tools/message');
ntlm = require('ntlm'); var ntlm = require('ntlm');
module.exports = message({ module.exports = message({
generate: function(connection) { generate: function(connection) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'), var message = require('../tools/message');
ntlm = require('ntlm'); var ntlm = require('ntlm');
module.exports = message({ module.exports = message({
generate: function(connection) { generate: function(connection) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
var fileInfoClasses = { var fileInfoClasses = {
FileAllocationInformation: 19, FileAllocationInformation: 19,
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection) { generate: function(connection) {
......
var SMB2Message = require('../tools/smb2-message'), var SMB2Message = require('../tools/smb2-message');
message = require('../tools/message'); var message = require('../tools/message');
module.exports = message({ module.exports = message({
generate: function(connection, params) { generate: function(connection, params) {
......
/* /*
* CONSTANTS * CONSTANTS
*/ */
var shareRegExp = /\\\\([^\\]*)\\([^\\]*)\\?/, var shareRegExp = /\\\\([^\\]*)\\([^\\]*)\\?/;
port = 445, var port = 445;
packetConcurrency = 20, var packetConcurrency = 20;
autoCloseTimeout = 10000; var autoCloseTimeout = 10000;
/* /*
* DEPENDENCIES * DEPENDENCIES
......
...@@ -17,8 +17,8 @@ var BigInt = (module.exports = function(n, v) { ...@@ -17,8 +17,8 @@ var BigInt = (module.exports = function(n, v) {
v = v.toString(16); v = v.toString(16);
var size = Math.ceil(v.length / 2), var size = Math.ceil(v.length / 2);
carry = size * 2 - v.length; var carry = size * 2 - v.length;
for (var i = 0; i < size; i++) { for (var i = 0; i < size; i++) {
var start = (size - i - 1) * 2 - carry; var start = (size - i - 1) * 2 - carry;
...@@ -43,7 +43,7 @@ BigInt.toBigInt = function(n, v) { ...@@ -43,7 +43,7 @@ BigInt.toBigInt = function(n, v) {
}; };
BigInt.fromBuffer = function(b, sign) { BigInt.fromBuffer = function(b, sign) {
sign = typeof sign == 'undefined' ? 1 : sign; sign = typeof sign === 'undefined' ? 1 : sign;
var bi = new BigInt(0); var bi = new BigInt(0);
bi.sign = sign; bi.sign = sign;
bi.buffer = b; bi.buffer = b;
...@@ -62,9 +62,9 @@ BigInt.prototype.add = function(v) { ...@@ -62,9 +62,9 @@ BigInt.prototype.add = function(v) {
return this.neg().sub(v); return this.neg().sub(v);
} }
var carry = 0, var carry = 0;
n = Math.max(v.buffer.length, this.buffer.length), var n = Math.max(v.buffer.length, this.buffer.length);
result = new BigInt(n); var result = new BigInt(n);
for (var i = 0; i < n; i++) { for (var i = 0; i < n; i++) {
var r = var r =
(i < this.buffer.length ? this.buffer.readUInt8(i) : 0) + (i < this.buffer.length ? this.buffer.readUInt8(i) : 0) +
...@@ -100,12 +100,12 @@ BigInt.prototype.sub = function(v) { ...@@ -100,12 +100,12 @@ BigInt.prototype.sub = function(v) {
return this.add(v.neg()); return this.add(v.neg());
} }
var carry = 0, var carry = 0;
a = new BigInt(this), var a = new BigInt(this);
b = new BigInt(v), var b = new BigInt(v);
n = Math.max(a.buffer.length, b.buffer.length), var n = Math.max(a.buffer.length, b.buffer.length);
result = new BigInt(n), var result = new BigInt(n);
sign = this.sign; var sign = this.sign;
if (a.abs().lt(b.abs())) { if (a.abs().lt(b.abs())) {
var t = a; var t = a;
...@@ -115,10 +115,10 @@ BigInt.prototype.sub = function(v) { ...@@ -115,10 +115,10 @@ BigInt.prototype.sub = function(v) {
} }
for (var i = 0; i < n; i++) { for (var i = 0; i < n; i++) {
var va = i < a.buffer.length ? a.buffer.readUInt8(i) : 0, var va = i < a.buffer.length ? a.buffer.readUInt8(i) : 0;
vb = i < b.buffer.length ? b.buffer.readUInt8(i) : 0, var vb = i < b.buffer.length ? b.buffer.readUInt8(i) : 0;
c = 0, var c = 0;
r = va - vb - carry; var r = va - vb - carry;
while (r < 0) { while (r < 0) {
r += 0xff; r += 0xff;
...@@ -165,8 +165,8 @@ BigInt.prototype.compare = function(v) { ...@@ -165,8 +165,8 @@ BigInt.prototype.compare = function(v) {
if (this.sign < v.sign) return -1; if (this.sign < v.sign) return -1;
for (var i = n - 1; i >= 0; i--) { for (var i = n - 1; i >= 0; i--) {
var a = i < this.buffer.length ? this.buffer.readUInt8(i) : 0, var a = i < this.buffer.length ? this.buffer.readUInt8(i) : 0;
b = i < v.buffer.length ? v.buffer.readUInt8(i) : 0; var b = i < v.buffer.length ? v.buffer.readUInt8(i) : 0;
if (a != b) { if (a != b) {
return a > b ? this.sign : -this.sign; return a > b ? this.sign : -this.sign;
} }
......
var MsErref = require('./ms_erref'), var MsErref = require('./ms_erref');
bigint = require('./bigint'); var bigint = require('./bigint');
var defaults = { var defaults = {
successCode: 'STATUS_SUCCESS', successCode: 'STATUS_SUCCESS',
...@@ -8,8 +8,8 @@ var defaults = { ...@@ -8,8 +8,8 @@ var defaults = {
var self = this; var self = this;
return function(response) { return function(response) {
var h = response.getHeaders(), var h = response.getHeaders();
err = MsErref.getStatus(bigint.fromBuffer(h.Status).toNumber()); var err = MsErref.getStatus(bigint.fromBuffer(h.Status).toNumber());
if (err.code == self.successCode) { if (err.code == self.successCode) {
self.onSuccess && self.onSuccess(connection, response); self.onSuccess && self.onSuccess(connection, response);
cb && cb(null, self.parseResponse && self.parseResponse(response)); cb && cb(null, self.parseResponse && self.parseResponse(response));
......
/* /*
* DEPENDENCIES * DEPENDENCIES
*/ */
var net = require('net'), var net = require('net');
SMB2Forge = require('./smb2-forge'), var SMB2Forge = require('./smb2-forge');
SMB2Request = SMB2Forge.request; var SMB2Request = SMB2Forge.request;
/* /*
* CONNECTION MANAGER * CONNECTION MANAGER
......
...@@ -12,8 +12,8 @@ var SMB2Forge = (module.exports = {}); ...@@ -12,8 +12,8 @@ var SMB2Forge = (module.exports = {});
* SMB2 MESSAGE FORGE * SMB2 MESSAGE FORGE
*/ */
SMB2Forge.request = function(messageName, params, connection, cb) { SMB2Forge.request = function(messageName, params, connection, cb) {
var msg = require('../messages/' + messageName), var msg = require('../messages/' + messageName);
smbMessage = msg.generate(connection, params); var smbMessage = msg.generate(connection, params);
// send // send
sendNetBiosMessage(connection, smbMessage); sendNetBiosMessage(connection, smbMessage);
// wait for the response // wait for the response
...@@ -48,8 +48,8 @@ SMB2Forge.response = function(c) { ...@@ -48,8 +48,8 @@ SMB2Forge.response = function(c) {
// set the flags // set the flags
extract = true; extract = true;
// parse message // parse message
var r = c.responseBuffer.slice(4, msgLength + 4), var r = c.responseBuffer.slice(4, msgLength + 4);
message = new SMB2Message(); var message = new SMB2Message();
message.parseBuffer(r); message.parseBuffer(r);
//debug //debug
if (c.debug) { if (c.debug) {
......
...@@ -2,79 +2,84 @@ ...@@ -2,79 +2,84 @@
* CONSTANTS * CONSTANTS
*/ */
var protocolId = Buffer.from([ var protocolId = Buffer.from([
0xfe, 0xfe,
'S'.charCodeAt(0), 'S'.charCodeAt(0),
'M'.charCodeAt(0), 'M'.charCodeAt(0),
'B'.charCodeAt(0), 'B'.charCodeAt(0),
]), ]);
headerTranslates = {
Command: { var headerTranslates = {
NEGOTIATE: 0x0000, Command: {
SESSION_SETUP: 0x0001, NEGOTIATE: 0x0000,
LOGOFF: 0x0002, SESSION_SETUP: 0x0001,
TREE_CONNECT: 0x0003, LOGOFF: 0x0002,
TREE_DISCONNECT: 0x0004, TREE_CONNECT: 0x0003,
CREATE: 0x0005, TREE_DISCONNECT: 0x0004,
CLOSE: 0x0006, CREATE: 0x0005,
FLUSH: 0x0007, CLOSE: 0x0006,
READ: 0x0008, FLUSH: 0x0007,
WRITE: 0x0009, READ: 0x0008,
LOCK: 0x000a, WRITE: 0x0009,
IOCTL: 0x000b, LOCK: 0x000a,
CANCEL: 0x000c, IOCTL: 0x000b,
ECHO: 0x000d, CANCEL: 0x000c,
QUERY_DIRECTORY: 0x000e, ECHO: 0x000d,
CHANGE_NOTIFY: 0x000f, QUERY_DIRECTORY: 0x000e,
QUERY_INFO: 0x0010, CHANGE_NOTIFY: 0x000f,
SET_INFO: 0x0011, QUERY_INFO: 0x0010,
OPLOCK_BREAK: 0x0012, SET_INFO: 0x0011,
}, OPLOCK_BREAK: 0x0012,
},
// eslint-disable-next-line no-unused-vars
flags = {
SERVER_TO_REDIR: 0x00000001,
ASYNC_COMMAND: 0x00000002,
RELATED_OPERATIONS: 0x00000004,
SIGNED: 0x00000008,
DFS_OPERATIONS: 0x10000000,
REPLAY_OPERATION: 0x20000000,
},
headerLength = 64,
headerSync = function(processId, sessionId) {
return [
['ProtocolId', 4, protocolId],
['StructureSize', 2, headerLength],
['CreditCharge', 2, 0],
['Status', 4, 0],
['Command', 2],
['Credit', 2, 126],
['Flags', 4, 0],
['NextCommand', 4, 0],
['MessageId', 4],
['MessageIdHigh', 4, 0],
['ProcessId', 4, processId],
['TreeId', 4, 0],
['SessionId', 8, sessionId],
['Signature', 16, 0],
];
}, },
headerASync = function(processId, sessionId) { };
return [
['ProtocolId', 4, protocolId], // eslint-disable-next-line no-unused-vars
['StructureSize', 2, headerLength], var flags = {
['CreditCharge', 2, 0], SERVER_TO_REDIR: 0x00000001,
['Status', 4, 0], ASYNC_COMMAND: 0x00000002,
['Command', 2], RELATED_OPERATIONS: 0x00000004,
['Credit', 2, 126], SIGNED: 0x00000008,
['Flags', 4, 0], DFS_OPERATIONS: 0x10000000,
['NextCommand', 4, 0], REPLAY_OPERATION: 0x20000000,
['MessageId', 4], };
['MessageIdHigh', 4, 0],
['AsyncId', 8], var headerLength = 64;
['SessionId', 8, sessionId],
['Signature', 16, 0], var headerSync = function(processId, sessionId) {
]; return [
}; ['ProtocolId', 4, protocolId],
['StructureSize', 2, headerLength],
['CreditCharge', 2, 0],
['Status', 4, 0],
['Command', 2],
['Credit', 2, 126],
['Flags', 4, 0],
['NextCommand', 4, 0],
['MessageId', 4],
['MessageIdHigh', 4, 0],
['ProcessId', 4, processId],
['TreeId', 4, 0],
['SessionId', 8, sessionId],
['Signature', 16, 0],
];
};
var headerASync = function(processId, sessionId) {
return [
['ProtocolId', 4, protocolId],
['StructureSize', 2, headerLength],
['CreditCharge', 2, 0],
['Status', 4, 0],
['Command', 2],
['Credit', 2, 126],
['Flags', 4, 0],
['NextCommand', 4, 0],
['MessageId', 4],
['MessageIdHigh', 4, 0],
['AsyncId', 8],
['SessionId', 8, sessionId],
['Signature', 16, 0],
];
};
/* /*
* CONSTRUCTOR * CONSTRUCTOR
...@@ -119,8 +124,8 @@ proto.getResponse = function() { ...@@ -119,8 +124,8 @@ proto.getResponse = function() {
}; };
proto.getBuffer = function(connection) { proto.getBuffer = function(connection) {
var buffer = Buffer.allocUnsafe(0xffff), var buffer = Buffer.allocUnsafe(0xffff);
length = 0; var length = 0;
// SET MESSAGE ID // SET MESSAGE ID
if (!this.isMessageIdSetted) { if (!this.isMessageIdSetted) {
...@@ -213,13 +218,13 @@ function unTranslate(key, value) { ...@@ -213,13 +218,13 @@ function unTranslate(key, value) {
*/ */
function readHeaders(message, buffer) { function readHeaders(message, buffer) {
var header = (message.isAsync ? headerASync : headerSync)( var header = (message.isAsync ? headerASync : headerSync)(
message.ProcessId, message.ProcessId,
message.SessionId message.SessionId
), );
offset = 0; var offset = 0;
for (var i in header) { for (var i in header) {
var key = header[i][0], var key = header[i][0];
length = header[i][1]; var length = header[i][1];
message.headers[key] = readData(buffer, offset, length); message.headers[key] = readData(buffer, offset, length);
if (length <= 8) { if (length <= 8) {
message.headers[key] = message.headers[key] =
...@@ -234,14 +239,14 @@ function readHeaders(message, buffer) { ...@@ -234,14 +239,14 @@ function readHeaders(message, buffer) {
function writeHeaders(message, buffer) { function writeHeaders(message, buffer) {
var header = (message.isAsync ? headerASync : headerSync)( var header = (message.isAsync ? headerASync : headerSync)(
message.ProcessId, message.ProcessId,
message.SessionId message.SessionId
), );
offset = 0; var offset = 0;
for (var i in header) { for (var i in header) {
var key = header[i][0], var key = header[i][0];
length = header[i][1], var length = header[i][1];
defaultValue = header[i][2] || 0; var defaultValue = header[i][2] || 0;
writeData( writeData(
buffer, buffer,
translate(key, message.headers[key] || defaultValue), translate(key, message.headers[key] || defaultValue),
...@@ -255,8 +260,8 @@ function writeHeaders(message, buffer) { ...@@ -255,8 +260,8 @@ function writeHeaders(message, buffer) {
function readResponse(message, buffer, offset) { function readResponse(message, buffer, offset) {
for (var i in message.structure.response) { for (var i in message.structure.response) {
var key = message.structure.response[i][0], var key = message.structure.response[i][0];
length = message.structure.response[i][1] || 1; var length = message.structure.response[i][1] || 1;
if (typeof length == 'string') { if (typeof length == 'string') {
length = bufferToData(message.response[length]); length = bufferToData(message.response[length]);
} }
...@@ -266,14 +271,14 @@ function readResponse(message, buffer, offset) { ...@@ -266,14 +271,14 @@ function readResponse(message, buffer, offset) {
} }
function writeRequest(message, buffer, offset) { function writeRequest(message, buffer, offset) {
var initOffset = offset, var initOffset = offset;
needsRewrite = false, var needsRewrite = false;
tmpBuffer = Buffer.allocUnsafe(buffer.length); var tmpBuffer = Buffer.allocUnsafe(buffer.length);
offset = 0; offset = 0;
for (var i in message.structure.request) { for (var i in message.structure.request) {
var key = message.structure.request[i][0], var key = message.structure.request[i][0];
length = message.structure.request[i][1] || 1, var length = message.structure.request[i][1] || 1;
defaultValue = message.structure.request[i][2] || 0; var defaultValue = message.structure.request[i][2] || 0;
if (typeof length == 'string') { if (typeof length == 'string') {
message.request[key] = message.request[key] || ''; message.request[key] = message.request[key] || '';
if (message.request[length] != message.request[key].length) { if (message.request[length] != message.request[key].length) {
......
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