#💽Programming Chat v2

1 messages · Page 48 of 1

flint belfry
#

I HOPE SOMEONE SAW THAT MESSAGE

spare quartz
#

FATASS!!

flint belfry
spare quartz
#

🐒 🐒 🐒

snow oak
#

hey guys welcome back to my channel. today, we will be re-learning oop within roblox
(need tips on how i can make this better)

spare quartz
rustic vine
rustic vine
spare quartz
rustic vine
#

stop

#

just because you are using

#

a terrible language

#

wth

#

json.json

#

I just noticed that

spare quartz
#

LOL

rustic vine
#

stop bruh

#

that looks like its vibe coded

spare quartz
#

whenever i copy files intellij likes to create a copy of the folder of the file i copied it frrom

rustic vine
#

she would love vibe coding

rustic vine
#

wait they're genius

spare quartz
#

no cryptation without representation..

rustic vine
#

brh

#

wheres my cyrpto

wheat hornet
wheat hornet
lavish dove
spare quartz
#

new breadmod explosions

#

our system is also infinitely expansible, in line with everything else we do

#

10,000 samples, 100 radius:

#

we're also using a fibonacci lattice for evenly distributed points

wheat hornet
spare quartz
#

not that much

wheat hornet
#

Ok ill see if it runs in a vm 4 gb of ram and 1 cpu core without crashing ecstatic

spare quartz
spare quartz
#

nuclear physics is very easy computationally as most of it is just probability, but

#

data input is a nightmare...

timid quartz
#

What is it

spare quartz
# timid quartz What is it

2 part system for activitypub/atprotocol by request; backend server for handling user authentication/server-server federation/storage, frontend server for handling requests via the browser, oauth token retrival...

#

both communicate via a socket negociated at startup

#

rn im currently doing data entry for a breadmod project though

wheat hornet
spare quartz
#

yes that is what i am currently doing

timid quartz
rustic vine
#

Use protobuf 👍

#

Oh that was hours ago

spare quartz
#

Immediate thought is

  • establish SSL if requested
  • transmit ProcedureRequest
    • Contains an array of
      • Name Length
      • Name
      • Required
      • Parameter Length
      • Parameters
  • transmit ProcedureOK (or ProcedureBad if a Required procedure is not supported)
  • transmit ProcedureCall
    • ProcedureIndex
    • Parameters
spare quartz
#

will probably also have a DatatypeRequest beforehand that establishes the length and name of each datatype…

timid quartz
#

ok atp

#

im gonna vibe code a rust sstp client

spare quartz
#

do it

#

but without the vibe code

spare quartz
#

okay back home

spare quartz
#

current isotopes

spare quartz
#

every isotope and element apart of the u238 chain (exl sf/cd)

#

now to add mass-energy verification!!!!!!!

wheat hornet
#

instead of adding

spare quartz
#

no computation yet

#

but e=mc^2 works

#

dropped a factor of 1,000 though whoops

spare quartz
#

minor precision loss

#

but only during remainder computation

#

(need to make pow for bigdecimals)

flint belfry
#

can u add cocaine to bread mod

wheat hornet
#

also add weed and meth

spare quartz
#
[01:37:08;546/WARN [Server thread/org.bread_experts_group.breadmod.BreadMod] 12865570903760639344132530
[01:37:08;546/WARN [Server thread/org.bread_experts_group.breadmod.BreadMod] 57134612170
#

4999.99999999997779553950700567877128132753907930906616669650876775587025634

#

oh wow hes actualyl doing it

timid quartz
#

I am doing it

#

lol

#

@spare quartz what's ur sstp server address

#

I wanna test the handshake

spare quartz
#

let me start it

spare quartz
#

oh crap

#

i had it pointing to localhost

#

let me set it to 0.0.0.0

#

there

#

try now

timid quartz
#

lets c

#

@spare quartz what did you get lol

spare quartz
timid quartz
#

idk if it actually pinged your server or not

#

ah it did

#

illegal server name

#

gg

#

do I have to use javart.zip or smth?

#

or just no :443

spare quartz
#

probably no :443

#

ideally use javart.zip though

timid quartz
#

ok @spare quartz what did you get

#

I've sent SSTP_CALL_CONNECT_REQUEST

spare quartz
#

pls send again

#

[/128.61.78.4:53029;443 @ 02:19:44;920] Server failure outside of operation; java.io.IOException: Communication terminated
at bread_experts_group.MainKt.main$lambda$3$lambda$2$scanDelimiter(Main.kt:105)
at bread_experts_group.MainKt.main$lambda$3(Main.kt:115)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)

timid quartz
#

ok

spare quartz
#

you failed here it looks like

#

if that IS your ip

timid quartz
#

Connection terminated. I'm sorry to interrupt you Elizabeth, if you still even remember that name. But I'm afraid you've been misinformed.

timid quartz
spare quartz
#

that and you violated the protocol

#

-1 indicates you sent an EOS

timid quartz
#

violated the protocol

#

smh

#

im guessing im still hitting that same thing @spare quartz

spare quartz
timid quartz
#

lmfao I don't think the vibe code is working

timid quartz
spare quartz
#

yes

timid quartz
#

ok @spare quartz what about then

#

do you need me to do it again

spare quartz
#

yes

#

i ujst bgot back from the bathro

timid quartz
#

ok there you go

spare quartz
#

[/128.61.78.4:54703;443 @ 02:36:26;669] Server failure outside of operation; java.io.IOException: Communication terminated
at bread_experts_group.MainKt.main$lambda$3$lambda$2$scanDelimiter(Main.kt:105)
at bread_experts_group.MainKt.main$lambda$3(Main.kt:123)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)

#

but you are failing somewhere else

timid quartz
#

ah not ending with \r\n

#

ok what about there @spare quartz

spare quartz
#

failed in the same place

timid quartz
#

cuh

#

oh does the handshake stuff also have to end in \r\n

spare quartz
#

do you need a reminder on the structure of HTTP messages

timid quartz
#

no

#

ok what about there

#

same spot?

spare quartz
#

same spot

timid quartz
#

maybe since sstp is more niche, the ai isn't as good with it

spare quartz
#

more like rust is bad

#

you got somewhere!!

#

Server failure outside of operation; bread_experts_group.util.ProtocolViolationException: No Content-Length

timid quartz
#

no content-length

#

gg

timid quartz
spare quartz
#

your lang looks like codsworth

timid quartz
#

your lang looks like someone from the 1800s

#

nearly dead because they caught the flu

spare quartz
#

timid quartz
#

what should the content-length even be

spare quartz
#

it says it in the sstp spec

#

Server failure outside of operation; bread_experts_group.util.ProtocolViolationException: HTTP Method was not "SSTP_DUPLEX_POST", got "POST"

timid quartz
#

sorry

spare quartz
#
[/128.61.78.4:54808;443 @ 02:46:27;270] < SSTP [20] CONTROL SSTP_MSG_CALL_ABORT, # ATTRIB: [1]
                                                   ATTRIB [12] SSTP_ATTRIB_STATUS_INFO : ATTRIBUTE: SSTP_ATTRIB_NO_ERROR, STATUS: ATTRIB_STATUS_NO_ERROR, # ATRB DATA: 0
[/128.61.78.4:54808;443 @ 02:46:27;270] Session ended (server failure); bread_experts_group.util.ProtocolViolationException: Version was not 0x10, got 0x0
                                                     at bread_experts_group.util.GeneralKt.protocolViolation(General.kt:56)
                                                     at bread_experts_group.protocol.sstp.message.SSTPMessage$Companion.read(SSTPMessage.kt:26)
                                                     at bread_experts_group.ThreadOperationKt.operation(ThreadOperation.kt:339)
                                                     at bread_experts_group.MainKt.main$lambda$3(Main.kt:138)
                                                     at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)
                                                   

timid quartz
#

look @ most recent

#

0x10

#

what version u running

spare quartz
#

read the sstp spec

timid quartz
#

:die:

#

the ai reads it for me

spare quartz
#

rustbrain

timid quartz
#

it's not rust

spare quartz
timid quartz
#

idk

#

it takes 0x0001 and puts it in be

#

@spare quartz same thing?

spare quartz
#

yes

timid quartz
#

same thing?

spare quartz
#

stop sending 0

timid quartz
#

im nottt

#

did ANY of those give the right version

spare quartz
#

[/128.61.78.4:54897;443 @ 02:52:32;560] < SSTP [20] CONTROL SSTP_MSG_CALL_ABORT, # ATTRIB: [1]
ATTRIB [12] SSTP_ATTRIB_STATUS_INFO : ATTRIBUTE: SSTP_ATTRIB_NO_ERROR, STATUS: ATTRIB_STATUS_NO_ERROR, # ATRB DATA: 0
[/128.61.78.4:54897;443 @ 02:52:32;560] Session ended (server failure); java.lang.IllegalArgumentException: len < 0
at java.base/java.io.InputStream.readNBytes(InputStream.java:399)
at bread_experts_group.protocol.sstp.message.SSTPMessage$Companion.read(SSTPMessage.kt:30)
at bread_experts_group.ThreadOperationKt.operation(ThreadOperation.kt:339)
at bread_experts_group.MainKt.main$lambda$3(Main.kt:138)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)

[/128.61.78.4:54898;443 @ 02:52:42;029] < SSTP [20] CONTROL SSTP_MSG_CALL_ABORT, # ATTRIB: [1]
ATTRIB [12] SSTP_ATTRIB_STATUS_INFO : ATTRIBUTE: SSTP_ATTRIB_NO_ERROR, STATUS: ATTRIB_STATUS_NO_ERROR, # ATRB DATA: 0
[/128.61.78.4:54898;443 @ 02:52:42;029] Session ended (server failure); bread_experts_group.util.ProtocolViolationException: Version was not 0x10, got 0x1
at bread_experts_group.util.GeneralKt.protocolViolation(General.kt:56)
at bread_experts_group.protocol.sstp.message.SSTPMessage$Companion.read(SSTPMessage.kt:26)
at bread_experts_group.ThreadOperationKt.operation(ThreadOperation.kt:339)
at bread_experts_group.MainKt.main$lambda$3(Main.kt:138)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)

[/128.61.78.4:54901;443 @ 02:52:59;553] < SSTP [20] CONTROL SSTP_MSG_CALL_ABORT, # ATTRIB: [1]
ATTRIB [12] SSTP_ATTRIB_STATUS_INFO : ATTRIBUTE: SSTP_ATTRIB_NO_ERROR, STATUS: ATTRIB_STATUS_NO_ERROR, # ATRB DATA: 0
[/128.61.78.4:54901;443 @ 02:52:59;553] Session ended (server failure); bread_experts_group.util.ProtocolViolationException: Version was not 0x10, got 0x0
at bread_experts_group.util.GeneralKt.protocolViolation(General.kt:56)
at bread_experts_group.protocol.sstp.message.SSTPMessage$Companion.read(SSTPMessage.kt:26)
at bread_experts_group.ThreadOperationKt.operation(ThreadOperation.kt:339)
at bread_experts_group.MainKt.main$lambda$3(Main.kt:138)
at java.base/java.lang.VirtualThread.run(VirtualThread.java:329)

timid quartz
#

r u sure ur reading it right

spare quartz
#

... yes

timid quartz
#

seems like u only read a byte

#

or no

#

a half byte

spare quartz
#

what

timid quartz
#

idk if this vibe coding thing works

#

at least not for smth like this

#

maybe for something like a crappy web app

spare quartz
#

ask it to build you a 3d racing game with webgl next time

timid quartz
#

naw

timid quartz
#

should I try it in like idk kotlin

spare quartz
#

mabyer ..

#

proof that aera only knows how to vibe code

flint belfry
spare quartz
flint belfry
spare quartz
timid quartz
spare quartz
#

too much time learning cs

#

zero time learning computers

timid quartz
spare quartz
#

ive been playing scp sl and doiing furry art

timid quartz
#

bruh

#

can you turn it on

#

well

#

too late

spare quartz
#

yeah next time ask.

timid quartz
#

I already deleted it

#

this vibe coding stuff kinda overrated tbh

timid quartz
#

might work for doing frontend/backend web dev or like other stuff where there's a ton of code already out there for the ai to leech off of

spare quartz
#

this is why i have job security

timid quartz
#

idk tbh it might be able to handle making an smtp client/server deal

#

cause there's a ton of that out there

timid quartz
#

they're gonna tell you to like idfk

#

write c/c++

spare quartz
#

nah

spare quartz
#

dozens of other protocols

timid quartz
#

but like the military isnt gonna have you doing that

spare quartz
#

literally yes they are

#

embedded electronics is just protocols

timid quartz
#

in c/c++

spare quartz
#

in ada*

timid quartz
#

doubt

#

I'd be willing to bet that like

#

the F-22 and F-35 have a codebase of like

#

95% c/c++ and 5% ada

spare quartz
#

5% ada

#

boom

timid quartz
#

ada is probably used for like just the firmware on the sensors

#

and the actual fighter jet stuff is in c/c++

spare quartz
#

boom

#

protocols

timid quartz
#

and like

#

they're pretty much the same sensors

#

who needs new ada code...

#

probably not those

flint belfry
#

@spare quartz could the nmap thing failing be due to it opening multiple connections or pings

#

i dont think nmap runs it all in one connection

#

and it could explain why only one host pung back the other day from the entire subnet scan

spare quartz
#

most likely yes

#

would you like me to work on multithreading connecitons?

flint belfry
#

assuming that could fix it yeah

timid quartz
#

real...

flint belfry
#

what would it take or would there be any issues with multithreading

spare quartz
#

i dunno

timid quartz
# timid quartz real...

you heard it here folks, reddit said dead lang that you'll have to buy $3000 license for in 10 years

flint belfry
spare quartz
#

on ONE condition

flint belfry
#

if theres nothing to work on the sstp server right now i guess thats something we could try

#

i am not buying you more (the name) games

#

i already paid you

#

smh

spare quartz
#

uhmm

#

um

flint belfry
#

and im not looking for art

spare quartz
#

「魔けモン!」シリーズ「古今東西おきつね物語」「でびるコネクショん」などなどのばやちゃおの創作作品を置いてます! BOOTH倉庫から発送しております!本に関しては現在は電子書籍のみのお取り扱いとさせていただいております。 紙版はアリスブック...

flint belfry
#

im busy af

#

NO

#

GO AWAY

spare quartz
#

pls

#

ples

#

s:plead

flint belfry
#

OMG

#

ATP

#

I DONT EVEN KNOW WHAT THAT IS

spare quartz
#

IM KDIDINg

flint belfry
#

TRANSLATE PLEASE

spare quartz
timid quartz
#

@spare quartz LMFAO

spare quartz
timid quartz
#

rela

#

anyways stop using dead lang thats probably dead even in the military

spare quartz
#

no

#

.

#

ugh now i wanna support a FOIA for the army secure os

#

besides i plan to supersede it AND kotlin with a programming lang by beg

timid quartz
#

just b normal

#

c/c++ for embedded
java (or kotlin if you’re allowed to be hip and cool) for everything else

spare quartz
#

bread experts group breadcrumbs

flint belfry
timid quartz
spare quartz
#

a breadcrumb is a single file of the Breadcrumb Microcode format comprising a loaf .

timid quartz
#

Perpetually half-baked language

spare quartz
#

rust:

timid quartz
#

nah

spare quartz
#

yeah

#

rusty ass lang

timid quartz
#

rust is fully baked

#

I’m not saying use rust, I’m just saying don’t use Ada

spare quartz
#

ada is more baked than rust will ever be tho..

timid quartz
#

Ada is stale at this point

spare quartz
#

nope

timid quartz
#

bread been left out too long

#

now the only people that use it are some delulsionals and like 2 old guys that were teens when it was made

spare quartz
#

i found the post for you!

timid quartz
#

hm

#

so are you like

#

trying to get me to vibe code or not

spare quartz
#

i sent that sarcastically

#

you CAN vibe code if you want since i am not you

#

but i personally just think its a waste of time

#

the fact that it cant send a packet for a basic network protocol says a lot imo

timid quartz
#

the fact that I only took like 30 minutes to get to where I did says a lot too

spare quartz
#

it should've taken you 5

timid quartz
#

nah if I wrote it by hand it’d take me longer than 5

spare quartz
#

it shouldnt

#

you fumbled so much sending an http request meanwhile this is all the server is gonna do

timid quartz
#

well I also think had I written it by hand then there wouldn’t have been basically any fumbling

wheat hornet
#

@spare quartz add nuclear physics to tetris, that is all I have to say

spare quartz
#

which would reduce the time to send a successful packet

spare quartz
timid quartz
#

the thing I didn’t like was that the AI got stuck and I didn’t have enough knowledge from having written the code myself to help it

spare quartz
#

will be honest though ai is really useful for filling gaps in knowledge when working fast

wheat hornet
spare quartz
#

because its an easy visualization platform

spare quartz
#

i check what it says...

#

and wireshark confirms it

timid quartz
spare quartz
#

at the end of the day that is* what it is

#

just a search engine with associations of data baked in for you

timid quartz
#

imagine being miyakazi rn

#

getting copied by a bunch of linear algebra

spare quartz
#

i really do wonder what the actual usecase of ai art is

#

aside from cost cutting

#

just seems like a fad tool

timid quartz
#

yeah

#

anyways if I was to write sstp myself it may take shorter cause I’d understand the code more

#

but also I probably wouldn’t pre-read the protocol and just figure stuff out on the fly

#

so it’d probably take longer lol

spare quartz
#

well thats what i did

#

it took me a few days to get something working and then the remainder of time was just adding modern support and making my past code better

timid quartz
#

like idk if I could do the handshake in 5 minutes

#

5 minutes is probably the SSTP_POST whatever request

spare quartz
#

that depends on what you consider the handshake

#

setting up HTTPS: 5 minutes, 99% of that would be figuring out SSL
setting up SSTP CONNECT REQUEST: maybe an hour
setting up NCPs: hours to days

#

os-level stuff: hours to days...

timid quartz
spare quartz
#

which is why it'd take 99% of that 5 minutes

#

the remainder of time is just typing out the message and passing it to your out stream

#

anyways

#

let me push my breadmod changes and get started on @flint belfry request

flint belfry
#

IM TWEAKING

spare quartz
#

?

timid quartz
spare quartz
#

what is a mussels

#

oh

timid quartz
#

keyboard

spare quartz
timid quartz
spare quartz
#

okay but tis fun

timid quartz
#

mmm no

spare quartz
#

yes

timid quartz
#

if it wasn’t tls then sure

#

buuuut you mess up tls and next thing you know I get your password with wireshark

spare quartz
#

not true

#

its incredibly incredibly incredibly difficult to get such a problem

#

you'd have to do a higher order level of fucking up such as mixing your file stream of private key/public key

#

and theres no possibility of ROP/buffer over/underflow either

timid quartz
spare quartz
#

in every case that'd just cause the other end to see malformed data

#

again, you'd need to do a higher order level of fucking up

timid quartz
#

well an improper implementation could also allow timing or side channel attacks

spare quartz
#

thats a different problem, and the window of attack varies quite a lot

#

also depends on the environment

#

timings attacks dont matter most of the time over-the-wire, but do matter locally

timid quartz
#

still

#

there’s possibilities to mess up

spare quartz
#

im not doubting that, but most of the time the window is small enough to ignore

#

theres a lot of variables that go into play

timid quartz
#

And TLS has more serious implications when you mess it up

spare quartz
#

huh

#

one of the computers on kades school tried sending a GET request to his printer

#

10.98.32.58:50294;443

timid quartz
#

lol

spare quartz
#

14:57:18;561

flint belfry
#

12h pls

spare quartz
#

thats in UTC

flint belfry
#

edt

spare quartz
#

10:57 AM x, Eastern Time (ET)

flint belfry
#

day?

spare quartz
#

either today or yesterday

flint belfry
#

thats

#

not normal

spare quartz
#

wait no

#

the request was today (now yesterday in cst)

flint belfry
#

at 10 am right

spare quartz
#

yeah

flint belfry
#

ok that's not

#

normal by any standards

spare quartz
#

do youu know what computer that ip is for ..

flint belfry
#

ill look into that

flint belfry
#

at least it should be that room

#

or the whole building (we have multiple buildings )

#

hold on im going to nmap it real quick and find out what os it is

#

no students should be at my school today

#

so this is weird

#

@spare quartz are you attached to the sstp screen session rn or doing something because i cant connect to it

spare quartz
#

yes hold on

#

exited

flint belfry
#

connection still failed

#

is the server even on

#

nvm you killed the screen session

#

let me restart it

#

lmfao i see you tried to use wget

#

you have to transfer files the annoying way 😭

spare quartz
#

yes that was a while ago

flint belfry
#

ip pinged so its a computer thats sitting on the network

#

and hopefully not a different computer that stole its ip via dhcp which i doubt

#

annd the server killed itself

spare quartz
#

if you see NotImplementedError its just something i havent gotten to adding yet

flint belfry
#

i need to see what that ip is before its gone

#

idk how long dhcp leases last on the network

spare quartz
#

because i havent gotten around to adding that specific feature yet... gimme a second

flint belfry
#

it worked before but ok 😭

spare quartz
#

no it didnt

#

you just hadnt reached that specific edge case

#

#13..

#

hmm

#

how am i gonna fake this...

flint belfry
#

tried curling the ip and it returned a 404 error page and only school managed windows computers have port 80 and a webserver on for some reason

#

so its a school computer??

#

at least its a organization managed computer

#

who tf was on that computer 😭

spare quartz
#

i know you cant actually answer that

#

but theoretically it shouldnt be reachable under normal circumstnaces

flint belfry
#

i mean all i can tell you is that i tried to nmap intense scan and all udp ports on the ip

spare quartz
#

oh

#

you see i thought it was the REMOTE computer sending that packet

#

thats good

flint belfry
#

no im doing this from my ubuntu vpn with the sstp client thingy

#

im not installing nmap on the printer ive complied enough programs without a package manager as is

spare quartz
#

org/rec/trns 4 int

#

16

flint belfry
#

what

#

ok

spare quartz
#

what command did you use

flint belfry
#

nmap -p 1-65535 -T4 -A -v -e ppp0 10.98.32.58

spare quartz
#

do it on only one port on the new server version initially and lmk if you see TIMESTAMP

#

might make a mistake on checksumming..

#

timestamp packet done..

#

now to impl..

#

pls update jar in libs with this

spare quartz
#

eeeeeeeerrrrrrrr

#

(that might produce a tiny issue with nmap as im not sending a reply, but successful parse is good enough for me)

#

(may also cause NCP failure, whatever... good parse is good)

flint belfry
#

it died again

spare quartz
#

this is a good parse though

#

Originate timestamp is the time the sender last touched the message before sending it.
Receive timestamp is the time the echoer first touched it on receipt.
Transmit timestamp is the time the echoer last touched the message on sending it.

flint belfry
#

im not exactly sure what this means but it dosent look good and isnt normal for nmap

spare quartz
#

pls send server output so i can see if its logging it right

spare quartz
spare quartz
#

packet supposedly had rtt of

#

gee thanks nmap

spare quartz
#

@flint belfry progress ?

flint belfry
#

oh uh

spare quartz
#

gholf on im drawing furyr dart

flint belfry
#

its done and this has to be the shittiest nmap scan ever because

#

😭

spare quartz
flint belfry
spare quartz
#

HOW

spare quartz
#

im not that good at art

flint belfry
#

this is your reference

#

good luck

#

10000 comission

spare quartz
#

outline:

  • NCP work
  • stability across SSTPC configuration options
  • multitherad TCP using virtual thread method UDP uses
flint belfry
#

im still not sure what this pc is

#

but its most likely some computer in the same room as the printer

#

i dont think its a big deal considering it was a get request but like

#

im not taking chances considering the fact someone tried to run a bruteforce attack

#

actually it says 38-215 so building 38 room 215

#

ill find out where that is later and figure out if i can pin down the computer

#

good on the it department for making all managed computers have their hostname include the room information

timid quartz
#

@spare quartz is ur server alive

#

is U alive??

#

I don't think so

flint belfry
#

hers is probably down since it runs on her pc but if you have a reason i could let you test on mine

timid quartz
#

just uh

#

testing the http establishment

#

@flint belfry ^

flint belfry
timid quartz
#
fn main() {
    let config = rustls::ClientConfig::builder()
        .dangerous()
        .with_custom_certificate_verifier(SkipVerification::new())
        .with_no_client_auth();

    let mut conn = rustls::ClientConnection::new(std::sync::Arc::new(config), "javart.zip".try_into().expect("Failed to get server name")).expect("Failed to make connection");
    let mut sock = std::net::TcpStream::connect("javart.zip:443").expect("Failed to establish socket");
    let mut tls = rustls::Stream::new(&mut conn, &mut sock);

    tls.write_all(b"SSTP_DUPLEX_POST /sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75}/ HTTP/1.1\r\nHost: javart.zip\r\nContent-Length: 18446744073709551615\r\nSSTPCORRELATIONID:48abc\r\n\r\n").unwrap();
    let mut resp = Vec::new();
    tls.read_to_end(&mut resp).unwrap();
    println!("{resp:?}");
    sock.shutdown(std::net::Shutdown::Both).unwrap();
}
#

like this is all my code

flint belfry
#

ok i cannot be bothered to give you ssh access and teach you how to use reverse ssh so im just going to

timid quartz
#

a bit poorly formatted but

flint belfry
#

open a port on my router

#

but im only doing it for a short time since itll be exposed to the internet

#

how long do you need it open for

timid quartz
#

idk like

#

a minute or two at most

flint belfry
#

ok hold on

#

does it need to be 443 or does anything work

#

idk if i have 443 in use

timid quartz
#

uhh you can try making it smth else

flint belfry
#

ok

timid quartz
#

im guessing your domain name is meemkade.xyz

flint belfry
#

ok its open on port 9000 test rn im not keeping it open for long

flint belfry
#

or 108.218.55.35

timid quartz
#

oh oop

#

hold on I used 443

#

huh

#

alertreceived(handshakefailure)

#

odd

flint belfry
#

are you done since keeping this open is risky af

#

ok your offline so asusming your done

#

closing it

timid quartz
#

Yeah I was done

#

It failed the handshake for some reason

flint belfry
#

lmk when i should open it again

timid quartz
flint belfry
flint belfry
#

ok its open

timid quartz
#

bro it failed the handshake again

#

what

#

I can handshake fine with a normal website

flint belfry
#

blame atp 😭

#

or idk

timid quartz
#

ok you can close it

#

but im gonna try 1 more thing in a sec

#

@flint belfry is it still open

#

that's a yes

flint belfry
#

yes it should be

timid quartz
#

bruh freaking python script handshaked just fine

#

ok

flint belfry
#

ping me when your done testing since once again this is awful to leave open considering it has zero auth and i know that people nmap my ip sometimes

#

(and also im paranoid)

#

atp testing it is fine since she used reverse ssh

timid quartz
#

ok shouldnt be too much longer

timid quartz
#

@flint belfry you can close

rustic vine
#

😁

flint belfry
#

pihole isnt working for me rn so i couldnt respond

timid quartz
#

gg

flint belfry
#

fuck this update on second thought

#

nothing is working now

timid quartz
#

@flint belfry can you open one more time

#

I wanna see if this works

flint belfry
#

open

timid quartz
#

ok

#

the timeout does appear to work

flint belfry
#

@spare quartz the computer that made the get request was a computer in technical design and i found it but it dosent seem to be malicious or whatever

#

it also dosent have the 3d printer sofrware used to slice stuff and connect to the printers managment stuff so thats even weirder

#

not sure what to do besides just see if it happens again

pallid loom
#

@spare quartz @rustic vine what are we thinking

#

none of it is functional as of right now but as basic ui design

timid quartz
#

I think im done

#

been done lol

flint belfry
#

ok cool

spare quartz
#

It has authentication.

#

PAP Username and PAP Passphrase.

timid quartz
#

atp this protocol is so annoying

spare quartz
spare quartz
flint belfry
#

sudo sstpc --log-level 400 --log-stderr 192.168.10.123:30216 --cert-warn noauth noccp noipv6 novj ipcp-max-configure 1 ipcp-restart 1 defaultroute

#

this is the command

#

ive been using

#

all this time

spare quartz
#

why.

flint belfry
#

there is zero authentication and anyone could use the same command on the open port

flint belfry
spare quartz
#

ive literally told you a week ago there is auth 😭

flint belfry
#

it dosent matter what the command is it dosent have authentication to prevent anyone from connecting it and i am not leaving it open on my router

flint belfry
spare quartz
#

because it was the fastest for testing

#

do you not run —help at all

flint belfry
#

no i ran what you told me to do

#

and that isnt the point

spare quartz
#

dense

flint belfry
#

excuse me?

spare quartz
#

you may specify infinite pairs of these flags

#

do so!!!

flint belfry
#

unless it refuses to connect without auth but guess what

#

it dosent

spare quartz
#

it does

#

.sob

flint belfry
#

it does not

spare quartz
#

it literally does

#

You can’t send an NCP without auth

flint belfry
#

im liteally connetected with that command right now

#

and its working fine

spare quartz
#

send a packet then

#

and are PAP credentials set on the server?

flint belfry
flint belfry
#

the server dosent need auth for you to do shit

flint belfry
spare quartz
#

literally EVERYTHING

flint belfry
#

no it fucking dosent atp 😭

#

how come i can connect with zero auth in the command ive sent

spare quartz
#

if you do not specify a PAP pair it will open the server insecured

spare quartz
flint belfry
spare quartz
#

yes

flint belfry
#

point still stands

spare quartz
#

I DID

flint belfry
#

im not opening this on my router

flint belfry
#

id love to know

spare quartz
#

oh my god you are so dumb hold on

flint belfry
#

motherfucker you didnt add basic authentication or at least a refusal with no authentication

spare quartz
#

GOD CURSE DISCORD SEARCH

flint belfry
#

thats how every secured vpn works

spare quartz
#

yes I LITERALLY did

#

why do you think im yelling at you to use PP

#

PAP*

flint belfry
#

then why the FUCK does the command ive been using on the ubuntu vm work and whats stopping it from working on someones malcioous side

flint belfry
#

what that is

spare quartz
#

BECAUSE YOU DIDJT SPECIFY A PAP PAIR ON RHE SERVER

flint belfry
#

nor have you instrcuted me to do so

#

for the past 2 weeks

spare quartz
flint belfry
spare quartz
#

god let me wake up

flint belfry
#

you never gave me a new command or instructed me how to do so

spare quartz
#

literally pinged you about it a week ago hold on

#

OKAY.

#

Now on computer

#

did you never ever consider what these flags were for

flint belfry
#

yes i compltely forgot this existed because we kept testing shit over and over

#

you should make the server not even have an insecure mode

spare quartz
#

BITES BITES BITES BITES BITES BITES BITES

flint belfry
spare quartz
flint belfry
#

what specification

#

where

spare quartz
#

By default, authentication is not mandatory. If an implementation
desires that the peer authenticate with some specific authentication
protocol, then it MUST request the use of that authentication
protocol during Link Establishment phase.

timid quartz
flint belfry
#

god can you just make wireguard bind wg0 to the wifi interface or some shit at this point

timid quartz
#

and also implementing it in rust is mildly annoying

flint belfry
#

im so sick of dealing with this protocl

#

wireguard is what i WOULD have used if the kernal had net tun

spare quartz
#

because then i would have to do everything all over again and you'd still run into most of the same problems because i have to make my own tcp/ip stack due to limitations i have been burdened with

#

and "the protocol" makes no sense since you brought up an issue that was caused by user error

#

next time just stop assuming stuff about the server, please......

spare quartz
timid quartz
#

so well

flint belfry
#

i just said i didnt want to fucking open the port on my router

spare quartz
#

"lack of authentication" for one?

flint belfry
#

ive just been doing what youve told me to do and ive ran the same command that dosent have auth since day 1

#

im prone to fucking forgetting shit atp

#

im not a fucking robot for crying out loud

spare quartz
#

ive tried to inform you multiple times that it's had PAP this entire time and you didnt budge 😭

flint belfry
spare quartz
#

i dont really mind what you forget but constantly saying "it does not have x" even after i've said so is not nice to deal with

spare quartz
#

technically, it's just a password/user protocol for PPP

flint belfry
spare quartz
#

what part are you complaining about?

flint belfry
#

i had no idea what sstp was until now and som

#

let me finish

#

i had no idea what sstp was until now and some shit dosent support it natively
wireguard on the other hand is widely known

spare quartz
#

i feel like thats just a failure on marketing

#

SSTP isn't the problem here and really never was

flint belfry
#

the main issue i have with the prtocol is the fact how unstable it is and i dont know if its your server or the protocl

#

but a fucking

timid quartz
# spare quartz what part of it is hard for you?

rust's TcpStream has some funny default behavior where it will block when you .read() seemingly even if there is no data to read, unlike smth like python where you can just sock.read(num_bytes) and it returns whatever it got
the solution is setting a read timeout but still kinda annoying that it's a problem, and even then it seems the best solution is just to read a byte at a time and check individual bytes until it gets a read timeout (and then determine if the timeout is actually end of data or just some data missing)

flint belfry
#

icmp shouldnt crash the server (nmap)

rustic vine
#

yo guys this is pretty cool

spare quartz
flint belfry
#

like if i look at the server incorrectly its going to crash unlike wireguard

#

i DID try wireguard but once again

#

thank you freescale or whoever the fuck made the distro because it dosent have /dev/net/tun or tap

rustic vine
#

someone showed it to me today and I thought it was pretty neat

spare quartz
timid quartz
rustic vine
#

ye

#

saves you some work of copy pasting the test output

#

into the assertion

#

and it looks nice (bonus points)

#

I don't use rust though 😅

spare quartz
flint belfry
spare quartz
#

yes and i am still writing the server

#

the burdens are the fact that i was never hyperbolizing what i meant by "making the internet"

flint belfry
#

well sometimes you say that some instances of the server crashing (eg that computer a week ago sending back data crashing the socket) was something you couldnt fix so i would assume that at that point you stopped working on the server

#

i havent even tested the camera rtmp stream yet and i bet its probably going to make something die

spare quartz
#

no, those are physically impossible for me to fix without having full control of all computers on your network

flint belfry
spare quartz
#

standby as i read this

spare quartz
#

i do

#

what do you think tun does, anyways

timid quartz
#

wireguard has also been in development for like probably at least a decade

spare quartz
#

SSTP has been in service for twice that time btw

#

and it's backed by MS

#

it's again not a protocol issue

flint belfry
timid quartz
spare quartz
timid quartz
#

ig the same could be said for implementations of SSTP that can rely on a preexisting stack tho

spare quartz
#

because the linux kernel already has networking built in, that's mega easy to do

spare quartz
timid quartz
#

ig the same could be said for implementations of SSTP that can rely on a preexisting stack tho

spare quartz
#

yes

#

i know

#

elaborating specifically on your first half

flint belfry
#

i would recompile the firmware if i found the sorce code from freescale and tried to implment tun myself but

  1. i dont even know if thats possible
  2. if something goes wrong while replacing the kernal then the printer interface is completely fucked due to ssh being the only way to access the console from my knowledge
  3. this thing isnt just a mini computer so it dosent have boot options
  4. its not worth the risk of bricking the printer
spare quartz
flint belfry
#

and id rather not damage school property despite us probably going to get a bambu printer in a few years

flint belfry
#

because youve seen what ive tested aside from nmap

spare quartz
#

is nmap the only connection-hot thing you've tested?

flint belfry
#

i mean the printer has a rtmp stream used for the client but i dont even know thats worked

flint belfry
#

depends if you would call a file transfer connection hot

#

its only a few mb anyways

spare quartz
#

it only opens one socket so no

#

can you try that again?

flint belfry
#

i cant right now but i can try again later

flint belfry
spare quartz
#

it can, however, i have not added multithreading to TCP specifically because im worryed about stream desync

#

the bigger issue lies within the TCP ICMP dest unreachable loop, most likely... it'd probably work much faster if the hosts were known to work and no loop had to be done

flint belfry
spare quartz
#

it's possible but it'll require me not to do something else for more than 5 minutes

flint belfry
#

i can wait

spare quartz
#

you should always be given some end of stream

timid quartz
#

well

#

EOF is given if the connection is closed

#

which works smoothly

spare quartz
#

oh, then that's fine

#

why do you need to set a timeout on read?

timid quartz
#

Because SSTP doesn't close the connection, at least not during the setup phase

#

So yknow it'll send the HTTP response and then keep the connection open, not sending EOF because the connection isn't closed

spare quartz
#

because the data that comes after the http response is the sstp packet data

#

the content-length shows you this by being 18446744073709551615 bytes long

#

it doesn't want to terminate the connection

timid quartz
#

right but if I just .read() again it'll hang

spare quartz
#

are you absolutely certain your state machine works correctly?

timid quartz
#

waiting for data that doesn't come (because the client hasn't started sending SSTP stuff but)

#

it's just like, you can't do "read until EOF" because there is no EOF, so the best thing to do is just step through it one byte at a time

spare quartz
#

well that's perfectly fine

#

just make sure you send an sstp connection request after you read the http response

#

cuase thats what the server wants

timid quartz
#

but also like in python if you just sock.recv(num_bytes) on the HTTP response, it grabs the entire HTTP response until it reads it all and just returns that

#

whereas if I try to TcpStream::read_exact, it hangs until the buffer is full

spare quartz
#

i feel like the name says that though, doesn't it

#

do you have a read_unexact or something

timid quartz
#

yeees but

#

well there's normal .read() but there's no guarantee that all the data will get read

#

which is why calling .read() again would help, but instead of returning 0 it just hangs

spare quartz
#

if you want my opinion i just

timid quartz
#

(0 to indicate 0 bytes read)

spare quartz
#

ignore the length on all requests that don't absolutely need it

#

including sstp

timid quartz
#

that's not really what im doing though

spare quartz
#

yes i know you're trying to read the packets as how long as they tell you they are

timid quartz
#

I'm saying ".read() has no guarantee to read the entire HTTP response, so calling .read() again would be good to ensure that it returns 0 once it's done, but it never returns 0"

spare quartz
#

then uh, don't do that

timid quartz
#

"which is annoying"

spare quartz
#

just read until theres \r\n\r\n

timid quartz
#

but that involves annoyingly reading every byte

spare quartz
#

so?

#

nobody will care

timid quartz
#

I will care :(

spare quartz
#

well then you're caring too much

#

welcome to networking

timid quartz
#

smh

spare quartz
#
fun scanDelimiter(lookFor: String): String {
                    var bucket = ""
                    var pool = ""
                    while (bucket.length != lookFor.length) {
                        val charCode = newSocket.inputStream.read()
                        if (charCode == -1) throw IOException("Communication terminated")
                        val next = Char(charCode)
                        if (lookFor[bucket.length] == next) bucket += next
                        else {
                            pool += bucket + next
                            bucket = ""
                        }
                    }
                    return pool
                }
                protocolViolation(scanDelimiter(" "), "SSTP_DUPLEX_POST", "HTTP Method was not %s, got %s")
                protocolViolation(
                    scanDelimiter(" "), "/sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75}/",
                    "HTTP Path was not %s, got %s"
                )
                protocolViolation(scanDelimiter("\r\n"), "HTTP/1.1", "HTTP Version was not %s, got %s")
                var contentLengthOK = false
                while (true) {
                    val next = scanDelimiter("\r\n")
                    if (next.isEmpty()) break
                    when (next.substringBefore(':')) {
                        "Content-Length" -> {
                            protocolViolation(
                                next.substringAfter(':').trimStart(), "18446744073709551615",
                                "Content-Length was not %s, got %s"
                            )
                            contentLengthOK = true
                        }
                    }
                }
                protocolViolation(contentLengthOK, true, "No Content-Length")
            }
#

wow that is

#

yeah i should not have gone on twtiter today

timid quartz
#

wut

spare quartz
#

a fetish for blood donation??

timid quartz
#

💀

#

ok nvm

spare quartz
#

yeah 😭

flint belfry
spare quartz
flint belfry
#

why is everyones timeline hot shit 😭

#

i just get shitposts and drama and shit

#

meanwhile everyone else gets gore car crashes and what you just saw

spare quartz
#

well im gonna be honest it wasnt TOTALLY out of line for my feed

#

like, the only reason i saw it was cause it had one of my favorite characters in it for some reason 😭

#

yes

#

yes

timid quartz
spare quartz
#

I DONT KNOW

flint belfry
#

seeing aera deleted that not sure if i want to google it

spare quartz
#

japanese people are SO weird dude

spare quartz
flint belfry
#

oh THAT thing

timid quartz
#

yeah that thing

flint belfry
#

donating blood???

#

😭

spare quartz
#

yeah

rustic vine
#

stop bruh

spare quartz
#

it's JUST donating blood

rustic vine
#

its a disaster

#

oh ok wait

spare quartz
#

red cross ass post idfk

rustic vine
#

thats not bad thats goated

flint belfry
rustic vine
#

wait hold on

#

thats goated

#

probably saving lives

#

I approve

#

as long as its safe

spare quartz
#

😭

flint belfry
#

well its a fetish soo

#

idk

rustic vine
#

idk what that means

#

just addiction right

flint belfry
#

uhhhhhhhhhh

#

if i explained it here idk if im gonna get struck down soo

#

i would google it

rustic vine
#

that sounds like a bad idea

flint belfry
#

i really cant explain it because if i got warned for "toxic laughter" i dont know whats gonna happen if i explain what a fetish is 😭

spare quartz
#

no fucking wa

#

wait no thats not a plane dragon is it

#

sorry kade... its not your lucky day..

flint belfry
#

👁️ 👁️ 👁️ 👁️ 👁️ 👁️

#

👁️ 👁️ 👁️ 👁️ 👁️

#

👁️ 👁️ 👁️

spare quartz
rustic vine
#

I couldn't launch helldivers the other day cause I had a jar file running

flint belfry
#

rigged

spare quartz
rustic vine
#

java -jar

spare quartz
#

thats not running the jar file 🤓☝️

rustic vine
#

yea ok

#

suck it up

spare quartz
#

how though

#

was it occupying a file lock

rustic vine
#

no the anticheat prolly

#

maybe not cause it was a jar file

#

prolly cause the one I was running takes control of all keyboard inputs

spare quartz
#

why were you running a keylogger on yourself

rustic vine
#

no

#

it was some java swing app

spare quartz
#

all java swing apps are malware

rustic vine
#

true

#

oh

spare quartz
#

yknow what ... i think this is scp sl time

#

wtf they doing with all that ammo???

wheat hornet
flint belfry
spare quartz
flint belfry
#

DISCRIMINATION

#

RACISM

#

ABUSE

#

RIOT RIOT RIOT RIOT RIOT RI

timid quartz
#

@spare quartz is ur sstp server alive

#

wanna test http setup

spare quartz
#

OK

#

let me waek u ti uo

#

@timid quartz go

timid quartz
#

hold on

#

gotta implement terminating the request right

spare quartz
#

wdym

timid quartz
#

jjjjjjjjjjjjjjj

spare quartz
#

????

timid quartz
spare quartz
#

ew

#

this is why rust is bad

timid quartz
#

this is literally what you'd have to do in any other lang if you're reading byte-by-byte

#

😭

spare quartz
#

um

#

no

timid quartz
#

um yes

spare quartz
#

literally am reading byte for byte

timid quartz
#

oh I maen

#

I think I can do that too

spare quartz
#

make your life easier

timid quartz
#

urgh

#

rust only has built in methods for reading until a specific byte

spare quartz
#

why not just make your own for reading until a specific delimiter

timid quartz
#

ik..

spare quartz
#

back

timid quartz
#

rrragh

#

why is it saying wouldblock

#

I turned off nonblocking

spare quartz
#

i love iec reacrmea\

timid quartz
#

whyyy is it giving me WouldBlock errors

spare quartz
spare quartz
timid quartz
#

but I turned off that feature

#

but it still gives me that error

spare quartz
#

thatsound dumb..

timid quartz
#

did your server like

#

block mine

spare quartz
#

no

timid quartz
#

wtf

spare quartz
timid quartz
#

how come my stupid python script can still get a response but the rust code can't

spare quartz
#

i would say open wireshark, but..

#

cant do that with tls

timid quartz
#

unless I mitmproxy

#

ugh

spare quartz
#

?

timid quartz
#

idk I just like

#

can't connect with your server at all

#

try restarting it?

#

could be all the half-open connections screwing it up

spare quartz
#

not a possibility

#

but i have restarted it by request

timid quartz
#

ughhh

#

yep that did nothing

#

I got 1 response earlier

#

and that was it

spare quartz
#

[/174.209.192.243:10867;443 @ 20:24:29;839] Server failure outside of operation; java.io.IOException: Communication terminated
at bread_experts_group.MainKt.main$lambda$3$lambda$2$scanDelimiter(Main.kt:105)

#

sent an eof/eos on this line

timid quartz
#

idk it's dying when doing the handshake

spare quartz
#

cant you just

#

send a string for the https request

timid quartz
#

i am...

spare quartz
#

show your code

timid quartz
#
fn main() -> Result<(), std::io::Error> {
    let mut client = SstpClient::new("javart.zip", 443).unwrap();

    let http_req = concat!(
        "SSTP_DUPLEX_POST /sra_{BA195980-CD49-458b-9E23-C84EE0ADCD75}/ HTTP/1.1\r\n",
        "Content-Length: 18446744073709551615\r\n",
        "Host: javart.zip\r\n",
        "\r\n"
    ).as_bytes();

    client.tls_socket.write_all(http_req)?;

    let mut resp = vec![];

    loop {
        let mut r = [0u8; 1];
        let num_read = client.tls_socket.read(&mut r);
        match num_read {
            Ok(n) => {
                if n == 0 {
                    println!("connection terminated");
                    break;
                }
                resp.extend_from_slice(&r[0..]);
            },
            Err(e) => {
                if e.kind() == std::io::ErrorKind::TimedOut {
                    break;
                } else {
                    eprintln!("Encountered error {e:?}");
                    std::process::exit(-1);
                }
            }
        }
    }

    println!("{}", String::from_utf8_lossy(&resp));
    client.tls_socket.shutdown()?;

    Ok(())
}
spare quartz
#

and send a request again, im logging what characters you're sending now

timid quartz
#
use std::net::TcpStream;
use native_tls::{TlsConnector, TlsStream};

pub struct SstpClient {
    pub tls_socket: TlsStream<TcpStream>,
}

impl SstpClient {
    pub fn new(hostname: &str, port: u16) -> Result<Self, Box<dyn std::error::Error>> {
        let tcp_socket = TcpStream::connect(format!("{hostname}:{port}"))?;
        tcp_socket.set_nonblocking(false)?;
        tcp_socket.set_read_timeout(Some(std::time::Duration::from_millis(200)))?;

        let tls_connector = TlsConnector::builder()
            .danger_accept_invalid_certs(true)
            .build()?;
        let tls_socket = tls_connector.connect(hostname, tcp_socket)?;

        Ok(Self {
            tls_socket,
        })
    }
}

spare quartz
#

okay well this shows your https is working fine

#

send an sstp connection request

timid quartz
#

no but like

#

I should get your response

#

and then stop

#

but I stop while reading your respose

spare quartz
#

weird

timid quartz
#

ugh why has literally everything involving networking in rust

#

absolutely sucked

spare quartz
#

ill just leave the server on

#

HAPPY APRIL FOOLS ... in 8 hours

#

@flint belfry doing serv download test momentarily ...

#

what links does your sserver not block

#

school server*

#

also pap working BTW

#

(i set you a new username/passphrase, i can send it in dms by request)

flint belfry
#

they block popular sites like reddit and limit YouTube

#

speed test should be fine