#development

1 messages · Page 88 of 1

sacred orbit
#
2023-11-28 19:33:08.214493+0300 opainjectTest[1016:157440] [Touch] Current touch count: 1```
#

how can i disable some strange touch logs

cloud yacht
#

opainjectTest

radiant idol
#

Then it’ll only show your logs

hasty ruin
cloud yacht
#

(or use rlog if that still works)

radiant idol
hasty ruin
#

sorry that was mean

radiant idol
#

That was mean

topaz yew
#

what the fuck did i do

topaz yew
radiant idol
#

the hell is going on

I have a tweak dylib that straight up just has one hook and only an arm64 slice... why is this failing?

#

well

#

symtab not found

#

thats all

#

how can it not have a symbol table

#

how so

#

oh what

#

oh

#

right

#

void * map = mmap(nil, file_size, PROT_READ, MAP_SHARED, file_descriptor, 0);

#

I feel like I'm missing some stupid small detail lol

#

did that, still the same issue

#

it still points to NULL originally

#

so idk if thats the issue

topaz yew
#

did this happened for you or something

cloud yacht
#

Why not just reimplement the Home Screen from scratch

radiant idol
#

at first it was failing because the tweak had both an arm64 and arm64e slice and I didnt add checking for that yet

but now its arm64 only, I dont see why it should be breaking

#

frcoal

#

I just compiled it with make clean do FINALPACKAGE=1

topaz yew
#

except my dock isn't transparent lol,

radiant idol
#

then used dpkg-deb -R to take out the .dylib from the deb

#

you are

#

that's what I'm thinking

#

idk whats going on

#

ok

#

yeah thats what I was also thinking

#

one moment

#

[+] macho_header->magic - 0xbebafeca

#

the hell

#

that doesnt seem right

topaz yew
#

beba feca oooo@oooo

radiant idol
#

but it only has an arm64 slice

#

why is it a fat bin

#

oh

#

that makes sense ok

#

👍

#

so ideally I would:

  • check the slices (arm64/arm64e)
  • split the dylib into the various relevant slices
  • do checking on those

or parse the fat headers

timid furnace
#

parse the fat headers

radiant idol
#

yeah prob that

#

that's probably the better solution

timid furnace
#

no cheating

radiant idol
#

fiiiine

#

what program is this by the way

timid furnace
#

hex fiend

radiant idol
#

thanks

timid furnace
#

the templating isn't as fully featured as 010 editor or imhex though

#

but

#
  • 010 editor is paid
  • imhex looks like shit on hidpi
    • also its very unintuitive imo
radiant idol
timid furnace
#

view menu

radiant idol
#

ah

primal perch
#

hex fiend is gas

#

chad software

native orbit
#

fr

#

wish hxd was on mac tho

radiant idol
#

wonder why its empty

timid furnace
#

doesn't support FAT

#

you need to add based on the macho_header

#

not the map

radiant idol
#

oh

#

wait

#

im dumb

#

dont I need to sort through __cstring instead of the symbol table

#

to get all the strings in the bin

#

currently I'm getting stuff like this but I need the various strings that are inside of the bin

cloud yacht
#

radr://561452

radiant idol
#

what even is that

#

weird

radiant idol
#

yeah but this is radr not rdar

#

this is the whole tweak by the way

#
@import UIKit;

%hook CSQuickActionsButton

- (void)setBackgroundColor:(UIColor *)backgroundColor {
        %orig([[NSFileManager defaultManager] fileExistsAtPath:@"/Library/MobileSubstrate/DynamicLibraries" isDirectory:nil] ? [UIColor greenColor] : [UIColor redColor]);
}

%end
#

notice how I'm specifically not using the macro for rootless

cloud yacht
#

oh wait it is

#

it does appear to be some kind of apple url

radiant idol
#

huh

#

odd

cloud yacht
eternal rain
#

can mdc write to sealed partition files?

sonic totem
#

It can overwrite them

#

But it reverts after a reboot

eternal rain
#

alr

#

ty

radiant idol
#

ok im now even more confused

#

I thought there was a __cstring section under __TEXT?

#

@grave sparrow

#

looked for this in mach-o/loader.h and haven't found anything, hm

tepid olive
#

is it possible to downgrade a Apple Watch

native orbit
#

LC_SYMTAB -> stroff + base = string table

tepid olive
#

i have a series 3

radiant idol
#

unless I'm missing something

native orbit
#

does the offset look wrong when you check it?

radiant idol
#

lets see

#

[.] string_table_offset 66056

#

hm

native orbit
#

check in hex feind or something, see if the strings start there

radiant idol
#

ok

native orbit
#

xmachoviewer will likely be helpful as well to check it

radiant idol
#

strings are here

native orbit
#

are you able to send the binary your testing with?

radiant idol
#

sure

#

I'll send it in DMs

#

wth

#

the "String Table" thing in XMachoViewer shows this

wheat grotto
#

nerds

radiant idol
#

ok

timid furnace
#

@grave sparrow bozo

#

stroff is for strings for the symbol table

#

you want __cstring @radiant idol

radiant idol
#

yeah I know

#

that's what I was thinking originally smh

#

capt always wasting time

#

I got the strs lmao

#

trippy

#

staturnz helped a bunch as well

#

thanks to him

native orbit
radiant idol
#

capt

#

I dont need the symbols

#

I need the strings

#

yeah but

#

this is LC_SYMTAB

#

and

#

uh

#

where is __cstring in this program

#

hold o

#

n

#

I mean

#

I'm trying to run this on a tweak dylib macho

#

I think it'll be fine

#

besides, @native orbit did some testing and it looks like almost all relevant strings end up in __cstring anyway

native orbit
#

clang moment fr

radiant idol
#

I need specifically these

#

not the symbols

#

the top one's only there because my %hook gets converted to MSHookMessageEx and then has objc_getClass in it

#

sucks to suck

#

are you drunk again

#

I dont believe you

hasty ruin
#

objective c

#

more like

#

objectively

#

(better)

timid furnace
#

symoff is specifically for symbol lookup and stuff
__cstring is actual literals

radiant idol
#

LETS GO

gaunt mesa
#

🙏

indigo peak
radiant idol
indigo peak
#

what does this entail

radiant idol
#

i'll copy paste what I said in the theos server

#

hold on

#
  • unsign the binary
  • go through the actual __cstring section in the __TEXT segment in the binary, putting them all into an array, then patching the proper ones
  • Then, you would need to make a new section at the end of the mach-o binary (reference here).
  • after that, you would need to make all of the references to the relevant strings point to the new strings in the new section.
  • resign the binary
indigo peak
#

or any macho binary, not just a tweak

indigo peak
#

ahh

#

makes sense

#

sounds fun

radiant idol
#

we'll see how it goes

severe stream
radiant idol
#

yeah

severe stream
#

ahh nice, that should allow more tweaks to work

radiant idol
#

there's already patchers that use sed to replace paths within the binaries, but they use symlinks because you cant normally make strings bigger without all of this

#

now how do I detect if something is a path

#

hm

#

what would be the best way

#

if (![str isEqualToString:[str lastPathComponent]]) {

#

would this work(?)

indigo peak
radiant idol
#

because i'm working with unknown dylibs here

#

dylibs that arent installed

indigo peak
#

mhm

radiant idol
#

so they might be referencing a path that doesnt exist in the filesystem before its installed

#

for example something like this

#

the bottom one would not exist if the thing isnt installed

radiant idol
radiant idol
#

hm

#

it thinks the bottom one is also a path

#

which is annoying

#

hm

granite frigate
radiant idol
#

dang is there no better way

#

that sounds horrific

granite frigate
radiant idol
#

hm

granite frigate
#

if contains Preferences, DynamicLibraries, MobileSubstrate

radiant idol
#

yeah but that still wont always work

#

hmm

granite frigate
#

oh wtf

#

what other paths would there be

radiant idol
#

/usr/lib/sbreload stuff for example

#

but then that also contains /usr/lib/libobjc.dylib which that one is present on stock ios

#

hm

hasty ruin
radiant idol
#

frcoal

#

well actually

granite frigate
#

well paths definitely cannot contain special characters

#

so just blacklist that

radiant idol
#

if ([[str stringByStandardizingPath] hasPrefix:@"/"])

#

that could work

granite frigate
#

/When the imposter/ is sus!

radiant idol
#

but then there are so many exceptions

#

hmm

radiant idol
radiant idol
granite frigate
#

you’re right

radiant idol
#

👍

#

got this so far

primal perch
#

C

hasty ruin
#

🥴

primal perch
#

true..

hasty ruin
#

if you're gonna be weird, put it on the left

primal perch
#

const char *gorn mfs

hasty ruin
#

not the fucking middle

hasty ruin
primal perch
brazen timber
radiant idol
#

it looks weird on the right with c

topaz yew
radiant idol
#

replacing strings in a macho file

topaz yew
#

LOL

visual meadow
brazen timber
visual meadow
#

jut like replacate install_name_tool or some shit

radiant idol
brazen timber
#

you are very strange

#

or you don't use c enough

radiant idol
visual meadow
#

burfh

radiant idol
hasty ruin
#

well

#

change that

brazen timber
#

technically const char *yorn makes more sense because int *x = 5, *y = 6, *z = 9 is how you declare 3 int pointers on the same line

#

but i still put char* on the right cuz fuck that

radiant idol
#

I dont write much C

#

just let me get away with it

#

:c

brazen timber
#

fr

timid furnace
#

btw this wont work for swift

radiant idol
#

that's why I'm writing a macho parser and using string rebasing instead of just a script

hasty ruin
#

indeed

radiant idol
hasty ruin
#

though i normally dont write != NULL

radiant idol
#

i know

hasty ruin
brazen timber
#

explicit void parameter is goofy but that's also what the standard calls for

hasty ruin
primal perch
#

capt writing c standard compliant code??

#

extremely rare

native orbit
#

only valid C syntax fr

granite frigate
primal perch
#

mines the same except i use newline for functions

timid furnace
primal perch
#

like linux source tree

visual meadow
primal perch
#
void gorn()
{
    if (x == 3) {
        jews();
    }
}```
timid furnace
#

google swift string optimizations you'll probably get a better explanation

granite frigate
hasty ruin
#

(tab indents)

topaz yew
brazen timber
#
void joe() {
    std::string str = "stuff";
    if (str != nullptr) {
        blahblah();
    }
}
#

opinions?

radiant idol
#

stop

hasty ruin
#

get your c++ outta here

#

this is a c convo

timid furnace
#

someone please tell me kfd nobetaalert exists

brazen timber
radiant idol
#

yes

radiant idol
brazen timber
#

c++ and c compilers also do those optimizations

hasty ruin
#

only two people use objc++

#

saurik and tihm

granite frigate
#

that's adding uiviews to sb

#

cool

native orbit
#

swift strings after 256 bytes it becomes 2+ strings

radiant idol
topaz yew
#

interesting

radiant idol
#

why

native orbit
#

swift moment

brazen timber
radiant idol
#

ok no support for swift tweaks then

if they can get it to work tho then great frcoal

native orbit
#

lets be real no one using swift tweaks on rootless

radiant idol
#

yeah true

brazen timber
#

lets be real no one using swift tweaks

#

lets be real no one using swift

native orbit
#

python tweaks

radiant idol
#

there's an assembly tweak that someone made

#

hold on

#

i had it saved somewhere

timid furnace
#

someone????

#

you mean capt

#

wait

#

that is not capt

radiant idol
#

surprisingly no

timid furnace
#

wtf

#

@grave sparrow found your github alt

acoustic imp
hasty ruin
#

bro doesnt know scoob

radiant idol
#

br

native orbit
#

everyone knows scoob

hasty ruin
#

even ik scoob smh

native orbit
#

so who gonna make a tweak in scratch

radiant idol
#

fr

#

what does it even do

#

I dont get it

faint timber
#

shit easy for me, capt, and scoob

radiant idol
#

trol

native orbit
#

make a tweak in arm64 machine code next

radiant idol
#

ok you know what I'm sick of all of this blacklist/whitelist stuff

im going to just hardcode replace for now and add that logic later

#

do it in binary

#

you wont

faint timber
#

what was there to makeup I forgot

native orbit
#

nop

#

sadly

brazen timber
#

I DO!

native orbit
brazen timber
#

drop invite asap

brazen timber
#

so other llvm frontends like clang also do this (as long as the current standard library in use supports it, libc++ definitely does)

#

and gcc probably has it's own version

#

my point was that it's nothing specific or special about swift

primal perch
#

GCC 🔥

radiant idol
#

np

primal perch
#

no

#

i actually like gcc

#

having options is good

gentle grove
#

i like gcc but i like clang more

native orbit
#

clang clears

indigo peak
unkempt magnet
#

Noce!!

indigo peak
#

for some reason [self setDocPath:[[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] path]]; would crash

#

no idea why

#

so i changed it to [self setDocPath:[NSString stringWithFormat:@"%@/Documents", NSHomeDirectory()]];

#

and then it worked

#

¯_(ツ)_/¯

frail cedar
#

Messing with CAPerfHUD (it doesn't show up on screenshots)

#

There's two options - Power and Frequency

#

that just report nothing

#

I wonder what they're calling that production iOS is ignoring?

primal perch
indigo peak
#

@unkempt magnet added support to view all past decryption in-app without need for any file managers (tap the file to open share sheet)

#

im probably going to drop support for netcat sharing

#

there we go

#

no more netcat

frank fossil
#

Is it possible to use Dopamine’s forkfix in permasigned command line tool?
I have a non-jailbreakable device on 16.5, but I want Sileo&Procursus bootstrap to install development packages (clang,lldb,etc). I managed to fastPathSign the whole Procursus bootstrap, but both bash and zsh are not working because of fork() (I can’t live with Filza’s fish)

drifting heron
#

@indigo peak gj

indigo peak
cloud yacht
sonic totem
#

You should be able to

#

As long as shortcuts is removable

#

But I haven’t personally tested this

granite frigate
#

for system apps I guess you can temporarily overwrite the binary

#

but thats kfd nvm

indigo peak
#

I’ll tweak the way the way it chooses which apps it displays later

#

Just to see if that works

sacred orbit
#

how do i write into a folder which is owned by mobile?

visual meadow
#

self awareness

sonic totem
#

Folder*

naive kraken
#

you need to make every tool a dylib and have every binary just do a dlopen() dlsym() to find the main of that and jump to it

#

then fork works

#

only the binary segments get made non executable during fork

indigo peak
#

(heavily inspired by trollstore ui lmfaoo)

naive kraken
#

looks ok to me, I guess

#

do you support library decryption aswell?

cursive rampart
indigo peak
topaz yew
#

make it add load commands

naive kraken
# indigo peak wdym

if you download an unthinned app (via ipatool on a mac and installing it) the libraries will be encrypted aswell

indigo peak
naive kraken
#

but if you didn't implement it, it can't 😛

unkempt magnet
naive kraken
indigo peak
#

@naive kraken it does work, i just took ipatool twitter, sideloadly said it was encrypted, and then when i installed it, it crashed, then decrypted, installed that, sideloadly didnt complain, and app works as per usual

naive kraken
#

I mean dumping from address space works but there is an issue when you're dealing with a non linked library that's only opened at runtime via dlopen

#

if that's not dlopened by the time you do the decryption, it won't be included in it

#

but I don't think that is a big issue

unkempt magnet
unkempt magnet
wicked summit
#

When is TrollTroll being released?

indigo peak
#

real

#

@naive kraken do I just rename .ipa to .tipa

indigo peak
#

bet

#

thanks

#

I still don’t know what app icon to do

#

I’m prob gonna leave it

#

No icon

sonic totem
#

It was released on Monday

granite frigate
#

StoreStore

#

how do I construct a nsdictionary to use for ldid -S? i'm assuming it's just key as NSString and value as a bool but idk

granite frigate
#

Yes

#

spawn ldid binary to sign whatever is in my dictionary

timid furnace
#

it's a plist

#

so i assume you are calling this from objective-c using NSProcessInfo or whatever

granite frigate
#

y es

timid furnace
#

just make a NSDictionary with key value pairs

#

keys are strings, values depend

#

some entitlements are arrays

#

most are booleans

granite frigate
#

i'm only going to be adding get-task-allow

timid furnace
#

make sure all types are foundation types

#

alright then you can do

NSDictionary* entitlements = @{
    @"get-task-allow": [NSNumber numberWithBool:YES]
}``` or something
granite frigate
#

oh I didn;t know there was numberWithBool as a thing

#

aight nice

mint island
#

Where do I learn to understand wtf you are talking about? 👀

granite frigate
#

idk im just bored

primal perch
#

@YES enthusiasts

timid furnace
#

Does it still end up serializing as a boolean

#

I googled this specifically to make sure it serializes as a boolean

primal perch
#

its identical

#

just not cancer to write

timid furnace
#

ok bet

primal perch
#

🤓

topaz yew
#

my fav

indigo peak
primal perch
#

where possible yeah

#

objc = overhead = slow

timid furnace
#

@hasty ruin re pr

#

maybe you can color the status bar

wicked summit
timid briar
#

uppercase True tho

#

Python jumpscare

primal perch
#

@grave sparrow we are so fucking back

frail cedar
primal perch
#

facts

magic hazel
#

any course recommendations to learn obj c and swift

magic hazel
#

aight cool ty

hexed knot
hasty ruin
frail cedar
#

@naive kraken Feature idea: Migrate already installed TS apps from coretrust bug 1 to 2

#

Have an ipad 7, was on 15.3.1 updated to 17.0

#

apps dont work now bc old bug

frail cedar
#

fair enough

native dune
#

you should just be able to install without uninstalling it and it will keep data

blazing warren
twilit jungle
primal perch
topaz yew
tender plaza
#

Is there anywhere I can read up on the JTag aspect of iDevices?

snow python
twilit jungle
#

Thats nice and all but click the link

#

true

indigo peak
#

@grave sparrow i need icon help

#

idk what to make the icon for trollstore ipa decrypter

#

this was my only idea

#

lmfao

#

no message logger i clip with nvidia geforce experience

#

i have several pictures of cam

#

i just want a more 'professional' icon yk

#

@marble perch this guy put this in a twitter thread for an icon lmao

faint stag
twilit jungle
#

Wdym waste?

prime ingot
#

why was my message deleted

#

😭

faint stag
#

@indigo peak yeah i had another slightly different idea but i gave up

radiant idol
faint stag
#

good point

radiant idol
#

And make the outline bolder

drifting heron
#

of this icon

granite frigate
#

@sonic totem is there a difference between Trollstore's fastpathsign and Choma's ct_bypass test?

sonic totem
#

No

granite frigate
#

Aight

#

thanks

sonic totem
#

It’s the same file

urban moon
#

Anyone knows why this problem only exist in Taurine (iOS 14.3, arm64)? I don't have this issue on unc0ver.

iPhone 16:34:30 SpringBoard[51337](null): Injection failed: 'dlopen(/Library/TweakInject/mytweak.dylib, 9): Library not loaded: /System/Library/Frameworks/AVFAudio.framework/AVFAudio
  Referenced from: /usr/lib/TweakInject/mytweak.dylib

And I'm pretty sure /System/Library/Frameworks/AVFAudio.framework/AVFAudio is incorrect and doesn't exist, instead, it's /System/Library/Frameworks/AVFoundation.framework/Frameworks/AVFAudio.framework/

urban moon
frank fossil
naive kraken
#

(at least AFAIK)

frank fossil
#

Is PPL protecting it or something?

naive kraken
#

no but you need KRW

#

because you'd have to edit the vm_entry structures

#

fixing from userland didn't seem possible when I tried

unkempt magnet
#

I just do it for fun.
At least I was able to control register to appstore apps, but not system apps (task_for_pid failed)

#

Maybe so we can debug appstore apps here.

granite frigate
#

i did not know you could write registers

#

thats so cool

frank fossil
frank fossil
#

Here’s another interesting thing: opainject works because of same team ID

elder scaffold
#

hm

unkempt magnet
#

So tweak injection to appstore apps possible?

granite frigate
#

that's so cool

#

idk how opainject works but thats sick

frank fossil
sand shell
#

Oh

granite frigate
#

appleinternal has its own terminal? wow

frank fossil
elder scaffold
#

plz give me Terminal-999.ipa

native dune
sand shell
#

Very wondering

#

lemme just

granite frigate
frank fossil
#

shall I upload them to archive.org

sand shell
#

that was easy

#

but yeah tf do I do with it

#

lmao

#

I’ll just delete it

granite frigate
#

WHAT

sand shell
#

Wtf I can’t type

unkempt magnet
#

We have terminal in filza though..

sand shell
#

well

frank fossil
unkempt magnet
#

Oh that bug...

sand shell
#

Whatever

#

I don’t use them anyways

frank fossil
#

but AppleInternal’s Terminal has a bug, it may randomly crash between screen rotation

sand shell
#

ah

#

NewTerm>>>

unkempt magnet
elder scaffold
#

i need meowterm

unkempt magnet
harsh junco
sand shell
#

Thanks

indigo peak
#

I tried doing smth like that last year I think

#

when og trollstore came out

timid furnace
#

not just the team ID

visual meadow
#

You could maybe make like a background process that dynamically does that and auto injects

timid furnace
#

for CT2

visual meadow
timid furnace
visual meadow
#

Developer disk image i guess

#

Wait actually yeah

#

You can xpc call shit and have msm mount custom ddi

timid furnace
#

so now you need MDC

visual meadow
#

yeh to overwrite the cert

#

Man theres gotta be something broken in installd with slice code verification

granite frigate
#

can't you just one shot loop through all the user apps and store them that way, then sign them when the app is launched

timid furnace
#

how are you gonna know when the app is launched

granite frigate
#

ok true

tepid olive
indigo peak
#

do I have permission to use if I credit you

indigo peak
#

and then also mirror the troll to be facing left instead of right

tepid olive
timid furnace
#

you can't do either

tepid olive
#

inject to one of those and you can get notified if something is being launched

#

smarter to just wait for ppl bypass

tepid olive
#

news any?

young meteor
#

any news?

harsh junco
#

any news?

blazing warren
#

any news?

harsh junco
#

zeframOS

tepid olive
#

php

#

if im wanting to learn ios dev and ios exploit techniques where is a good place to start

#

ok

#

are you fluent in assembly

#

jesus

sacred orbit
#

@opal hazel Hello, can I dm you?

restive ether
#

maybe

primal perch
#

write me some mips flower boy

tepid olive
faint timber
#

lmao

hasty ruin
#

who spent their time on that

steady nest
visual meadow
#

i saw that earlier on twitter

#

cant find it tho

#

it was someone thanking opa

flint night
#

Anyone have any good rss for learning objc. I already have a decent base with c++ so I don’t need a from 0 programming tut

indigo peak
#

@faint stag

#

i remade the icon

faint stag
#

w

indigo peak
#

do you approve of the remake + me using?

faint stag
#

yeah ofc

twilit jungle
faint stag
#

bro is a hater

#

have you seen the ones before this?

indigo peak
#

@faint stag it’s beautiful

#

I think it’s release time

#

!!

flint night
indigo peak
#

yes

flint night
#

Awesome!

radiant idol
#

Please

#

I beg

drifting heron
#

I agree with Nightwind

hasty ruin
#

and make the binary text contain filtered words

torn oriole
#

Make it a binary encoding of a nexus code

indigo peak
#

is MSHookMemory possible by adding a load command for a tweak dylib into a trollstore app?

hasty ruin
#

@indigo peak did you put this dismiss line here

#

or was it from the other app

indigo peak
#

wasnt me

hasty ruin
#

because i dont think thats ever needed (?)

#

ight

cloud yacht
#

oh also its forced portrait on iPad

#

although if I force it verticle with app pad, it works fine

#

Oh it crashes when clicking an ipa in the folder menu

unkempt magnet
granite frigate
#

hi @sonic totem i'm unable to run fastpathsign in my app when i build it from Trollstore src, am i doing something wrong

sonic totem
#

What command are you running?

granite frigate
#

spawnRoot(fastPathSignPath, @[@"-i", @"/sbin/launchd", @"-r", @"-o", @"/sbin/launchd"], &stdOut, &stdErr);

tepid olive
sonic totem
#

I don’t see where frameworks come into that

#

If you’re only signing launchd

granite frigate
#

uh huh

sonic totem
#

It would give you an AMFI error message if something was signed incorrectly

tepid olive
#

i found a install method

sonic totem
sonic totem
granite frigate
#

i probably built it for macOS or something but im not sure how to build it for iphoneos

tepid olive
sonic totem
#

make TARGET=ios

granite frigate
#

OK

granite frigate
sonic totem
#

I thought you were joking

tepid olive
#

no im fr

sonic totem
#

Alright well DM me when you’re ready, if you want to

tepid olive
#

👍

granite frigate
#

my bad

sonic totem
#

Glad it’s fixed

visual meadow
visual meadow
visual meadow
#

Framework

#

It should be /System/Library/Frameworks/Foundation.framework/Foundation

#

Change the path for it with install_name_tool

granite frigate
#

i fixed it already thanks

visual meadow
#

Oh i didnt See above

granite frigate
visual meadow
#

Looking at new mdc bug a little, dont understand it
Diffing several bins that have cves on ios 16.7+
Fucking around with installd
Etc

visual meadow
#

@tepid olive btw i dmed you

velvet ivy
ashen birch
#

this image is my anthem

pearl sail
ashen birch
steady nest
hasty ruin
visual meadow
#

Yesterday

#

Unfortunate

sage kite
#

The amount of people claiming to have found an install method. surely someone isn't lying, i hope

visual meadow
#

Just for clout

sage kite
#

i know, but im hopeful.

steady nest
#

or japan

sage kite
#

i dont have the skills/knowledge about iOS/Darwin to do it myself (only know about building android roms) so i just have to hold out hope lol

steady nest
#

everyone else is bs

#

and a bad bs

sage kite
steady nest
#

yeah that one’s probably legit ig

sage kite
#

Ooo i hope so

steady nest
native orbit
#

just found new install method (real)

visual meadow
#

Like why would you post pictures of it and then get angry later on from people asking how you did it lol

#

You should be expecting that

steady nest
#

not surprised

sonic totem
#

Guys I found an install method: just get BootROM code execution

#

Easy

sage kite
#

The whole locked down thing seemed a bit suspicious to me personally. I guess if its a 'private kernel exploit - opa334', but still

#

god i hope one day (i know like 99.5% chance its not happening) we get an M1 bootrom exploit. Asahi linux on ipad

sonic totem
#

It’s probably more worthwhile to try pwning iBoot

visual meadow
#

Or Security.framework bypass lol

sonic totem
#

AKA an installd bypass

unkempt magnet
visual meadow
#

Never tried anything in it tho

unkempt magnet
ashen birch
#

brb turning pyimg4 into an img4 fuzzer

#

i mean with the latest release it does help with im4m fuzzing

ashen birch
#

definitely seems like sth that could be used as an installation method if it were around in 14.x

visual meadow
#

I wonder if the vuln still exists in installd

#

damn it

#

Might try it anyways

sage kite
faint stag
sonic totem
#

So if they’re not lying, they’ve managed to chain together the WebKit exploit AND the kernel exploit

sage kite
#

So basically CVE 2023-41992 x CVE 2023-41993

faint stag
#

and 41991 allowing trollstore 2 to work in the first place

sonic totem
#

So the full spyware chain

sage kite
#

Oh cool

sonic totem
#

Props to them

faint stag
#

though this is the tweet right after:

sonic totem
#

Oh I see

#

Oh well

faint stag
#

we do know that 41993 works at least on 16.6 tho

#

since it was patched in 16.7

sonic totem
#

Indeed

#

For all we know this Twitter dev may just not have been able to get it to work on 16.x

#

Doesn't mean it won't work

faint stag
#

to be fair, the current POC for the exploit is messy lol

#

well, the original one is

sonic totem
#

There’s a PoC?

#

Oh the WebKit one

cloud yacht
#

install trollstore from your browser

#

that would be crazy

sonic totem
#

You already can on 14.0-15.4.1

faint stag
#

dopamine in your browser would be even more crazy

timid furnace
#

for arm64e

sonic totem
#

Yes that’s true

#

And I just updated the TrollStore README to say 15.4.1 supershocked

#

Okay fixed

faint stag
timid furnace
#

so we currently need either an installd bypass or sandbox escape right

untold vine
#

Yeh

#

A pac bypass or a ppl bypass with no kcalls

untold vine
#

Oh not for trollstore

#

I thought he meant a full jailbreak 😅

#

Srry

sonic totem
untold vine
timid furnace
sonic totem
#

Or a CoW exploit

#

You might be able to do it with a sandbox escape? But you’d need to be able to edit app containers

timid furnace
#

yea considering unsandboxing with MDC wasn't good enough i think you need an entitlement

sonic totem
#

But with MDC you can still install TrollStore

#

So it’s fine

#

But an installd bypass would be desired (no offsets needed, much more reliable and allows for TrollHelperOTA)

#

Honestly though installd isn’t fun to hunt for bugs in

faint stag
#

installhaxx was a pretty funny one tho
only verifying one slice and running the other

granite frigate
#

its horrid

frank fossil
naive kraken
#

why do I only realize now that this isn't the usual kernel bug

#

like it's prob some sort of logic bug and not a memory corruption

#

and why is it the only entry that doesn't have the "entry added" thing below it

#

maybe they modified it?

#

ah no I think the rest of the entries were really added later after macOS was out

wind ravine
#

wait is there a writeup on cve-2023-41992 thats public?

radiant idol
#

Okay so here is my current progress on the Mach-O project (I also have a couple questions).

  • I got the C string array and I am currently storing it in an NSMutableArray (this is probably not the best approach, I would love to hear a better approach in doing this)
  • I have a segment_command_64 reference to the __LINKEDIT section of the Mach-O and also its offset.

Here is my thought process in how I would go about adding a new __cstring section in the Mach-O:

  • Remove the codesign from the binary
  • Shift __LINKEDIT by 0x1000 (minimum size for segment_command_64 afaik)
  • Make a new segment in the blank space
    - Question: Should the segment name be as short as possible in order to give free space to the stuff that I want to put inside of the segment?
  • Question: How would I determine the proper file offset to put it at? Do I just look at the next-to-last segment's ->fileoff + ->filesize?
  • Question: Do references to previous segments need to be adjusted in order to account for the new segment at the end of the file (but before __LINKEDIT)? My main concern is that adding a new load_command in reference to the new segment will have to push everything else in the file down. Is that the case?
  • Add a new load_command in the __TEXT segment referencing the new segment
  • Adjust other load_commands to account for the new segment.
    - Question: Are there any good resources for learning how the various load_commands reference the various segments? I found this which talks briefly about the following: dyld_info_command, symtab_command, dysymtab_command, linkedit_data_command. I also found this, which I have found to be a helpful reference for Mach-O.
#

Also, would the new strings have to be specifically put into a new section, or can they just lay within the new segment that I make? opa has mentioned at #development message that you would need to make a new "cstring segment," though I'm not sure what exactly that entails. Should I make a new segment and put the new patched strings within that directly or does the segment also have to have a section (let's call it __cstring for simplicity) for the strings to lie there as well?

primal perch
#

im not reading allat but i respect you being very explicit in your questioning

radiant idol
#

lol

#

thanks

visual meadow
#

any news?

primal perch
#

any news?

indigo peak
#

does anyone have an iPad that has trollstore installed?

#

that would be willing to help me debug

bright island
#

oh my god it’s opa

radiant idol
#

?

frail cedar
#

ipad 7 on 17.0

indigo peak
#

@frail cedar accept friend req

topaz yew
frail cedar
radiant idol
indigo peak
#

@naive kraken do i have permission to bundle LSApplicationProxy+AltList.h/m in TrollDecrypt

native orbit
#

its mit

indigo peak
native orbit
#

bro how

radiant idol
#

NINETY GIGABYTES?!?

#

the hell did you do lmao

timid furnace
#

given that you attribute

native orbit
#

most were open

timid furnace
#

it will help you

#

esp re

Question: Should the segment name be as short as possible in order to give free space to the stuff that I want to put inside of the segment?
Question: How would I determine the proper file offset to put it at? Do I just look at the next-to-last segment's ->fileoff + ->filesize?

radiant idol
radiant idol
#

did not know that was a thing

timid furnace
#

Question: Do references to previous segments need to be adjusted in order to account for the new segment at the end of the file (but before __LINKEDIT)? My main concern is that adding a new load_command in reference to the new segment will have to push everything else in the file down. Is that the case?
well, how much space in the mach-o header do you have

#

if you don't have enough space, you'll have to make space, which means you have to shift everything under it down

#

there are definitely some absolute references in the binary

#

there may also be some relative references

#

have fun with arm64e

radiant idol
#

woeisfade

timid furnace
#

Shift __LINKEDIT by 0x1000 (minimum size for segment_command_64 afaik)
@grave sparrow does __LINKEDIT have to be the last section in the binary

radiant idol
#

yes

timid furnace
#

src?

radiant idol
#

ehm hold on I can find it

#

i mean it doesn’t have to be, but then dyld will just reject it

#

and also you won’t be able to codesign

#

First couple paragraphs

timid furnace
radiant idol
#

Yeh

timid furnace
#

ok so yea i guess you have to shift __LINKEDIT

#

Add a new load_command in the __TEXT segment referencing the new segment
think you mean the mach-o header

#

Adjust other load_commands to account for the new segment.
yes

radiant idol
#

(It does)

timid furnace
#

sections go in segments

#

segments dont go in segment

radiant idol
#

wat

#

no

radiant idol
# radiant idol

these are all the load commands that are referenced in the bin

timid furnace
#

yes

radiant idol
#

every segment (__TEXT, __DATA, etc) has its own LC

timid furnace
#

yes

radiant idol
#

if I make my own segment, don’t I also need to add a corresponding LC?

timid furnace
#

yes

radiant idol
#

so what was your point lol

#

maybe I misunderstood

#

ohhhh

#

wait

#

my bad

timid furnace
#

technically the load commands are located in the range that the __TEXT segment covers, but it's really just part of the mach-o header

radiant idol
#

i just read over it again

#

yeah I see what you mean now

#

mb sorry for the confusion

#

we’re on the same page though so that’s good

timid furnace
#

Question: Are there any good resources for learning how the various load_commands reference the various segments? I found this which talks briefly about the following: dyld_info_command, symtab_command, dysymtab_command, linkedit_data_command. I also found this, which I have found to be a helpful reference for Mach-O.

#

im going to be frank

#

no

#

your best resources are going to be xnu and dyld source

#

occasionally llvm source

radiant idol
#

rip

timid furnace
#

Also, would the new strings have to be specifically put into a new section, or can they just lay within the new segment that I make? opa has mentioned at ⁠development⁠ that you would need to make a new "cstring segment," though I'm not sure what exactly that entails. Should I make a new segment and put the new patched strings within that directly or does the segment also have to have a section (let's call it __cstring for simplicity) for the strings to lie there as well?

#

idk tbh

radiant idol
#

I had a convo on the Theos server about this and it seems like a segment needs at least one section inside of it

timid furnace
#

maybe, maybe not

#

i mean in the strict sense, no, because __LINKEDIT has no sections

radiant idol
#

Neither does __PAGEZERO

timid furnace
#

__LINKEDIT is used as space for stuff defined by the other load commands though

#

__PAGEZERO is special

radiant idol
#

Yeah

#

Yeah x2

timid furnace
#

__PAGEZERO is just to catch null derefs

radiant idol
#

Yep

timid furnace
#

i would just make a section for it

#

given that you already have to add a load command for the segment

radiant idol
#

Yep I agree

#

Something like __ROOTLESS_PATCH.__cstring or something

timid furnace
#

i guess

#

i still think finding all those references to __cstring is going to be your biggest barrier though

radiant idol
#

oh yeah def

#

we’ll see how to fix it when we get there eventually

timid furnace
#

even if you don't, you should 100% publish what you have

radiant idol
#

of course

timid furnace
#

modifying mach-os is annoying enough that any code on it is incredibly useful

timid furnace
#

idk

#

i don't think it will ever be 100% perfect

radiant idol
radiant idol
#

It’s easy to just use premade functions and not actually understand what they’re doing

#

So yeah

timid furnace
#

oh i mean specifically for finding cstrings

radiant idol
#

Ah that

#

Yeah

timid furnace
#

because at that point you're going into disasembly

radiant idol
#

I think there’s a lib for adding segments btw

#

LIEF or something

timid furnace
#

seems like you can use r2. i think @faint timber has used this

radiant idol
#

Ooo thanks

#

That’s helpful

timid furnace
#

never tried it

#

most of my low-level Mach-O modification stuff is written in obj-c because i need to run it on iOS

#

definitely nicer if you can work with ie. python

#

but alas

native orbit
#

all mine is in swift spinningskull

timid furnace
#

hey at least you're not writing parsers in tcl

#

i love hex fiend but man did they pick the wackiest language to use

native orbit
#

they just built different

radiant idol
#

I can genuinely comprehend ObjC easier than any other lang

native orbit
#

compiled langs just hit better

radiant idol
#

Fr

frail spade
#

does anyone know where app switcher state is stored in an ios backup

sonic totem
#

It is

#

You can do it with Cowabunga Lite custom operations

timid furnace
sonic totem
#

/var/mobile/Library/FrontBoard

#

There’s an application state database

timid furnace
#

well that was my other question but i meant that i don't see anything about custom operations in cowabunga lite

sonic totem
#

Oh

#

It might be in the pre-release version maybe

timid furnace
#

i do see stuff about custom operations in cowabunga the iOS app

#

but that's dead now

sonic totem
#

Yeah

timid furnace
#

oh it seems to be a patron thing

sonic totem
#

I think the custom operations are in beta Cowabunga Lite

#

It’s definitely in the OSS code

#

@wind ravine is this in the public version?

wind ravine
#

yes

#

tab is disabled because unfished

frail spade
#

guessing the XBApplicationSnapshotManifest key is for the app switcher entries

timid furnace
#

i hate xcode

  • change nothing
  • build fails
  • change stuff until build succeeds
  • revert changes
  • build succeeds
#

wtf

sonic totem
#

Average Xcode experience

hasty ruin
#

fr

#

Xcode hasn’t been good since 12

sonic totem
#

Only time it’s useful is when it’s so much easier to deploy onto an actual device

#

Much quicker than manually building, code-signing and installing

hasty ruin
#

airdrop a tipa

hasty ruin
#

“preparing device for development” 🤓🤓

sonic totem
#

🤣🤣

hasty ruin
#

fr

sonic totem
#

Takes like 10 minutes everytime istg

timid furnace
#

apple has foiled my two installation method ideas

  • replace app's binary with the persistence helper on first launch
    • bundle directory is read only
  • ok lets make CFBundleExecutable a symlink
    • this will fail codesigning
native orbit
#

"Fetching debug symbols" hm

urban moon
#

Anyone familiar with how the sideloaded version watusi do its injection? https://github.com/FouadRaheb/Watusi-for-WhatsApp
Inspecting the ipa, I don't see any kind of injection libraries. Usually there's some kind of CydiaSubstrate.frameworks bundled together.
Let's say I have a personal tweak I wanted to bundled with this ipa, would inserting the injection library interferes how the tweak work (say by using Azule https://github.com/Al4ise/Azule )?

GitHub

Your all-in-one tweak for WhatsApp Messenger! Contribute to FouadRaheb/Watusi-for-WhatsApp development by creating an account on GitHub.

GitHub

Contribute to Al4ise/Azule development by creating an account on GitHub.