Proxomitron is a local HTTP web-filtering proxy. It contains a powerful text matching engine specially designed to re-write web pages on the fly. You can use one of the built-in filtering rules, modify them or even write your own. With Proxomitron, you can stop pop-up, pop-under or pop-over ad windows, convert ads/banners into simple text links, freeze animated GIFs, stop blinking text etc.
Note: Being closed source, the program stopped getting developed with the author's sudden passing in a little less than a year after the last version.
Category: |
|
Runs on: | Win95 / Win98 / WinME / WinNT / Win2K / WinXP |
Writes settings to: |
Application folder |
License: |
Freeware |
How to extract: |
Download the ZIP package and extract to a folder of your choice. Launch Proxomitron.exe. |
What's new? |
Final version
- Fixed issue where under some conditions 304 replies could cause persistent connections to get out of sync (this could cause headers to appear in the web page body for example).
- proxcert.pem updated
- Added check to prevent infinite list recursion
- Fixed bug in filter merge when a texture is not found.
- Fixed bad request following redirecting a POST URL to a file (the posted data wasn't being "consumed" even though it's not used).
Beta 4/18/2003
- Added HTML escaping to block files and URL list under .pinfo to prevent any included tags from causing trouble.
- Positional variables are now stored and reset if a match fails. With luck it should make them behave more as they did in previous
versions while still allowing them to be read while matching.
- Web filters no longer import in reverse order.
- Ok I know I said no new features, but it's true all those local file requests flood the log window. There's now an option to show them which is disabled by default. :-)
- PriorityBoost = TRUE/FALSE flag has been added to the config. This is a bit experimental, but when true will boost the priority of filtering threads while allowing the main program to run at a normal level. It might help especially when browsers up their own priority which may starve Proxomitron for CPU time. Because of this I'd not recommend also running Proxomitron itself at high priority at first or it make make the thread priority too high; if you do, you may want to disable the boost.
- Changed 302 redirect handling a bit so Mozilla can process them faster (the latest Mozilla seems to pause for some time if some HTML isn't included with the redirect).
- Internal header filter sorting on config load has been fixed. This could cause header filters to be called in an even more unpredictable order than normal. :-) Still, it's best not to rely on header filter order as the internal order they're called is "officially" undefined. Someday headers will be more like web filters and have a order you can arrange rather than just being sorted, but for now it's best to assume they may be called in any order.
- TST matches must now be an exact length. For example given "foobar", $TST(var=foo???) will match while $TST(var=foo??) will fail. This makes it a bit easier to test for exact values.
- "w" added to $DTM command for current weekday (thanks to a great observation by ScoJo that this can be used to create filters that are active only at certain times or on certain days :-)
$SET(today=$DTM(w))
$TST(today=(Sat|Sun))
Beta 4/12/2003
- Try http://local.ptron/.pinfo/ - lots of stuff there ^_^ (views can be customized via the Info.css in the html folder)
- Added ability to import/export filter to and from the windows clipboard. Right-click over either the web or header filter lists - the import/export options are available in the context menu.
Export will write any selected filters to the clipboard while import will insert filters from the clipboard's text. The format is the same as is used in Proxomitron's config files.
There's also an option in the merge dialog to accept input from the clipboard rather than a file. It can be used to import any config file settings - just be sure to include the filter section headers with the text.
- Log window clipboard should be better behaved under NT/W2k/XP
- Proxomitron now has support for pre-request variables. These can be set anywhere (even in the headers) and checked later (say in the actual HTML). Each request has it's own set, and is isolated from all other pages.
- To set a variable use...
$SET(variable=something)
- To clear a variable use...
$SET(variable=)
- To get a variable's value use...
$GET(variable)
- To test a variable's value use...
$TST(variable=match expression)
or also just...
$TST(variable)
can be used in a match to see if the variable's contents match the current text. For example..
src="http://$TST(myhost)/"
note that this must be a literal match (except for case) - the variable's value isn't treated as a matching expression with wildcards and such.
Unlike positional "\1 \2 \# ..." style variables, $SET expands a named variable's value as soon as it's called (positional are expanded in the replace). That means named variables can be set to themselves and expanded - for instance...
$SET(foo=$GET(foo) more stuff) - adds to the end of "foo"
$SET(foo=more stuff $GET(foo)) - adds to the start of "foo"
$SET(foo=$GET(foo) \1) - adds value of "\1" to the end of "foo"
$SET(foo=$GET(foo)$GET(bar)) - adds value of "bar" to the end of "foo"
$TST can also be used on good-old positional type variables \0 ... \9
which allows you to do neat things like...
<\1\s * </$TST(\1)>
which matches...
<any-tag > stuff </any-tag>
but not...
<any-tag > stuff </a-different-tag>
Note that to get this to work I had to make some big changes to the way Proxomitron normally sets these variables. In this beta please watch out
for unexpected side-effects. Especially in cases where you use the same variable more than once in a match. Proxomitron used to wait till the very end to set variables which guaranteed that once matched it wouldn't change till matched again. Now it may be possible for some failed match later on to erase the previous value of a variable. Still I can't really find many cases where this would actually be a problem and the trade off is probably worth it.
Speed notes:
Like calling a list, testing a variable is a bit costly
It involves a lookup of it's name each time it's called so it's better to not have it as the very first thing in a match...
SLOW: $TST(name=ayumu|osaka)<a href="chiyo">
BETTER: <a href="chiyo">$TST(name=ayumu|osaka)
Also more variables makes the lookup take longer, so if you know your done with one, it's best to clear it: $SET(foo=)
- size specifiers on runs ( like "[a]+{0,500}" ) can now range up to 65535 rather than being limited to 255.
- Error messages now call "Errors.css" in the html folder so you can customize the colors and fonts used
- Config name now shows in system tray tool tip (as per request ;-)
- Can now filter the CONNECT method used to establish SSL pass-thru connections. That allows some minimal filtering (basic site blocking and bypass list host matching) even without using OpenSSL. CONNECT headers are now also visible in the log window (though keep in mind they're only used by the proxy and not passed to the remote site).
- Bug fixed with $WESC not escaping closing parenthesis
- Added new DOM banner/container killer filter
- multi-part (push) content types not filtered by default
- Updated SSLeay/OpenSSL libraries used. Also added some basic remote site certificate validation. See readme.txt for new details
- Fixed bug that could sometimes cause characters not to be filtered in the tester window when the match was exactly 1 character long.
- $LOG() command can now open the log window if it's closed. just include a "!" as the first character before the color indicator...
$LOG(!GLog Something green)
- Fixed "read overflow" bug (for real this time ;-)
- Fixed missing "&" in "Content-Type: Fix MIME types based on URL" filter
- Altered Javascript filters to insert after the <!DOCTYPE ... > tag on webpages (works better for IE6)
- Pop-up filters are improved a bit and now use the external "WindowOpen.js" file in the html folder.
- $URL, $RESP, $IHDR, $OHDR, $TST all now work in the replacement section too (where they can be useful to capture values).
- Latest DOM banner blaster and container killer included this uses "DomConKiller.js" in the html folder
- Long command causing crash in NT/Win2k/XP fixed.
- Bug with long entries in log window fixed.
- Bug with handling certain malformed HTTP headers fixed.
- SSL socket reuse bug fixed (hopefully)
- \h will now match hostnames that don't have a trailing slash like "http://foo.com"
- Proxy advanced options now allow a username with no password.
- Reloading a config no longer clears the debug flag.
|
For those interested: someone managed to decompile Proxomitron completely, analyse and rebuild it, dubbed Proxomitron Reborn. More information in the forum thread https://www.portablefreeware.com/forums/viewtopic.php?t=1486
v4.5 June Release