Post Reply 
"Recovering" Proxomitron's Source Code...
Jul. 26, 2017, 07:28 AM
Post: #1
Smile "Recovering" Proxomitron's Source Code...
Given the progress me and others have made on fixing and extending the Proxomitron, presumably by disassembling and analysing it, I wonder if it would be interesting to anyone else here to go the whole hog and decompile it all, with the goal being to understand and create an identically functioning "rebuilt" Proxomitron using equivalent source code. The original source code is probably long gone (if anyone still cares enough to try getting it, they are more than welcome to...), but reverse-engineering technology has now advanced so much that an equivalent source can be created easily.

I know there are clones like Proxydomo, but they don't offer the exact functionality and unfortunately are a few times bigger and not quite as efficient... I've been reading through the Proxomitron code in small pieces at a time and it is really quite interesting. Scott was an extremely talented programmer and I think seeing that in source code form would be very enlightening. More pragmatically, we would be able to adapt and extend "New Proxomitron" in far more ways, and more easily, than any binary patches could do, all the while maintaining precise backwards-compatibility and that small, efficient core which other clones have not succeeded in doing.

"We have the technology. We can rebuild him... better, faster, stronger." Smile!
Add Thank You Quote this message in a reply
[-] The following 4 users say Thank You to amy for this post:
usr, Kye-U, Styx, mizzmona
Jul. 28, 2017, 12:13 PM
Post: #2
Smile RE: "Recovering" Proxomitron's Source Code...
Go for it!!
I am speaking as just a noob end-user but my 2c.

soccerfan
Add Thank You Quote this message in a reply
Jul. 28, 2017, 10:12 PM
Post: #3
RE: "Recovering" Proxomitron's Source Code...
Another "noob end-user" here who is intrigued with this. I wonder what the possibilities are. Filtering HTTPS? An Android version? IPv6? I'd love to see the user base of Proxomitron expand so that we could all benefit from the creative input of people who really know how to construct useful filters. A lot of effort goes into ad-blockers, which is great, but there is so much more potential with a prog like this.
Add Thank You Quote this message in a reply
Jul. 31, 2017, 04:31 AM
Post: #4
RE: "Recovering" Proxomitron's Source Code...
@zoltan: HTTPS filtering is mostly working (I'm using it right now), but yes, all of what you mentioned would be possible. IPv6 would probably be easier than an Android version (I am not so familiar with that, I believe it would have to be translated to Java(!) first), plus there would be so much more we could do to extend Proxomitron --- HTTP/2, more interesting HTTPS/TLS/SSL stuff, etc. I've already found what I believe to be bugs that no one has noticed, and it would be great to fix those too.

There are approximately 631 functions, of which I have analysed 51 so far. (They vary from one-liners to >100 lines, so it's only a very rough indicator of progress.) I will continue posting progress updates here regularly. Smile!
Add Thank You Quote this message in a reply
[-] The following 6 users say Thank You to amy for this post:
chatterer, usr, Kye-U, Styx, zoltan, mizzmona
Aug. 01, 2017, 11:53 PM
Post: #5
RE: "Recovering" Proxomitron's Source Code...
@amy: awesome, do keep us updated!
Visit this user's website
Add Thank You Quote this message in a reply
Aug. 06, 2017, 09:37 PM
Post: #6
RE: "Recovering" Proxomitron's Source Code...
108 functions analysed now, or a little over 17% of them all. This is code mostly for configuration saving/loading, some blocklist stuff, and some of the UI. There is a lot of code but most of it is pretty mundane --- I haven't reached the "interesting" parts like the pattern matching engine and HTTP/network handling yet. From my initial investigation, those are somewhere in the middle.

As a rough estimate, I hope to finish this project before the end of the year.
Add Thank You Quote this message in a reply
[-] The following 6 users say Thank You to amy for this post:
soccerfan, usr, Styx, zoltan, prxymouse, mizzmona
Aug. 12, 2017, 11:58 AM
Post: #7
RE: "Recovering" Proxomitron's Source Code...
Great news. I take it when you reach 100% you will be uploading the code to a public open source repo somewhere?
Add Thank You Quote this message in a reply
Aug. 14, 2017, 07:17 AM
Post: #8
RE: "Recovering" Proxomitron's Source Code...
Lots more UI and configuration code, external proxy handling, and the start of the filter testing dialog. It's starting to get more interesting now... 204 functions analysed, approaching 33%.

(Aug. 12, 2017 11:58 AM)prxymouse Wrote:  Great news. I take it when you reach 100% you will be uploading the code to a public open source repo somewhere?
I have not decided yet, but I will release the code somehow.
Add Thank You Quote this message in a reply
[-] The following 4 users say Thank You to amy for this post:
usr, Styx, prxymouse, mizzmona
Aug. 21, 2017, 07:04 AM
Post: #9
RE: "Recovering" Proxomitron's Source Code...
Spent most of my available time since the previous update to analyse the function that preprocesses patterns into a more suitable form for the matching engine. I also found the "GIF freezer" function. Getting into the core of the program now, although I'm jumping around and not going through in sequence because some of the earlier functions don't make much sense if I don't know what calls them, and the callers are later. Also found what may be another bug, related to the + operator.
Add Thank You Quote this message in a reply
[-] The following 3 users say Thank You to amy for this post:
usr, Styx, mizzmona
Aug. 22, 2017, 11:52 PM
Post: #10
RE: "Recovering" Proxomitron's Source Code...
Yes, interested. Very.

Thanks!

(Jul. 26, 2017 07:28 AM)amy Wrote:  Given the progress me and others have made on fixing and extending the Proxomitron, presumably by disassembling and analysing it, I wonder if it would be interesting to anyone else here to go the whole hog and decompile it all, with the goal being to understand and create an identically functioning "rebuilt" Proxomitron using equivalent source code. The original source code is probably long gone (if anyone still cares enough to try getting it, they are more than welcome to...), but reverse-engineering technology has now advanced so much that an equivalent source can be created easily.

I know there are clones like Proxydomo, but they don't offer the exact functionality and unfortunately are a few times bigger and not quite as efficient... I've been reading through the Proxomitron code in small pieces at a time and it is really quite interesting. Scott was an extremely talented programmer and I think seeing that in source code form would be very enlightening. More pragmatically, we would be able to adapt and extend "New Proxomitron" in far more ways, and more easily, than any binary patches could do, all the while maintaining precise backwards-compatibility and that small, efficient core which other clones have not succeeded in doing.

"We have the technology. We can rebuild him... better, faster, stronger." Smile!
Add Thank You Quote this message in a reply
Aug. 28, 2017, 11:37 AM
Post: #11
RE: "Recovering" Proxomitron's Source Code...
Finished going through all the functions for parsing $-commands (all 35 of them, including the undocumented one...) The total code produced so far is currently a little over 6K lines of C. Not sure of the overall progress since I've been jumping around quite a bit, but it is probably around 40%.

@mizzmona, nice to see you here Smile!
Add Thank You Quote this message in a reply
[-] The following 4 users say Thank You to amy for this post:
soccerfan, usr, Styx, prxymouse
Nov. 17, 2017, 12:30 PM
Post: #12
RE: "Recovering" Proxomitron's Source Code...
I took a little break because of other things but I'm still working on this... now re-inspecting some of the blocklist hashing code (it's very interesting) and renaming some functions to understand it a bit better. I'll continue with the rest of it too, still want to finish by the end of the year. I'm also generating documentation to help me with the understanding. That will eventually be released too, of course Smile!
Add Thank You Quote this message in a reply
[-] The following 4 users say Thank You to amy for this post:
usr, Styx, Kye-U, soccerfan
Post Reply 


Forum Jump: