#development
1 messages · Page 210 of 1
stuff has patterns
just because its undefined doesnt mean that the implementation isnt predictable
theyre tools that let you do the thing you need
nmap does a very usefula nd specific thing
ok why is my status bar flickering
those mobile security apps (antiviruses and things that are supposed to scan your phone) are complete scams though
No, google
what
idk what thing youre talking about
what are you saying
what is the security tip thats "dont use x api"
What are you talking about
It seems like youre talking about something very specific
do you have the source for cloudflare cdn
or for discord.com
bruh
what does that eveb mean
valgrind and fuzzers are what you do, those are very valid
things of that sort
i dont think you know how a computer works
its not through logic
its through sand magic
there is no explanation
idk what your rant even is
your rant reads like a trump speech
some people know c
those people also make bugs
its just not a good environment for writing new, nontrivial software
especially if it has security implications
that doesnt conflict at all with my statement
translation: skill issue
the developer has a lot of mental load and if you make any mistakes, the damages are potentially very high
c has the advantage of being very portable
yeah and google was smart enough to not use straight c
c++ isnt great but its better
and abstractions
its easier imo to write correct code in c++ because its so much less manual and explicit
i mean isnt that basically what some of his videos are about
i am not surprised he is the teacher for that
where does rust fit in
oh
replacing objc
objc doesn't belong in that comparison
objc is not a language for serious people outside of apple
i always think c# for windows objc for mac
but somehow yoy also accept objc
thats cognitive dissonance
what are you calling ridiculous bullshit here
and also apple-only
If you say rust im gonna laugh
you have not used rust
it literally uses a "abstract machine"
basically nothing of what you said makes any sense
what does "unable to control cpu" mean
what does "unable to control types" mean
neither of those are accurate
then you can't say "stupid syntax"
you can do all of that in rust
you can do all of those.
i have not used rust but claiming that rust can't do anything without ever using it isn't right
Reinterprets the bits of a value of one type as another type.
Raw, unsafe pointers, *const T, and *mut T.
wait really? isn't avoiding that the whole point of rust?
you can do it
the only sidenote is that it needs to be in a unsafe block
oh
but rust does allow you to
encapsulating it in unitary unsafe blocks is the point; its impossible to avoid having unsafe anywhere if you are gonna run your code on a computer
right
you do this generally with trait objects which can be downcasted, or you can just use the trait object
i mean you can avoid it, if you rely on libraries to do unsafe things safely wrapped for easy usage
thats what encapsulaging it means
wdym by that
Theres no metadata at runtime
its just like c/c++ in that sense
of course the compiler can be asked for metadata and compile that statically
which is that
what is your point here
is there such a thing as an isa calling convention
you can always just #[repr(C)] if you want full compat with all the other programming languages
oh right calling functions
this is for structs
linking to libraries is actually made pretty convenient by cargo
but also its equally convenient with something like meson for c
i was under the impression each OS has its own calling convention
like stdcall vs whatever tf macos is vs whatever its called on windows
how, when its different between different oses
maybe specific to arm i have no clue
so basically we established you are hating on rust for reasons that arent even true (aka a strawman)

i hate python
same
I think you should stop spreading misinformation to try and put down languages that are supposedly bad as a meme
it compiles down to the same LLVM IR
thats my main point here
.
so find some real reasons to dislike it
just because you dont use them doesn't mean they're bad
the eu should sue arm fr
or if you cant find any, then reconsider whether it truly is bad
this is called thinking and you dont do that often
Found the python user /j
struggles of the forced 4 byte instruction length 
smh should have just used x86_64
Thats why there is a /j at the end lmao, since you got mad at c praising messages
it's not c praising it's hating on rust for no reason other than 'looks bad'
and also strawman arguments
common human fallacy to dislike things then try to assign a reason for it as to be able to continue hating it
why not just say you hate it for no other reason than you dont like how it looks without saying bs
if you just stopped at "looks ugly" then i wouldnt be so annoyed
i dont like when people propagate misinformation just because they dont like a specific thing
okay this is not directly related but what are your opinions on lisp
i've been thinking of learning it recently, it seems weird/interesting
at first glance that programming language looks like the sandbox language with all the uses of parenthesis and tabulation
lmao
what are your opinions on V
the people who use lisp seem to talk about it as if they ascended to a different realm and are now programming gods
the V language
haskell users
probably
why does that just look like go
whenever i see := i think makefiles what is wrong with me
fuck makefile
lmao idk
makefiles are great
they are so simple
unless you're using someone else's rules
I have no.clue
cmake is great when it works but is it just me or is the documentation non-existent
for my next trick i will compile switch statements into a while loop with a break at the bottom and an optional break at every case which is now an if statement
Been a while since i saw that
ive never seen anythinf cmake does better than meson
@placid kraken write a tweak in your lang 
meson is easy and simple
technically possible i think
i can't for my life figure out how to do anything with cmake without going through 50 stackoverflow questions, 10 github projects and reading one cmake doc page 15 times
ill write a tweak in rust
No ive never touched ios dev
aspen
i can’t even get rust to install on ios
the target triple doesn’t exist (i wonder why)
What
if i compile from source i can probably just build for darwin but i’m not downloading the whole rust source code on my phone
for rustup???
stage 2
that too
It didnt worj for you?

its guaranteed to build
i tried a while ago and it didn’t work
time to try again now
Trol
ok this is crazy
i actually don't hate this
cmake is either
- wow it worked first try










this is why we use meson
this is why we use makefile and nothing else
unserious
i am the only person in the world that enjoys make 
Idk they use it a lot at procursus
Make/theos is fire ngl
what sucks about meson
Is this another moment where you dont know it well so its automatically bad for no reason
youre thinking of something else
meson is the fastest build system for c/c++ by a long shot
and its definitely native, idk what wouldnt be native
releasing definitely not soon, its gonna be a while
uhhhh
looks bad ngl
you stole that from theos
give tim his credit
where's the skeuomorphism
theos stole it from programmerhumor
23 seconds · Clipped by Adam Demasi · Original video "Arc Security Allows Access To Anyone's Browser" by ThePrimeTime
SROP
I hATE THAT
this isn't surprising though
like
how do you think webkit works
it doesn't
@hasty ruin idk if it was you, but didn't you like post about something how you could hide a CALayer from screenshots or smth?
nvm - #development message
wait til you learn about JXA
You applying bboawanc?
no because i dont know that stuff
Fair
I'm dropping a 10.0 CVSS Linux vulnerability in all Linuxes next week. Make sure your turn off your internet facing telnet servers
"horrible news for everyone in 1998" LMAOO
all Linuxes
$5 to whoever gains access to Gir's servers and DMs me the token
enable telnet first please
This is a joke about cusp vuln right ? It seems impactful enough for me and author wasn't this cringe, idk why they are making fun of it
it was overblown imo
i do understand their frustration with it being leaked though
that should not happen
so i have to design and write a language runtime
unreal better
social media =/= developers
ill be writing my own physics engine and game engine anyways
any real game dev forks the engine and fixes it themselves 
Youre expecting that game devs know how to do real developmeny
i dont do apple dev but i can only assume that means you tried to call a function that doesnt exist in the library you loaded
makes sense, one sec
im trying to install theos and yeah im running into an error when pasting the installer in my terminal
interesting
Which version of macOS are you on
im on my jailbroken ipad
which ios version?
any tweak developers here? looking for someone that can handle a imo simple tweak project, of course paid. More details in DMs and would also appreciate if you guys maybe recommend someone that does custom tweaks 😀
Nope no tweak developers here
AtDevelopers surely there are no developers here right
Aaron tweak developer
@sacred orbit, sorry to hear that you're leaving tweak dev but if i can ask one thing before you do leave, would you be open sourcing your paid tweaks? It would help new devs have something to learn from
No one wants sw*ft tweaks
Ewwww
where did he say he's leaving
You can try r/TweakBounty it's pretty active
or just message 0xkuj he is a top dev there
if you maybe give some details to what the tweak is about someone might be interested
how is that false
dude takes every 1 out of 3 bounties lol
First come first serve
indeed
i'm busy atm anyway
with hyperion and school
Just drop out duh
Rip haxi0
And rip jelvrek
Does anyone know how apple’s demoloop executes itself and shows the demo video?
true
im.gonna steal some.minor ellekit for mediascript
if you mean the thing i’m making that’s called elle, ellekit is the ios injection framework
why am i not just using JS
is it because i want a language where you can tightly control the effects system i guess
AE uses js
const amplitude = .15;
const frequency = 1.7;
const decay = 2.9;
const calculate_velocity = (given_index) => velocityAtTime(key(given_index).time - thisComp.frameDuration/10);
const calculate_bounce = (
globals = [amplitude, frequency, decay],
indexes = [current_velocity, time_index]
) => current_velocity * amplitude * Math.sin(frequency * time_index * 2*Math.PI) / Math.exp(decay * time_index)
const calculate_time_index = (current_index) => current_index == 0 ? current_index : time - key(current_index).time;
let current_index = 0;
const maximum_time = 6;
if (numKeys > 0) {
current_index = nearestKey(time).index;
if (key(current_index).time > time) current_index--;
}
const time_index = calculate_time_index(current_index)
if (current_index > 0 && time_index < maximum_time) {
let current_velocity = calculate_velocity(current_index)
value + calculate_bounce([amplitude, frequency, decay], [current_velocity, time_index])
} else {
value;
}
i made my own bounce script
Whats ae
well i guess using a js runtime is huge
after effects
oh
safer than rust
not possible
what do you mean
meant to reply to "safer than rust"
impore and swearseem cool lol
what should i try to do first
- my own wayland compositor like hyprland but actually stable
- video editor framework and scripting language
scripting language
Wayland
1-1 tie
interpreted, except you ideally do very little actual computation in the language
i wanted to make a very human language earlier
so like everything is monads
you describe the structure of how things should be (like the video processing pipeline) and then that structure gets returned out
then it gets actually performed outside in rust code
First, set a to 1.
Then, increment a by 1.
Then, multiply a by 5.
Finally, print the value of a.
My eyes
mathematicians already have this, its called latex

idk probably like haskell but without fucked up syntax so itll just look like any language with method identifiers and pare theses
mechanism of purpose "main"() ->
promulgate unique designator named "a" to #<signed integer literal>1.
conjure "print"(<array of characters>"hello world", <signed floating point literal>1.0, <designator of purpose>$"a").
abscond <unsigned integer literal>0.
in = open_container(open_file("foo.mkv")).map(decode::default);
// takes args (video_streams: [impl VideoStream], audio_streams: [impl AudioStream], ...)
out = matroska_container(in.video_streams.map(encode::vp9), in.audio_streams.map(encode::flac));
out
Syntax would have to depend on me learning more about how stuff works so i know how to structure media pipelimes
because i tohugjt thatd be the best way to represent args that i ddint come up with syntax on tje fly
but anyways
idk how to make type systems work
new language coming soon
It would be nice if all the libraries were acrually dynamic libs that you load at runtime so its extensible and pluggable
It would be nice to let people write their own filters and stuff in native and have them.compiled and available in the script
i dont really either, elle's type system works by trying to implicitly convert variables to another type and having strict checks to ensure you cant implicitly convert from a string to an int or an Option<i32> to an Option<string> etc
type theory is so compplicated
i mean not even on that level of theory, just literally how do i make a type system compatible with abi so you can easily deal with foreign ones and can easily make your own stuff
you gotta be able to register types in the runtime i guess and then inspect them
but has ti happen at runtime
i have types in an enum like this
then i have a bunch of introspection methods like display, is_function (and is_unknown, is_string, is_int, is_strictly_int (excludes voidptr and strings)), weight (for type checking, things with the same weight can be bitcasted directly without conversions), size, etc
this is how i do it idk if something like C has a formal definition of it
namespaced types like java are the answer, so you can register types in the mediascript runtime but also be able to receive them back and know theyre the right type (and not one that has the same name but is different)
I kinda wanna avoid making any of the media/video/audio editing related stuff defined in the runtime
that sounds like a lot of effort
fairsies
because otherwise i still have to do the same work figuring oit how ffi works if you make custom extensiond that interact with those types
sucks that i cant make rust type system solve all my problems but conceptually that wont work since that stuff only exists during compile time
i actually had a question about that kind of thing
how does something like C++ compile templated functions into a static library
how do you represent something generic in object files
how do you know the size of a generic struct, how do you represent a generic function
not only do you not know the size but you also cant calculate offsets into the struct because you dont know the size of fields
its something ive always thought about but been too lazy to google
Templates dont go in the object file
if you want to use a template outside of current file, the entire template has to go in the header
oh i see
then c++ compiler generates concrete functions based on the template, and which actual types are used, the template itself doesnt exist past the compiler
lmao yeah i know that much
but thank you that helps
sometimes i forget the C family has header files
so only the generated functions from it being used in code on speciric types gets genrrated in object
yeah
YC backed startup can't be "bothered with legal"
This is insane https://t.co/V7KUZ9w9yu
【QRT of FRYING PAN (@CodeFryingPan):】
'I just quit my 270 000$ job at Coinbase to join the first YCombinator fall batch with my cofounder @not_nang.
We're building PearAI, an open source AI code editor. Think a better Copilot, or open source Cur…
Thats so based
@placid kraken you know the more i think about it, i think i.would encounter the exact same issues relating (de)serialization of objects into yhe runtime, and calling functions
no matter what language i choose (or make), i think i will always have to come up with a way for
- libraries to convert types between the runtime and themselves
- a way for libraries to declare functions in the runtime that call the library's own exported functions
because how else do you do this (cant just compile and ld things because thats not the model im going for)
and both javascript (deno) and lua (mlua) have those two bullets as the way you do stuff
just deno has awful runtime-developer-facing docs so it wasnt quite apparent how you use it
deno has serde support for v8 types and you can declare "ops" which are functions in the runtime that call your own callback
and idk about mlua
lua is gross
mlua has IntoLua and FromLua traits, so same thing
maybe i should use lua even with my dislike for its syntax
lua is definitely intended for this and more battle tested than v8/deno lmao
the pain of interpreters
it seems to me like this is exactly the same problem as C -> python
how do you get python objects back in C
compiling and linking the entire video script together would be worse thoigh
yeah
I have to figure out how to downcast stuff i guess
This language gets worse every time i do more and more serious work with it
now im doing a deep dive into arrays in c (NOT just pointers)
python and swift interop 😭😭😭
how does nathanLR sign binaries? i know bootstrap used /basebin/fastPathSign but i cant seem to find it here
signing binaries for installing packages?
Nathan added it to the dpkg hook i think
It’s not an external binary
build and ct sign a fastpathsign binary on pc and send it over i guess
there isn’t a standalone package
cc @visual meadow
I integrated it into the hook itself
Instead of using binary
wtf
yeah there really isn’t that much to learn about them
dynamic arrays hold a length (amount of elements) and capacity (number of elements that can be held by the memory allocated)
if the length exceeds or is equal to the capacity the capacity grows by some factor, usually double
and then there’s also heavy arrays that hold keys and values and those are usually used for maps i think
just the weird way how dynamic arrays just exist
but they have subtle semantic difference from pointer even though in 90% of cases it decays to pointer
??? they are just a pointer
they arent though
the capacity is the size of memory allocated thats pointed to by the pointer
divided by the size of each element i guess
do those resize every time a new element is added?
This is the thing that set me off
any array usually is void *, int size, int capacity so the struct fits into 2 bytes
they arent the same thing and i always thought they were
why would the first one fail
because it’s const?
its not const
its a pointer to a string in rodata i believe
or wherever tf you put data but is read only
But str2[] makes it stack allocated i think? Dont quote me on that
why
But in function args then i think it makes no difference
since it decays to pointer
yeah
its the way syntax is reused to mean completely different things
thats stupid
rust found a way to make things make sense so thats not the problem
expression oriented syntax does wonders
rust is also much higher level than c
but that doesnt really mean anything here
and even if you used just c stuff in rust itd be better than rust (but be ridiculous lol)
even zig makes it a tiny bit better based on the little stuff ive looked at
zig is just supposed to be better and more unstable c i think
also the whole void arguments thing, i was never clear on whether thats required or just conceptually better
that second one where & is the same is stupid
it should not be this way and i hate that it is
yeah same
& should make a *str[]
what other quirks do i not know about c unsized array notation now
in elle i actually check for that and ignore it lol
if r#type == Type::Void
&& self.parser.current_token().kind == TokenKind::RightParenthesis
{
if self.parser.warnings.has_warning(Warning::CStyleVoid) {
println!(
"{}",
ty_loc.warning("Elle does not support C-style explicit function prototypes.\nPlease remove the 'void' type from this function's signature.\nThis is a warning, which means the compiler will ignore this.")
)
}
break;
}
so hold on
oh
nvm
that confused me because joemama is 7 long so it looked like null termination vs not
but no
trolled
lmao
oh also about my video thingy i think itll be most fun if proceed with making my own language and runtime
the whole void argument thing really annoys me that it exists at all
it may be a big exercise in ffi though since i want everything (including basic std libraries) to be dynamic libs
good luck
maybe ill make a struct/trait in mediascript called Type and one called Function or Operator or something and then everything is based on that
when would you ever need to explicitly state that a function takes no arguments
SEE
we have a name for that it’s called foo() {}
c is shit, end of stor
y
Wait what was earlier
is it because sizeof is an operator and not a funcrion
oh
so & still makes pointer to array
WHY ARE PEOPLE SAYING C IS MORE PRECISE THAN OTHER LANGUAGES WHEN YOU HAVE THIS SHIT IN IT 😭
I guess you just have to not do that
perhaps?
why would it return a different value
glad im not just crazy 
has to be since all of it is just pointers to rodata
i should gloss over smines again and make sure im not messing up anything like this
wait why is the first one 7
i think i make all my strings static for now
since sizeof tells you the size of array if its an array
null terminator
that’s so cursed
i guess idk
I dont have an issue witj it including the bull terminator
yeah lmao true
strlen would still return the same value right
because it decays to a pointer and it iterates until the null terminator
yeah
ugh
i basically never deal with string manipulation in c
glad that thats the case
next we will see jailbreaks written in cello
as long as the target works
yeah thats what i mean by the target working
okay well i just used the ct_bypass binary from the nathanlr github before the commit where it got deleted
this really should be in procursus or something lol
I've neverrrrr seen an actual use case of char []
no idea why it's taught to beginners, makes me cringe
what
i've never seen people using char [] rather than char * in real software 👍
do you mean specifically char[] = "string" or char arrays in general?
the first
i implemented this thing as part of the language
so now you can do this
its like magic
Should do Lua length syntax
Do you intend this to be a realword functional/popular language or is it mainly for personal use/hobby. just wondering
personal use/hobby
there are 1 million issues in random places and the test suite is tiny so there are probably more
i dont want the language to end up being a chore to work on because people are actually using it and need things fixed
as it is right now its fun to work on because things can be broken and noone cares
lmao true
for some reason when i compile my tweak and try install it, it says
Depends mobilesubstrate:iphoneos-arm
which im guessing is i've compiled it for rootful, how do i compile it for rootless?
control file:
Package: io.bop.cameraspoofer
Name: CameraSpoofer
Version: 0.1.0
Architecture: iphoneos-arm
Description: An awesome Camera Spoofer tweak!
Maintainer: bop
Author: bop
Section: Tweaks
Depends: mobilesubstrate
thank you!
Also always a good idea to change Architecture to iphoneos-arm64 in the control file
I guess every time you want an array as value
with the actual semantics of being an array by value
this is how you do with getopt for example
thats what they recommend i mean
it makes sense i guess
in my own function it is an array even if the functions get it as decayed to pointer
no
theos does that automatically
you can call me weird too thougj because i habe some static char[]'s defined in main lmao
do you think i should redo this to const char *
i guess if i do it this way with static const char[] does it technically mean im not adding a pointer to the stack
When should you
And does it make any difference in thsi scenario
Where i made it static
Where
i mean static on the char[]
it makes it not on the stack
thats whar we were talkignabout originally
the same scenario
yeah but its the same thing i think
ill do that but im trying to make sure
do you know if theres any difference
other than sanity
Is there a list of those sections and what they mean
or are they somewhat compiler specific
what about ELF
because fuck macos
only macho matters 🗣️
i guess technically its the string literal that goes there and not the char * 
where can i see examples for real uses of char[]
random gnu sources prolly
coreutils got a lot
im gon a finally make dome functiond
When you set the scheme to rootless ?
yes
Thats cool it was annoying to change it everytime i create a template
lmao yeah it's not really documented well but it does do that
should I use Objective-C or Swift to create tweaks?
is there a recommendation or is it just personal preference
alr
Idk
killall - kill all active processes killall is used by shutdown (1M) to kill all active processes not directly related to the shutdown procedure.
@grave sparrow killall
run it on solaris
please someone build a workflow engine as a library that can be backed by various stores
i am telling you this will become one of the most used packages ever - it eliminates the need for so much
【QRT of dax (@thdxr):】
'i made this in 30min
if someone puts a week into it i think it can be super valuable
it even has swappable drivers …
bro
my scripting language could solve this
video editing as i was imagining it eould be the exsct same.process
UNSAFE C CODE 🔥
hm
u sure thread_set_state aint work
like on ur own proc

why
legit no reason to do that
You are
/jk
(rust is the one having fun)
Wait is this even a real symbol
Unironically more readable
ugh
You have the answers ?
I found (not sure if i understand the question forrectly though)
Z = (1-i)/2
w = (1+4i)/-3
carefully
It’s just a simple system
yeah but with complex numbers
doesn't change anything
sounds exactly like what a teacher would say
Really depends on the tweak
What about a camera-related tweak?
has the API/camera-handling changed much from iOS 14 to 15
A good way to check is comparing ios14 vs ios15 headers of relevant classes
alr thanks
Hear me out:
Define these as { and } and pretend you are writing python code
http://www.unicode.org/Public/security/revision-03/confusablesSummary.txt
This is embarrasing i am in uni and i still think my answer satisfies the equations 💀 (tried one more time, they for sure don't satisfy)
i mean it might why not substitute and try it
but maybe don’t put it in that form
cartesian is much easier to visualize and reason about
no they didnt
hold on
<key>com.apple.private.thread-set-state</key>
<true/>```
they just locked it behind an entitlement
oh
also pretty sure they locked it behind that like
mid 16
djd someome ghost ping me here
bruh
@harsh junco i caught you
I SEE THAT
i have notification histiry
who could the the the the the the possibly be
idk maybe the one named the the the the the right above me
the the the the the
🦉
mid
youre mid
oh
switch to linux
no more stupid apple
correct
forgot there were more advantages even
vm? 
should i call it boxscript
because the scripting runtime would be almost like a box similar to std::boxed::Box<T>
you register your own types, your methods that can accept those types, and the script gives you something out like a box
what do i call a programming language where your code is an essa
y
First, set a variable named "a" to the value of 3.
Then, double the variable "a".
Then, subtract 2 from the variable "a".
Finally, print the variable "a". (4)
essayscript
how flexible is the wording
i feel like Finally should mean return instead of just being the same as "Then"
im planning to make it a sort of macro system to direct IR
which means ideally there would be around 10 variations of wording
also double, set a variable, subtract etc are all functions
(4) is a comment
good idea
omg then i can make functions be paragraphs
First, accept arguments ...
English wylang
then first isnt the same as Then 
the more i think about this the more i am just making a small JVM
rscript
oh but r exists
rvm doesnt sound good if i make it the Rust Virtual Machine
oh
"Custom Add":
First, accept arguments named "a" and "b".
Finally, add "a" and "b".
Summary:
First, set a variable named "result" to the value of "Custom Add" with 1 and 2.
Then, print the variable "result". (3)
Finally, do nothing.
summary is the main function
r
<program> ::= <statement> | <statement> <program>
<statement> ::= <expression> | <function_definition>
<function_definition> ::= <function>':' <argument_definition> <expression_list>
<argument_definition> ::= 'First, accept arguments named ' <arg_list> '.'
<arg_list> ::= <arg> | <arg> ',' <arg_list>
<arg> ::= '"' <identifier> '"'
<expression_list> ::= <expression> | <expression> <expression_list>
<expression> ::= <line> | <return>
<line> ::= 'Then, ' <declare> | <retrieve> | <call> | <noop> '.'
<return> ::= 'Finally, ' <retrieve> | <call> | <noop> '.'
<declare> ::= 'set a variable named ' '"' <identifier> '"' 'to the value of' <call> | <number> | <retrieve>
<retrieve> ::= 'get a variable named ' '"' <identifier> '"'
<call> ::= <function> 'with' <param_list>
<noop> ::= 'do nothing'
<function> ::= '"' <identifier> '"' | <identifier>
<param_list> ::= <param> | <param> ',' <param_list>
<param> ::= <number> | <retrieve> | <call>
<identifier> ::= [a-zA-Z_][a-zA-Z0-9_]*
<number> ::= [0-9]+
i made formal grammar
maybe
wtf is this
BNF notation
Today, I'm publishing my writeup on Remote Views on iOS and macOS: https://t.co/aAHQac6gOf
in case anyone is interested in reading, I wrote a bit of a detailed writeup on remote views
@granite frigate @manic forum
for some reason AVFoundation being a dummy and says there's no video tracks inside my .mov file even though ffmpeg states it does
and yes it's referring to the correct file as outputted in console
ooh ty
is there a better path?
that won't get me trolled ☠️
store a .mov file temporarily
nope
Is there a way to see per-tweak logs?
Camera app
AVFoundation(Camera)
ah alr all im doing for logs is adding a "[VCam Tweak]" prefix and filtering out console by that string
Heyyyyyyyy im wasterddddddd
Whatsyop
ppp
Hahahhahahahaha
NSLog, i saw that and i think i use it lmao
oh sheesh
I'll try /tmp/ first(mainly bcs i already compiled the tweak just now)
and see if it works
It's not necessarily injecting to the Camera app itself, it's hooking into AVCaptureVideoPreviewLayer, AVCaptureSession and basically overwritting the buffer
Virtual Camera tweak for ios 15 🙏
alr
yep ur right, sandbox fucking w me
i'll remind me when you aren't 😭
alr noted
alr 😹
/tmp/ doesn't auto-purge or anything right?
ah makes sense
in that case no i need some form of persistence
whole OS
the tweak works globally on any app that uses AVFoundation pretty much
TikTok, Snapchat, Camera App
the temp file is based on user-input
You select a video/image from your gallery
and it'll get stored in cache somewhere(incase the user deletes the file from gallery)
like a copy gets stored
and if they select another file, old one gets removed/overwritten
fk
how do tweaks such as Eneko
store their stuff
is it just based on gallery?
hm
ah i see
reading through console is such a mess bro
alr alr
so that's that rootful jailbreaks pretty much are
it allows tweaks outside of their sandbox?
like if this was a rootful tweak, I wouldn't have this issue
oh fr?
yay 😭
I mean
what if I just made it based off gallery?
If you delete the video off gallery, RIP for u then
like it will have a path to gallery
rather than cached file
libsandy it is
yeah
yippee :D
It doesn't seemt o be creating the temp.mov file in /tmp/ either way
oh my console isnt consoling
nvm just had to start/stop
yep
being a tweak developer must be so painful
makes sense why there isn't that many tweak devs
yep bruh
400k messages in 20~ seconds
i wonder what iOS jailbreak devving is like
reverse engineering IPSW files must be hell
I mean I wanna get into it or atleast have an understanding of it
rn im just reading BlueFox ARM RE book rn(first one)
oof 😭
i can imagine since u find a bunch of dead ends
and keep doing random shit pretty much to see if you expose a vuln
fair enough 😭
oof
i mean
i wonder how many
jailbreak devs
apple has stolen
i wonder what they do now
do they need to sign an agreement saying they'll never release jailbreaks ever again or smth
crazy bro
couldn't u just put 0 effort on purpose
or if u find a vuln, keep it a secret on purpose lmao
And lose your job?
or if u found one kepe it a secret idk*
tbf ur not the only one devving jbs so doubt you'd be the only one
Would probably violate your work contract
oh yeah true
yeah and overall money talks
crazy how
u have a piece of hardware in ur hand
and its a pain in the ahh to jailbreak it
yeah oof.
Sideloading is good enough for me but I can live without that too
If only they were as attainable as iPhones
We do too but they’re just not as important as having a secure phone
They’re mutually exclusive
No it’s not lmao
^ word
OPS
I MEAN
T
I MEANT
more freedom = less security
like
android users have less security compared to apple
but they still be loving android
why cant ios be the same broo
Android security is pretty good it just gives you the ability to disable its safeguards
Which you could argue makes it less secure
custom ROMs, rooting etc
It’s only less secure because of the human turning it off
It’s okay but it’s leagues below iOS’ imo
hm
I think these days they’re mostly the same
Definitely not
Oh security
androids allow u to install APKs with a simple button, iOS requires u to have some knowledge of signing certs and stuff
Even past that
Idk much about the differences security wise but I do know zerodium pay more for android 0 clicks than iOS
ios 0 click is crazy
CoreTrust, Sandbox, AppleMobileFileIntegrity, entitlements, PAC/PPL, TXM
it's called an EMP device 😹
All either better than android counterparts or in some cases an android counterpart doesn’t exist
SEP
also doesnt android have that vuln that's like
unpatchable or smth
if u have like an older android vers
you're susceptable to a bluetooth keyboard connecting to ur device ☠️
iOS does too
Good idea but it’d be so long lol
like im still trying to understand how operating systems fundamentally work
you have the kernel
drivers run on the kernel(ring 0)
and u have the user-level where all ur apps run
the iOS kernel is XNU
each app is sandboxed meaning they can only access their own shit, nothing else
some exceptions depending on permissions given(photos, files)
and there's still the security part i need to learn such as SEP, Code-Signing/Certs
but for the time being i need to learn how tweaks work but it's relatively straightforward
u hook into methods/functions in a process/framework and you can basically make it execute ur own code prty much
also any way to make this stfu?(it compiles so idk why it's yelling)
make commands
Functions have addresses in memory
When you change this address
It calls your exchanges function
if you're using theos which im guessing you are ^
I am, alr thanks
nope didn't work, still says that annoying thing
oh wait nah it says make: *** No rule to make target 'command'. Stop.
I’m with the Inc on this one.
is it because of swift
yes
oh
not on pixels' default pixel os, at least
grapheneos is significantly better security than ios even
but yeah most androids are pretty bad
i know i like to make fun of ios for not having verified boot until ios 15 but thats just one smaller detail and ios definitely has more of them down than the majority of other android manufacturers
pixel OS is very solid overall
im pretty sure they have MTE and PAC enabled too on pixel 8 and up (theyre the first ones to have the hardware support)
and pixels have an SEP equivalent
apps are sandboxed and permissioned just like ios
its not enabled by default on stock pixel OS apparently
i guess because it creates rare compatibility issues for badly written apps with native interfaces
Okay I’m relatively sober now
Sick writeup 🔥
"how can you tell"
i am unsure of what it considers system data
is user data "system data"
because it seems to include it
things without an immediate category
is .bs extension taken for BoxScript
i need a better name
bscript
or should i make it shortened
Bscri
see if i call if b script, people are tempted to shorten it to "B"
thats a name conflict
vscript exists apparently, for source engine
I wanna write my own printing stack
You know how if you want to downgrade, it will only work if the version you’re downgrading to is being signed
How does that process work?
- Version info and device info is sent to Apple's servers
- Apple's servers signs the firmware using their private keys, and gives you the signature along with other info
- The firmware component is sent to the device
- The device BootROM verifies that the components are signed only by Apple's private key
- It boots if it succeeds, and not if not
What if you intercepted the request with MITM proxy and if you wanted to downgrade at a later date just replay the request sent by Apple?
yes, that's what Cydia's servers did, but from A5 and above there's a nonce that's only on the device for a time between 2 reboots
So
-
Device & Version info gets sent
-
Apple Signs it
-
Capture the request being sent by Apple in home network and store it somewhere
How does the nonce impact it exactly?
Does the nonce get sent too?
the nonce also gets sent to apple's servers and gets signed too, and the device verifies that the signed nonce matches the current device nonce
yeah no problem, common question trol
It was just like a random thought in my head like why can’t we do that but I guess not rip
Nonce is stored inside the kernel right
stored in the NVRAM that's only accessible with sufficient privileges
the nonce was settable actually, which is why people were able to downgrade up until iOS 15
then from iOS 16 onwards there was Cryptex, which ruined compatibility and also needed a nonce, but one which couldn't be set properly
thus we are in the state where we cannot downgrade from 16 and up
Oh damn
But theoretically if you could make it so that the nonce doesn’t change you’d be able to downgrade assuming you have the original intercepted requests
SEP and the Baseband also have nonces, but latest firmwares for those can be compatible with older versions, so the latest firmware was flashed
Or are there other caveats?
yes
well
in order to restore
i think it reboots at least once
so the nonce would be ruined
(?)
oh you said "doesn't change", yes that's what jailbreaks allow
(kinda, it just sets the nonce to a known value for next reboot)
the ones for iOS 15 and under allow for that, yes
but from 16 onwards there's no point
can't set Cryptex nonce
I need to look into how iOS internals work first
just the usual, utilization of patched kernel exploits to exploit the kernel on older versions
With XNU and everything
Ah alr
Oh and roughly how long do people spend a day looking for exploits
that just depends on the person
not something i would know unfortunately
alr alr ty 🙏
wow nobody has srsly msged in this channel for nearly a day
balls
anyways, my tweak doesn't seem to be picking up libsandy
and yes i've included it:
#include <libSandy/libSandy.h>
and inside my makefile
TTtest_FILES = Tweak.x
TTtest_CFLAGS = -fobjc-arc -I$(LIBSANDY_PATH)/include
# Link against libSandy
TTtest_LIBRARIES = sandy
oh sh i dont think thats an actual lib func
is there any docs?
ohh it's within the repo ty
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AllowedProcesses</key>
<array>
<string>*</string>
</array>
<key>Conditions</key>
<array>
<dict>
<key>ConditionType</key>
<string>FileExistance</string>
<key>FilePath</key>
<string>/var/mobile/Library/Caches/temp.mov</string>
<true/>
</dict>
</array>
<key>Extensions</key>
<array>
<dict>
<key>type</key>
<string>file</string>
<key>extension_class</key>
<string>com.apple.app-sandbox.read</string>
<key>path</key>
<string>/</string>
</dict>
<dict>
<key>type</key>
<string>file</string>
<key>extension_class</key>
<string>com.apple.app-sandbox.read-write</string>
<key>path</key>
<string>/var</string>
</dict>
</array>
</dict>
</plist>
Not entirely sure if I've done my plist correctly since sandbox is denying it
I want all processes to have access to temp.mov
indicated with an asterisk(*)
<string>*</string>
but I've successfully applied the profile though
Ah yes 9 hours is nearly a day
midday*
vcam!
wish i had time to finish mine
How lol
I'm stuck with it not working too
I'm getting status code 2 
fr?
yeah I'm porting it to iOS 15
idk how the original tweak doesn't have sandboxing problems
cuz i have sandboxing issues and i need to use libSandy to give access
create the .plist file with tweak_FileAccess
You can use the template provided in the github repo
import libsandy in ur main tweak file and do libSandy_applyProfile("Tweak_FileAccess");
and voila
but my issue is:
so maybe im doing smth wrong
cant output to my logs file either
oh shit
wait
didn't know i had to add /private
???
