Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(PoC) share userfile over existing botlink #1631

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

michaelortmann
Copy link
Member

@michaelortmann michaelortmann commented Jun 25, 2024

Found by: michaelortmann
Patch by: michaelortmann
Fixes:

One-line summary:
Proof of concept

Additional description (if needed):
Current implementation of userfile sharing opens an additional tcl connection
This PoC shares it via already existing botlink
This should be more robust and faster.

Test cases demonstrating functionality (if applicable):
On BotA and BotB, 2 share bots:
.console +*
On BotB:
.link BotA

Log BotA:

[03:43:37] net: connect! sock 5
[03:43:37] TLS: attempting SSL negotiation...
[03:43:37] TLS: state change: before SSL initialization
[03:43:37] TLS: state change: before SSL initialization
[03:43:37] TLS: awaiting more reads
[03:43:37] TLS: handshake in progress
[03:43:37] TLS: awaiting more reads
[03:43:37] sockread EAGAIN: 8 11 (Resource temporarily unavailable)
[03:43:37] Telnet connection: localhost.home.arpa/45739
[03:43:37] net: eof!(write) socket 10 (Broken pipe,32)
[03:43:37] EOF ident connection
[03:43:37] TLS: awaiting more reads
[03:43:38] TLS: awaiting more reads
[03:43:38] dequeue_sockets(): errno = 11 (Resource temporarily unavailable) on 8
[03:43:38] TLS: state change: before SSL initialization
[03:43:38] TLS: state change: SSLv3/TLS read client hello
[03:43:38] TLS: state change: SSLv3/TLS write server hello
[03:43:38] TLS: state change: SSLv3/TLS write change cipher spec
[03:43:38] TLS: state change: TLSv1.3 write encrypted extensions
[03:43:38] TLS: state change: SSLv3/TLS write certificate request
[03:43:38] TLS: state change: SSLv3/TLS write certificate
[03:43:38] TLS: state change: TLSv1.3 write server certificate verify
[03:43:38] TLS: state change: SSLv3/TLS write finished
[03:43:38] TLS: state change: TLSv1.3 early data
[03:43:38] TLS: awaiting more reads
[03:43:38] sockread EAGAIN: 8 11 (Resource temporarily unavailable)
[03:43:38] TLS: awaiting more reads
[03:43:38] dequeue_sockets(): errno = 11 (Resource temporarily unavailable) on 8
[03:43:38] TLS: state change: TLSv1.3 early data
[03:43:38] TLS: peer certificate warning: self-signed certificate
[03:43:38] TLS: peer certificate warning: self-signed certificate
[03:43:38] TLS: state change: SSLv3/TLS read client certificate
[03:43:38] TLS: state change: SSLv3/TLS read certificate verify
[03:43:38] TLS: state change: SSLv3/TLS read finished
[03:43:38] TLS: handshake successful. Secure connection established.
[03:43:38] TLS: certificate subject: C=DE, ST=Some-State, O=Internet Widgits Pty Ltd, CN=BotB
[03:43:38] TLS: certificate issuer: C=DE, ST=Some-State, O=Internet Widgits Pty Ltd, CN=BotB
[03:43:38] TLS: certificate SHA1 Fingerprint: 20:29:12:7E:44:38:E4:32:14:AB:90:98:BA:A1:60:26:33:45:00:72
[03:43:38] TLS: certificate SHA-256 Fingerprint: A3:FE:B7:DF:FD:A6:F2:70:35:C6:67:08:1A:9D:A6:02:00:8B:CE:70:41:9A:1C:ED:01:2E:9B:A6:F4:35:F8:A1
[03:43:38] TLS: certificate valid from Nov 27 22:37:17 2023 GMT to Nov 26 22:37:17 2024 GMT
[03:43:38] TLS: cipher used: TLS_AES_256_GCM_SHA384, 256 of 256 secret bits used for cipher, TLSv1.3
[03:43:38] TLS: cipher details: TLS_AES_256_GCM_SHA384         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(256)            Mac=AEAD
[03:43:38] TLS: diffie–hellman ephemeral key used: X25519, bits 253
[03:43:38] TLS: state change: SSLv3/TLS write session ticket
[03:43:38] TLS: state change: SSLv3/TLS write session ticket
[03:43:38] sockread EAGAIN: 8 11 (Resource temporarily unavailable)
[03:43:38] [b<-BotB] BotB
[03:43:38] Challenging BotB...
[03:43:38] [b->BotB] 
passreq <2bed76667a20ca@BotA>

[03:43:38] [b<-BotB] digest 232df1ca7e1d9a6dd3800381dd172677
[03:43:38] [b->BotB] *hello!

[03:43:38] [b->BotB] version 1090508 32 eggdrop v1.9.5+sharemultiplex <I.didn't.edit.my.config.file.net>

[03:43:38] [b<-BotB] version 1090508 32 eggdrop v1.9.5+sharemultiplex <I.didn't.edit.my.config.file.net>
[03:43:38] [b->BotB] tb BotA

[03:43:38] Linked to BotB.
[03:43:38] [b->BotB] j !BotA -HQ A *B llama@console

[03:43:38] [b->BotB] i BotA B F 

[03:43:38] {b->BotB} u?

[03:43:38] [b->BotB] el

[03:43:38] [b<-BotB] tb BotB
[03:43:38] [b<-BotB] j !BotB -HQ A *B llama@console
[03:43:38] [b<-BotB] i BotB B B 
[03:43:38] [b<-BotB] el
[03:43:38] {b<-BotB} uy exempts invites compress
[03:43:38] {b->BotB} feats exempts invites

[03:43:38] share: start_sending_users(): multiplex: start
[03:43:38] [b->BotB] u BotB +EKPM

[03:43:38] Creating resync buffer for BotB
[03:43:38] share: start_sending_users(): multiplex: end 2929 3908
[03:43:38] Sending user file send request to BotB
[03:43:38] [b<-BotB] u BotA +EKPM

Log BotB:

.link BotA
[03:43:37] tcl: builtin dcc call: *dcc:link -HQ 1 BotA
[03:43:37] #-HQ# link BotA
[03:43:37] Linking to BotA at 127.0.0.1:3343 ...
[03:43:37] net: open_telnet_raw(): idx 4 host 127.0.0.1 ip 127.0.0.1 port 3343 ssl 1
[03:43:38] TLS: attempting SSL negotiation...
[03:43:38] TLS: setting the server name indication (SNI) to 127.0.0.1 successful
[03:43:38] TLS: state change: before SSL initialization
[03:43:38] TLS: state change: before SSL initialization
[03:43:38] TLS: state change: SSLv3/TLS write client hello
[03:43:38] TLS: awaiting more reads
[03:43:38] TLS: handshake in progress
[03:43:38] TLS: state change: SSLv3/TLS write client hello
[03:43:38] TLS: state change: SSLv3/TLS read server hello
[03:43:38] TLS: state change: TLSv1.3 read encrypted extensions
[03:43:38] TLS: state change: SSLv3/TLS read server certificate request
[03:43:38] TLS: peer certificate warning: self-signed certificate
[03:43:38] TLS: peer certificate warning: certificate has expired
[03:43:38] TLS: peer certificate warning: certificate has expired
[03:43:38] TLS: state change: SSLv3/TLS read server certificate
[03:43:38] TLS: state change: TLSv1.3 read server certificate verify
[03:43:38] TLS: state change: SSLv3/TLS read finished
[03:43:38] TLS: state change: SSLv3/TLS write change cipher spec
[03:43:38] TLS: state change: SSLv3/TLS write client certificate
[03:43:38] TLS: state change: SSLv3/TLS write certificate verify
[03:43:38] TLS: state change: SSLv3/TLS write finished
[03:43:38] TLS: handshake successful. Secure connection established.
[03:43:38] TLS: certificate subject: C=EU, O=Eggheads, OU=Botnet, CN=localhost
[03:43:38] TLS: certificate issuer: C=EU, O=Eggheads, OU=Botnet, CN=localhost
[03:43:38] TLS: certificate SHA1 Fingerprint: 1F:5B:6F:78:03:9A:07:2A:82:1C:B4:FE:B9:04:81:DB:41:BB:9E:4F
[03:43:38] TLS: certificate SHA-256 Fingerprint: F7:94:50:38:33:81:E9:B0:62:A2:CC:E5:D8:24:23:87:12:50:B4:59:D0:88:6B:EB:6F:30:A1:E0:73:DC:C0:DD
[03:43:38] TLS: certificate valid from Nov  3 09:43:58 2020 GMT to Dec  3 09:43:58 2020 GMT
[03:43:38] TLS: cipher used: TLS_AES_256_GCM_SHA384, 256 of 256 secret bits used for cipher, TLSv1.3
[03:43:38] TLS: cipher details: TLS_AES_256_GCM_SHA384         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(256)            Mac=AEAD
[03:43:38] TLS: diffie–hellman ephemeral key used: X25519, bits 253
[03:43:38] sockread EAGAIN: 8 11 (Resource temporarily unavailable)
[03:43:38] TLS: state change: SSL negotiation finished successfully
[03:43:38] TLS: state change: SSL negotiation finished successfully
[03:43:38] TLS: state change: SSLv3/TLS read server session ticket
[03:43:38] sockread EAGAIN: 8 11 (Resource temporarily unavailable)
[03:43:38] TLS: state change: SSL negotiation finished successfully
[03:43:38] TLS: state change: SSL negotiation finished successfully
[03:43:38] TLS: state change: SSLv3/TLS read server session ticket
[03:43:38] [b->BotA] BotB

[03:43:38] [b<-BotA] 
[03:43:38] [b<-BotA] 
[03:43:38] [b<-BotA] BotA  (Eggdrop v1.9.5+sharemultiplex (C) 1997 Robey Pointer (C) 2010-2024 Eggheads)
[03:43:38] [b<-BotA] 
[03:43:38] [b<-BotA] Please enter your handle.
[03:43:38] [b<-BotA] 
[03:43:38] [b<-BotA] passreq <2bed76667a20ca@BotA>
[03:43:38] [b->BotA] digest 232df1ca7e1d9a6dd3800381dd172677

[03:43:38] Received challenge from BotA... sending response ...
[03:43:38] [b<-BotA] *hello!
[03:43:38] [b->BotA] version 1090508 32 eggdrop v1.9.5+sharemultiplex <I.didn't.edit.my.config.file.net>

[03:43:38] [b<-BotA] version 1090508 32 eggdrop v1.9.5+sharemultiplex <I.didn't.edit.my.config.file.net>
[03:43:38] [b->BotA] tb BotB

[03:43:38] Linked to BotA.
[03:43:38] [b->BotA] j !BotB -HQ A *B llama@console

[03:43:38] [b->BotA] i BotB B B 

[03:43:38] [b->BotA] el

[03:43:38] [b<-BotA] tb BotA
[03:43:38] [b<-BotA] j !BotA -HQ A *B llama@console
[03:43:38] [b<-BotA] i BotA B F 
[03:43:38] {b<-BotA} u?
[03:43:38] {b->BotA} uy exempts invites compress

[03:43:38] Downloading user file from BotA
[03:43:38] [b<-BotA] el
[03:43:38] {b<-BotA} feats exempts invites
[03:43:38] [b<-BotA] u BotB +EKPM
[03:43:38] {b<-BotA} ur IzR2OiBlZ2dkcm9wIHYxLjkuNStzaGFyZW11bHRpcGxleCAtLSBCb3RBIC0tIHRyYW5zbWl0CnRlc3Rvd25lciAgLSBqbG1ub3B0eCAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTYxNzE0NDQ3OAotLVBBU1MyICRwYmtkZjItU0hBMjU2JHJvdW5kcz0xNjAwMCRzbzBEUjVRQ1Iyckt4MHZOT3phOWFnJHBsb1IxbEJGNmd4QWpJa0taS0JxaUw3OENqSGIwUGcrY3U5WldycWdESlUKYWJjZGUgICAgICAtIGhqbG1vcHR4ICAgICAgICAgICAgICAgIAotLUZTVEFUIDAwMDAwMDAwMiAwMDExODIzMDIgMDAwMDAwMDAwIDAwMDAwMDAwMAotLUhPU1RTIHRlc3R1c2VyIW1pY2hhZWxAbG9jYWxob3N0Ci0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTE2MDAwJHFPczA2NlJ6Wm9Wc2dtV0NFMHdWL2ckcDFRREFtM1ZCS1hPT29RaC9yKzhUMk5odWdmM3ZSb1ltWjNodlNQZDJuMAotLVhUUkEgY3JlYXRlZCAxNzE5Mjc5ODE4CnRlc3Q0MiAgICAgLSBoamxtb3B0eCAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTY3ODcyNDgzMwphc2Rhc2Rhc2QgIC0gZmhsb3B3eCAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2Nzg1ODk0OTQKdGVzdHVzZXIyICAtIGZobG9weCAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjcwODc1NzkyCi0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTEwMDAkNkxUN1pUcDNmb0NPT1hrWDZWRDdNdyQyYU9jS3pFYy8vZGM1LzBtYVpKMXN2aThwOHU0ekpMNzF6YmNVZmMrM09FCnRlc3R1c2VyMyAgLSBobG9wdHggICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTYxMTk2Njg4NAotLVBBU1MyICRwYmtkZjItU0hBMjU2JHJvdW5kcz0xMDAwJGQyeGxZQVdaRTBOekx0b2hKRWZqcGckMXhQVGRDajJJdjNLd3VXMkxBVXpPTFRZNmI5NVZqeUdsVTVPS2x1OVltZwphICAgICAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2MTA0MDk1OTAKYWxpY2UgICAgICAtIGhwICAgICAgICAgICAgICAgICAgICAgIAotLUZQUklOVCBCRTpERDo1MDozMDo5MjpBMDpERjpENjo5QjpBNDpBNzo2Qjo4MzozMDo1QjpCODpCMjo4ODo1NzpENgotLVhUUkEgY3JlYXRlZCAxNjE2MDA2MzU2Ci0tSE9TVFMgYWxpY2UqISpAKgphcm5vICAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE3MDE1ODk0NDkKYXNkICAgICAgICAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjk2Nzk2ODIxCi0tSE9TVFMgYXNkCmFzZmRhc2Rmc2RhZiAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjc4NzI0ODIyCmF0ZXN0ICAgICAgLSAtICAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTcwNDk5MDY3NgotLUhPU1RTIGF0ZXN0KiEqQCoKSFEgICAgICAgICAtIHAgICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjc4NTkzNTMwCm1pY2hhZWwgICAgLSAtICAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTYxNzE0NDQ2NQptdGVzdCAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE3MDUwMzE2NjMKLS1IT1NUUyBtdGVzdCohKkAqCnRlc3QyICAgICAgLSBocCAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTU5Mzk3MzE0MgotLVBBU1MyICRwYmtkZjItU0hBNTEyJHJvdW5kcz01MDAwJGtEYmlRcWNJSFRVY3djU3NEMTJ5SEEkT203QW00d1M1YlhoRzNGT3M0Wnc0eVV0Tm9Tc2Fnd3pvSklyWXNvQjJzSDFQNUIrdk5OZ21zOTIycVB5ZjBGZWRuUHFmWVZjek1FSmEvdHNGVldLUkEKdGVzdDMgICAgICAtIGhwICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjA0Njk5MzM3Ci0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTUwMDAkeFpZL254VFoxRUw3T2RxWTh1aXVHQSQrNWhJVkJudE9xMHQ5cjhFNTN1TjQrRldlS1FtMzBLT2Y0RmJrVzBhMUZBCnRlc3Q0ICAgICAgLSBocCAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTU5NDUxMDA2NwotLVBBU1MyICRwYmtkZjItU0hBMjU2JHJvdW5kcz0xNjAwMCQzS2t0MGFvVGJsSW9MWjRpWms4b0l3JEtRS1F6V1NoSEE3T0hPb1kzNVdkRU0zRkRCYmx5aEFSWWhXc3lvMzFGeUEKdGVzdGlkZWEgICAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjcwNzY3NDMyCi0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTE2MDAwJDdlMEl2M2gvRUxOcGdsZEJ6a0UwZXckRm9WYlZkR0ZHMi8vUXduMlVzbys5RFQ5K3JaZmhaeVVEanhYTE8wNmFLbwp0ZXN0ciAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2NzA4ODE0OTgKdGVzdHVzZXIxICAtIGhwICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjEzNjczMjQ3Ci0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTE2MDAwJDFoZDFwSDZ3Mk1VMTdveS9XS2hiOEEkam9LUExCUmtmVFMzR1VJNXFCa0w1SS9kM3V5MVAzOE1VTFRUaDBhSXU5OAp0ZXN0dXNlcjIzIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2MzQ2Njg3NTAKdGVzdHVzZXI0ICAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjYzMDgzMTgzCnp0ZXN0ICAgICAgLSAtICAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTcwNDk5MDY5MAotLUhPU1RTIHp0ZXN0CipiYW4gLSAtCi0gJXNhZGFzZCFhc2RhQCo6KzA6KzE2OTMzNjg5ODI6MDotSFE6cmVxdWVzdGVkCi0gYSEqQCo6KzA6KzE2OTMzNjg5NzU6MDotSFE6cmVxdWVzdGVkCi0gJSEqQCo6KzA6KzE2OTMzNjg5Nzc6MDotSFE6cmVxdWVzdGVkCg==
[03:43:38] share: share_ufsend2(): start: par = >IzR2OiBlZ2dkcm9wIHYxLjkuNStzaGFyZW11bHRpcGxleCAtLSBCb3RBIC0tIHRyYW5zbWl0CnRlc3Rvd25lciAgLSBqbG1ub3B0eCAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTYxNzE0NDQ3OAotLVBBU1MyICRwYmtkZjItU0hBMjU2JHJvdW5kcz0xNjAwMCRzbzBEUjVRQ1Iyckt4MHZOT3phOWFnJHBsb1IxbEJGNmd4QWpJa0taS0JxaUw3OENqSGIwUGcrY3U5WldycWdESlUKYWJjZGUgICAgICAtIGhqbG1vcHR4ICAgICAgICAgICAgICAgIAotLUZTVEFUIDAwMDAwMDAwMiAwMDExODIzMDIgMDAwMDAwMDAwIDAwMDAwMDAwMAotLUhPU1RTIHRlc3R1c2VyIW1pY2hhZWxAbG9jYWxob3N0Ci0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTE2MDAwJHFPczA2NlJ6Wm9Wc2dtV0NFMHdWL2ckcDFRREFtM1ZCS1hPT29RaC9yKzhUMk5odWdmM3ZSb1ltWjNodlNQZDJuMAotLVhUUkEgY3JlYXRlZCAxNzE5Mjc5ODE4CnRlc3Q0MiAgICAgLSBoamxtb3B0eCAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTY3ODcyNDgzMwphc2Rhc2Rhc2QgIC0gZmhsb3B3eCAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2Nzg1ODk0OTQKdGVzdHVzZXIyICAtIGZobG9weCAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjcwODc1NzkyCi0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTEwMDAkNkxUN1pUcDNmb0NPT1hrWDZWRDdNdyQyYU9jS3pFYy8vZGM1LzBtYVpKMXN2aThwOHU0ekpMNzF6YmNVZmMrM09FCnRlc3R1c2VyMyAgLSBobG9wdHggICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTYxMTk2Njg4NAotLVBBU1MyICRwYmtkZjItU0hBMjU2JHJvdW5kcz0xMDAwJGQyeGxZQVdaRTBOekx0b2hKRWZqcGckMXhQVGRDajJJdjNLd3VXMkxBVXpPTFRZNmI5NVZqeUdsVTVPS2x1OVltZwphICAgICAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2MTA0MDk1OTAKYWxpY2UgICAgICAtIGhwICAgICAgICAgICAgICAgICAgICAgIAotLUZQUklOVCBCRTpERDo1MDozMDo5MjpBMDpERjpENjo5QjpBNDpBNzo2Qjo4MzozMDo1QjpCODpCMjo4ODo1NzpENgotLVhUUkEgY3JlYXRlZCAxNjE2MDA2MzU2Ci0tSE9TVFMgYWxpY2UqISpAKgphcm5vICAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE3MDE1ODk0NDkKYXNkICAgICAgICAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjk2Nzk2ODIxCi0tSE9TVFMgYXNkCmFzZmRhc2Rmc2RhZiAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjc4NzI0ODIyCmF0ZXN0ICAgICAgLSAtICAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTcwNDk5MDY3NgotLUhPU1RTIGF0ZXN0KiEqQCoKSFEgICAgICAgICAtIHAgICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjc4NTkzNTMwCm1pY2hhZWwgICAgLSAtICAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTYxNzE0NDQ2NQptdGVzdCAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE3MDUwMzE2NjMKLS1IT1NUUyBtdGVzdCohKkAqCnRlc3QyICAgICAgLSBocCAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTU5Mzk3MzE0MgotLVBBU1MyICRwYmtkZjItU0hBNTEyJHJvdW5kcz01MDAwJGtEYmlRcWNJSFRVY3djU3NEMTJ5SEEkT203QW00d1M1YlhoRzNGT3M0Wnc0eVV0Tm9Tc2Fnd3pvSklyWXNvQjJzSDFQNUIrdk5OZ21zOTIycVB5ZjBGZWRuUHFmWVZjek1FSmEvdHNGVldLUkEKdGVzdDMgICAgICAtIGhwICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjA0Njk5MzM3Ci0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTUwMDAkeFpZL254VFoxRUw3T2RxWTh1aXVHQSQrNWhJVkJudE9xMHQ5cjhFNTN1TjQrRldlS1FtMzBLT2Y0RmJrVzBhMUZBCnRlc3Q0ICAgICAgLSBocCAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTU5NDUxMDA2NwotLVBBU1MyICRwYmtkZjItU0hBMjU2JHJvdW5kcz0xNjAwMCQzS2t0MGFvVGJsSW9MWjRpWms4b0l3JEtRS1F6V1NoSEE3T0hPb1kzNVdkRU0zRkRCYmx5aEFSWWhXc3lvMzFGeUEKdGVzdGlkZWEgICAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjcwNzY3NDMyCi0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTE2MDAwJDdlMEl2M2gvRUxOcGdsZEJ6a0UwZXckRm9WYlZkR0ZHMi8vUXduMlVzbys5RFQ5K3JaZmhaeVVEanhYTE8wNmFLbwp0ZXN0ciAgICAgIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2NzA4ODE0OTgKdGVzdHVzZXIxICAtIGhwICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjEzNjczMjQ3Ci0tUEFTUzIgJHBia2RmMi1TSEEyNTYkcm91bmRzPTE2MDAwJDFoZDFwSDZ3Mk1VMTdveS9XS2hiOEEkam9LUExCUmtmVFMzR1VJNXFCa0w1SS9kM3V5MVAzOE1VTFRUaDBhSXU5OAp0ZXN0dXNlcjIzIC0gLSAgICAgICAgICAgICAgICAgICAgICAgCi0tWFRSQSBjcmVhdGVkIDE2MzQ2Njg3NTAKdGVzdHVzZXI0ICAtIC0gICAgICAgICAgICAgICAgICAgICAgIAotLVhUUkEgY3JlYXRlZCAxNjYzMDgzMTgzCnp0ZXN0ICAgICAgLSAtICAgICAgICAgICAgICAgICAgICAgICAKLS1YVFJBIGNyZWF0ZWQgMTcwNDk5MDY5MAotLUhPU1RTIHp0ZXN0CipiYW4gLSAtCi0gJXNhZGFzZCFhc2RhQCo6KzA6KzE2OTMzNjg5ODI6MDotSFE6cmVxdWVzdGVkCi0gYSEqQCo6KzA6KzE2OTMzNjg5NzU6MDotSFE6cmVxdWVzdGVkCi0gJSEqQCo6KzA6KzE2OTMzNjg5Nzc6MDotSFE6cmVxdWVzdGVkCg==< len = 3908
[03:43:38] share: share_ufsend2(): len = 2929
4 0 (telnet) BotA 4096 512
4 1 (telnet) BotA 4096 512
4 2 -HQ BotA 127 512
4 3 (server) BotA 0 512
4 4 BotA BotA 528 512
[03:43:38] Userfile loaded, unpacking...
[03:43:38] Userlist transfer complete; switched over.
[03:43:38] [b->BotA] u BotA +EKPM

[03:43:38] share: share_ufsend2(): end

@michaelortmann michaelortmann changed the title (POC) share user file multiplexed over existing botlink (POC) share user file over existing botlink Jun 25, 2024
@michaelortmann michaelortmann changed the title (POC) share user file over existing botlink (PoC) share userfile over existing botlink Dec 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant