Feedback Wanted on Choosing Weekend Project


#1

I’m thinking about a weekend-ish/hackathon contribution to mitmproxy. I’m able to contribute Windows code. Here’s some ideas that I have for projects.

Project 1: Is the issue with getting mitmproxy working with Windows just a console graphics issue? If so, the latest beta of Windows 10, Threshold, has greatly expanded console terminal emulation. The project would try to get mitmproxy running on Windows.

Project 2: Try getting mitmproxy running on WSL, the new Windows subsystem that supports much, but not all, of Ubuntu userland. It directly supports ELF binaries (not a VM).Thoughts?


#2

Hi @BSalita,

Sounds great! mitmproxy’s UI depends on urwid, which does not provide Windows support: https://github.com/urwid/urwid/issues/152. I have not looked into WSL yet, but it could work.

Another proposal: I’d LOVE to have a better, portable, transparent mode support for Windows. This is how it works currently: https://github.com/mitmproxy/mitmproxy/blob/master/mitmproxy/platform/windows.py#L116

A major issue with this is that transparent mode requires admin privileges and we probably don’t want to require them on every startup. We could provide a standalone transparent.exe (written in Go/Rust/C++/… - whatever produces standalone binaries) which does the WinDivert redirection and provides an API similar to the one listed above. This way we could get rid of PyDivert (fails to bundle properly with PyInstaller) and dynamically spawn an elevated subprocess for transparent mode. This would make an awesome UX for mitmweb (our web ui), where we could just have a “Start Recording now” button.

Ping me on Slack if you are interested in this! :smiley:


#3

The hackathon is over. My pitch was a project that uses a cheap router which has a gateway pointing to a Windows tablet running mitmweb -T --host. The benefit being that a developer can simply connect to the router to see mitmweb output. You don’t have to mess with your device’s proxy commands and then remember to unset them. Using mitmweb is as simple as connecting a device to the router.

Unfortunately, the venue’s network didn’t allow a router to be connected. It would drop connectivity if it sensed a router being added. I did go around and talk to the other teams about the power of mitmproxy and gave a non-router demo.

I opened an issue, on mitmweb repo, which describes some Windows commands that make the process of start up simple.