MitmproxyApple
First tests with network extension to implement mitmproxy transparent proxy with swift on macos
File Structure
MVC pattern:
- MitmproxyApple/Controller/Viewcontroller.swift: where there is button management, event triggering, and GUI logic
- MitmproxyApple/Model/Proxy.swift: data model and behavior (the actual brain)
- MitmproxyApple/View/Base.lproj/Main.storyboard: storyboard
- MitmproxyAppleExtension/AppProxyProvider.swift: The protocol of the extension and its cycle (where the packets are)
Screenshots
First start
![Screenshot 2023-06-04 at 15 41 37](https://private-user-images.githubusercontent.com/100081325/243182675-d085790f-f0f5-497b-bc9e-80b22edbbb53.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDgwNDI3NDIsIm5iZiI6MTcwODA0MjQ0MiwicGF0aCI6Ii8xMDAwODEzMjUvMjQzMTgyNjc1LWQwODU3OTBmLWYwZjUtNDk3Yi1iYzllLTgwYjIyZWRiYmI1My5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDIxNlQwMDE0MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04MzAxZjRhMjhiZTQ1OWZkNTU1NGRkOTAyZjNiNjgxODIxZTkyMGI1M2YyMGZjZDgxMTlmZDcyMGE1Yjg2YTJkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.UVQy5onf_s1nNzLfbnbqIcB0t99arAnJGCkco2pmeek)
Before run
![Screenshot 2023-06-04 at 15 42 36](https://private-user-images.githubusercontent.com/100081325/243182737-3a045252-a96b-4a00-820e-d64295025797.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDgwNDI3NDIsIm5iZiI6MTcwODA0MjQ0MiwicGF0aCI6Ii8xMDAwODEzMjUvMjQzMTgyNzM3LTNhMDQ1MjUyLWE5NmItNGEwMC04MjBlLWQ2NDI5NTAyNTc5Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDIxNlQwMDE0MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1lMTcxMjk3NDAxZmVjMTVkMTg3NmE0Y2VlM2QwMDVmZmExOWZmYTQ1MmU1MjA1Y2ZkZTNmMjc0MjllN2M5NTNmJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.SNLYbUAwXPOehKUjxMbcifjyc8H3uRlxx9nNJ1pKYHQ)
First run
![Screenshot 2023-06-04 at 15 42 48](https://private-user-images.githubusercontent.com/100081325/243182688-68d035e5-b859-4183-9ea5-8c8dbe13a4bb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDgwNDI3NDIsIm5iZiI6MTcwODA0MjQ0MiwicGF0aCI6Ii8xMDAwODEzMjUvMjQzMTgyNjg4LTY4ZDAzNWU1LWI4NTktNDE4My05ZWE1LThjOGRiZTEzYTRiYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDIxNlQwMDE0MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zZTNmYjgxMmFhYzQwZjU3NThiNTE1NTc3NDc2ZjNiMzRiZGYwMmZiN2ExNjJkOGVhNTNhMmE4ZDI1ZTE1NGM4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.V29fSFJW-WspjaaN9GXR5iP6sYLjWeGQ9ykADIUZ3HU)
After run
![Screenshot 2023-06-04 at 15 42 57](https://private-user-images.githubusercontent.com/100081325/243182744-66e6a830-0489-4bcb-8237-8daf859b30ba.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDgwNDI3NDIsIm5iZiI6MTcwODA0MjQ0MiwicGF0aCI6Ii8xMDAwODEzMjUvMjQzMTgyNzQ0LTY2ZTZhODMwLTA0ODktNGJjYi04MjM3LThkYWY4NTliMzBiYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDIxNlQwMDE0MDJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02MjM2ZTNkZTEyMGIyMzg3ZjJhMDkwOTA4ZjA5NTEwMTY0ODgwODU3N2RiMTZiZDM2ZTVjMzIyMjEwNmQ5ZDAxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.N4Oq1jk8RLuaEXyMSxvb8kwUapF6YrW5-38SHF3Koiw)