Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support HTTP/2 #416

Open
4 tasks done
NghiaTranUIT opened this issue Feb 26, 2020 · 58 comments
Open
4 tasks done

Support HTTP/2 #416

NghiaTranUIT opened this issue Feb 26, 2020 · 58 comments
Assignees
Labels
feature It's new feature

Comments

@NghiaTranUIT
Copy link
Member

NghiaTranUIT commented Feb 26, 2020

🐶 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

  • Support h2 ALPN in CocoaAsyncSocket
  • Determine whether or not the request is HTTP/2
  • Write HTTP/2 Parser. We could inspired from Apple-Server source
  • Work with current architecture. HTTP/1.x and HTTP/2

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

Comment: #416 (comment)

Update 2 (14 Feb 2023): New Update

Comment: #416 (comment)

Update 3 (22 Feb 2023):

#416 (comment)

@NghiaTranUIT NghiaTranUIT added the feature It's new feature label Feb 26, 2020
@NghiaTranUIT NghiaTranUIT self-assigned this Feb 26, 2020
@Saklad5
Copy link

Saklad5 commented Apr 13, 2020

Any progress on this?

@NghiaTranUIT
Copy link
Member Author

@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
Copy link

Saklad5 commented Apr 29, 2020

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
Copy link
Member Author

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
Copy link

Saklad5 commented May 2, 2020

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
Copy link
Member Author

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
Copy link

wasder commented Nov 6, 2020

Looking forward for gRPC support.
Could be a killer feature, as nothing yet so handy support it.👍

@bbuckland
Copy link

@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
Copy link
Member Author

@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
Copy link

inickt commented Jun 30, 2021

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
Copy link
Member Author

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
Copy link

inickt commented Sep 30, 2021

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
Copy link
Member Author

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
Copy link

Hello @NghiaTranUIT 👍🏻; could we expect http2 support any time soon or not likely to happen soon? Thanks 🤝

@NghiaTranUIT
Copy link
Member Author

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
Copy link

NicolasCombe5555 commented Jul 3, 2022

@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
Copy link

eseay commented Jul 15, 2022

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
Copy link
Member Author

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
Copy link

eseay commented Jul 16, 2022

@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
Copy link

j-j-m commented Oct 12, 2022

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
Copy link
Member Author

@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
Copy link
Member Author

NghiaTranUIT commented Feb 5, 2023

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

  • Support HTTP/2 and HTTP/1.1 (can negotiate during the SSL Handshake)
  • Tested and HTTP/2 work with the following debugging tools:
  1. Breakpoint
  2. Map Local
  3. Scripting
  4. Map Remote
  5. Compose & Edit
  6. Repeat
  7. Block / Allow List
  8. External Proxy
  9. A lot of Unit Tests to cover all cases

Notes

  • In the HTTP Message (Breakpoint or Map Local), you can use HTTP/1.1 or HTTP/2. It doesn't matter since Proxyman will use the correct HTTP Protocol behind the scenes => It means, you can use your current Map Local Rule/ Breakpoint Raw Message without any problems ✅

Screenshots

Proxyman HTTP/2

How to enable HTTP/2

  • Open Preference -> Check "Use HTTP/2" -> Restart the app to take effect.

Screenshot_2023-02-05_at_20_57_11

Known issues:

  • WSS doesn't work over HTTP/2 (WS still works as usual)
  • ???

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
Copy link

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
Copy link

brr53 commented Feb 5, 2023

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
Copy link
Member Author

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
Copy link
Member Author

NghiaTranUIT commented Feb 24, 2023

@brr53 just wondering: Why the akamai_fingerprint is important to you 🤔

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

  • Charles Proxy uses:
"HEADER_TABLE_SIZE = 65536",
          "ENABLE_PUSH = 0",
          "MAX_CONCURRENT_STREAMS = 1000",
          "INITIAL_WINDOW_SIZE = 6291456",
          "MAX_HEADER_LIST_SIZE = 262144"
  • Proxyman uses (Default setting of SwiftNIO HTTP/2):
"MAX_CONCURRENT_STREAMS = 100",
          "MAX_HEADER_LIST_SIZE = 16384"
  • Safari on macOS: Similar to Proxyman.

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
Copy link

havebeenfitz commented Mar 2, 2023

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) <c68fe2e2-e0f3-3caf-ada3-bcc72fba79d0> /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 (*) <fe8a9d9e-f65d-34ca-942c-175b99c0601b> /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
Copy link
Member Author

NghiaTranUIT commented Mar 21, 2023

Update v6

@NghiaTranUIT
Copy link
Member Author

Update 6

What's next:

  • Fix the SentFrame setting issue
  • Able to negotiate HTTP/2 or HTTP/1.1 with the server.

@NghiaTranUIT
Copy link
Member Author

NghiaTranUIT commented Apr 5, 2023

Update 7

@NghiaTranUIT
Copy link
Member Author

NghiaTranUIT commented Apr 15, 2023

Update 8

@lundstrj
Copy link

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
Copy link
Member Author

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

@NghiaTranUIT
Copy link
Member Author

Update 9:

@djtarazona
Copy link

djtarazona commented Jun 11, 2023

Any updates or ETA on HTTP/2 support @NghiaTranUIT? 🙏

@djtarazona
Copy link

Bump @NghiaTranUIT 🙏

@NghiaTranUIT
Copy link
Member Author

NghiaTranUIT commented Jul 30, 2023

@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

  • Map Local & Breakpoint for HTTP/2
  • Update the latest Proxyman version 4.9.0

@lukeadamson
Copy link

@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
Copy link

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

@NghiaTranUIT
Copy link
Member Author

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:

  • Client -> Proxyman: Use WS/WSS with HTTP/2, but Proxyman -> Server uses HTTP/1.1 and vice versa
  • WS/WSS doesn't work HTTP/2

@djtarazona
Copy link

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
Copy link

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

@seidnerj
Copy link

@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
Copy link
Member Author

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
Copy link

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

@NghiaTranUIT
Copy link
Member Author

NghiaTranUIT commented Jan 16, 2024

@Saklad5 Yes, it supports both HTTP/2 and HTTP/1 too, depending on what your client would like to use what protocol for the communication.

@NghiaTranUIT
Copy link
Member Author

Update HTTP/2 (BETA) v12 🎉

@leberwurstsaft
Copy link

Is HTTP2 support also in the 5.0 release?

@NghiaTranUIT
Copy link
Member Author

@leberwurstsaft HTTP/2 is still in Beta because the Websocket with HTTP/2 is not completed yet.

Here is the new update with Proxyman v5.0.0:

Screenshot

  • Enable HTTP/2 in the Proxy Setting (Proxyman Menu -> Setting -> General Tab -> Proxy Setting)

Screenshot 2024-02-19 at 10 53 18

@shrimpyuk
Copy link

Is this present in 5.5.0? can only find it in the above version

@NicolasCombe5555
Copy link

Sorry I got lost in time!
@NghiaTranUIT amazing progress! ❤️Thank you for your passion on this.
Not trying to rush it but I am just catching up, I saw in the comments you said it was 80% done some time ago, are we near close now? Will test your latest build!

@NghiaTranUIT
Copy link
Member Author

@shrimpyuk @NicolasCombe5555 Sorry, the HTTP/2 is not out of Beta yet because I could not solve some HTTP/2 issue with Websocket.

You can try this beta HTTP/2: https://download.proxyman.io/beta/Proxyman_5.5.0_Support_HTTP_2_v15.dmg

Changelog

  • Support HTTP/2 with all debugging tools (except HTTP/2 with WS)
  • All features/improvements/bugs fixes from Proxyman 5.5.0 => You can see the changelog at Github Release

@elijahdou
Copy link

@shrimpyuk @NicolasCombe5555 Sorry, the HTTP/2 is not out of Beta yet because I could not solve some HTTP/2 issue with Websocket.

You can try this beta HTTP/2: https://download.proxyman.io/beta/Proxyman_5.5.0_Support_HTTP_2_v15.dmg

Changelog

  • Support HTTP/2 with all debugging tools (except HTTP/2 with WS)
  • All features/improvements/bugs fixes from Proxyman 5.5.0 => You can see the changelog at Github Release

Is there a schedule for when http2.0 will be supported?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature It's new feature
Projects
None yet
Development

No branches or pull requests