#development
1 messages · Page 187 of 1
Yes
i thought you were banned
Can you try it right now? If so I'll send a build
Yes
It's incomplete but very much functional
Got unbanned yesterday
someone should make an oneko tweak
I'll send you a build in shortly
Ok
does anyone here know the ins and outs of C
like heavy internal knowledge
i want to know how C stores the size of stack memory allocations in its compiler and how it expands the sizeof macro so accurately
Don’t fucking play telephone with me again yung drink 
and how you can pass practically anything to sizeof and itll return a valid size, as expected
You made me fix a problem you had all the power to fix yourself
because if you allocate, for example, a buffer of size 16 with ints, itll allocate stack memory of 16 * 4 = 64 bytes
thats fine, but if you pass that buffer to another function, how do you maintain the size of the buffer even if youre just passing a pointer
int main() {
int buf[16];
other(buf);
}
void other(int *buf) {
printf("%d\n", sizeof(buf)); // how does it know the size of buf here?????????
}
thats the "definition" of a fat pointer of course
but i want to know how C actually passes metadata like the size along with an argument to another variable
how i do it is to store the size as a long in the first 8 bytes of a buffer allocation on the stack and then always offset lookups and store operations by 8 bytes to account for the size long
but thats definitely not how C does it because it does not comply with the ABI when you, for example, pass a string literal to a C interop function
which now completely breaks because it isnt expecting a random gibberish 8 bytes at the start of the string
which is expected but i see no other way to effectively communicate this size
perhaps with a null byte???
yeah i just tried this now but NOW im ever more confused
because i remember having an example where i accurately got the size in another function
if it was a null terminated array then you can just count it that way and multiple by the object size (int)
yes but wouldnt you still need to iterate the array until you encounter a null byte
i dont think i want a size lookup operation to be O(n)
yes
sizeof is purely compile time
i am aware
but i literally had this problem for so long where i thought that C passes a fat pointer to other functions containing metadata
its reassuring that sizeof just returns the size of the type that the expression inside contains
because then i can just compile the expression inside and return the size of the type lmao
pointer to a value that also contains other metadata along with it
for example, slices in rust are fat pointers
thats how its defined in elle actually lmao
not quite a struct but a sort of typedef
C isn't really known for its great memory safety features
i dont know what the fuck happened when i tried this earlier
its legit just a struct lol
actually c has a fully managed runtime
lmao yeah i figured out how to do dynamic dispatch and stuff in C
undefined behavior 🔥
you can literally have vtables and polymorphism in C
we could even call it c++
lmao yes but its fun to reimplement C++ features in plain C
i can't remember if that was the first time or the second time
If you send it my way, I can test later today after work
I found this though: #general message
ok wait so then what do i do
buffers (static arrays included) defined in the current function return their real size
anything else is just compiled and the size of their type expression is returned?
is that how it works in C?
because if you write this
int other(char *buf) {
printf("%d\n", sizeof(buf));
}
int main() {
int buf[10];
other(buf);
printf("%d\n", sizeof(buf));
return 0;
}
``` you get 8 and 40
the first one is sizeof(int[10]), the second one is sizeof(char *)
on a 32-bit system the second one will be 4
yep correct
i have this fucked up analogy that for some reason it returned 40 for char * aswell and i was so confused
yes except i thought doing int buf[10] would bring a variable in scope called buf that is a pointer to an array of size 40
other() could be in a different file, different library or even injected from elsewhere. C pointers don't have any metadata at all so there is no way the function could know the size of the buffer
how does C even do global variables
or wherever you want it if you force it
c or asm, take it or leave it
in elle globals are literally just functions that are automatically called when theyre referenced
which makes them inherently constant because you cant redeclare functions
its less a global and more a global getter
That'd be great. What device/iOS version do you have?
@placid kraken in C what you see is what you get, there are no autogenerated getters or fat pointers or anything like that
holy fucking shit
I FIGURED OUT WHY
IM ACTUALLY
ok so take this code right
i wrote it in a hurry to see if C returned the size correctly in another function
i just so happened to make the buffer size 2, so in my head the array size is 8 bytes
it prints 8 to the console
💀
so i thought that it did that correctly
but it instead just prints the size of a long
so 8 bytes
instead of the size of an array
which in this case is ALSO 8 bytes
on my 64 bit system that is 8 bytes
unfortunate coincidence
😭
now you know
i mean i guess i can say same (not really)
inline IR when
(C compiles to 15 different IRs)
wen eta uint128 support
elle is clearly better than C because it has inline IR
for their lang
found out the creator of llvm and clang also made swift yesterday :/
real!!!
there was an article where someone made hello world with the main function defined as int[] main = { 0x..., ... } but I couldn't find it
force it into text
Anyway if anyone is interested in testing this tweak, send me a DM. (i don't have any test devices) (please i'm desperate)
https://0x0.st/XTLB.mp4/shijima.mp4
i’ll test it, iphone 13 16.1 or a iphone 7 14.?
I can also test
I have an iPad 7 that is jailbroken
I have an iPad on iOS 15 Dopmaine (I also have an iPhone 4 on iOS 7 if you want)
ok guys
with this source code
external fn printf(char *formatter, ...);
fn other_function(int *buf) {
printf("2. %d, %d\n", #size(buf), #arrlen(buf));
}
pub fn main() {
int buf[100];
buf[0] = 123;
printf("1. %d, %d\n", #size(buf), #arrlen(buf));
other_function(buf);
return 0;
}
is this the expected result?
i dont do any weird stuff by putting the size at the start of the buffer so its C ABI compliant now
i just store the size of it along with its type in a hashmap with a key of a temporary enum variant
then the compiled statement just looks up the temporary in the hashmap and sees if it has a size defined in there
if it does then it returns that otherwise it just returns the size of a pointer
its not rust its my own language
Oh
And in other_function() arr_len should cause some kind of error
Because the length isn't known and cannot be known
oooh is it compiled or a runtime one
yeah i was right
compiled
llvm or qbe?
qbe
Nice
buf isnt defined in the hashmap for that pointer so it just returns the size of a pointer
because #arrlen(buf) is identical to #size(buf) / #size(buf_ty)
they use the same underlying compilation step
it probably should return an error i can set that up now
i can just assert here
or actually it should be length not size
i was dividing by buf_ty but when buf_ty was stored as its pointer variant rather than the inner type
external fn printf(char *formatter, ...);
fn other(int *buf) {
printf("(other) %d\n", #size(buf));
}
pub fn main() {
int buf[100];
buf[0] = 123;
printf("(main) %d, %d\n", #size(buf), #arrlen(buf));
other(buf);
return 0;
}
better
and now if you try to use arrlen on a thing that isnt defined in the current function it will also crash
Is there a way to know the owner of a folder outside of the sandbox on stock iOS via an app or smth ?
Yes that’s the thing I want to do
I mean I could have figured the code out myself, but thanks anyways
he sends it for people like me who dont know code 👍
should defer call its deferrers on a continue expr
if youre continuing to the next iteration in a while loop for example
it calls it when you return, or call break or when the loop goes out of scope
but does continue take it out of scope
as long as the file youre trying to access doesn't need any special entitlements to access (i.e. from another apps bundle) this will work
it is what it is
:/
Yoo fiore is back
wouldn't you need something along the lines of
com.apple.private.security.container-manager or com.apple.private.MobileContainerManager.allowed
thats the way i thought of it
Tbf I only need to check the owner of a folder inside of /var/mobile/Library so containers will not be an issue
(And if possible something inside of /var/mobile/Containers/Shared/AppGroup)
I will thanks
Else if I’m smart enough I can pull out big gun
i dont know what the fuck i was even doing
somehow defer already works for control flow
im very surprised
because this is a parser level operation not a compiler level operation
its not as if its just placing free right before a jmp call
@grave sparrow Well, answer is, apple don't allow it :(
Hi,
Did anyone manage to build trollinstallerX?
(I know I can sideload it, I'm just testing the build and looking through the code!)
On build I get
error: redefinition of module 'XPC' cause of this file
The base file where it's defined is in ios 17.5 sdk
/iPhoneOS.sdk/usr/include/xpc.modulemap
Thanks
PS: If there's another "loader" for trollstore or dopamine I can build myself I'm interested
use xcode 15.3 or something
Ok I'll look into it, thanks
I have Xcode 15.4
@sonic totem u may know?
Ok great, I just had to rename the module in its definition in this file facepalm
module XPC2 [system] [extern_c] {
Of course I find the solution right after asking ^^
weren't there like dev videos recently released by apple that go into the basics of development? i cant find it but i remember seeing it
i remember seeing a video thumbnail with two people on it
world's worst description but that's all i remember lol
Yeah so iOS 17.4 SDK added XPC headers, which breaks TrollInstallerX compilation… next release will have a fix for this
If you do want to build it now, drop me a DM and I’ll show you how to
Oh great, this is a much easier way to do it actually
i made Option<T> but in typescript
type Option<T> = {
__internal__: {
value: T | null,
some: boolean
}
unwrap(): T,
unwrap_or(value: T): T,
expect(message: string): T,
is_some(): boolean,
is_none(): boolean
}
const None = {
__internal__: {
value: null,
some: false
},
unwrap() {
if (this.__internal__.value === null) {
throw new Error("Attempted to unwrap on a None variant.");
}
return this.__internal__.value;
},
unwrap_or<T>(value: T) {
return this.__internal__.value ?? value;
},
expect(message) {
if (this.__internal__.value === null) {
throw new Error(message);
}
return this.__internal__.value;
},
is_some() {
return this.__internal__.some;
},
is_none() {
return !this.is_some();
}
} satisfies Option<null>
function Some<T>(value: T): Option<T> {
return Object.assign({ ...None }, { __internal__: { some: true, value } });
}
function match<T, U>(option: Option<T>, val: { Some: ((val: T) => U), None: (() => U) }) {
if (option.is_some()) {
return val.Some(option.unwrap());
}
return val.None();
}
the semantics are almost exactly the same
// TypeScript is smart enough to infer that this function returns Option<string>
function getSomething(input: number) {
if (input === 3) {
return None;
}
return Some("meow");
}
function main() {
const a = getSomething(1).unwrap(); // `a` is now "string" not Option<string>
const b = getSomething(3);
console.log(a);
match(b, {
Some(val) {
// `val` is "string" not Option<string>
console.log(`We have ${val}!`);
},
None() {
console.log("We have no value :C");
}
})
}
main()
Oh well nice if I could find a simpler way but I didn't check if it's reliable ^^ Thought that the module naming mattered so I was reluctant on doing it
for now
👍
hellooooo
hellooooo
hellooooo
hellooooo
It was not meant to be
What have you done
null is pretty neat
have we not learned that null is the worst thing to ever exist in a programming language

imagine needing a breaking change to RELAX your requirements (going from option back to an assured type)
rust moment
oh yeah actually
i was gonna ask but i forgot
is there a more efficient way to do this
external fn printf(string formatter, ...);
fn concat(int size, ...) {
variadic args[size * #size(string)];
defer free(args);
string *strings = malloc(size * #size(string));
defer free(strings);
long length = 0;
// Collect the strings and the final string length
for int i = 0; i < size; i++ {
strings[i] = args yield string;
length += strlen(strings[i]);
}
string result = malloc((length + 1) * #size(char));
int index = 0;
// Construct the final string
for int i = 0; i < size; i++ {
string current = strings[i];
for int j = 0; j < strlen(current); j++ {
result[index] = current[j];
index++;
}
}
// Include null terminator
result[index] = '\0';
return result;
}
pub fn main() {
string res = concat.(
" ╱|、\n",
"(˚ˎ 。7\n",
"|、˜〵\n",
"じしˍ,)ノ\n"
);
printf("%s", res);
return 0;
}
essentially:
- collect the strings in an array and sum their lengths to get the size of the final string
- malloc that size + 1 (for null byte) and presume it as a char pointer
- go through each string and add each char to the final string
- add the null byte
- return the pointer to the char array
there has gotta be a better way than to loop through every string
current solution works though :3
for the record i do not want to use strcat because im pretty sure that basically just does the same thing lmao
i know that C has the weird thing where you can do "str1" "str2" and it automatically combines them but thats such weird behavior lmao
python does that I think
It's a nice way to prevent long lines
that's all just compile time constructs though
Like
const char *str = "This is a very long line of text that will easily exceed "
"80 columns.";
It's also useful for macros
Why are you creating a heap buffer to store string references
that seems very inefficient
and you aren't freeing it either
so there is a memory leak
because elle currently only allows for creating stack allocated buffers with literals only
i did forget to free the memory for that though lmao
it turns out i can actually pass compiled expressions to alloc on the stack
so i can make it stack allocated quite easily if i change the compiler to allow parsing expressions that arent literals in the []
i dont really see why, you have \
#define Notification(name) "com.example.myapp/" name "Notification"
Notification("Test") // "com.example.myapp/TestNotification"
ah i see
It's a common feature and I doubt it'd be too hard to implement so why not have it?
I've never used \<LF> in C (does it actually work?) but I think that would introduce a lot of unintended spaces to the text because of indentation
lol sure i can implement it
I don't think it works in C
in rust you can use a different type of quote which removes that extra whitespace in front up until the same level as the first line

That sounds unnecessary
it makes the code less ugly because you don't have to throw a long many line string to the 0 line of indentation
and don't have to repeat the open and close quotes every line
lmao i thought i was doing it wrong but the IR is just emitting incorrect asm for my instruction set
its emitting
and x1, x1, #1048575, lsl #12
which fails because this isnt valid grammar
you have to left shift x1 before you and
this compiles
lsl x1, x1, #12
and x1, x1, #1048575
``` and runs fine
im gonna have to do some magic sed in the makefile to convert expressions that do that
smh couldn't C atleast have used the + like other languages
use <>
what
some languages like visual basic use <> for string concat
like "str1" <> "str2"
actually i think vb uses it for !=
but i know some language uses <> for concat
Lua uses ..
wait what
OMG DISCORD
sorry
i accidentally 1984d your message because discord desktop is so fucking slow
Litterally 1984
what did you even say lmao
I said I liked having concat and addition as separate operators but it always threw me off when switching languages
oh
yeah i agree
at least theres some operator
(cough cough C)
i think i will use <> for concat in elle
That seems hard to type
its not you just shift + , and shift + .
least insane "fix"
# Fix codegen issue when taking size for a buffer as an argument
$(TMP_PATH)/out.tmp3.s: $(TMP_PATH)/out.tmp2.s
sed -E 's/and\t(.*), #(.*), lsl (.*)/lsl\t\1, \3\n\tand\t\1, #\2/g' $< > $@
it works tho
Why not look at the source code for the transpiler or whatever and modify it?
idk lol
its a pretty small thing
i dont wanna have to read C code for a whole transpiler to assembly
stack allocated tho
external fn printf(string formatter, ...);
fn concat(int size, ...) {
variadic args[size * #size(string)];
defer free(args);
string strings[size];
int sizes[size];
long length = 0;
// Collect the strings and the final string length
for int i = 0; i < size; i++ {
strings[i] = args yield string;
sizes[i] = strlen(strings[i]);
length += sizes[i];
}
string result = malloc((length + 1) * #size(char));
int index = 0;
// Construct the final string
for int i = 0; i < size; i++ {
string current = strings[i];
for int j = 0; j < sizes[i]; j++ {
result[index] = current[j];
index++;
}
}
// Include null terminator
result[index] = '\0';
return result;
}
pub fn main() {
string res = concat.(
" ╱|、\n",
"(˚ˎ 。7\n",
"|、˜〵\n",
"じしˍ,)ノ\n"
);
printf("%s", res);
return 0;
}
now back to my original question
is there a way to prevent needing to loop so much
maybe i can cache the lengths so it doesnt need to loop through the string for strlen twice
ok a little bit better
how does C calculate the memory address of a block scoped variable? when you do this for example
int other(int *something) {
printf("%d\n", 0[something]);
}
int main() {
int a = 5;
other(&a);
return 0;
}
i know it creates a stack frame
then variables are placed on it with an offset from the memory address of the start of the stack frame
but my question is more.. how do you calculate that offset
logically i tried to see if main + 4 worked where main is a function ptr and 4 is the size of an int
but that doesnt work, as expected ofc because i was pretty sure that wouldnt work
im assuming due to alignment issues or something maybe
for some reason the offset is 11
ok after doing some more analysis i figured out that it pads the current function pointer to the nearest multiple of 8 and then allocates the size of the type from that address
for example, the address of main is 4198761 which is not a multiple of 8, however if you do 11-4 its 7. 4198761 + 7 = 4198768 which is a multiple of 8
however confusingly if i declare another block scoped variable, the address offset of that is +18 instead of +15 which is what i would expected
because that doesnt make sense in any matter
as it does not cause a multiple of 4 or 8
oh wait it seems like i did this completely wrong
yeah the function code resides in a different section to the stack
no .text
.data is for literals like ascii constants and floating point values
yes
but i still have no idea how to get the address of any stack allocated variables lmao
oh globals
QBE doesnt provide any sort of instruction for that
apparently thats .rodata
how does C do it

when you make a pointer
idk qbe is storing in .data
idk anything much about ELF or assembly
i dont know, naturally resources for such a low level problem like this are far and beyond
but ill keep looking
on a scale of 1 to 11 how bad is reading clang code to try and figure out how it does stuff like that
where 11 is the worst and 1 is the best? maybe 7 but i dont really like reading assembly
oh i was assuming it would generate llvm IR in the clang code
oh i assumed you were using llvm because i didnt know what qbe was
oh
in llvm everything is a memory operation so that you can get around having to write SSA form (which basically has a bunch of restrictions like variables only being assignable once)
so getting the address of a variable becomes pretty easy iirc
what is ssa form
In compiler design, static single assignment form (often abbreviated as SSA form or simply SSA) is a type of intermediate representation (IR) where each variable is assigned exactly once. SSA is used in most high-quality optimizing compilers for imperative languages, including LLVM, the GNU Compiler Collection, and many commercial compilers.
The...
that sounds pretty neat
yeah it is
do i learn visual stuido
would you like to develop anything using c# or .net or that general sector
visual studio (.*) products are soooo slow
but i guess in w*ndows you have no choice
winodes
then perhaps you should familiarize with it
Build a Linux app and run in it wsl
write your program in binary like a real developer
all programs are written in binary
010101001010
I say we write it directly to hdd
write your program in binary by hand with 0b into a c buffer like a real developer
Mach-O my beloved
is that better
alr on Linux
no
want to try vs since its easy to develop with
just do it lol
(The languages inside it however)
hydrate do u know
desktop envs are broken
do u know
chatgpt 
I’m just gonna say it now, the best I know is swift, my opinion would be useless
I want a fully working computer first tbh
oh ok lol
this dingus archlinux with hyprass is not working
like my man is dying
it needs a format
also wdym c# is easy
and visual basic is just c# but for “inexperienced” devs
It’s easy but I dislike it
cuz isnt int main() a function
you’re thinking of c/cpp
cop
my autocorrect is gonna make me explode
int is the data type and main is the function
so I don’t do variables in function
I outofmemory’d the school exam machine during my compsci exam yesterday
should i automatically force the main function to be exported in elle even if the user doesn’t declare it as public
in the parentheses
the parameters
idk what youre asking
Compiler config -forcemain being set by default 
no
because currently if you dont export the main function it kinda just won’t run anything and will fail at the assembling step lmao
oh then yes
might have to learn c over summer ngl
Accidentally made an infinite loop and forgot to control c it 
Low and behold I lost like 10 minutes on my exam
wtf
given the papers are like 1h 30m
gives me enough time to add extra detail to my answers lmao
like comments explaining why i wrote it in a specific way
this is me
deer
it’s always been like this though lmao i swear they always give us wayy too much time for those exams
cs paper 1 this year was only 12 pages i finished it with an hour left
shit i hab exams
Did this precisely
Got a 59% but a pass is a pass 
real 🙏
i only got a 7 for paper 1 in my mocks lmao
that’s about 60% iirc
Dw I just got cooked in my exams 👍👍
the ones this year?
they were pretty easy lmao
the only thing i forgot was the ipv6 format i accidentally wrote the format for mac address instead
BRO WHAT
Your super smart 😭
nice
i’m gonna continue flora and v3 development soon tho !!!!!
now that i’m finally done
i have soooo much stuff in my notes accumulated over the last few months
Nah a level mocks
Got an A, 10% over the boundary, so my predicted is still an A
When everyone else who got an A got A* predicted
wdym i looked at the eduqas and aqa spec and it’s so easy 😭
lmao don’t compare yourself to others
an A is still an A
Yeah but they hate me fr
Mfs said they’re gonna predict me a C in further maths
I said no
lmao does a lower prediction lower your chances for uni at a conditional offer
Having a ‘chat’ tomorrow
Yeah well I’d be applying with A*AC
Which i can’t have
Ideally I can get Astar Astar A
Yes
because some unis and workplaces don’t recognise it as a full a level they consider it “half” of one
we’re forced to take a level further maths as an extension to a level maths here 😔😔😔
which means i would be technically taking 4 a levels
maths, fm, cs, and physics
ah
i might drop a level physics because well it’s physics
might stick around for the astrophysics topics tho
didn’t even know you could do that so late into a course
You can’t 
they told us if you wanna switch you would have to redo it as an extra year
I’m just doing it anyway
lmao insane
i would’ve thought a level cs would be like the easiest a level for a person who has the developer role in the rjb server
Nah it isn’t too bad but it’s a lot to do in that time
With maths and further maths on the side
i looked at the a level maths spec and it looked like a paper i can already do so i’m hoping a level fm is more of a challenge
WHAT 😭
It was y12 exam results day tbf
A lot of people took it this year and realised they don’t actually need it
do you need it if you wanna major in higher pure maths at uni
i have this problem
do you maybe have any idea
I have no idea, sorry
okie ty anyway
ITS NOT ME BEING INSANE
it seems like QBE wants me to use stack allocation to take the address
instead of just declaring them as temporaries
that will require some heavy compiler restructuring so i dont think ill do that right now
yea but i want the memory address of stack allocated variables
int a = 5;
&a // literally doesnt exist
what the fuck
why is font book using 300mb of ram
what 😭
isnt that a little excessive github
apple is the new electron
Nah they give it out to anyone these days
Thunderbird is literally a browser
parts of it are*
like the email previewer
It's litteraly a Firefox fork
but the entire ui is gtk is it not
being gtk doesnt make it safe from memory leaks
I mean their main ui is native I think but it is still a browser
i didnt say it did
But email previews are for sure browser windows
yeah that is obviously
ive had it open for multiple days straight so if memory was leaked it had enough time to accumulate
Even with plain text
leaking memory in any program is weak
Hold on let me find a screenshot I took the other day
idk why memory leaks are such a common thing
i guess people dontk now how to write code
i blame nightwind
horror
in like 2018 i had a screenshot of logitech gaming software using 54 GiB of ram
I did have like 100 tabs open and I have 32GB of ram so it's not like I needed it
i have screenshots of lunar client instances of minecraft using 120gb of ram even though it was "capped" at 4.1gb
when you set Xms it sets the max ram usage of the JVM
so thats why it can use more than what you set, if it's using native libraries that leak stuff
lol yeah but still
Make a Java program that launches itself with a special flag and also increases the Memory set to itself
Tbh 120gb of memory is crazy to just have
what
Oh
swap is still memory 
trueee
I once had a laptop where it's disk was so slow, that it actually would have benefited by using a usb flash drive for swap
when you create a stack allocated variable it now allocates memory of the size of the variable you want to create, then stores the value at that address, then it loads the value at that address and returns it
yay
however the name of the address compared to the variable name is predictable
so to get the address i just did this :3
sometimes i just fucking hate apple
this is literally all i needed to change that was so easy
i thought i would need a huge rewrite of the compiler to allow for that
is there any way to get xcode 16 without a developer account
do direct dl links require auth
alloc as in like
to the stack?
or to the heap
stack
im p sure they do
rip
boobs
oh
I was just given some pure christian training by @grim sparrow thanks so much amy i appreciate ur effort in making me a more holy servant to god
LMFAO HAHAHA
finally this server is becoming catholic
she made me even more of a degenerate im sorry evelyne
???
pure 697652394158456852 training
i almost forgot
i need to write a program that returns whether the stack grows upwards or downwards for the current architecture
i can do that now because i can get the address of stack allocated variables
lol
do you guys know what the allocation limit is on the stack before you stack overflow
or is that dependent on arch and stuff
i see
fn direction() {
int a = 1;
int b = 1;
return &a > &b;
}
``` this is all you need right
it’ll return true if it grows downwards and false if the stack grows upwards
i could also do
fn direction() {
int a = 1;
int b = 1;
return &a - &b;
}
if it’s positive the stack grows downwards, if it’s negative the stack grows upwards
interesting i’ve never heard of that lol
not really
the address is just a number
oh true actually i forgot about that
well in the case of elle it allocates on the stack
i remember seeing a lll video about this a few months ago
maybe i should rewatch that
oh also i fixed an issue earlier with the declaration of stack allocated thingies
when declaring before, it loaded instantly and then returned that value and then never loaded again from that address
so if you tried to put a new value at that address the original value wouldn’t change because it was already dereferenced when first allocated
so now when you reference an identifier it sees if it has an address (ie it’s stack allocated) and if it does then it re-loads the value at that address
Which way does the stack grow? What even IS a stack? In this video I'll talk about an interview question that still haunts me to this day.
🏫 COURSES 🏫 Learn to code in C at https://lowlevel.academy
📰 NEWSLETTER 📰 Sign up for our newsletter at https://mailchi.mp/lowlevel/the-low-down
🛒 GREAT BOOKS FOR THE LOWEST LEVEL🛒
Blue Fox: Arm Assembly I...
wait i think hes about to do it, im gonna guess that youre gonna take the address from 2 variables each in different functions instead of taking them from the same function
oh interesting hes using recursion???
ok well thats basically the same thing
this is what i meant
int a() {
int x;
return &x;
}
int b() {
int x;
return &x;
}
int direction() {
int *A = a();
int *B = b();
return A > B;
}
int main() {
printf("The stack is going %s\n", direction() ? "up" : "down");
return 0;
}
@timid furnace please help me im dying against launchctl
permissions are right as far as i know
@restive ether @grim sparrow https://twitter.com/tsarnick/status/1803920566761722166 ughhhh why are all AI people just so trash
lmao
you TRAINED your models on those people's works
wtf do u mean they shouldn't have been there in the first place
isnt that the same bitch who squirmed when the interviewer asked why they used marvel films for training
YES
launchcontrol doesnt work on my xserve so i cant
use it
it just goes to Application not responding
CLI says this
and then it just
never continues
deref exists now
external fn printf(string formatter, ...);
fn other(int *a, string *str) {
printf("(fn other)\n\ta = %d\n\tstr = %s\n", *a, *str);
*a = 542;
}
fn main() {
int a = 39;
string str = "Hello world!";
other(&a, &str);
printf("(fn main)\n\ta = %d\n", a);
}
almost C
just need typedefs and structs
lmao
Odd question for yall…
I have this script
#!/bin/sh
a=1
b="`command I control output of`"
if [ $a -le $b ] ; then
echo example
fi
Is it possible to get a command injection going here?
It’s using busybox ash
If you control the output of cmdicontroloutputoff, maybe
I do
As you can assume from by the name
I'm not that familiar with bash but can't you just like add a ; afger and then whatever command
I can definitely make the if condition fail, but I can’t seem to get it to let me execute a new command
It’s busybox ash, not bash
Oh I'm a moron I was reading it as command iControl output off
With some basic testing, doesn't appear to be possible
I'm also assuming you just control the command's output and can't just run code as it
Correct
Sounds like they try to prevent this kind of thing
how does one disable these
2024-06-21 22:07:19.579119-0700 PlayGround[24005:4577244] [availability] Can't find or decode reasons
2024-06-21 22:07:19.993184-0700 PlayGround[24005:4577244] [availability] Can't find or decode reasons
WebSocket Data Size: 29523 bytes```
ios 18 errors in console
in xcode
we talked about this before, reframe mentally
can't afaik, just ignore them
what framework draws the lock screen clock?
its there on ios 15 but not ios 16+
I think someone said my tweak works on iOS 16
But I don't own an iOS 16 jailbroken device
It also works on iOS 7
yeah then i would assume it does not work on ios 16 because the structure of the clock would have had to completely change
when they introduced different fonts and widgets and whatnot
Oh I think the iOS 16 test device was an iPad which didn't change
oh
¯_(ツ)_/¯
Isn't there a new internal app for customizing the Lock Screen?
is there?
I assume that's what they mean but I think PosterBoard.app is just a UI service shim
much like that the Photos one
PhotosUIServices or smth
Oh yeah
Would it be responsible for the user defaults?
com.apple.PosterBoard, "1.0", "PosterBoard" also
It has its own bundle ID whatever
No related service on my device
that could just be the framework's
No because I remember finding a way to launch PosterBoard.app itself
and it would just be the lock screen
oh I see
so it's like Spotlight.app then
i'm super lazy so if someone could run strings on PosterBoard.app i'd appreciate it
I also do not have a jb device and i really do not wanna download an iPSW
nm too if possible, Monsieur
thank uuu
anytime
yea
the only mention of a service is PBFPosterExtensionDataStoreXPCServiceGlue, and there r none of UIRemoteViewController
wow but that's kinda surprising
wait
so how does the Wallpaper section of settings work now?
oh it could just be calling the actual framework
im stupid lol
i have no idea how u find that disappointing at all
unhookable garbage
He has a skill issue in hooking Swift
well thank god the world is not built around jailbreak developers lol
ITS NOT A SKILL ISSUE
the Swift runtime SUCKS
I'd love my entire life to be dedicated to this community (I hate it) 
hahaha
I will leave at some point lol
Yeah we all grow up
I'm not at the moment and I don't think I'll go back to it
Hello Nightwind! I just wanted to let you know that I agree with this statement.
hopefully make a living from it
maybe i'll maybe like, a tweak or 2
Whatchu up to
because it's fun
you can do it goat
job
oh right
i think u saw xpcconnection?
who
what
my priv mf
go
oh
ye ah
fr
💪🔥💯
ok then dont
You'll make it ez too
im gonna start bricking my phones trying to figure out the 0day
yeah what 0day
this is like trying to learn how to cook by starting a kitchen fire
inshallah
yeah that's the first step
I agree on that too 👌
They just be on my desk
i have 10 stored in a drawer
This is my life now
Thank you for reminding me to document all my devices
i might sell off all my phones
idk why I have like a gajillion
and 3 laptops
and 1 imac
are u Lee Kuan Yew's son or smth
3 laptops 1 imacs and more phones dawg
im getting a new phone soon inshallah
my new one is like
3/4 of the screen is black
i wanted to get into cameras and my dad just had a canon lying around
it's 15 years old but still
wtf
and the other part of the screen duplicates itself but it tilts the y axis by like -20
is it that iphoen 8
iphone 8
no it's the iphone 11 lol
oh
my sister decided to make it unusable
my condolences 🙏
i used to have a fujifilm camera but i substituted it for a 3ds
We love Antoine’s iPhone 8
fr
3ds goes hard af fr
that phone carried my jb era so fucking hard dude
im legit never selling it just bc of that
Especially when something happened to it and our jailbreak became indefinitely postponed
This is legit my 6s
lol oh man
i felt so awful when that happened
if it didn't we'd have most probably actually delivered smth too
baseband fw got ruined
im p sure every jb dev has a phone like this
Bro got zeframmed
you got no job
mineek how r u still going with jb stuff
idk I took some breaks here and there
did u not get burned out like the rest of us
@granite frigate @slender glade on my desk right now:
- iPhone 3GS
- iPhone 4
- iPhone 5
- iPhone 5S
- iPhone 6 (x2)
- iPhone SE (1st gen)
- iPhone 7
- iPhone 7 Plus
- iPhone 8
- iPhone X
- iPhone 11 (x2)
- iPhone SE (2nd gen)
- iPhone 13
- iPhone 14 Pro
chat should I put in more time on iOS or just focus on other areas
i def enjoy doing the whole jb/*OS development thing but it's so niche i don't think i'll get paid easily from it
My life is sad
you gotta make a spreadsheet like Mike
Not really 🙏
this is fucking awesome man except for the fact there's too many post A11s here
literally same on that last part
no android :/
i forgot i had delete message perms here
Too few*
if any white names want an icraze message deleted ping me i'll do it for free
TWO iphone 11s oh brother
I have them in stacks of five 😭
Both are broken
what the hell
Broken screens
lol i transformed into general iOS dev from jb dev @granite frigate and that def gets money
i HOPE you bought them like that
i have like 80 iphones just chillin ontop of a mini fridge by my desk lol
yeahhh but im still ass at swift in general
man
Somehow I NEVER broke a screen before not even small cracks
One I bought broken the other was my old phone that I used to practice my iPhone repair skills on

just get rid of rubbish
Your desk
this was me until i actually started going outside alot
real
i guess that tells us a lot about your iphone repair skills
You're*
Idk I just don’t grab my phone when I’m outside lol
band for band? nah ipad for ipad 💯
how the HELL did you find that image so fast
I memorised the message ID
Tells you a lot about why I had to quit and buy someone a new repair
ios dev is like the only thing gauranteed to get 100% better at if u just keep doing it more and more
😭 😭 😭
makes sense, youre drunk so
I am not
so real
hack them into pieces 
@sonic totem will I be able to stay up 5 more hours
(chat, for reference, he was drunk yesterday)
I actually find it amazing how like iPhones r pretty much unbrickable in terms of software
DFU mode is actually genius
right
Ok Alfie :/
Yes
1 year ago today I was awake 27h
tell that to @wind ravine
Yeah but that’s apples fault
mf got shot at randomly
do you not know the lore
I do
no I think he just has a massive skill issue
They were my only arm64e test devices
random stray
is the 13 ur drug phone then
But now I have my iP13 and the SE 2
SE 2 i got a few weeks ago
oh I also have five(?) iPads
It's the victim phone
Actually no
my iphone X is the victim phone
Yes
Why does TestFlight’s UI look awfully “standard”
He showed me
"victim phone" is an incredible synonym to "test phone"
it CARRIED TrollStore 2 development
Idk how to explain
called*
native
the word is native
yeah that
It is when it's testing my code
me adding one UIAlertController 🙏 🙏 🙏
Why not bypass
@Moderatorrs
Because it shouldn't actually have iCloud lock
I think I removed it because I had the passcode
But not the Apple ID password
do u guys think jailbreaking an iPhone feels like stripping a woman of her clothes
???
Most sane Antoine quote
filter off
It's not stolen it belongs to a family member
and guiding them to removign activation lock via phone call was NOT happening
just like how the clothes are off
That’s what they all say..
this is like 40% of activation lock phones
I had an iPad that thought it was activation locked but wasn't one time
look if alfie bought a stolen phone i'm sure they'd confess to it lol
I stand by this
But the Apple ID was deleted
I think it feels like taking a shower after a long day
You're so patient wtf
What do you think killing a process with exit code 9 feels like?
This was two weeks ago and activation lock still seems to be active
assault with a chair


WHAT
WAS NOT ME
DUDE WTF
Now you're talking
FREAK
@torn oriole PROVE IT
IT WAS NOT ME
idgaf we're checking who
Poor hydrate
tf happened
A CERTAIN SOMETHING HAPPENED

Who deleted that
It wasn't me because the mods don't trust me with that kind of power
That was not me
check the logs 
the funny part was it staying up for like 10 secs and i was typing "just what i thought" then it got deleted
say "Poor nightwind" if you were the one who deleted antoine's message
don't nobody have a crush on you
bro prolly got autolock off
Poor nightwind
mine is like 2 hours now
i tapped out of phone addiction
Mine is turned off
im like 1-2 hours screen on but like 8 hours screenoff from music
But it wouldn't even be accurate cause I often leave the screen on to play videos to listen to
Same
Oh it tracks music
@granite frigate if u think about it, untethered jb is like unprotected sex and tethered sex is like protected sex
Then mine would be on like all day
I love ipod
wtf would semitethered be
50% fertile man
True but I don't want to take my iPod to work or else I'd probably wreck it
semi untethered????
Ok but this is just false information
😭
can you please stop talking for 5 seconds
every one of your messages elicits trauma
shit gotta be like
to everybody.
i don't even know ngl
It’s like protected but the protection fails
LOLLLL
Delete this message
Delete this server if icraze

I have failed to guess my grandfather's iCloud password
icraze slander
it's over
Delete the below message if icraze is drunk

