I have written a working D3 Gateway that can be run locally or on a remote server (tested on both). The game client talks to it rather than the real D3 server. It acts like a proxy, except that the Gateway authenticates itself against the real server using its own SRP6-a session (the Gateway intercepts the Auth packets and injects its own data). There is a TLS session between game client and Gateway, and another between Gateway and real server. This allows the Gateway to have unencrypted packets which it then logs as protobuffers.
Should be undetectable as well since you can run it on a remote machine. I wrote it since using "protowatch" (DLL injection into game client) will likely be detectable by the Warden.
This is not a program I will share with the general public, but I am looking for folks that plan on reverse-engineering the client Warden code once the game goes live. If you are such a person and you can debug Assembler code (required), then email me on my website email. Don't PM or reply here.