ProxymanApp / Proxyman

Modern. Native. Delightful Web Debugging Proxy for macOS, iOS, and Android โšก๏ธ
https://proxyman.io
5.69k stars 188 forks source link

Support HTTP/2 #416

Open NghiaTranUIT opened 4 years ago

NghiaTranUIT commented 4 years ago

๐Ÿถ Brief

At the moment, all intercepted HTTP/HTTPS through Proxyman will be downgraded to HTTP/1.1. We should support HTTP/2 too and implement the HTTP/2 parser correctly.

๐Ÿ‘‘ Criteria

Update 1 (5 Feb 2023): Beta build for HTTP/2 is ready โœ…

Comment: https://github.com/ProxymanApp/Proxyman/issues/416#issuecomment-1417959460

Update 2 (14 Feb 2023): New Update

Comment: https://github.com/ProxymanApp/Proxyman/issues/416#issuecomment-1429048662

Update 3 (22 Feb 2023):

https://github.com/ProxymanApp/Proxyman/issues/416#issuecomment-1439878308

Saklad5 commented 4 years ago

Any progress on this?

NghiaTranUIT commented 4 years ago

@Saklad5 Sorry, but at the moment, I'm working on Protobuf feature.

When it's done, I will kick start the HTTP/2 since it's crucial to support gRPC feature too ๐Ÿ™Œ

Saklad5 commented 4 years ago

Glad to see the Protobuf feature is done: itโ€™s not something Iโ€™m interested in, but it means you might work on this soon. Once Proxyman can run without downgrading traffic, I think Iโ€™ll purchase it. Until then, I canโ€™t really justify running it for long periods of time, which limits its utility.

NghiaTranUIT commented 4 years ago

I would like to say that HTTP/2 and HTTP/3 are must-have features of Proxyman, and the progress is really good at the moment ๐Ÿ™Œ

Protobuf, the first blocker is done, it's time for HTTP/2.

Stay tuned ๐ŸŒฎ

Saklad5 commented 4 years ago

HTTP/3 isnโ€™t formally accepted yet, so Iโ€™d say thatโ€™s less of a must-have than HTTP/2. I generally donโ€™t expect things to support draft standards, and I understand it is pretty different.

By the way, does Proxyman do any other downgrading at the moment? Besides forcing HTTP/1, does simply running it affect outgoing traffic at all?

NghiaTranUIT commented 4 years ago

At the moment, only HTTPS domains, which enable SSL-Proxying (To see the HTTP Response Content) is downgraded to HTTP/1.

Otherwise, HTTPS (no SSL-Proxying) and HTTP are not, since it's just a proxy server, no interception. Thus, it would keep HTTP/2 or other protocols without changing it.

As there are no reliable HTTP/2 servers on macOS (Swift/Objc) yet, so it's the reason why Proxyman doesn't support HTTP/2 at the first implementation. However, Swift-NIO from Apple is fully supported recently, so I'm planning to rewrite the Proxyman Core with NIO stack.

When 1.23.0 build is out this weekend, I will push HTTP/2 forward ๐Ÿ‘

wasder commented 4 years ago

Looking forward for gRPC support. Could be a killer feature, as nothing yet so handy support it.๐Ÿ‘

bbuckland commented 3 years ago

@NghiaTranUIT sounds like you've made a ton of progress towards this. Could you share where you're at with HTTP/2, specifically to enable gRPC?

NghiaTranUIT commented 3 years ago

@bbuckland We're migrating the codebase to HTTP/2 but it hasn't finished yet. I will push it forward soon after the Multiple Filters and Diffing is done ๐Ÿ™Œ

To workaround and see the gRPC data, you might consider using Atlantis from Proxyman (https://github.com/ProxymanApp/atlantis#2-my-app-use-grpc)

inickt commented 3 years ago

Would love to know if there are any updates on this, our backend microservices only talk over HTTP/2 and I would love to use Proxyman + the beta of the reverse proxy feature to improve my backend workflow.

That being said I switched over from Charles this week and it has been amazing for testing iOS things!

NghiaTranUIT commented 3 years ago

Thanks for the upvote @inickt. Since the Reverse Proxy is almost done (we're going to release it in this week), so our team is working on the HTTP/2 ๐Ÿ‘

We will send a Beta build here when it's available ๐Ÿ˜„

inickt commented 3 years ago

Hey, I was curious if there have been any updates on this? Still been loving the app so thanks for all of your work and the great updates!

NghiaTranUIT commented 3 years ago

Hey @inickt Thanks for your shoutout.

To be honest, I tried to support HTTP/2 months ago but it doesn't work well since it's a breaking change in our codebase ๐Ÿ˜ฟ . The problem is not just supporting HTTP/2, it also includes HTTP/1.1 as backward compatible.

At the moment, I'm focusing on the Folder Rule (where you can organize the tool rules in folders). When it's done, I will back to HTTP/2 ๐Ÿ‘

NicolasCombe5555 commented 2 years ago

Hello @NghiaTranUIT ๐Ÿ‘๐Ÿป; could we expect http2 support any time soon or not likely to happen soon? Thanks ๐Ÿค

NghiaTranUIT commented 2 years ago

Sorry @NicolasCombe5555 This ticket is implemented but it's delayed due to technical problems. Basically, in order to support HTTP/2, we have to redesign the ProxymanCore, which is primarily designed for HTTP/1.1. Hence, we decide to postpone this ticket until we found a better solution.

Can you elaborate on why you need HTTP/2? Does it important for your work? @NicolasCombe5555 ๐Ÿค”

NicolasCombe5555 commented 2 years ago

@NghiaTranUIT Well part of my project has http/2 in our tech stack; so I cannot see that traffic when using Proxyman. But I understand if we are having issues with supporting it here; thanks for the quick response tho ๐Ÿ‘๐Ÿป

eseay commented 2 years ago

I've read this thread and understand the complexity surrounding adding HTTP/2 support, but I just wanted to more or less throw a "+1" onto this issue as someone who would like to see it supported.

In the meantime, I am just using mitmproxy to view any traffic from my application where HTTP/2 is required.

@NghiaTranUIT to give you some context about the HTTP/2 need - we're starting to use more gRPC across my teams, and since that's HTTP/2, we're not able to proxy those requests using Proxyman. In fact, having Proxyman open when those requests go out essentially breaks them. (I work on the iOS apps, and am debugging that app's traffic to our servers)

Thanks for your work on such a great tool!

NghiaTranUIT commented 2 years ago

Even Proxyman can support HTTP/2 and Protobuf, but there is no guarantee that it can capture and properly decrypt the gRPC package because we don't support it yet.

To workaround, @eseay you can use Atlantis, which allows you to capture gPRC traffic ๐Ÿ‘ https://github.com/ProxymanApp/atlantis#2-my-app-use-grpc

eseay commented 2 years ago

@NghiaTranUIT well I'll clarify that the back-end is serving a gRPC hybrid called Connect, so we're actually just using POST requests with normal request bodies, but those requests require HTTP/2.

In either case - I am curious what I may be doing wrong in Proxyman to not be seeing HTTP/2 traffic.

When I run mitmproxy, I see that all of my requests (both gRPC-Connect and classic REST) are being conducted via HTTP/2; I see the same thing when proxying through Charles.

In Proxyman, when I go to inspect my requests, they are all showing as using HTTP/1.1. Is there something I may have configured incorrectly in Proxyman that's preventing the HTTP/2 transmissions?

j-j-m commented 2 years ago

I see the same thing. Is there any way to prevent Proxyman from breaking my gRPC services in app? I have tried Atlantis with no luck.

NghiaTranUIT commented 2 years ago

@j-j-m can you use this Atlantis code to capture gRPC traffic? https://github.com/ProxymanApp/atlantis#2-my-app-use-grpc

and open Tools Menu -> SSL Proxying List -> Remove the gRPC domain in the Include List. It will fix the SSL Error, and allows the Atlantis to work properly ๐Ÿ‘

NghiaTranUIT commented 1 year ago

Good news ๐ŸŽ‰ ๐ŸŽ‰

I've supported the HTTP/2 protocol (Beta) for the Proxyman app ๐ŸŽ‰

Beta build: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_4.1.0_Support_HTTP_2.dmg

What's new

Notes

Screenshots

Proxyman HTTP/2

How to enable HTTP/2

Screenshot_2023-02-05_at_20_57_11

Known issues:

If you guys find any bugs, please let me know, I'm all ears to fix it ๐Ÿ‘


Just a friendly tag: @j-j-m @eseay @NicolasCombe5555 @inickt @bbuckland @Saklad5, @Ashraf-Ali-aa, @julasamer, @wasder, @ildar-gilfanov, @NSMyself, @heyzooi, @inickt, @nxtSwitch, @basecde, water-a

derekmurawsky commented 1 year ago

Tested it out, and it looks like it works to me! I was able to request an image where, previously, the connection was downgraded to 1.1. Thank you!

brr53 commented 1 year ago

Thank you. There is a bug though. HTTP2 does not have the host header. So this RAW is incorrect. HTTP2 heading should look something like this.

:method: GET :authority: www.google.com :scheme: https :path: /

Screen Shot 2023-02-05 at 1 48 18 PM

@NghiaTranUIT

NghiaTranUIT commented 1 year ago

Thanks @brr53. It's just a UI bug. Behind the sense, Proxyman automatically translates the HTTP/1.1 Raw format into the HTTP/2 format, so it's still working.

I'm going to fix the Raw Tab for HTTP/2 now ๐Ÿ‘

NghiaTranUIT commented 1 year ago

Update HTTP/2 v2 ๐ŸŽ‰

Changelog

Known issues:

NghiaTranUIT commented 1 year ago

Bug 2

A user reports that TLS/Extension for the HTTP/2 doesn't meet the standard from Google Chrome / Charles Proxy. We should fix it.

on https://tls.peet.ws/api/all
this is proxyman: 3:100,6:16384|00|0|p,m,s,a
this is chrome: 1:65536,2:0,3:1000,4:6291456,6:262144|15663105|0|m,a,s,p 
this is charles: "1:65536,2:0,3:1000,4:6291456,6:262144|15663105|0|m,a,s,p",
brr53 commented 1 year ago

@NghiaTranUIT What you have listed aren't related to TLS by the way. I think these are HTTP2 components.

NghiaTranUIT commented 1 year ago

Update HTTP/2 v4 ๐ŸŽ‰

Changelog

CleanShot 2023-02-14 at 10 08 51@2x

Known issues:

NghiaTranUIT commented 1 year ago

Update HTTP/2 v5

Changelogs

Known issues:

WS doesn't work with HTTP/2

NghiaTranUIT commented 1 year ago

@brr53 just wondering: Why the akamai_fingerprint is important to you ๐Ÿค”

I've investigated: The reason is the difference between the SentFrame Setting.


You can check out the Section 4: Passive HTTP/2 Fingerprint โ€” Suggested Format at https://www.blackhat.com/docs/eu-17/materials/eu-17-Shuster-Passive-Fingerprinting-Of-HTTP2-Clients-wp.pdf

havebeenfitz commented 1 year ago

Hi @NghiaTranUIT, thank you for your effort! It's working great, but I found a crash when connected to VPN before Proxyman is launched and trying to intercept some gRPC traffic. Not sure if there are any logs I can give you to track down the issue.

UPD, found some: ``` ------------------------------------- Translated Report (Full Report Below) ------------------------------------- Process: Proxyman [66431] Path: /Applications/Proxyman.app/Contents/MacOS/Proxyman Identifier: com.proxyman.NSProxy Version: 4.3.1 (43010) Code Type: ARM-64 (Native) Parent Process: launchd [1] User ID: 501 Date/Time: 2023-03-02 10:07:07.3971 +0400 OS Version: macOS 13.2 (22D49) Report Version: 12 Anonymous UUID: 3404C934-1E2C-C72A-EA90-F74A2D4D1991 Sleep/Wake UUID: 455BBCF7-2C39-4C23-BB04-D83E61EF23A0 Time Awake Since Boot: 310000 seconds Time Since Wake: 5729 seconds System Integrity Protection: enabled Crashed Thread: 7 NIO-ELT-0-#6 Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x0000000107836990 Termination Reason: Namespace SIGNAL, Code 5 Trace/BPT trap: 5 Terminating Process: exc handler [66431] Thread 0:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x186a72050 mach_msg2_trap + 8 1 libsystem_kernel.dylib 0x186a8411c mach_msg2_internal + 80 2 libsystem_kernel.dylib 0x186a7ac24 mach_msg_overwrite + 452 3 libsystem_kernel.dylib 0x186a723cc mach_msg + 24 4 CoreFoundation 0x186b91bb0 __CFRunLoopServiceMachPort + 160 5 CoreFoundation 0x186b9049c __CFRunLoopRun + 1232 6 CoreFoundation 0x186b8f878 CFRunLoopRunSpecific + 612 7 HIToolbox 0x19026ffa0 RunCurrentEventLoopInMode + 292 8 HIToolbox 0x19026fde4 ReceiveNextEventCommon + 672 9 HIToolbox 0x19026fb2c _BlockUntilNextEventMatchingListInModeWithFilter + 72 10 AppKit 0x189e15838 _DPSNextEvent + 632 11 AppKit 0x189e149c8 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 728 12 AppKit 0x189e08df8 -[NSApplication run] + 464 13 AppKit 0x189de023c NSApplicationMain + 880 14 Proxyman 0x104edc884 0x104ed4000 + 34948 15 dyld 0x186787e50 start + 2544 Thread 1:: NIO-ELT-0-#0 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 2:: NIO-ELT-0-#1 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 3:: NIO-ELT-0-#2 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 4:: NIO-ELT-0-#3 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 5:: NIO-ELT-0-#4 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 6:: NIO-ELT-0-#5 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 7 Crashed:: NIO-ELT-0-#6 0 ProxymanCore 0x107836990 0x107764000 + 862608 1 ProxymanCore 0x1078377ec 0x107764000 + 866284 2 ProxymanCore 0x1078377ec 0x107764000 + 866284 3 ProxymanCore 0x10783764c 0x107764000 + 865868 4 ProxymanCore 0x1078b8640 0x107764000 + 1394240 5 ProxymanCore 0x107b849a8 0x107764000 + 4327848 6 ProxymanCore 0x107bbf8d4 0x107764000 + 4569300 7 ProxymanCore 0x107bbdc38 0x107764000 + 4561976 8 ProxymanCore 0x107bf33b8 0x107764000 + 4780984 9 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 10 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 11 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 12 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 13 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 14 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 8:: NIO-ELT-0-#7 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 9:: NIO-ELT-0-#8 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 10:: NIO-ELT-0-#9 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 11:: NIO-ELT-1-#0 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 12:: NIO-ELT-2-#0 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 ProxymanCore 0x107c0be64 0x107764000 + 4882020 2 ProxymanCore 0x107bf672c 0x107764000 + 4794156 3 ProxymanCore 0x107bf32e4 0x107764000 + 4780772 4 ProxymanCore 0x107bdd96c 0x107764000 + 4692332 5 ProxymanCore 0x107be0fbc 0x107764000 + 4706236 6 ProxymanCore 0x107be2ddc 0x107764000 + 4713948 7 ProxymanCore 0x107c0d8f0 0x107764000 + 4888816 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 13:: com.apple.coreanimation.render-server 0 libsystem_kernel.dylib 0x186a72050 mach_msg2_trap + 8 1 libsystem_kernel.dylib 0x186a8411c mach_msg2_internal + 80 2 libsystem_kernel.dylib 0x186a7ac24 mach_msg_overwrite + 452 3 libsystem_kernel.dylib 0x186a723cc mach_msg + 24 4 QuartzCore 0x18e26b188 CA::Render::Server::server_thread(void*) + 564 5 QuartzCore 0x18e26af44 thread_fun(void*) + 32 6 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 7 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 14:: com.apple.NSEventThread 0 libsystem_kernel.dylib 0x186a72050 mach_msg2_trap + 8 1 libsystem_kernel.dylib 0x186a8411c mach_msg2_internal + 80 2 libsystem_kernel.dylib 0x186a7ac24 mach_msg_overwrite + 452 3 libsystem_kernel.dylib 0x186a723cc mach_msg + 24 4 CoreFoundation 0x186b91bb0 __CFRunLoopServiceMachPort + 160 5 CoreFoundation 0x186b9049c __CFRunLoopRun + 1232 6 CoreFoundation 0x186b8f878 CFRunLoopRunSpecific + 612 7 AppKit 0x189f40188 _NSEventThread + 172 8 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 9 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 15:: com.apple.CFSocket.private 0 libsystem_kernel.dylib 0x186a7d130 __select + 8 1 CoreFoundation 0x186bbb334 __CFSocketManager + 636 2 libsystem_pthread.dylib 0x186ab206c _pthread_start + 148 3 libsystem_pthread.dylib 0x186aace2c thread_start + 8 Thread 16:: Dispatch queue: io.swiftnio.GetaddrinfoResolver.offloadQueue 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 libsystem_info.dylib 0x186aedacc _mdns_search_ex + 1112 2 libsystem_info.dylib 0x186af0334 mdns_addrinfo + 360 3 libsystem_info.dylib 0x186af0180 search_addrinfo + 176 4 libsystem_info.dylib 0x186ae9304 si_addrinfo + 2144 5 libsystem_info.dylib 0x186ae89fc getaddrinfo + 168 6 ProxymanCore 0x107bd4db8 0x107764000 + 4656568 7 ProxymanCore 0x107bd56d8 0x107764000 + 4658904 8 ProxymanCore 0x107be1328 0x107764000 + 4707112 9 libdispatch.dylib 0x1869289dc _dispatch_call_block_and_release + 32 10 libdispatch.dylib 0x18692a504 _dispatch_client_callout + 20 11 libdispatch.dylib 0x186931bbc _dispatch_lane_serial_drain + 672 12 libdispatch.dylib 0x186932708 _dispatch_lane_invoke + 384 13 libdispatch.dylib 0x18693d34c _dispatch_workloop_worker_thread + 652 14 libsystem_pthread.dylib 0x186aae100 _pthread_wqthread + 288 15 libsystem_pthread.dylib 0x186aace20 start_wqthread + 8 Thread 17:: Dispatch queue: io.swiftnio.GetaddrinfoResolver.offloadQueue 0 libsystem_kernel.dylib 0x186a78194 kevent + 8 1 libsystem_info.dylib 0x186aedacc _mdns_search_ex + 1112 2 libsystem_info.dylib 0x186af0334 mdns_addrinfo + 360 3 libsystem_info.dylib 0x186af0180 search_addrinfo + 176 4 libsystem_info.dylib 0x186ae9304 si_addrinfo + 2144 5 libsystem_info.dylib 0x186ae89fc getaddrinfo + 168 6 ProxymanCore 0x107bd4db8 0x107764000 + 4656568 7 ProxymanCore 0x107bd56d8 0x107764000 + 4658904 8 ProxymanCore 0x107be1328 0x107764000 + 4707112 9 libdispatch.dylib 0x1869289dc _dispatch_call_block_and_release + 32 10 libdispatch.dylib 0x18692a504 _dispatch_client_callout + 20 11 libdispatch.dylib 0x186931bbc _dispatch_lane_serial_drain + 672 12 libdispatch.dylib 0x186932708 _dispatch_lane_invoke + 384 13 libdispatch.dylib 0x18693d34c _dispatch_workloop_worker_thread + 652 14 libsystem_pthread.dylib 0x186aae100 _pthread_wqthread + 288 15 libsystem_pthread.dylib 0x186aace20 start_wqthread + 8 Thread 18: 0 libsystem_pthread.dylib 0x186aace18 start_wqthread + 0 Thread 7 crashed with ARM Thread State (64-bit): x0: 0x0000600002b44600 x1: 0x00006000006c4940 x2: 0x0000000000000000 x3: 0x0000600002b44680 x4: 0x0000000000000001 x5: 0x0000000000000001 x6: 0x000060000188c780 x7: 0x0000000000000000 x8: 0x0000000000000000 x9: 0x0000000000000000 x10: 0xfffffffe00000000 x11: 0x0000000200000003 x12: 0x0000000000000003 x13: 0x0000000000013820 x14: 0x00000000000007fb x15: 0x0000000095a05009 x16: 0x0000000194c15294 x17: 0x00000001e6e9f5b8 x18: 0x0000000000000000 x19: 0x00006000006c4940 x20: 0x0000000000000000 x21: 0x0000600002b44600 x22: 0x0000600002b44600 x23: 0x0000600003d76d00 x24: 0x0000000000000000 x25: 0x0000000130108028 x26: 0x0000000130108000 x27: 0x000000011988c038 x28: 0x0000000000000000 fp: 0x000000016b52aa70 lr: 0x00000001078377ec sp: 0x000000016b52a9d0 pc: 0x0000000107836990 cpsr: 0x80001000 far: 0x0000000194bcc800 esr: 0xf2000001 (Breakpoint) brk 1 Binary Images: 0x186a71000 - 0x186aaafeb libsystem_kernel.dylib (*) <6b682e21-fd96-3a5a-8260-fce367258252> /usr/lib/system/libsystem_kernel.dylib 0x186b10000 - 0x186fe7fff com.apple.CoreFoundation (6.9) <18260df4-69a8-30d3-8175-fb8ae7ae7709> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x19023e000 - 0x190571fff com.apple.HIToolbox (2.1.1) /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox 0x189ddc000 - 0x18ace7fff com.apple.AppKit (6.9) <7758f868-3402-3892-8b75-66ab0b883af6> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit 0x104ed4000 - 0x105263fff com.proxyman.NSProxy (4.3.1) <036c9ff5-ea85-3084-906b-e6639f7bac7e> /Applications/Proxyman.app/Contents/MacOS/Proxyman 0x186782000 - 0x18680cba3 dyld (*) /usr/lib/dyld 0x107764000 - 0x10826bfff com.nsproxy.ProxymanCore (3.11.0) <99ae4216-37c3-313c-b7e3-9fb71293ff2f> /Applications/Proxyman.app/Contents/Frameworks/ProxymanCore.framework/Versions/A/ProxymanCore 0x186aab000 - 0x186ab7ffb libsystem_pthread.dylib (*) <9f3b729a-ed04-3e65-adac-d75ad06ebbdc> /usr/lib/system/libsystem_pthread.dylib 0x18e224000 - 0x18e589fff com.apple.QuartzCore (1.11) <6fb199ab-500f-3cf4-84b4-08bc6bd22a79> /System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore 0x186ae4000 - 0x186b0fff3 libsystem_info.dylib (*) <0b8128b1-be39-33de-aa69-9fc1bf3c4f7b> /usr/lib/system/libsystem_info.dylib 0x186926000 - 0x18696dfff libdispatch.dylib (*) <4d52c3a5-32e6-37a2-9d6c-23c612038354> /usr/lib/system/libdispatch.dylib External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 1201 thread_create: 12 thread_set_state: 80685 VM Region Summary: ReadOnly portion of Libraries: Total=1.4G resident=0K(0%) swapped_out_or_unallocated=1.4G(100%) Writable regions: Total=6.3G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=6.3G(100%) VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Accelerate framework 256K 2 Activity Tracing 256K 1 CG backing stores 5568K 4 CG image 4160K 219 ColorSync 560K 27 CoreAnimation 43.8M 520 CoreGraphics 48K 3 CoreImage 64K 4 CoreUI image data 5824K 44 Foundation 48K 2 Image IO 304K 2 Kernel Alloc Once 32K 1 MALLOC 487.8M 81 MALLOC guard page 288K 14 MALLOC_MEDIUM (reserved) 1.2G 10 reserved VM address space (unallocated) MALLOC_NANO (reserved) 384.0M 1 reserved VM address space (unallocated) SQLite page cache 384K 3 STACK GUARD 56.3M 19 Stack 18.0M 19 VM_ALLOCATE 128.2M 12 VM_ALLOCATE (reserved) 3.9G 1 reserved VM address space (unallocated) WebKit Malloc 192.1M 5 __AUTH 2107K 369 __AUTH_CONST 25.5M 595 __CTF 756 1 __DATA 14.6M 607 __DATA_CONST 29.0M 617 __DATA_DIRTY 2057K 229 __FONT_DATA 2352 1 __GLSLBUILTINS 5174K 1 __LINKEDIT 775.8M 21 __OBJC_CONST 4608K 330 __OBJC_RO 65.5M 1 __OBJC_RW 1988K 1 __TEXT 633.2M 639 dyld private memory 256K 1 libnetwork 128K 8 mapped file 505.2M 120 shared memory 960K 19 =========== ======= ======= TOTAL 8.4G 4554 TOTAL, minus reserved VM space 2.9G 4554 ----------- Full Report ----------- {"app_name":"Proxyman","timestamp":"2023-03-02 10:07:08.00 +0400","app_version":"4.3.1","slice_uuid":"036c9ff5-ea85-3084-906b-e6639f7bac7e","build_version":"43010","platform":1,"bundleID":"com.proxyman.NSProxy","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 13.2 (22D49)","roots_installed":0,"name":"Proxyman","incident_id":"C044E985-CBC7-41DE-B950-3E1FA4AE79A0"} { "uptime" : 310000, "procRole" : "Background", "version" : 2, "userID" : 501, "deployVersion" : 210, "modelCode" : "MacBookPro18,1", "coalitionID" : 39368, "osVersion" : { "train" : "macOS 13.2", "build" : "22D49", "releaseType" : "User" }, "captureTime" : "2023-03-02 10:07:07.3971 +0400", "incident" : "C044E985-CBC7-41DE-B950-3E1FA4AE79A0", "pid" : 66431, "translated" : false, "cpuType" : "ARM-64", "roots_installed" : 0, "bug_type" : "309", "procLaunch" : "2023-03-02 09:52:43.8634 +0400", "procStartAbsTime" : 7583099096162, "procExitAbsTime" : 7603823009862, "procName" : "Proxyman", "procPath" : "\/Applications\/Proxyman.app\/Contents\/MacOS\/Proxyman", "bundleInfo" : {"CFBundleShortVersionString":"4.3.1","CFBundleVersion":"43010","CFBundleIdentifier":"com.proxyman.NSProxy"}, "storeInfo" : {"deviceIdentifierForVendor":"1FE1AD66-CC6B-53E1-8CB1-B00634646D29","thirdParty":true}, "parentProc" : "launchd", "parentPid" : 1, "coalitionName" : "com.proxyman.NSProxy", "crashReporterKey" : "3404C934-1E2C-C72A-EA90-F74A2D4D1991", "throttleTimeout" : 2147483647, "wakeTime" : 5729, "sleepWakeUUID" : "455BBCF7-2C39-4C23-BB04-D83E61EF23A0", "sip" : "enabled", "exception" : {"codes":"0x0000000000000001, 0x0000000107836990","rawCodes":[1,4421020048],"type":"EXC_BREAKPOINT","signal":"SIGTRAP"}, "termination" : {"flags":0,"code":5,"namespace":"SIGNAL","indicator":"Trace\/BPT trap: 5","byProc":"exc handler","byPid":66431}, "os_fault" : {"process":"Proxyman"}, "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":12,"thread_set_state":80685,"task_for_pid":1201},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0}, "faultingThread" : 7, "threads" : [{"id":8205526,"queue":"com.apple.main-thread","frames":[{"imageOffset":4176,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":78108,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":0},{"imageOffset":39972,"symbol":"mach_msg_overwrite","symbolLocation":452,"imageIndex":0},{"imageOffset":5068,"symbol":"mach_msg","symbolLocation":24,"imageIndex":0},{"imageOffset":531376,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":1},{"imageOffset":525468,"symbol":"__CFRunLoopRun","symbolLocation":1232,"imageIndex":1},{"imageOffset":522360,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":1},{"imageOffset":204704,"symbol":"RunCurrentEventLoopInMode","symbolLocation":292,"imageIndex":2},{"imageOffset":204260,"symbol":"ReceiveNextEventCommon","symbolLocation":672,"imageIndex":2},{"imageOffset":203564,"symbol":"_BlockUntilNextEventMatchingListInModeWithFilter","symbolLocation":72,"imageIndex":2},{"imageOffset":235576,"symbol":"_DPSNextEvent","symbolLocation":632,"imageIndex":3},{"imageOffset":231880,"symbol":"-[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:]","symbolLocation":728,"imageIndex":3},{"imageOffset":183800,"symbol":"-[NSApplication run]","symbolLocation":464,"imageIndex":3},{"imageOffset":16956,"symbol":"NSApplicationMain","symbolLocation":880,"imageIndex":3},{"imageOffset":34948,"imageIndex":4},{"imageOffset":24144,"symbol":"start","symbolLocation":2544,"imageIndex":5}]},{"id":8205569,"name":"NIO-ELT-0-#0","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205570,"name":"NIO-ELT-0-#1","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205571,"name":"NIO-ELT-0-#2","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205572,"name":"NIO-ELT-0-#3","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205573,"name":"NIO-ELT-0-#4","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205574,"name":"NIO-ELT-0-#5","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"triggered":true,"id":8205575,"name":"NIO-ELT-0-#6","threadState":{"x":[{"value":105553161635328},{"value":105553123363136},{"value":0},{"value":105553161635456},{"value":1},{"value":1},{"value":105553142007680},{"value":0},{"value":0},{"value":0},{"value":18446744065119617024},{"value":8589934595},{"value":3},{"value":79904},{"value":2043},{"value":2510311433},{"value":6790664852,"symbolLocation":0,"symbol":"swift_beginAccess"},{"value":8169059768},{"value":0},{"value":105553123363136},{"value":0},{"value":105553161635328},{"value":105553161635328},{"value":105553180716288},{"value":0},{"value":5101355048},{"value":5101355008},{"value":4723359800},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4421023724},"cpsr":{"value":2147487744},"fp":{"value":6095546992},"sp":{"value":6095546832},"esr":{"value":4060086273,"description":"(Breakpoint) brk 1"},"pc":{"value":4421020048,"matchesCrashFrame":1},"far":{"value":6790367232}},"frames":[{"imageOffset":862608,"imageIndex":6},{"imageOffset":866284,"imageIndex":6},{"imageOffset":866284,"imageIndex":6},{"imageOffset":865868,"imageIndex":6},{"imageOffset":1394240,"imageIndex":6},{"imageOffset":4327848,"imageIndex":6},{"imageOffset":4569300,"imageIndex":6},{"imageOffset":4561976,"imageIndex":6},{"imageOffset":4780984,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205576,"name":"NIO-ELT-0-#7","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205577,"name":"NIO-ELT-0-#8","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205578,"name":"NIO-ELT-0-#9","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205612,"name":"NIO-ELT-1-#0","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205622,"name":"NIO-ELT-2-#0","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":4882020,"imageIndex":6},{"imageOffset":4794156,"imageIndex":6},{"imageOffset":4780772,"imageIndex":6},{"imageOffset":4692332,"imageIndex":6},{"imageOffset":4706236,"imageIndex":6},{"imageOffset":4713948,"imageIndex":6},{"imageOffset":4888816,"imageIndex":6},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205727,"name":"com.apple.coreanimation.render-server","frames":[{"imageOffset":4176,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":78108,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":0},{"imageOffset":39972,"symbol":"mach_msg_overwrite","symbolLocation":452,"imageIndex":0},{"imageOffset":5068,"symbol":"mach_msg","symbolLocation":24,"imageIndex":0},{"imageOffset":291208,"symbol":"CA::Render::Server::server_thread(void*)","symbolLocation":564,"imageIndex":8},{"imageOffset":290628,"symbol":"thread_fun(void*)","symbolLocation":32,"imageIndex":8},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205807,"name":"com.apple.NSEventThread","frames":[{"imageOffset":4176,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":0},{"imageOffset":78108,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":0},{"imageOffset":39972,"symbol":"mach_msg_overwrite","symbolLocation":452,"imageIndex":0},{"imageOffset":5068,"symbol":"mach_msg","symbolLocation":24,"imageIndex":0},{"imageOffset":531376,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":1},{"imageOffset":525468,"symbol":"__CFRunLoopRun","symbolLocation":1232,"imageIndex":1},{"imageOffset":522360,"symbol":"CFRunLoopRunSpecific","symbolLocation":612,"imageIndex":1},{"imageOffset":1458568,"symbol":"_NSEventThread","symbolLocation":172,"imageIndex":3},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8205862,"name":"com.apple.CFSocket.private","frames":[{"imageOffset":49456,"symbol":"__select","symbolLocation":8,"imageIndex":0},{"imageOffset":701236,"symbol":"__CFSocketManager","symbolLocation":636,"imageIndex":1},{"imageOffset":28780,"symbol":"_pthread_start","symbolLocation":148,"imageIndex":7},{"imageOffset":7724,"symbol":"thread_start","symbolLocation":8,"imageIndex":7}]},{"id":8221099,"queue":"io.swiftnio.GetaddrinfoResolver.offloadQueue","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":39628,"symbol":"_mdns_search_ex","symbolLocation":1112,"imageIndex":9},{"imageOffset":49972,"symbol":"mdns_addrinfo","symbolLocation":360,"imageIndex":9},{"imageOffset":49536,"symbol":"search_addrinfo","symbolLocation":176,"imageIndex":9},{"imageOffset":21252,"symbol":"si_addrinfo","symbolLocation":2144,"imageIndex":9},{"imageOffset":18940,"symbol":"getaddrinfo","symbolLocation":168,"imageIndex":9},{"imageOffset":4656568,"imageIndex":6},{"imageOffset":4658904,"imageIndex":6},{"imageOffset":4707112,"imageIndex":6},{"imageOffset":10716,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":10},{"imageOffset":17668,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":10},{"imageOffset":48060,"symbol":"_dispatch_lane_serial_drain","symbolLocation":672,"imageIndex":10},{"imageOffset":50952,"symbol":"_dispatch_lane_invoke","symbolLocation":384,"imageIndex":10},{"imageOffset":95052,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":652,"imageIndex":10},{"imageOffset":12544,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":7},{"imageOffset":7712,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":7}]},{"id":8221698,"queue":"io.swiftnio.GetaddrinfoResolver.offloadQueue","frames":[{"imageOffset":29076,"symbol":"kevent","symbolLocation":8,"imageIndex":0},{"imageOffset":39628,"symbol":"_mdns_search_ex","symbolLocation":1112,"imageIndex":9},{"imageOffset":49972,"symbol":"mdns_addrinfo","symbolLocation":360,"imageIndex":9},{"imageOffset":49536,"symbol":"search_addrinfo","symbolLocation":176,"imageIndex":9},{"imageOffset":21252,"symbol":"si_addrinfo","symbolLocation":2144,"imageIndex":9},{"imageOffset":18940,"symbol":"getaddrinfo","symbolLocation":168,"imageIndex":9},{"imageOffset":4656568,"imageIndex":6},{"imageOffset":4658904,"imageIndex":6},{"imageOffset":4707112,"imageIndex":6},{"imageOffset":10716,"symbol":"_dispatch_call_block_and_release","symbolLocation":32,"imageIndex":10},{"imageOffset":17668,"symbol":"_dispatch_client_callout","symbolLocation":20,"imageIndex":10},{"imageOffset":48060,"symbol":"_dispatch_lane_serial_drain","symbolLocation":672,"imageIndex":10},{"imageOffset":50952,"symbol":"_dispatch_lane_invoke","symbolLocation":384,"imageIndex":10},{"imageOffset":95052,"symbol":"_dispatch_workloop_worker_thread","symbolLocation":652,"imageIndex":10},{"imageOffset":12544,"symbol":"_pthread_wqthread","symbolLocation":288,"imageIndex":7},{"imageOffset":7712,"symbol":"start_wqthread","symbolLocation":8,"imageIndex":7}]},{"id":8221707,"frames":[{"imageOffset":7704,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":7}]}], "usedImages" : [ { "source" : "P", "arch" : "arm64e", "base" : 6554062848, "size" : 237548, "uuid" : "6b682e21-fd96-3a5a-8260-fce367258252", "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib", "name" : "libsystem_kernel.dylib" }, { "source" : "P", "arch" : "arm64e", "base" : 6554714112, "CFBundleShortVersionString" : "6.9", "CFBundleIdentifier" : "com.apple.CoreFoundation", "size" : 5079040, "uuid" : "18260df4-69a8-30d3-8175-fb8ae7ae7709", "path" : "\/System\/Library\/Frameworks\/CoreFoundation.framework\/Versions\/A\/CoreFoundation", "name" : "CoreFoundation", "CFBundleVersion" : "1953.300" }, { "source" : "P", "arch" : "arm64e", "base" : 6713237504, "CFBundleShortVersionString" : "2.1.1", "CFBundleIdentifier" : "com.apple.HIToolbox", "size" : 3358720, "uuid" : "c68fe2e2-e0f3-3caf-ada3-bcc72fba79d0", "path" : "\/System\/Library\/Frameworks\/Carbon.framework\/Versions\/A\/Frameworks\/HIToolbox.framework\/Versions\/A\/HIToolbox", "name" : "HIToolbox" }, { "source" : "P", "arch" : "arm64e", "base" : 6607978496, "CFBundleShortVersionString" : "6.9", "CFBundleIdentifier" : "com.apple.AppKit", "size" : 15777792, "uuid" : "7758f868-3402-3892-8b75-66ab0b883af6", "path" : "\/System\/Library\/Frameworks\/AppKit.framework\/Versions\/C\/AppKit", "name" : "AppKit", "CFBundleVersion" : "2299.40.116" }, { "source" : "P", "arch" : "arm64", "base" : 4377624576, "CFBundleShortVersionString" : "4.3.1", "CFBundleIdentifier" : "com.proxyman.NSProxy", "size" : 3735552, "uuid" : "036c9ff5-ea85-3084-906b-e6639f7bac7e", "path" : "\/Applications\/Proxyman.app\/Contents\/MacOS\/Proxyman", "name" : "Proxyman", "CFBundleVersion" : "43010" }, { "source" : "P", "arch" : "arm64e", "base" : 6550986752, "size" : 568228, "uuid" : "fe8a9d9e-f65d-34ca-942c-175b99c0601b", "path" : "\/usr\/lib\/dyld", "name" : "dyld" }, { "source" : "P", "arch" : "arm64", "base" : 4420157440, "CFBundleShortVersionString" : "3.11.0", "CFBundleIdentifier" : "com.nsproxy.ProxymanCore", "size" : 11567104, "uuid" : "99ae4216-37c3-313c-b7e3-9fb71293ff2f", "path" : "\/Applications\/Proxyman.app\/Contents\/Frameworks\/ProxymanCore.framework\/Versions\/A\/ProxymanCore", "name" : "ProxymanCore", "CFBundleVersion" : "1" }, { "source" : "P", "arch" : "arm64e", "base" : 6554300416, "size" : 53244, "uuid" : "9f3b729a-ed04-3e65-adac-d75ad06ebbdc", "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib", "name" : "libsystem_pthread.dylib" }, { "source" : "P", "arch" : "arm64e", "base" : 6679576576, "CFBundleShortVersionString" : "1.11", "CFBundleIdentifier" : "com.apple.QuartzCore", "size" : 3563520, "uuid" : "6fb199ab-500f-3cf4-84b4-08bc6bd22a79", "path" : "\/System\/Library\/Frameworks\/QuartzCore.framework\/Versions\/A\/QuartzCore", "name" : "QuartzCore", "CFBundleVersion" : "1042.30" }, { "source" : "P", "arch" : "arm64e", "base" : 6554533888, "size" : 180212, "uuid" : "0b8128b1-be39-33de-aa69-9fc1bf3c4f7b", "path" : "\/usr\/lib\/system\/libsystem_info.dylib", "name" : "libsystem_info.dylib" }, { "source" : "P", "arch" : "arm64e", "base" : 6552707072, "size" : 294912, "uuid" : "4d52c3a5-32e6-37a2-9d6c-23c612038354", "path" : "\/usr\/lib\/system\/libdispatch.dylib", "name" : "libdispatch.dylib" } ], "sharedCache" : { "base" : 6550339584, "size" : 3447406592, "uuid" : "3366b98c-6b8a-3546-8233-dc167320439f" }, "vmSummary" : "ReadOnly portion of Libraries: Total=1.4G resident=0K(0%) swapped_out_or_unallocated=1.4G(100%)\nWritable regions: Total=6.3G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=6.3G(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nAccelerate framework 256K 2 \nActivity Tracing 256K 1 \nCG backing stores 5568K 4 \nCG image 4160K 219 \nColorSync 560K 27 \nCoreAnimation 43.8M 520 \nCoreGraphics 48K 3 \nCoreImage 64K 4 \nCoreUI image data 5824K 44 \nFoundation 48K 2 \nImage IO 304K 2 \nKernel Alloc Once 32K 1 \nMALLOC 487.8M 81 \nMALLOC guard page 288K 14 \nMALLOC_MEDIUM (reserved) 1.2G 10 reserved VM address space (unallocated)\nMALLOC_NANO (reserved) 384.0M 1 reserved VM address space (unallocated)\nSQLite page cache 384K 3 \nSTACK GUARD 56.3M 19 \nStack 18.0M 19 \nVM_ALLOCATE 128.2M 12 \nVM_ALLOCATE (reserved) 3.9G 1 reserved VM address space (unallocated)\nWebKit Malloc 192.1M 5 \n__AUTH 2107K 369 \n__AUTH_CONST 25.5M 595 \n__CTF 756 1 \n__DATA 14.6M 607 \n__DATA_CONST 29.0M 617 \n__DATA_DIRTY 2057K 229 \n__FONT_DATA 2352 1 \n__GLSLBUILTINS 5174K 1 \n__LINKEDIT 775.8M 21 \n__OBJC_CONST 4608K 330 \n__OBJC_RO 65.5M 1 \n__OBJC_RW 1988K 1 \n__TEXT 633.2M 639 \ndyld private memory 256K 1 \nlibnetwork 128K 8 \nmapped file 505.2M 120 \nshared memory 960K 19 \n=========== ======= ======= \nTOTAL 8.4G 4554 \nTOTAL, minus reserved VM space 2.9G 4554 \n", "legacyInfo" : { "threadTriggered" : { "name" : "NIO-ELT-0-#6" } }, "trialInfo" : { "rollouts" : [ { "rolloutId" : "6112d17137f5d11121dcd4e2", "factorPackIds" : { }, "deploymentId" : 240000241 }, { "rolloutId" : "60da5e84ab0ca017dace9abf", "factorPackIds" : { }, "deploymentId" : 240000008 } ], "experiments" : [ ] } } Model: MacBookPro18,1, BootROM 8419.80.7, proc 10:8:2 processors, 16 GB, SMC Graphics: Apple M1 Pro, Apple M1 Pro, Built-In Display: Color LCD, 3456 x 2234 Retina, Main, MirrorOff, Online Memory Module: LPDDR5, Samsung AirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4387), wl0: Nov 30 2022 02:17:16 version 20.10.965.13.8.7.131 FWID 01-1251c18d Bluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports Network Service: Wi-Fi, AirPort, en0 Network Service: iPad, Ethernet, en8 USB Device: USB31Bus USB Device: USB31Bus USB Device: USB31Bus USB Device: iPad Thunderbolt Bus: MacBook Pro, Apple Inc. Thunderbolt Bus: MacBook Pro, Apple Inc. Thunderbolt Bus: MacBook Pro, Apple Inc. ```
NghiaTranUIT commented 1 year ago

Update v6

NghiaTranUIT commented 1 year ago

Update 6

What's next:

NghiaTranUIT commented 1 year ago

Update 7

NghiaTranUIT commented 1 year ago

Update 8

lundstrj commented 1 year ago

I went don't a fun rabbit hole related to why my service was falling back to http/1.1 (and breaking) and eventually landed here. Killing the proxy resolved my problem.

Any comment on if/when Proxyman will be able to allow http/3 as well?

NghiaTranUIT commented 1 year ago

@lundstrj Not soon yet since the HTTP/2 is still developing (it's 80% now).

NghiaTranUIT commented 1 year ago

Update 9:

djtarazona commented 1 year ago

Any updates or ETA on HTTP/2 support @NghiaTranUIT? ๐Ÿ™

djtarazona commented 1 year ago

Bump @NghiaTranUIT ๐Ÿ™

NghiaTranUIT commented 1 year ago

@djtarazona Sorry for the late reply. It's still in BETA.

Here is the v10 Update: https://download.proxyman.io/beta/Proxyman_4.9.0_HTTP_2_v10.dmg

Changelog

lukeadamson commented 1 year ago

@NghiaTranUIT Hello! Any update or ETA on HTTP/2 support? I'm still seeing connections be downgraded to HTTP/1.1 when proxied through Proxyman.

The update above indicates that it's still in beta as of Jul 30, but I can't find any mention of it after. Is there a way to access Beta builds of Proxyman?

ekscrypto commented 1 year ago

Same here, please make HTTP/2 available to the public

NghiaTranUIT commented 1 year ago

Update v11:


Sorry guys @ekscrypto @lukeadamson , HTTP/2 is still in Beta because there is some technical issue that I haven't found a solution yet. It doesn't satisfy my standards so I decided not to bring it to the public until all issues are resolved.

For example:

djtarazona commented 1 year ago

Thanks for the context. Appreciate you holding a quality bar.

I don't need WS/WSS, so these betas have been working good for me. I'd appreciate an option to download a build with this HTTP/2 beta for each stable Proxyman release (not sure if the beta build generation is automatic). Or perhaps consider including this feature in stable releases but only opt-in from some preferences pane for beta features.

Thanks a bunch for your work @NghiaTranUIT!

seidnerj commented 10 months ago

@NghiaTranUIT any chance to get an up-to-date beta with HTTP2 support? thanks in advance!

seidnerj commented 10 months ago

@NghiaTranUIT I'm a bit confused by the HTTP2 support in the builds provided here - does HTTP2 support in Proxyman mean that Proxyman itself will use HTTP2 when connecting to the target server or does it mean that support HTTP2 when receiving incoming traffic, i.e. listening on localhost:9090? or both?

NghiaTranUIT commented 10 months ago

does HTTP2 support in Proxyman mean that Proxyman itself will use HTTP2 when connecting to the target server or does it mean that support HTTP2 when receiving incoming traffic

@Saklad5 yes, it's. Proxyman Beta prefers using HTTP/2, and fallback to HTTP/1 if your server doesn't talk HTTP2.

seidnerj commented 10 months ago

Okay, but from the client's perspective, the client connecting to proxyman that is, is the connection http2 or http1.1?