-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathnode_ssl_logger.js
More file actions
49 lines (43 loc) · 1.33 KB
/
node_ssl_logger.js
File metadata and controls
49 lines (43 loc) · 1.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
node_ssl_logger: Decrypts and logs a process's SSL traffic via Frida Code Injection
Code based on https://github.com/google/ssl_logger
2017, QXIP BV, Lorenzo Mangani <lorenzo.mangani@gmail.com>
*/
var frida = require('frida');
var fs = require('fs');
var filename = './script.js';
var fsscript;
var debug = false;
var quit = function(code,msg){
if (msg) console.log(msg)
process.exit(code ? code : 0);
}
if(process.argv.indexOf("-p") != -1){ var pid = process.argv[process.argv.indexOf("-p") + 1]; }
if(process.argv.indexOf("-v") != -1){ debug = true; }
try {
fs.readFile(filename, function read(err, data) {
if (!err) {
fsscript = data.toString();
} else { quit(1,err); }
});
} catch(e) { quit(1,'Failed loading script!'); }
if (!pid){ process.exit(1);}
frida.attach(pid)
.then(function (session) {
if (debug) console.log('attached:', session);
return session.createScript(fsscript);
})
.then(function (script) {
if(debug) { console.log('script created:', script); }
console.log('Press Ctrl+C to stop logging...');
script.events.listen('message', function (message, data) {
if(data.length >0) {
if (debug) console.log('message from script:', message );
console.log(data.toString('utf8'));
}
});
script.load();
})
.catch(function (error) {
console.log('error:', error.message);
});