eggheads / eggdrop

The Eggdrop IRC Bot
GNU General Public License v2.0
509 stars 84 forks source link

(POC) share user file over existing botlink #1631

Open michaelortmann opened 5 months ago

michaelortmann commented 5 months ago

Found by: michaelortmann Patch by: michaelortmann Fixes:

One-line summary: Proof of concept

Additional description (if needed): Maybe this proof of concept is going somewhere...

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