#development
1 messages · Page 551 of 1
ah yes the classic climate change approach
"we will run out of this thing very soon"
"oh no, I hope that doesn't happen. moving on"
one what
reminds me of the climate change summit where some country I forget was having a whinge about something dumb but they were way over schedule so everyone was just like fuck it, whatever, just print this shit out so I can sign it and get outta here
well, that's not the actual story but that's sure what it felt like
I don't have ipv6 setup 
imagine not having ipv6
Howdy! I'm somewhat new to jailbreak tweak development, so apologies if this is a newbie question. I'm attempting to hide a UICollectionViewCell from a UICollectionView in an app, but everything I've attempted has left an empty gap where the cell had been. Is there something I need to run on the UICollectionView to re-layout the remaining cells? Is there a specific way I should be removing the cell I want to hide?
if you just hide the view it won't re layout, ideally you wanna hook the data source
I've been having a heck of a time finding anything exposed I can hook into to disable the "ad" cell from being inserted into the UICollectionView
I was thinking perhaps it would be through the UICollectionViewFlowLayout but I have no idea what I'm doing beyond what I can decipher from the UIKit docs (which isn't much) https://developer.apple.com/documentation/uikit/uicollectionviewflowlayout
Is the app swift
Yeah
good luck
That was super easy to setup
Also, I got approved to chariz
, you can tell they're getting desperate
If you want a lame option, set the height of ad cells to 0
That way you don’t need to technically remove the cell or edit the data source
It becomes “invisible”
I’ve attempted to set the frame height/width to 0, and while this does hide the content of the ad cell, the space is still there and doesn’t get filled with the remaining cells
Perhaps I’m setting that too late, though? Is there a specific function to reliably hook for setting the height?
Yes
Do you know if the cell has a specific class
Yeah, that’s what I’ve been hooking, specifically setNeedsLayout
Within that class
This is what you want to hook
That’s called before layout
Do you know just from the indexPath if it’s an ad?
I'm not sure how to hook the delegate, I've not messed with those before
I don't have any references to any delegates, unless the UICollectionView or UICollectionViewCell references one?
self.delegate
^
Just printing the delegate will tell you what class you need to hook
Alternatively
Do you know what specific class the ad cells are?
like AppNameAdCollectionViewCell
Or something
Yeah, it is a "AdMrecCell"
God I just realised we were talking about collection views
I am awful at advice at 4am
😅
Amy needs some meth to stay awake
This is what you need
If you want an easy ish method you could hook UICollectionViewDelegateFlowLayout
And then use this method to get the cell at that row https://developer.apple.com/documentation/uikit/uicollectionviewdatasource/1618029-collectionview
And if the cell is of an ad cell type create a new size with height 0 and return that
If it’s not just return orig
Hook this method
I'm assuming I need to find something that implements a UICollectionViewDelegateFlowLayout related to the UICollection I'm trying to filter specifically to hook? I'm poking around to try to find an instance of the FlowLayout related to the UICollectionView in FLEX
Technically no
You could just do %hook UICollectionViewDelegateFlowLayout if you wanted to
And that would hopefully get every collection view in the app
Assuming they are using a flow layout, which is usually most common
How do I determine if the cell is of an ad type. I've attempted to use a NSPredicate but I can never get the app to compile due to missing headers
[cell isKindOfClass: NSClassFromString(@"WhateverTheAdCellClassIs")];
Ok maybe another dumb question
Assuming I'm hooking this right, any tips on getting a reference to the cell from the indexPath? I'm poking around the docs but not seeing much https://developer.apple.com/documentation/uikit/uicollectionviewdelegateflowlayout
_ _
oop
I'm not having luck calling that linked function
UICollectionViewCell* cell = self.cellForItemAt(indexPath);```
It looks like that method is from UICollectionViewDataSource rather than UICollectionViewDelegateFlowLayout
u in objc??
that would be [self cellForItemAt:indexPath]; if you're using objc message passing syntax
Hmmm. Tweak.x:61:33: error: receiver type 'UICollectionViewDelegateFlowLayout' for instance message is a forward declaration UICollectionViewCell* cell = [self cellForItemAt:indexPath];
I changed it
gj
How long would it take to disasm UIKitcore let’s see
@hardy glen progress?
Thank you “developer” for making my year better
Definitely not being extremely wholesome because I will get trolled
just unpacked the dmg
not my project but no
yea ik i just figured you would know the most about it than anyone here
chmod +x $(which dyldex); chmod +x $(which dyldex_all)
I'll double check the git/pip pkg and make sure everything is marked as executable tomorrow, but it should already be, that's odd
yea i have no clue lmao, ill try it on a vm and see if i have the same issue

sir you are [redacted]
dyldex not found
mfer i accidentally backspaced the $

im a try on my mac lets see if its a me problem
no
I'm incredibly drunk and forgot the $ before editing
and you copy pasted the original
lmao
it's 2 am here 
okay cool its not a me problem
system info?
ot's likely an implementation specific thing related to pip and the scripts dir or sometghhin
yea most likely
if you have the time on a system, you can try python3 -m pip install git+git://github.com/KritantaDev/DyldExtractor.git
assuming some implementations of python3/pip/setuptools set the executable bit on scripts= files if it isn't already set (which is the case for dyldex for some reason), and some dont
it works
👍
thank you, i knew i didn't just extract the cache for no reason lmao
could you on the same system, try python3 -m pip install --force-reinstall git+git://github.com/arandomdev/DyldExtractor.git , by chance?
want to make sure this is an issue with varying setups of python / tools and not install method
this works as well
fuck
lmfao finally extracted what i needed
all the bins are preuploaded on https://headers.krit.me/
for most versions
(clicking this bit downloads the pre-extracted fw for you)
nfr
i
wtf
i deleted this header to make the repo look prettier in a screenshot earlier today
and someone pr'ed this
lmao wtf
wasted my whole time 
i mean you found a weird bug so not entirely wasted
@hardy glen can you python3 -m pip uninstall dyldextractor and then pip3 install sdfiawejfjawifaj
and see if it works again
it works
(and if you really have nothing else to do rn, python3 -m pip uninstall sdfiawejfjawifaj; python3 -m pip install dyldextractor and see if it breaks again)
breaks
classic jailbreak detection moment 
"FakeCarriera.app" lmao bro
if you're gonna do fs checks for tweaks from iOS 3 at least get the names right
https://github.com/arandomdev/DyldExtractor/pull/32 tomorrow i'm going to double check that this isn't related to the fact they're probably buiding for upload on raw windows, but yeah should be fixed soon
yay
always amazes me that competent jailbreak detection is not that difficult to figure out, but appp storr stufe alaways does acompletely awful job at it
autocorrect wya
rootless is absolutely going to wreck these jailbreak detections
^^^
Chimera/Odyssey/Taurine probably already slides past some outdated jb detection
since we don't use Cydia or substrate
probably also the low marketshare of Taurine but eh
force app devs writing anti jailbreak to actually learn something about macho/dyld
instead of copy pasting some filesystem checks from a 2014 bl9g post or something
honestly though
I hope iOS 16 can make me stop caring about jailbreaking my iPhone
since iPadOS 15 has already made me go like "yeah I don't need to jailbreak this, I'm happy with stock"
I got back into chromebook stuff
literally everything I ever wanted from ios on an unrooted android
never going back on my daily phone
probably just a matter of time until I run into android anyways since chrome os runs android apps now
the RE is still fun though
really? huh. my whole motivation is the “spirit of tinkering” I guess.
in a nutshell
I get my fill from modding chromebooks
sure, I mean I respect that
i mean i still have 12 phones and 3 watches to have fun with
iOS jailbreak scene is boring af compared to chromebook modding
tried innovating in the iOS jailbreak scene? lol the pushback is rough
i guess I don’t know how to RE anything else yet and I’m too busy to learn
but having S21 ultra android 12.0 on my daily ohone and never ever REing/fucking with it is just nice
does more than I ever wanted my daily drive phone to ever do
without root
iOS app store devs: "combine, SwiftUI, swift 5.3? yessss"
jailbreak devs: "BUT MY 4 YEAR OLD xxx"
I’ll show you innovation. Have you ever seen multiple Pearl unlock animations haphazardly created in layoutSubviews where the siri orb is supposed to be?
No?

Didn’t think so, one second
disgusting
no one should be using layoutSubviews anymore
that's a bad habit that is rampant in the jailbreak scene from outdated tactics

it's due to outdated/lack of guides/docs
I can’t find it hang on
every new dev is foomed to repeat 2012 mistakes
bc everything in the scene is stuck in 2012 and all our docs/info is shit
See: Sileo 1.0
https://github.com/search?l=Swift&q="FakeCarrier"&type=Code
yeah, they did misspell it. also holy shit this list is common
Sileo 2.0 is drastically better than Sileo 1.0 mostly because a lot of the outdated shit was rewritten/removed
“Sorry, Ethan, there’s something wrong”
though there's still certain things that need updating (ahem layoutSubviews)
I was wondering whether they just blindly copied some list or actually added a typo that they never noticed
and never would have noticed because they have no clue what FakeCarrier or "FakeCarriera" even is

if they googled for 10 seconds they'd realise everything about it is from like 2009
half of those lists check for blackra1n.app
Swift apps won't even run on that iOS version
lmaooo that's actually very true
I mean, you can't even read /Applications or /Library on iOS 14 at all
these lists are hanging by a thread pretty much only because I believe /etc/apt is still accessible
doesn't matter if you can try accessing the file and get EPERM instead of ENOENT
one out of like 30 paths still exists
sandbox = EPERM
luckily jailbreaks spray files literally everywhere
file not existing = ENOENT
does it still reveal existence? I figured that was the point, why block access to the files/dir listings but allow learning if a file/dir exists
yes it does
so many far better techniques for jailbreak detection
i mean
although ig them not being often used / known about == less mitigation
let’s say you’re working as a software engineer for one of these companies
you have nothing against jailbreaking
it's just a checklist yeah
it might even be how you got into iOS Development
most software engineers probably literally don't even care -- it's just something the managers / people up top want
"technically implememfwsx this moving on"
your boss sends you an email
“we need jailbreak detection”
what are you going to do
A. Spend lots of time learning how modern jailbreaking works
B. Copy the first Gist you find

someone attempted to make a comprehensive check about 3/4 years ago
it’s when server-sided apps do jailbreak detection that I get worried
it’s like
how… how easily can the client mess things up, then?
because the way this should work is that I can’t change anything
besides maybe what a label says
nah
fs checks are the easy way
and easily bypassible
there are far more competent ways to do jb detection based on the plethora of insecurities typical jailbreaks introduce to ios
lmao what the hell
also the reason I opened this channel was to ask if I can hook a uiwindow without hooking the keyboard window (tbh I’m probably thinking about this problem the wrong way)
at any rate, literally none of these github noob jb detection things realise that
Some apps don’t even make sense to be needing JB detection. I heard a toothbrush app had JB detection lmao
i remember that post!
they're just using FileManager.default.fileExists(atPath:)
you are thinking the wrong way
but
sec
this would not be the first time
it makes sense when some high up dude is like "wait we have to get a security audit first" and the pentester's report says "yeah we were able to use your entire app on a jailbroken phone"
of course implying that means they're idiots not to google jb detection and slap in the same trash stack overflow code everyone uses
you would need to not use logos
so
hackers don’t deserve the cleansing power of sonicare
when in reality they aren't thinking particularly hard about where their priorities are and whether there's literally any possibility whatsoever of the app allowing bad things to happen if hacked
i mean I won’t lie I’m developing in my head so
Lmfao
it’s not particularly uh time sensitive
I have some pretty good ideas on jb detection too as well, but honestly I'd want a pretty hefty raise if someone actually wanted something good for that
based entirely off of what I remember from like a year ago
you can if ([self isKindOfClass:[%c(Classname) class]]) return %orig; i guess
if it was just an order from higher up to slap in jb detection just because some pentester said so, I'd just slap the same stackoverflow thing with maybe updated file paths
hmm but my object oriented professor said no
a better way to do that involves rethinking how you're trying to do what you're trying to do, really
okay, how about I contextualize my question
So y’all know the blur tweak
the one I have been making for what
4 years
hooking model == lame; hooking view == lamest; hooking controller == less lame; no hooks == least lame;
is my view
so basically I’ve gotten to the point where I can manage what displays behind in app in springboard
wild stuff
here’s the problem
The main window needs to be completely transparent
ok easy
except when you do that
guess what doesn’t work right
hit testing!
not to worry! CALayer has a property called hitTestsAsOpaque
yay! I can scroll!
but if I dare open the keyboard
oops now the keyboard window intercepts all touches
could hook the keyboard window's subclass and intercept that value on it
Sure but that seems hacky
UIRemoteKeyboardWindow
what about other system windows
basically I only need this hook one time, for the lower-most window
could hook the viewcontroller responsible for creating the keyboard window and add a bit that removes that value (which would require a similar model for the rest)
what kind of class is he?
for the sole purpose of not breaking the hit test chain
static
well at least he's not final
actually he’s a fantastic prof
could implement a class test with a global variable pre-check
class test fails, set global, dont run branch again if global== false
leans heavily on that whole “learning by discovery” style, he has us place bets on what a program will output to see if we’re following
still hacky but without the 0.0000002nanosecond performance hit
love this
i mean, I’m not modifying a property of the uiwindow instance itself, just a property of a property
so in other words the hook entry point doesn’t really matter
is there another way to get the lower-most window
I feel blessed that one person decided to check for the database file path I created https://github.com/pratumsat/CustomerHome/blob/cdc91a35444d76acd6a8fc8fcbe9ac70b1f01db3/Customs2Home/CustomModule/Extensions/UIDeviceExtension.swift#L34
again, only needs to run once
can you hook a function in whatever creates the keyboard window, and just set said property-property there?
***one*** person did their own research
eh i guess this'd be overriden by your own hooks
and yet still included checks for RockApp, Icy, WinterBoard, SBSettings, MxTube, IntelliScreen, FakeCarrier, and blackra1n
The problem is that I’m trying to whitelist, not blacklist
none of which are apps that run on their iOS 12.4 deploy target
not with that attitude
😳
hooks are by default a 'blacklist' in this context that you afaik cant 'whitelist' out of if not via a manual check
u figured out a better hack pog
also, what the hell even is tweakPath in that code
yes
"/Library//SSLKillSwitch2.dylib", // disable SSL certificate validation
"/Library//tsProtector.dylib",``` ????
it’s been forever
however keyWindow is deprecated but (still works)
none of these paths even exist
keyWindow will throw an exception on multi-window iPad apps
Call me crazy, but it looks like some text got accidentally removed by cmd-f or something
as the jailbrea dev adage goes
'fuck ipdad users'
yeah fuck the ipdads
/Library**/MobileSubstrate/DynamicLibraries/**
where they have Library//
actually my first jb device was iPad
so I will think of the iPads
hmm… multi-window uses UIScene right
that’s right folks it’s time to look at the private methods in public headers
accidentally slaps self with ipad
https://headers.krit.me/index.php?sdk=iOS14.8&fw=PrivateFrameworks/UIKitCore.framework&file=Headers/UIWindow.h legally obliged to post this
wait I don’t guess uikitcore is public
uikit isn't real
it's a fake for uikitcore which actually iplements what you use when you import ukit
it was before they split it
yeah
any way you could improve the mobile experience because I’ve resorted to GitHub to view headers here lately
think it was around iOS 13 they split uikit
hmm
maybe 12?
feels like it’s been a thing since before I got good at the codes
(trademark)
any way you could improve the mobile experience
I’m on the GitHub app looking at headers
could you clarify? i rather like it but i'm very interested in what other ppl want on mobile UI
you can hate the hustle but you can’t beat it either
Idk, the whole native app thing is just very convenient for me
You could use runtime browser if you are jailbroken
I mean I love your site, love the highlighting, leagues ahead of limneos’s
i am not
not on my main
i hate when apps/sites neuter things for mobile tho
meanwhile me using safari on iOS to do a lot of things instead of getting the mobile app
Yea I like krits website
oddly enough Topics are not in the app yet
the amount of effort required to implement it was
i dont get it
would be beyond easy to do on limenos' site
oh and I like how there aren’t ads

because limneos hasn’t extracted enough money from the community
sorry limneos your stuff is amazing please don’t send the tweak mafia
the syntax highlighting is easy to implement, i like to think the (fully client side JS hacky BS) logos generater helps set it apart
if u click line numbers it'll open a (scrollable, properly done) second pane with logos hooks for said methods
anyone know if uiscene hosts the keyboard window
if you're planning on checking that from within the uiwindow hook, that's a ton more runtime calls
No idea but I am making a clipboard manager and personally use UIRemoteKeyboardWindow if that helps
window.layer.hitTestsAsOpaque = TRUE;
window needs to be the lower-most uiwindow
for the sole purpose of not breaking the hit test chain
lol I won’t lie mine isn’t even on me
so no rush I’m just trying to think through it
heh
i mean, good thing to keep in mind, any windows that display on top of the main app window are either intentionally transparent or have opaque content- that will be made transparent by my tweak dammit
it should still hit test fine though
as long as there is something to catch hit tests WAIT
this is why hooking M or C is usually less of a headache
IS THAT WHY YOU EXIST
also I found a neat something that does something? it looks cool @lime pivot @silver rampart https://github.com/lechium/iOS14Headers/blob/master/System/Library/PrivateFrameworks/UIKitCore.framework/_UIBackgroundConfigurationInternal.h
hm
@tacit spade can you just check the .hidden attrib
if it's 1, fail hit tests always kinda thing
would hidden be 1 if it has no background color but alpha = 1
@silver rampart actually are you in front of a term or something
can walk over to it
preferably one that can ssh and then start up cycript
load cycript into a system app, I’ll walk you through the steps of making it transparent
the simpler the better
just lmk what info you need to find out
am competent
okay
load into any app
then uh
open the keyboard somehow
once you’ve done that
do choose(UIScene) — there should only be one
then choose(UIScene)[0]._allWindows
see how many there are
and uh ._windows would be great too
@silver rampart if ur there
most difficult part is figuring out where tf my SE is
lmao
that’s actually the problem I’m having
@silver rampart don’t stay up too late for this by the way. sleep is a good
oh my god I think I just turned on the tv
top 10 reasons living alone is nice
top #11 reasons having a dumb-tv is nice
well
i turned it off manually
my mom was still asleep somehow??
definitely woke up teddy tho
he was just sitting there like “i am a dog and this seems perfectly normal”
When you’re hiring people
this is sad
not seeing this in flex(?), is it subtyped?
trying to work through it with flex/lldb
if this is any help to you, keyboard window implements the property windowLevel with value 10000001
(yes that is base 10, not binary notation)
Lol true
it is up there
it float
i mean I could check to make sure window level is -10 < x < 10
should give me room with any funky things
I don’t like how that’s undefined behavior though
i mean
i suppose I could just make my own uiwindow
sec finally found obj you were looking for maybe
Actually you might’ve been right the whole time. I’m not sure modifying the keyboard window is a good idea at all… though im not sure how I would blacklist all of its views
Also if anyone knows how to call this app fly-in animation please let me know
Apollo user
thats as opposed to this animation
See how there’s one movement of icons rather than two?
I suspect the former will work with Lucidity much better
regarding icon fly-in: have you tried -[SBHomescreenOverlayController dismissAnimated: YES completionHandler:nil]
blind guess
said object is kept as a property in CSCoverSheetViewController.overlayController
%hook UIWindowScene
- (id)initWithSession:(id)arg1 connectionOptions:(id)arg2 {
if (self == %orig) {
self._windows[0].layer.hitTestsAsOpaque = TRUE;
}
return %orig;
}
%end```
what bundle does that inject into
overlays? first time hearing of them
mobilesubstrate standard bundle fitlers really need blacklists smh my head
Worth a try. Can’t right now, it’s 3am and I type LOUDLY
what would it take to get my uni to let me live alone
ping me tomorrow and i should be far less useless 
same tbh
https://github.com/securing/IOSSecuritySuite
on second thought, this may be as bad as it gets
tfw app has reverse engineering detection
yeah their MSHookChecker thing probably won't detect libhooker lol
still will trip libhooker-based jailbreaks in some other ways
I'm taking a look at it but it seems its more likely to detect tweaks and procursus rather than libhooker itself
and rootless procursus will probably fly under the radar
wow, at least this time they actually declare the list of url schemes in info.plist
amazing
that’s a huge step up
from checking for blackra1n.app and attempting canOpenURL cydia:// without declaring it
also why tf does uncover have a url scheme
lol they actually check for libhooker.dylib on disk
well seems they are aware of libhooker's existence
speaking of which, I do want to get libhooker working on sideloaded apps for stock iOS at some point
iOS 16 pls make me no longer need to to jailbreak my iPhone
interesting thing is they actually go to the effort of breaking fishhook
“Special thanks: 👏🏻
kubajakowski for pointing out the problem with canOpenURL(_:) method” lmao never mind they didn’t even figure it out themselves
seems the whole thing is just importing code from other people
https://github.com/securing/IOSSecuritySuite/blob/master/IOSSecuritySuite/ProxyChecker.swift lol what is the point of this
some people might legitimately need proxies, and anyways DNS poisoning is a thing
Maybe for organisations that need you to be connected to an internal VPN
Would this be different to tools like Azule that patch debs and a tweak injector into ipas
Yes because you’ll have almost full libhooker functionality
so you’ll be able to hook stuff in system libraries too
feel free to tag and whinge at me about it
lmao
doing numbers
LMAO
At least they're saving on cardboard
i don’t see the problem, it helps it to stand
It’s not as bad as bamboo toilet paper, it’s bamboo to save trees but they decided to load the fuck out of the packaging with paper insolation…

we need more bamboo straws
paper straws are a crime against humanity
we banned plastic in my county yet everywhere still gives you plastic
wanna know the funniest thing about paper straws
they aren't even fucking recyclable
i don’t think that’s the point
it’s more it costs more energy and stuff to make plastic than one paper straw
overall paper straws are worse for the environment
also recycling is a scam
and the top 100 worldwide companies create 75% of all pollution
so
the carbon footprint model was designed by BP to make it look like individuals were the driving factor
True
They just put it at a premium
Like now you pay for plastic bags at the stores
they don’t charge for straws
It’s outright banned in my city tho
bags yes
in my county the way it works is you’re supposed to have to ask
they aren’t supposed to be out or straight give. to you
i thought they disabled single user mode
I wonder why they made it like that
I kinda like the keyboard commands better than the single power button command
@gaunt dew especially this message
especially this message
hey I do that second one all the time!
especially this message
you said it not me
this is true
@gritty crystal send the review thing here
idek what it was someone posted it on reddit
apparently something adjusted the indentations
so everything was considered edited
Happy new year 🎆 (utc+1)
gambling at school (or uni)??
Dumb take but I like the new “hold power button”. I don’t use the keyboard shortcuts very often and I almost always have to Google them when I need them. Simple approach removes the need to do that for me personally
I work in an office with both M1 and intel in abundance
and often fix both 
has anyone got nodejs embedding into a tweak?
Please don’t
keep yourself safe
i will
rip MK1
what's/who's MK1
nunya
who the FUCK is joe
joe biden
Think ur ass needs to get up and look for perry instead of worrying about irrelevant stuff
the only thing i need is meth
If i believed anyone did meth here, it would definitely be you
an app by castyte that let you make js scripts kinda like tweaks
gay
Sorry i’m just Gaslighting Gatekeeping Girlbossing
Bro I would get bored in chem last year and I’d start mixing random things
Nunya buisness bozo
It was pretty fun
ik
but why did they reply to me if its not my business?
I also burned my hand and spilled hydrochloric acid on my other hand
nice
/s
Its okay i tfp allow you to keep doing it 
Most of the time
too much trolling
You already started a war asking for JavaScript tweaks
:trole:
My chemistry class had an explosion
Until my hand at a yellow tint
STIB PFP!!!!
@indigo peak i think i might work on flexdump
Either flexdump or update flexextend
Flex dumpy
I need to order a new iPhone SE battery
So I can work on tweaks
iOS 13.1.3 or something
sorry all my tweaks will only support ios 14.8
@hardy glen if you write me 10 lines on what a task port is i will unblock you
Keep me blocked
k
u only put the final 'ing'
it flows better
Understandable
Understandabling ✨
Since hello-world.rs is written in blazingly pure, configurable, lightweight and memory pure rust(🚀) - the CVEs are secure, memory chad and blazing pure 🚀
I hate email
anyone here ever messed with roundcube?
I think I found the issue....
yeah I’ve used a rubiks cube before
GOT IT! had to use signing_table in my rpsamd config
happy new years dipshits
happy new year devs yall made me realize how much of a dumbass i am
You can use most programming languages for iOS development
bobamail uses mailcow which has SOGo
Maybe not HolyC
Ok, where can I find the brainfuck compiler?
no, but personally I prefer objective-c
btrolllaugh
I’m unfortunately a c++ based man
it’s b
And theos is a standard for a reason I assume?
I'm a Minecraft user
tweak.fla
Yeah
idk the reason
but it’s a standard
Dunno, I just tried objective c once a couple of years ago and remember it sucked
I hate java
java is the worst.
everything except TypeScript and Swift is the worst
Java uses so much ram
die
I literally ran out of ram trying to write a plugin
it’s sexy as fuck (relatable)
rust is cool don't make fun of rustaceans
u suck
happy halloween everyone :D
outside of memes rust is actually pretty cool
the compiler errors 🤤
are you sure about that?
anything with llvm should work
ah, you meant tweaks written in python
has java made progress on any type of sensible block/lambda syntax?
have you ever written in rust either
🚀
you should try java
I will
mainly I would prefer rust because of build tools and environment
@hook(SBStatusBarManager)
def handleStatusBarTapWithEvent(arg1: _id) -> None:
print("Hello world.")
self.orig()
ez
yeah
Java is incredibly difficult without an idee
it'd be nice
Do it
Make a preprocessor
if i actually knew how tweak dev worked on a lower level i would so try
but im like
stupid
i mean, true
a_group = Group("A")
@a_group.hook(SBStatusBarManager)
def handleStatusBarTapWithEvent(arg1: _id) -> None:
print("Hello world.")
self.orig()
a_group.init()
Is this python
That is cursed
@hook(SBStatusBarManager)
def handleStatusBarTapWithEvent(arg1: _id) -> None:
print("Hello world.")
self.orig()
would convert to
%hook SBStatusBarManager
-(void)handleStatusBarTapWithEvent:(id)arg0 {
NSLog(@"Hello world.");
%orig;
}
%end
not that bad
how do python devs survive with that syntax 
it's valid python assuming you have the correct imports and the backing implementation
that isn't the syntax for type hinting in python though iirc
because I have a job that pays me for writing python??
Unless I'm misrrmrmbering
you are
you might be thinking of python 2 syntax
what was that like
well it didn't have type hinting actually
did it
isn't type hinting pretty new or something
I'm tired
i used to do a lot of python but haven’t for like 3 years now, do you get problems with the indentation syntax or is it always fine
i feel like it would confuse me
I never had intendation problems in python before
py2
def handleStatusBarTapWithEvent(arg1):
# type: (_id) -> None
py3
def handleStatusBarTapWithEvent(arg1: _id) -> None:
tabs or spaces bobs
would this be equivalent to
%group a_group
%hook SBStatusBarManager
-(void)handleStatusBarTapWithEvent:(id)arg1 {
NSLog(@"Hello world.");
%orig;
}
%end
%end
%ctor {
%init(a_group);
}
spaces
yes
kind of
return type for def goesOutside
I hadn't even seen type hinting at all until like a year or two ago
it does??
huh
yes??
yup
I've never seen it before
typing.Generic
what is it used for thougu
@glacial matrix I can try to write a converter from python to logos
It just won’t have any syntax checks 🗿
you can certainly try
bro python is literally one big generic
@gentle grove you do something like this
class BaseClass(Generic[T]):
something: ClassVar[T]
class MyStringClass(BaseClass[str]):
pass
class MyIntClass(BaseClass[int]):
pass
s = MyStringClass("S")
i = MyIntClass(4)
and mypy verifies that the types are correct
what's the something: ClassVar[T]
I might have used it wrong (by using ClassVar) but the idea is to link the "T" in "Generic[T]" from "BaseClass" to be the type you pass in the subclass
what the hell is that
such that MyStringClass's "something" is a string while MyIntClass's "something" is an int
python
have you seen typing.List?
well I know its python
cause it looks weird
like, my_list: List[int] = [1, 2, 3]
what foes that do
initializes a integer list with contents of 1 2 and 3 id assume
yeah but
plus its explicit type
is that the same as without : List[int]
I could also do my_other_list: List[str] = ["1", "2", "3"]
yes
what if you add an int in there
you dumb
does it give a warning or anything
and mypy complains
@glacial matrix so can you instantiate a var like in C int someVar; in python by doing someVar: int
the type checker
its a type hinter
is it included in python
but its so ugly
type checker, not hinter
or do you have to run it separately
that's kind of dumb
python is still a dynamic language but they have been doing some work towards some "static" typing
true
since py3
it just gives some guarantees about what functions can take as arguments and give as return values
it's taken for granted in C & family and swift
well, to some degree I guess, given those type confusion parts in exploits
yes
seriously
wtf
so i dont need to assign it a val
i can just do someVar: int and now its declared

it's not gonna do much though, until you do assign it a value
if you don't, it'll error out when you use it because it's not instantiated
one usage would be
some_var: int
if another_var:
some_var = 1
else:
some_var = 2
instead of the (uglier) alternative
if another_var:
some_var: int = 1
else:
some_var = 2
with a lot of work
what if i just hard coded all the cased 
if re.compile("Group\([^,]*\)") in line:
do_the_code()
you'll regret using regexes
ive legit only made that
i cant figure anything else out 🗿
i also regret making a file called Tweak.py
the way I'd start it would be to make a basic "hook" decorator that registers the string argument and the function it decorates, into a global registry
oh lord whays going on in here
i was just gonna check the syntax and add the logosified version into a string
you should leave now
im attempting to make Tweak.py a reality

then in a
if __name__ == "__main__":
hook.print_registry()
you print the data you collected
you wouldn't be the first
ideally it'll have some better logos language support features which logos.pl isn't as capable of
ideally
you see
ideally can be used to stretch the reality
concord is a jailbreak tweak to theme discord ideally going to release before 2022
lord I just need to buckle down and learn language server protocol
and i havent even gotten good progress
it's been missing for too dang long
and its 1 and a half hours into 2022
i just watched a 10th grader pop open a champagne bottle on snapchat
i fell discgusting
heads up you need a space before any logos code starts
(even if there are no imports afaik)
@indigo peak
import json
from collections import defaultdict
from typing import Callable
hooks = defaultdict(list)
def hook(class_name: str) -> Callable:
def inner(func) -> Callable:
func_name = func.__name__
func_type = func.__annotations__
global hooks
hooks[class_name].append((func_name, func_type))
return func
return inner
@hook("SpringBoard")
def init() -> None:
print("SB init")
@hook("SpringBoard")
def dealloc() -> None:
print("SB dealloc")
if __name__ == "__main__":
for key, values in hooks.items():
print(key)
for value in values:
print(" ", json.dumps(value))
python
referencing a global in a different context
global fic
global output
output += ...
just try it
hot
it lists the hooked classes and their prototypes (in python code)
# code = """you cursed python tweak here"""
code = """
a_group = Group("A")
@a_group.hook(SBStatusBarManager)
def handleStatusBarTapWithEvent(arg1: _id) -> None:
print("Hello world.")
self.orig()
a_group.init()
"""
depth = 0
groupList = []
hookList = []
output = """"""
def fuckCtor():
global output
output += "%end\n%end\n"
output += f"""
%ctor {{
%init({",".join(groupList)});
}}
"""
lines = code.split('\n')
for line in lines:
depth += 1
line = line.strip()
if "Group(" in line:
stat = line.split(" ")
name = stat[0]
output += f"%group {name}\n"
groupList.append(name)
for groupName in groupList:
if f"@{groupName}.hook(" in line:
hookName = line.split("(")[1][:-1]
output += f"%hook {hookName}\n"
hookList.append(hookName)
if depth == len(lines):
fuckCtor()
print(output)
``` 
just another
cirsed project
i decied to d
o
yeah no
real quick intermission
:D
what are you coding this in
what ide/context
editor?
sec
@indigo peak log into this and lmk if it works: https://hub.krit.me/
ye
not sure if you're familiar with these but
shove in code blocks and hit shift+enter to execute them
also have objc/c kernels set up for the rare instances those are helpful
tweaks in da web browswe
half the time i just use them to print out enum header values lol

its a pretty powerful machine but dont do anything too crazy for a long period of time lol
this should make it a lot easier to write the logos thing you're trying to write
prob better thn my machene
since you wont have to constantly be switching between vscode writing context and executing and all that
love it
its how i prototype a lot of my stupid shit before moving it to an actual IDE
@indigo peak https://www.toptal.com/developers/hastebin/atiyegakim.py hastebin because it's too long now for a codeblock without nitro
I didn't do the body part
you got a bit more done that i did
I already have my fair share to deal with regarding code parsing so I'll leave that to you ;P
and it's 4:16 here
02:16 here :|
this is how i live spending the new year
new year, new struggles
:D
yay?
I fear I have to implement the C/C++/Objc token->AST parser myself, or at least some high level of it ;_;
is the actual code in the def ...: actually running
or am i dumb
probably not
right
it is not
frick






