refactor SSL 🔑 log

This commit is contained in:
iddoeldor 2021-12-22 18:50:30 +02:00 committed by GitHub
parent c0d4f48b28
commit afe0e9dd9f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -136,29 +136,27 @@ Java method hook generator using keyboard shortcut
#### Fetch SSL keys #### Fetch SSL keys
```js ```js
var keylog_callback = new NativeCallback(function(ssl, line) { var keylog_callback = new NativeCallback((ssl, line) => {
send(Memory.readCString(line)); send(Memory.readCString(line));
}, 'void', ['pointer', 'pointer']); }, 'void', ['pointer', 'pointer']);
if (ObjC.available) { if (ObjC.available) {
var CALLBACK_OFFSET = 0x2A8; var CALLBACK_OFFSET = 0x2A8
if (Memory.readDouble(Module.findExportByName('CoreFoundation', 'kCFCoreFoundationVersionNumber')) >= 1751.108) { if (Memory.readDouble(Module.findExportByName('CoreFoundation', 'kCFCoreFoundationVersionNumber')) >= 1751.108) {
CALLBACK_OFFSET = 0x2B8; CALLBACK_OFFSET = 0x2B8
} }
Interceptor.attach(Module.findExportByName('libboringssl.dylib', 'SSL_CTX_set_info_callback'), { Interceptor.attach(Module.findExportByName('libboringssl.dylib', 'SSL_CTX_set_info_callback'), {
onEnter: function (args) { onEnter(args) {
ptr(args[0]).add(CALLBACK_OFFSET).writePointer(keylog_callback); ptr(args[0]).add(CALLBACK_OFFSET).writePointer(keylog_callback)
} }
}); })
} else if (Java.available) { } else if (Java.available) {
var set_keylog_callback = new NativeFunction(Module.findExportByName(Module.findBaseAddress('libssl.so'), 'SSL_CTX_set_keylog_callback'), 'void', ['pointer', 'pointer']); var set_keylog_callback = new NativeFunction(Module.findExportByName('libssl.so', 'SSL_CTX_set_keylog_callback'), 'void', ['pointer', 'pointer']);
Interceptor.attach(Module.findExportByName(libSSL, 'SSL_CTX_new'), { Interceptor.attach(Module.findExportByName(libSSL, 'SSL_CTX_new'), {
onLeave: function(retval) { onLeave(retval) {
set_keylog_callback(retval, keylog_callback); set_keylog_callback(retval, keylog_callback)
} }
}); })
} }
``` ```