Pinned Tweet
Never Forget that Sheldon Whitehouse paid a man to shoot out my car window with a high powered laser, all because he was upset that I stopped his conspiracy against the Constitution.
Now that the thread's message queue is created, I need to build the system that it talks to :D
So I get a break from the asm for now.
The core is already there, ready to route user input;
but the container GL code, that needs to be "colored in"
That got damn employed russian said that to implement the threads in this way was too hard.
I beg to differ, suh
Successfully created the message queue in assembly.
Now time for the fun part;
Creating the receive and send loop!
I'm thinking that I should use a Futuex Wait operation to put the thread to sleep.
Gotta set the futuex up from the thread group leader, write addr to stack
Once I get my system built,
I'm gonna devize a system where I can use a potentiometer to program my processor.
Once that's done, I'll like it to a guitar string.
Thus I'll be able to write programs via the pursuit of frequency
The States where we see constant critical infrastructure failures and explosions, even if you assume the State red, it's likely that's where the greatest concentration of enemy units are.
And then you realize that your syscalls are just a construct of the linux kernel.
Yes.
We can go even lower
The glory of using this function swap method, instead of using a global variable directly, to inject the thread's stack address, is that function address is more-or-less static.
You don't set its value.
Thus you don't need to lock the resource.
No race condition 🙂
I have achieved a magic trick!
My system has a series of function pointers in an arbitrary stack; but it needs to init the thread stack.
Instead of using a global variable, I write the address as a function pointer,
Preemptively extract it, and replace with an empty function.
Okay. I may have a magic trick for subverting the need for a global variable for this stack initalization....Stand by
Simple global variable to handle address injection was used.
I will need to implement some form of locking, but things get funky when you start to create your own stacks.
Symbols break, and you can't just run any ol' function.
Now the hard part.
In order to use the threads, I need to modify the %rsp and %rbp to point to the generated stack for the program image.
but this function is global, and I cannot simply pass a parameter into it.
Need a secure way to get my true address into this function.
Eventually the depravity of being locked out of society will bubble over into motivation.
Though it won't be motivation to conform to the Despotism of Communist States.
No participation from me until the State of Rhode Island pays for the crimes it committed against me.
To do message queues in my threads, I need to implement it in assembly.
luckily, this is easy 🙂
create
rax=0x44, rdi=key, rsi=flag
send
rax=0x45, rdi=id, rsi=&buff rdx=msgSize, rcx=flags
recv
rax=0x46, rdi=id, rsi=buff, rdx=msgsize, rcx=msgType, r8=flags
To take a break from the complicated linux code,
I've decided to jump head first into solaris systems
calls it 26 characters; but it's encoded to 47 bytes
Base-1353 encoding, so I can fit 256-bit values, like “96cca2a0c8a3263c74ef36274abf55f410d992034d16e8285811a9ad3fc59c13”, into short 26 character strings, like “ᓒᔳᣏዧᐎᑙᖜዌᙔᐸƫȶƃᒨዊጶᙵኻѫyፐᎉᑫᖫᘪᒩ”.
Also, I think these sigils are beautiful.
johnservil.github.io/sigil/p…





