Добавлена опция распаковки WebSockets

This commit is contained in:
serega6531 2020-04-05 00:59:14 +03:00
parent 6883d5566b
commit 7405db81da
4 changed files with 19 additions and 6 deletions

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="packet" :class="{'packet-incoming': packet.incoming}"> <div class="packet" :class="{'packet-incoming': packet.incoming}">
<div>#{{ packet.id }} at {{ dateToText(packet.timestamp) }}, {{ packet.ungzipped ? 'GZIP' : 'Non-GZIP' }} <div>#{{ packet.id }} at {{ dateToText(packet.timestamp) }}, {{ packet.ungzipped ? 'GZIP ' : '' }}{{ packet.webSocketDeflated ? 'WS' : '' }}
<button @click.prevent="copyRaw" class="btn btn-link">Copy HEX</button> <button @click.prevent="copyRaw" class="btn btn-link">Copy HEX</button>
<button @click.prevent="copyText" class="btn btn-link">Copy text</button> <button @click.prevent="copyText" class="btn btn-link">Copy text</button>
<button @click.prevent="copyPythonBytes" class="btn btn-link">Copy as Python bytes</button> <button @click.prevent="copyPythonBytes" class="btn btn-link">Copy as Python bytes</button>
@ -25,6 +25,7 @@
timestamp: Number(), timestamp: Number(),
incoming: Boolean(), incoming: Boolean(),
ungzipped: Boolean(), ungzipped: Boolean(),
webSocketDeflated: Boolean(),
content: String(), content: String(),
}, },
}, },
@ -88,7 +89,7 @@
return $1 ? $1 : entityMap[$0]; return $1 ? $1 : entityMap[$0];
}); });
}, },
highlightPatterns(raw) { // FIXME: Пересекающиеся паттерны приводят к неожиданным результатам highlightPatterns(raw) {
const patterns = this.$store.state.patterns.reduce((obj, item) => { const patterns = this.$store.state.patterns.reduce((obj, item) => {
obj[item.id] = item; obj[item.id] = item;
return obj; return obj;

View File

@ -38,7 +38,7 @@
<b-form-select id="pattern-searchType" required v-model="newPattern.searchType"> <b-form-select id="pattern-searchType" required v-model="newPattern.searchType">
<option value="REGEX" selected>Regular expression</option> <option value="REGEX" selected>Regular expression</option>
<option value="SUBSTRING">Substring</option> <option value="SUBSTRING">Substring</option>
<option value="SUBBYTES">Bytes (WIP)</option> <option value="SUBBYTES">Bytes</option>
</b-form-select> </b-form-select>
</b-form-group> </b-form-group>
<b-form-group <b-form-group

View File

@ -19,25 +19,32 @@
</b-form-group> </b-form-group>
<b-form-group <b-form-group
label-cols-sm="4" label-cols-sm="4"
label="Decompress GZIP?" label="Decompress GZIP"
label-for="addSvc-ungzip"> label-for="addSvc-ungzip">
<b-form-checkbox id="addSvc-ungzip" required <b-form-checkbox id="addSvc-ungzip" required
v-model="ungzipHttp"/> v-model="ungzipHttp"/>
</b-form-group> </b-form-group>
<b-form-group <b-form-group
label-cols-sm="4" label-cols-sm="4"
label="Apply urldecode?" label="Apply urldecode"
label-for="addSvc-urldecode"> label-for="addSvc-urldecode">
<b-form-checkbox id="addSvc-urldecode" required <b-form-checkbox id="addSvc-urldecode" required
v-model="urldecodeHttpRequests"/> v-model="urldecodeHttpRequests"/>
</b-form-group> </b-form-group>
<b-form-group <b-form-group
label-cols-sm="4" label-cols-sm="4"
label="Merge adjacent packets?" label="Merge adjacent packets"
label-for="addSvc-mergeAdjacent"> label-for="addSvc-mergeAdjacent">
<b-form-checkbox id="addSvc-mergeAdjacent" required <b-form-checkbox id="addSvc-mergeAdjacent" required
v-model="mergeAdjacentPackets"/> v-model="mergeAdjacentPackets"/>
</b-form-group> </b-form-group>
<b-form-group
label-cols-sm="4"
label="Deflate WebSockets"
label-for="addSvc-deflateWS">
<b-form-checkbox id="addSvc-deflateWS" required
v-model="mergeAdjacentPackets"/>
</b-form-group>
</form> </form>
</b-modal> </b-modal>
</template> </template>
@ -52,6 +59,7 @@
ungzipHttp: Boolean(), ungzipHttp: Boolean(),
urldecodeHttpRequests: Boolean(), urldecodeHttpRequests: Boolean(),
mergeAdjacentPackets: Boolean(), mergeAdjacentPackets: Boolean(),
inflateWebSockets: Boolean(),
}; };
}, },
methods: { methods: {
@ -67,6 +75,7 @@
this.ungzipHttp = false; this.ungzipHttp = false;
this.urldecodeHttpRequests = false; this.urldecodeHttpRequests = false;
this.mergeAdjacentPackets = false; this.mergeAdjacentPackets = false;
this.inflateWebSockets = false;
}, },
createService(ev) { createService(ev) {
@ -75,6 +84,7 @@
const ungzipHttp = this.ungzipHttp; const ungzipHttp = this.ungzipHttp;
const urldecodeHttpRequests = this.urldecodeHttpRequests; const urldecodeHttpRequests = this.urldecodeHttpRequests;
const mergeAdjacentPackets = this.mergeAdjacentPackets; const mergeAdjacentPackets = this.mergeAdjacentPackets;
const inflateWebSockets = this.inflateWebSockets;
if (!this.checkValidity()) { if (!this.checkValidity()) {
ev.preventDefault(); ev.preventDefault();
console.debug('Form is invalid'); console.debug('Form is invalid');
@ -88,6 +98,7 @@
ungzipHttp, ungzipHttp,
urldecodeHttpRequests, urldecodeHttpRequests,
mergeAdjacentPackets, mergeAdjacentPackets,
inflateWebSockets,
}).then(response => { }).then(response => {
const data = response.data; const data = response.data;
console.debug('Done adding service', data); console.debug('Done adding service', data);

View File

@ -53,6 +53,7 @@
ungzipHttp: Boolean, ungzipHttp: Boolean,
urldecodeHttpRequests: Boolean, urldecodeHttpRequests: Boolean,
mergeAdjacentPackets: Boolean, mergeAdjacentPackets: Boolean,
inflateWebSockets: Boolean,
}, },
}, },
data() { data() {