================================================================================= Note regarding Ad Muncher v5.0: Previously we mentioned that we were working on rewriting Ad Muncher in C for the sake of porting, maintenance and stability. This rewrite was originally planned as a single large release named v5.0. The plan has since changed to releasing several interim versions on the way to v5.0, each with progressively more C code replacing the existing assembly codebase. Ad Muncher v4.7 will be the first of these interim releases. ================================================================================= Ad Muncher v4.72 Changelog Release date: April 28th, 2008 Most significant changes: This release makes Ad Muncher fully Vista compatible, as well as addressing some important bug fixes, increasing filtering reliability and vastly improving the installation system. Support for filtering 64-bit applications won't be included until v4.73 so that Vista support is available as soon as possible. [Build]/[Type] - [Description] ================================================== Key: E = Enhancement F = Fix NR = Not Released. Some features are implemented together without Ad Muncher being recompiled, so in these cases the build number won't reflect the amount of work in the change, or in which order it was implemented. "NR" will be listed for these entries instead of a build number. NR/F - Fixed possible crash when "Allow popups" filters were used with a "%" character in the URL. NR/F - Fixed possible crash when using IP scramble. NR/F - Fixed conflict with video player on jmeeting.com. NR/E - Finished work on a Vista-friendly IPC system to allow patched programs to communicate with Ad Muncher when running at different privilege levels (e.g.: IE 7 in protected mode). NR/E - Added option, enabled by default, to remember lock status when Ad Muncher is closed. NR/E - Moved "Lost your code?" button from the about tab to directly underneath the code entry fields to help people find it. NR/E - Changed automatic update frequency check code so that it will include manual update attempts in the "last update check" time used. This should help avoid some unusual update check times people have been troubled by. NR/E - Improved submit() javascript function redirection to avoid some possibly incorrect redirections. NR/E - Simplified Firefox/Mozilla/Netscape browser extension, removing the configuration window. It will now rely on the browser extension password being stored in the registry by Ad Muncher. NR/E - Modified browser extension for Firefox/etc to work with Flock. NR/E - Fixed resource leak in connection routing code when a connect to loopback failed. NR/F - Fixed bug in config.dat writer that could cause some errors to not be detected. NR/F - Fixed bug in license.dat writer that could cause some fields to not be deleted correctly when they should be. NR/E - Improved registration handling so that Ad Muncher will automatically attempt to verify its license if license.dat is deleted or the first time each version is run so that it won't just sit there with a red icon until it's used. NR/E - Finished work on a new installation system for v4.72, written from scratch with reliability, compatibility and minimal footprint in mind. Some new features are detailed below. NR/E - New installer layout adopted that more closely matches what people expect an installer to look like, making it more intuitive to use. NR/E - Implemented Vista-compatible "Bouncer" system, where two copies of AM-Install.exe are running while installing, one with elevated privileges and the other running as the user that launched it, allowing the installer to perform user-specific operations like launching Ad Muncher after the installation completes. NR/E - Custom storage locations for all of Ad Muncher's configuration files are now supported, with their locations being stored in Install.ini in the program folder. This now allows for per-user or system-wide configuration, as well as legacy support for storing the settings in the program files folder if needed. NR/E - Improved commission-tracking code, which now stores a unique ID identifying where the installer was downloaded from inside the installer EXE file itself, rather than as part of the filename, to mitigate the possibility of the filename being modified and the commission code being lost. NR/E - Installation progress is now displayed while installing, rather than simply pausing the display while operations are performed. NR/E - Error reporting is vastly improved in the new installer, in most cases providing a description that should be helpful to the user in diagnosing the problem. NR/E - A true silent mode has been added, where command line options can be used to install, upgrade or uninstall Ad Muncher without any interface appearing, even if an error occurs (unlike the previous silent mode), with the option of logging errors and warnings to a file. NR/E - A new "Upgrade" mode was added, which is used by Ad Muncher when it is installing an updated version retrieved via the update system. This new mode avoids asking any of the preference questions it already has answers to (like where to install Ad Muncher, the license agreement, etc) and generally streamlines the update process. NR/E - Many bugs in the old installer were corrected, including one where an empty program folder could be left behind when uninstalling under Windows 9x (note to other programmers who may be googling: wininit.ini doesn't support directory deletion on reboot). NR/E - Removed option to set Ad Muncher to launch on startup from within Ad Muncher's configuration window. This option can now be set from within the installer to avoid having to elevate to a higher integrity level under Vista. NR/E - The installer will now remember the preferences used so that they don't need to be chosen again when reinstalling. NR/E - Moved Opera browser extension installer to the Ad Muncher installer EXE (from the separate EXE that was invoked by AdMunch.exe), again to avoid having to elevate to a higher integrity level under Vista. NR/E - Despite the added features and bug fixes, the new installer will actually have a smaller footprint than the previous one, thanks in part to a new packaging system which extracts and runs AdMunch.exe with command line options telling it to behave as the installer, which means that a lot of code shared between Ad Muncher and the installer is now only present in a single EXE file. The final v4.72 release should be around 20% smaller than v4.71. NR/E - The Ad Muncher help file is no longer bundled with Ad Muncher. Instead when help is requested an online help system will be opened in the browser, allowing us to keep the help file updated, allowing Google to index it and reducing the download size for the vast majority of people who don't use the help file. NR/E - Added 48x48 icon to the installer to improve the appearance when saved to the desktop under Vista. NR/E - Added code to the IPC system in the installer to allow it to read certain files from the context of the bouncer. This will avoid a problem under Vista where the installer could not read its own EXE file if it was executed from a network share then elevated to under an account which didn't have access to that share. NR/E - Added code to allow Ad Muncher to modify the security permissions on license.dat and registration.dat so it is writable from all user accounts under Vista. NR/F - Fixed race condition in registration dialog that could cause a blank "check status" window to appear. NR/E - Added code so that the installer will automatically locate and import any configuration files stored in Windows Vista's "virtual store" when upgrading from a previous version. NR/E - The registration name and code are now stored in a separate file, registration.dat, which is stored locally in the common app data folder. This allows for the main configuration files to be stored in a roaming app data folder without automatically registering all computers it is used on with the same code. NR/E - If a configuration file is corrupt it now won't be deleted, instead the content will be erased but the file will be left intact, so that any modified security permissions are maintained. NR/E - Implemented some backup mechanisms for finding the various appdata folders under Windows NT 4. Not entirely happy with how they all work, but haven't been able to find the perfect solution. If anyone knows how to find the common appdata folder under a fresh NT4 install (no service packs) please let us know (SHGetSpecialFolderLocation and normal registry locations not working, registry search for "all users" also brought up nothing useful). NR/E - Removed "[Moo! 1000th Ad Munched]" advert replacement (used to be displayed every 1000 removals), didn't think it was entirely appropriate for corporate environments. NR/E - Added separate option to the load/save/reset configuration tab to allow users to choose whether the registration details are loaded, saved or reset along with their other settings. NR/E - Modified the Opera browser extensions installer to also install when Ad Muncher is starting (not just when Ad Muncher is installed) to account for Opera installations after Ad Muncher is first installed. This will only work if AdMunch.exe has write access to the appropriate locations, but it will degrade gracefully if not. NR/F - Fixed bug in Install.ini saving code that could cause blank fields to not be correctly saved. NR/E - Improved Install.ini saving code to save the fields to the file in a more logical order. NR/E - Moved browser extension startup code into its own thread to reduce Ad Muncher's startup time. NR/E - Added some extra path sanity checks to the installer to make sure it never modifies anything it shouldn't. NR/F - Fixed lack of synchronize flag when setting shared file permissions. NR/E - Modified directory creation in the installer to set global read/write access to the Ad Muncher section of the common appdata folder. By default Vista only allows write access to the directory's creator which would otherwise prevent sharing of settings. 29466/F - Fixed possible crash in CPUID handling code. 29473/E - Added code to flush the shell icon cache for particular files when creating links to avoid incorrect icons being displayed in the start menu folder. 29512/F - Fixed crash in the new uninstaller when clicking the "Back" button in certain situations. 29515/F - Modified the uninstaller to not delete the registry entry which remembered the previous installation path when the "Remove Ad Muncher configuration files" option is disabled. 29517/F - Fixed incorrect default install path when a previous version of Ad Muncher had been configured to disable the built-in chat client. 29518/F - Fixed bug in IE browser extensions uninstaller that could leave entries behind in certain situations (thanks Noctem). 29560/F - Fixed misaligned "Lost your code?" button on "About" tab when window was resized. 29562/F - Fixed broken WSAConnect filtering (thanks Lukian). 29565/E - Improved IPC system to avoid possible erroneous communication between different builds of Ad Muncher. 29635/F - Fixed IPC-5 error on some Vista machines. 29641/F - Fixed hook loading problem under Windows 9x. 29642/F - Fixed failure when setting security permissions when running on a non- English version of Vista. 29645/F - Fixed fault reporting failure on some Vista machines. 29654/F - Fixed possible problems when launching Ad Muncher after installing on some Vista machines. 29655/F - Fixed possible erroneous detection of temp path when downloading and launching Ad Muncher updates. 29659/F - Added extra code to the fault reporting HTML to avoid odd behavior when opened in IE7 under Vista. 29660/E - Changed Load/Save/Reset tab to have all section options enabled by default, as this is what most people will actually be doing. 29670/E - Modified configuration importing code to write the content to configuration files without first deleting them so that any security permissions are retained. 29689/E - Improved security permissions assigning function so it can be called multiple times without adding duplicate access control elements, allowing Ad Muncher to verify required write permissions on configuration files when needed. 29694/E - Added a more useful error message if the UAC prompt is declined when installing under Vista. 29700/F - Fixed lack of "Ad Muncher" submenu in IE browser extensions under IE 7. 29708/E - Improved installer to automatically remove empty directories when the option for where to store the configuration files is changed. 29714/E - Changed text on registration/trial start dialog to clarify that the 30-day trial is free of charge. 29715/F - Fixed some cosmetic title case problems on push buttons. 29716/E - Improved file enumeration code to avoid possible problems when deleting files using a wildcard. 29717/E - Added button to import configuration to the trial start/registration dialog. 29718/E - Modified automatic refresh removal to not remove meta refreshes that have a timeout of one second or less, which are used on microsoft.com for some kind of server farm bouncing, and when removed could cause a blank page to appear instead of the actual content. 29735/E - Added extra code to avoid crashes when working alongside some buggy Windows message hooks. 29736/F - Fixed crash after a large number of processes had been logged to the filter targets activity logs. 29737/E - Reduced startup time significantly. 29780/F - Fixed potential crash in the installer. 29789/E - Added code to check for leftover DLLs from very early versions of Ad Muncher to avoid potential conflicts. 29790/E - Added code to the Vista virtual store configuration importing function so that if more than one old configuration file is found, the oldest one is deleted before importing begins. This is done to avoid potentially importing the older one if the importing function is called more than once (for example when uninstalling/reinstalling) with unexpected results. 29793/F - Fixed browsing problems when another program overwrote Ad Muncher's winsock hooks and Ad Muncher tried to restore them. 29796/F - Modified the "Programs are currently routed through Ad Muncher" message on shutdown to ensure it doesn't get obscured by other windows when installing Ad Muncher. 29797/F - Fixed incorrect error handling in some mutex code. 29813/E - Improved patching system reliability. 29824/F - Fixed IPC error when using "Run as" to launch Ad Muncher as a different user under XP. 29825/F - Added code to avoid a conflict with the menus on box.net. 29829/F - Changed messagebox handling code to avoid the possibility of some critical messages being obscured by other windows. 29830/F - Fixed outdated homepage link in Firefox browser extension, and clarified the error displayed if an outdated extension is used with a newer version of Ad Muncher. 29833/F - Fixed bug where "Add to list" button on logs tab would not be enabled when entries were highlighted using the search function. 29848/E - Betas will now be forced to use daily update checks to ensure that important fixes are distributed quickly. 29865/F - Fixed flawed title rendering in the installer when using non-standard Windows color schemes. 29914/E - Modified messagebox display code to always include the Ad Muncher icon so it's obvious which program is showing it. 29917/F - Fixed incorrect dialog display when the "Import Configuration" button was clicked on the registration dialog when the configuration dialog was already open. 29930/E - Added code to save the entered email address when reporting adverts using the browser extensions so it doesn't need to be entered every time. 29940/E - Added code to report IPC errors to the user from within the hook DLL to help catch some browser lockups that may be caused by mutex deadlocks. 29943/F - Fixed incorrect mutex error handling in some parts of Ad Muncher. 29946/F - Fixed possible crash when updating the default filter list. 29960/E - Added code to display an alternate crash report if a crash occurs outside of Ad Muncher's code. These reports are almost always the result of buggy firewalls or AV products, so the message includes some tips on resolving the issue. 29970/E - Improved the file extraction functions used by the installer, speeding up extraction and avoiding some possibly incorrect "insufficient space" error messages. 29971/E - Improved command line option handling in installer to read any supplied configuration files from the context of the un-elevated installer process to avoid possible access issues (particularly on network drives) when elevating under Vista. 30002/E - Added option for configuration exporting to include the installation preferences used when installing Ad Muncher, and added "/C" option to the installer to import a .AMC configuration file, including the new installation preferences. Configurations for network deployment can now be stored in a single file. 30004/E - Changed automatic license check when Ad Muncher is updated to a new major release so it happens without showing the license check dialog if possible. 30005/E - Finished updating the help system to use the new online Wiki, with context sensitivity so it jumps to the appropriate Wiki page based on where you are in Ad Muncher's configuration window. 30012/E - Reduced CPU usage in patch verification code, and modified the windows hook handler so it will verify Ad Muncher's patches are in place whenever a window message is handled. This should help avoid some problems with other programs overwriting Ad Muncher's patches. 30018/E - Added text to the browser extensions dialog clarifying that the password is no longer required due to several enquiries about this. 30026/F - Fixed erroneous "Fault Outside AM" message when a program lockup was detected. 30028/E - Improved CallNextHookEx hook handle passing under NT-based versions of Windows. 30030/E - Modified IPC error reporting in hook DLL to only report errors if the error would definitely prevent a connection from being filtered. 30040/F - Fixed possible lockup when verifying the license by clicking on the "Verify license" button on the "About" tab. 30041/E - Added error message when a failure is encountered when opening a URL in the browser (for example when clicking a link in Ad Muncher's configuration dialog), with the URL that was being opened included in the message, to help deal with incorrectly installed browsers. 30046/E - Minimized the amount of code executed within the hook DLL mutex to improve performance and avoid possible deadlocks. 30052/E - Modified manifest information to allow XP visual styles to affect Ad Muncher. 30060/F - Fixed delayed progress bar updates in the installer under Vista Aero. 30126/F - Fixed possible lack of filtering if a timeout occurs when communicating between the hook DLL and the parent Ad Muncher process when the system is under heavy load. 30127/F - Fixed possible crash when updating the default filter list. 30131/F - Fixed possible crash when verifying license on a fresh installation. 30142/F - Fixed possible interference with other windows hooks on NT-based windows systems. 30161/E - Added version information to all EXE and DLL files in Ad Muncher. 30168/F - Fixed conflict with Haute Secure. 30181/F - Fixed possible crash if a stack overflow occurred while in the fault trapping code. 30184/F - Fixed possible javascript damage. 30185/F - Fixed bug in treatment of SWF filenames. 30187/E - Added warning to the "Live chat and tech support" system noting that it is a public channel and what is said can be seen by other Ad Muncher users. 30214/E - Added code to mark ops on the "Live chat and tech support" with a "@" prefix to help people see which users are developers. 30215/F - Fixed delayed closure of the "Live chat and tech support" connection if the configuration window were closed without disconnecting. 30219/E - Modified "Block retrieval of URL" filter handling so that blocked ".flv" files will have their content replaced with a "Blocked by Ad Muncher" message, simplifying the handling of many video-based ads. 30223/F - Fixed potential page stalling when blocking SWF content. 30225/F - Fixed possible crash when walking the function call stack from within the memory allocation handler. 30227/F - Fixed possible crash when loading corrupted license information. 30229/F - Fixed possible lockup when a 0x08 byte was present in a filter keyword. 30261/E - Improved file type detection in referrer changing code. 30266/F - Fixed possible failure to correctly reset corrupted configuration files. 30292/E - Vastly improved the filtering speed when "Replace text" filters are present. Also added a new filter category to the default filter list so that replace text filters can be used in it when needed. 30295/F - Changed update system to use a new ID for v4.72 filter list updates, because now that "replace text" filters can be added the list can't be used with older Ad Muncher releases without breaking some sites. 30303/E - Modified "Replace Text" filters to work on all content that has a content type starting with "Text/" so that many AJAX replies can now be modified when needed to remove advert content. 30311/E - Added code to stop Ad Muncher from modifying anything inside the ICQ process if any Secway Simp software is loaded to avoid crashes when Simp attempts to modify the patched functions. 30312/F - Fixed weird tab behavior if you clicked the "About" option from the system tray menu while scanning for proxies on the IP Scramble tab. 30321/E - Modified helper script generation to compact all filters in the default list onto one line to minimize the vertical space taken up when viewing a web site's HTML. 30322/E - Modified FLV content blocking so that if the option to "Change "[Blocked by Ad Muncher]" text" is enabled then it will replace it with a blank FLV video rather than the short "Ad Muncher blocked this video ad" one. 30328/E - Made it possible to enable the options to "Change referrer field to new site's domain" and "Insert referrer field when none is present" at the same time. 30332/E - Added a new filter category to the default filter list, "Replace text content type", which will enable replace text filters on the specified content types. This will allow us to deal with many new video ads without having to update the filtering engine for different content types. 30334/F - Fixed failure to log process names in the "Programs that made connections" list if they were not targeted in the filter targets list. 30335/F - Removed the Secway workaround added in build 30311 as it was resulting in a complete lack of filtering on some systems where Simp was loaded into the browsers Ad Muncher was patching. 30342/E - Modified filter target list handling so that if a process is explicitly not filtered on all ports (eg: -iexplore:*) then no patching at all will be done in its process. This can now be used to avoid possible conflicts with SimpLite or SimpPro when they attempt to modify Ad Muncher's patches by adding something like -icq:* to the filter targets list of affected systems. 30363/E - Improved FLV blank content replacement. 30364/E - Changed default setting to "off" for the "Modify browser requests to disable caching" option. Automatic Internet Explorer cache clearing is still on by default so hopefully this option shouldn't be needed in most cases. 30365/E - Removed some code that was added to monitor certain parts of Ad Muncher's buffers for erroneous access (haven't triggered in years), which should result in slightly faster filtering. 30369/F - Fixed crash when a referrer field replacement was configured which contained a percentage character ('%'). 30385/E - Implemented a better method of tracking whether a popup has been initiated as the result of an onmousedown trigger. This negates the need for changes to the onmousedown attributes in HTML tags, which was responsible for some weird behavior on facebook.com. 30392/E - Added filter category for the default list, "No filtering on content", allowing us to avoid filtering on specific content without excluding entire pages. 30398/E - Fixed bug that could cause Ad Muncher to load an incompatible list type from its configuration files. 30400/E - Repackaged as a final release. ================================================================================= Ad Muncher v4.71 Changelog Release date: October 8th, 2007 Most significant changes: We are almost done making Ad Muncher Vista compatible, but are releasing this version before full support has been implemented in order to distribute some important bug fixes. Another release will be made shortly, named v4.72, which will include some final changes to make Ad Muncher completely Vista compatible. [Build]/[Type] - [Description] - E=Enhancement / F=Fix ========================== 27172/F - Fixed bug that could cause Ad Muncher to corrupt registry settings used to launch Ad Muncher on startup, causing it to not launch automatically after the configuration was modified on certain systems. 27173/F - Loosened lockup detection criteria to avoid some false detections. 27174/F - Fixed possible corruption of registration details that could cause Ad Muncher to crash. 27175/E - Improved Ad Muncher's startup time on system boot, decreasing the chances of any unfiltered content being let through before Ad Muncher is ready. 27189/F - Fixed resource leak in socket routing that could cause further connections to go unfiltered or be blocked in certain situations. 27223/E - Added code to trap faults in previously unmonitored portions of code. 27310/F - Fixed page load stalling that could result from HTTP 304 replies with content length headers. 27447/F - Improved handling of malformed HTML comments. 27359/E - Added "Don't show in future" option to the "Update installation complete" dialog. 27505/E - Improved HTML tag analysis during helper script insertion. 27506/E - Improved blocked page content replacement behavior. 27700/E - Finished implementing a new system to manage trial periods and registration installation counts, which utilizes a short "hash" of the hardware configuration to differentiate computers. This system took some time to complete but is fully Vista-compatible, unlike the previous registration tracking system, and will more accurately manage the 30-day trial period. 27707/E - Added system to store certain configuration settings in a seperate "dat" file (License.dat). This information includes the license info retrieved from the Ad Muncher server as well as the most recent advert list. This was done so that in restricted environments Ad Muncher's configuration file (Config.dat) can be set to read-only or protected with some other mechanism without stopping normal Ad Muncher functionality. 27801/E - Improved compilation process to avoid some unnecessary space wastage in Ad Muncher's code. 27810/E - Improved performance of some critical string library functions. 27850/E - Improved method used when compiling helper script, increasing performance and increasing the number of filters that can be used. 27854/F - Fixed crashes under Windows NT4. 27857/F - Fixed possible race condition during shutdown that could cause a crash. 27903/F - Fixed page stalling when certain kinds of "HEAD" requests were filtered. 27904/E - Modified filtering engine to fail more gracefully if it encounters an encoding method it can't handle. 27905/F - Fixed possible crash after routing a large number of connections. 27907/F - Fixed typo on new "alternate method" dialog. 27908/F - Added horizontal scrolling to URL edit box on "alternate method" dialog so it can be copy/pasted if necessary. 27909/F - Fixed possible javascript error when generating helper script. 27944/F - Fixed the random crashes some people have experienced in the early betas. 27957/F - Fixed bug where multiple copies of the same update could be requested by the update system in the same session. 27958/E - Added extra error checks and sanity checks to the update system to prevent any update attempts failing silently. 27977/E - Improved overlap correction to prevent some replies being delayed awaiting more content when they don't need to be. 27982/E - Removed the "Avoid binding to loopback" option, because it was causing far more problems than it was solving. 27996/F - Fixed bug in licensing dialogs that could cause them to appear twice, sometimes crashing the program. 28000/E - Added confirmation dialog when disabling automatic updates. 28055/F - Fixed crash in latest betas when routing buffer size was set to 64kb. 28061/E - Added dialog that will display once if updates are disabled, describing the benefits of automatic updates to the user. 28070/E - Split one mutex used by several bits of code into several different ones to reduce unnecessary locking, and also prevent a possible deadlock when updating the advert filter list manually. 28077/E - Made some improvements to how the filter list boxes are initialized to reduce the time taken to render large lists on the configuration window. 28078/F - Fixed control disabling bug on updates tab. 28079/E - Updated v4.71 to use a different advert list update type than v4.7. A bug has been identified in v4.7 that causes it to crash if lists (custom or default) are used with "add javascript to all pages" and "add css to all pages" filters over a certain size. Recent default lists have started to exceed this limit, so to prevent further crashes no further updates to v4.7's filter list will be released. 28082/F - Fixed possible page stalling when interpreting downloaded image dimensions. 28085/E - Changed where Ad Muncher stores its temporary update files to avoid problems with UAC under Vista. 28088/E - Added Vista manifest to installer exe to require admin rights. 28103/E - Changed how cpuid code is handled to avoid problems caused by inconsistent cpuid results from some Athlon 64 processors. 28109/F - Made changes to how Ad Muncher's default filter list is initialized to avoid lockups when updating the list manually. 28123/F - Made further changes to default list initialization to avoid lockups. 28126/E - Improved integrity checks used with Ad Muncher's buffers. 28127/E - Changed wording of the welcome dialog in Ad Muncher's installer. 28140/F - Fixed possible javascript insertion problem in the helper script when retrieving specially-crafted URLs. ================================================================================= Ad Muncher v4.7 Changelog (initially called v4.61) Release date: October 13th, 2006 [Build]/[Type] - [Description] - E=Enhancement / F=Fix ========================== 10300/F - Implemented a temporary workaround to the conflict with McAfee Enterprise 8.0i that could cause browser crashes. 10310/F - Fixed bug with the handling of certain types of HTML comment tags (or rather, discovered a further intricacy of IE's comment-tag handling and modified Ad Muncher to emulate it). 10380/F - Rewrote part of the automatic update system to fix several minor update reliability problems. 10400/E - Rearranged the update tab and implemented a control to select the frequency of update checks. Previous versions of Ad Muncher would always check once a month, now you can select monthly, weekly or daily checks (with weekly being the new default). 10403/E - By request, the (somewhat obvious) explanation text next to the "My Filters" list can be toggled on and off by clicking on it. 10418/F - Fixed some race conditions caused by some buffers that were shared between multiple threads. 10444/E - The version build number shown by Ad Muncher now includes the current build of the default filter list. For example, Version 4.6 Build 10444/1005 is using build 1005 of the default filter list. This was done to aid bug reports of the lists and help ensure that people are using the most recent version available. 10551/E - Rewrote the trial-version expiry code to fix a few minor problems and increase reliability and accuracy. 15902/E - Developed some simple systems to convert GCC's assembly output to TASM syntax. This will now allow us to include components we have been writing in C into the main Ad Muncher ASM tree without rewriting the entire program (though this is the eventual goal). Also switched over to the build count for C-based development, which has been incrementing steadily over the last few months. 15902/E - Implemented the already-written automatic cache clearing system into Ad Muncher and the Ad Muncher installer - finally you won't have to manually clear their caches when installing or reconfiguring Ad Muncher! 15955/E - Finally got around to separating the hook and filter/interface portions of Ad Muncher's code into separate DLLs. Previously the entire codebase would have to be loaded into each process running on your system, whereas now only the patching code itself is. This should save some memory usage, as well as reduce loading times slightly. One extra benefit of this change, along with a build-number-based naming system, is that you should never again have to reboot your system to install a newer version of Ad Muncher (finally!). 16006/E - Minor interface enhancements for the installer. 16020/F - Fixed crash in cache clearing code. The cache clearing code also now shouldn't delete .ico files from browser caches. 16021/F - Fixed tooltip text to also include list version. 16024/E - The "Last updates" date shown for the Ad Muncher program is now calculated based on the filetime of admunch.dll, instead of the last date that an update was downloaded (so the date is updated for manual installations). 16024 - Changed the version number for this release from v4.61 to v4.7 to better reflect the amount of work in this release. 16026/F - Fixed minor bug that meant your custom filter list might not immediately be cleared when using the "reset configuration" option. 16030/E - The web bug removal option will now also remove any very small iframes that reside on domains different to the parent page. 16060/F - Fixed minor bug in the installer that meant old Ad Muncher DLLs were not deleted as they should have been. 16061/F - Fixed crash in CacheClearDirect module that happened sometimes when installing or launching Ad Muncher. 16091/F - Fixed 512KB) to certain sites. 26137/E - Added code to the fault reporting HTML form to urge the user to enter their email address and a description if not already done. We were getting far too many fault reports with no contact information, which can make finding the fault cause difficult or impossible in some situations. 26153/E - Implemented workaround to a conflict with certain McAfee programs that would block internet access when Ad Muncher and the McAfee programs were loaded. Thanks to the McAfee developers for their help in tracking this down. 26164/E - Improved the management of Ad Muncher's import tables, preventing some unexpected Ad Muncher shutdowns. 26166/F - Fixed incorrect window.open replacement in certain situations. 26177/F - Fixed incorrect formatting of context menus under the latest IE 7 beta. 26187/F - Fixed crash when copying log entries to the clipboard under Windows 95 (note to other developers: LB_GETSELITEMS maximum is 16383 under 95, not 32767 as stated in the MS documentation). 26199/E - Made the version information on the "about" tab selectable, by request. 26225/F - Fixed lockup when IP scramble options were configured in a certain order. 26228/F - Fixed false triggering of new lockup detector if system was placed into standby while Ad Muncher was in the middle of certain code sections. 26233/F - Fixed potential lockup in javascript filtering code. 26235/F - Improved HTML comment tag handling. 26245/F - Fixed repeated execution of Ad Muncher's helper script initialization code on some sites, which could cause the site's content to disappear. 26289/F - Fixed memory leak on thread creation. 26307/F - Changed the comment tags around Ad Muncher's helper scripts to avoid problems with XML pages and reinstated filtering of the "application/xhtml+xml" content type. 26413/F - Fixed possible lockup in filtering code. 26420/E - Reduced memory usage in the filter list scanning code. 26930/E - Finished implementing a new update retrieval protocol and registration management system. Some highlights include: - New retrieval protocol optimized for minimum transfer size. - Compression of updates to further reduce transfer size. - RSA encryption of registration details to help keep them private. - RSA signing of retrieved updates to ensure they aren't altered. 26947/F - Fixed configuration loading failure message in the new update system. 26983/F - Fixed several issues in the new update and registration system. 26999/F - Fixed bug in HTTP module that could cause post data sent in update requests to become corrupted if the request was retried. 27002/F - Fixed taskbar icon flickering under certain conditions. 27005/F - Fixed memory leak in update code. 27025/F - Fixed bug in popup removal that was damaging several major sites (Huge thanks to Jeff :-) 27028/E - Implemented time limit on recorded function names to decrease false positives in popup removal code. 27050/F - Fixed bug that could cause updates to not automatically be shown to the user after upgrading from earlier v4.7 betas. 27060/E - Modified the routing code so that if the option to "avoid binding to loopback" is off, AM actually will bind to loopback (rather than previously when it would bind to inaddr_any and simply connect to loopback). 27063/F - Fixed broken browser extensions when Ad Muncher was closed and reopened while an extended browser was running (Ad Muncher was regenerating the browser extension password on each load unnecessarily). 27068/E - Added feedback form option to "uninstallation complete" dialog. 27100/E - Several reliability improvements to configuration loading. 27101/F - Fixed incorrect formatting of statistics when using the "Copy statistics to clipboard" button on the "About" tab. 27105/F - Removed a limitation on the update frequency that was added for later betas and slipped into the final build. ================================================================================= Ad Muncher v4.6 Changelog Release date: August 26th, 2004 Most significant changes: This release includes many usability improvements designed to make the Ad Muncher interface easier to use. This release also fixes two recent problems Ad Muncher has been experiencing; firstly a conflict with Windows XP SP 2 that could cause general protection faults to occur in patched programs, secondly a conflict with the newly launched "gmail" service. Version note: This version was originally titled v4.53, but was changed to v4.6 during development. Additional release note: A silent update was done to build 10270 approximately two hours after release to correct a minor help launching problem. [Build]/[Type] - [Description] - E=Enhancement / F=Fix ========================== 9100/E - Added a new filter category, "Minimal filtering on site", which reduces the filtering done to only matching against the filter lists and the safer checkbox options. This category is then used by the "Global filters" to work around the gmail conflict. 9130/F - Modified the way Ad Muncher creates patch relocation segments to avoid conflicts with the upcoming Windows XP SP 2. Specifically, the segments are now marked PAGE_EXECUTE_READWRITE to keep the new DEP (Data Execution Prevention) system happy. 9160/E - Added "size grip" control to the bottom right corner of the config window, making it clear that the window actually can be resized. (suggestion by several people) 9172/E - Various buttons around the configuration window are now disabled when they have no use, eg: the "modify" button is disabled when no filter is selected. xxxx/E - At various stages in development the wording and layout throughout the dialogs was revised to increase clarity, a few examples are: - The "custom filter list" was renamed to "Your filters", and the "server-supplied list" was renamed to "Global filters"; hopefully new users should find these labels a little easier to understand. - "Your filters" was later renamed to "My filters" for consistency with other applications ("My computer" / "My documents" / etc). - "Global filters" were later renamed to "Default filters" - so far this is the least complained-about name ;-) - The IP Scramble dialog was rearranged in an attempt to make the system a little easier to navigate. - Renamed most of the filter categories and "recent lists" names so they make sense for people who don't write HTML for a living ;-) - The system tray menu text was changed from "Blocked popups" to "Open blocked popups" to avoid the confusion some users experienced. - The "pause" button on the recent lists was changed to "freeze"; as some people were clicking it in an attempt to "pause" Ad Muncher's filtering. - Also related to the above, implemented a checkbox to "Enable filtering" on the configuration dialog itself (to save you having to do it from the system tray). - Rearranged the tabs in the "options" section into increasing order of complexity (simplest ones on the left). - Moved the recent lists onto their own tab. This was partly done as it vastly cleans up the "my filters" tab, and partly because this is how it will be required to be for the upcoming v5 (due to the new filter layouts). - Renamed the "Advanced Filters" tab to "Replace Text", to help people more readily understand exactly what an "advanced" filter does. - The icon used by the configuration window now also changes to indicate whether filtering is currently enabled or not. - Many other changes throughout the dialogs, mostly self-explanatory. 9351/E - Added code to remember the column sizes on your filter list and the global filter list. Also renamed a lot of the filters (again) after seeing suggestions from people who tried the first version. 9380/F - Fixed bug where, if a certain sequence of actions was taken beforehand, adding new URL-based filters from the recent lists would result in blank filter entries being added. 9500/E - The custom filter list can now be sorted by clicking on the column headers. This also allows you to sort primarily by keyword or category as you prefer. 9540/E - You can now right-click on entries in your filter list to show a menu with options to copy them to the clipboard. 9576/E - Added a field to the helper script to show the IP/port of the site the page was retrieved from. This is especially useful when IP Scramble is enabled as you can then see which proxy was used to retrieve which page. 9686/F - The recents listbox now won't scroll your selected items down just past the bottom of the list when updating. 9715/F - Fixed occasional crash when more than 8 ident requests were processed by the inbuilt chat client. 9760/F - Fixed misalignment of some dialog text when viewed with certain font sizes. 9795/E - Added option to log options to "Enable logging system", which can of course be disabled to turn off all logging. 9821/F - Added code to check for non-http URLs before trying to retrieve by JS image object creation (fixes stall in opera under certain conditions). 9834/E - Ad Muncher's popup removal system now correctly deals with popups generated using the showHelp() and createPopup() functions. 9842/F - Fixed a problem with how Ad Muncher was handling certain incorrectly terminated HTML comments. 9897/E - Added an option to the right-click menu in the log lists to allow you to open highlighted URLs in your browser. 9960/F - *Finally* found out what was causing the mysteriously reproducing "Add filter" dialogs (hint: site needs to be loading while the "add filter" dialog is open) - thanks again to shan for finding that one :-) 10034/E - Added "Search" button to the logs, custom filter and default filter lists, of course now allowing you to search these lists. 10065/E - Rewrote the scrolling routine for the logs tab so automatic scrolls due to auto-updates or searching behave in a more predictable fashion. 10072/F - Fixed bug in javascript spacer handling that could damage certain spacer types. 10087/F - Fixed some problems with the behavior of buttons on the "Replace text" dialog. 10128/E - Several enhancements to the html deobfuscation systems; some to prevent certain page damage, and some to reformat certain types of html/js layouts for more reliable filtering. 10160/F - Fixed several minor formatting and grammatical errors on the interface which were noticed while writing the new help file. Also renamed the "System tray" tab to "Interface", which describes its contents a lot better. 10166/F - Fixed a crash which could occur when attempting to enable IP Scramble with an empty "Verified proxy list". 10180/E - Implemented a new option on the "Interface" tab to "Remember which section of the configuration window was last open", due to popular demand. 10187/E - Went through all the dialogs and made the single-line edit boxes a uniform height (about time). 10190/F - Fixed a few minor bugs with the handling of tab changing and invalid filter prompts. 10204/E - Rewrote the system tray icon handling code. It now doesn't block code paths if the icon can't be created immediately, and doesn't show an error message if the icon cannot be created immediately. 10231/F - Fixed long-standing bug that caused the user's guide to be displayed behind the active windows when first opened. Ad Muncher v4.52 Changelog Release date: May 6th, 2004 [Build]/[Type] - [Description] - E=Enhancement / F=Fix ========================== 8440/F - Fixed focus() removal issue which was causing problems with certain MSN and hotmail pages. 8460/E - Implemented new cleaner icon designs. 8466/E - The registration reminder screen now no longer appears as a top-most window, making it easier to keep it open while visiting the registration web page. 8481/F - Fixed problem where window.open could be replaced with a shorter function name, leading to problems with the white space introduced in certain tag structures. 8483/F - Fixed bug in meta-reload target URL detection code, where it could be analyzed incorrectly if the refresh time value contained a period. 8486/F - Import/export "browse" function now correctly appends the .AMC extension when it is absent. 8487/F - Import/export system now automatically shows the "browse" dialog if you click the "import"/"export" button without selecting a file. 8499/F - Fixed bug where the IRC chat client could leave a connection open under certain conditions. 8696/E - Completed the final touches on an cosmetic overhaul including: - Realignment of all dialogs to maximize use of available space. - Greatly improved window resizing code, allowing most tabs on the config window to be resized while maintaining control spacing and generally giving a far more usable layout. - Config window now remembers its sizing to take full advantage of the new window resizing code. - Child windows on the config window are now automatically centered. 8708/F - Fixed lingering problem with hotmail pages. 8710/F - Fixed minor filter-related problem which could remove large chunks of content from certain yahoo pages. 8711/F - Fixed possible crash when an insane number of connections (512+) were routed through Ad Muncher. 8721/E - Whipped up a program to scan through Ad Muncher's source code to detect any redundant code or buffers, managed to cut a few hundred KB off Ad Muncher's memory usage as a result. 8722/F - Ad Muncher's fault handling now doesn't trigger on stack overflows, preventing unnecessary fault reports when a large degree of recursion was taking place. 8723/E - Enhanced patching system so it can now correctly detect the opcode length of "mov e?x, ???, jmp e?x" patches as installed by some other programs. 8728/F - Fixed possible crash when recovering from faults in external closesocket patches. 8731/F - Fixed possible crash when extremely long entries were added to the custom list from the "recent items" lists. 8742/F - Modified calling of the Sleep() API to silently handle GPFs within the function - have had quite a few fault reports which indicated this fault (perhaps a driver issue?) and this should at least allow them to continue working. 8746/E - Ad Muncher now displays a message to the user when there is insufficient memory available, instead of just generating a fault report. 8759/F - Fixed bug where AMAFstring.dat and AMAFstringsa.dat could appear for no reason in Ad Muncher's start menu group. 8777/F - Fixed bug where in certain situations Ad Muncher's URL reconstituter could incorrectly include single-quotation marks, which could then not be filtered due to automatic filter-conversions to double-quotes. 8778/F - Fixed minor bug which could corrupt javascript content when attempting to circumvent certain content spacer types. 8809/E - Made several enhancements to the way Ad Muncher writes/reads to/from sockets, which will result in better utilization of available buffers, and should produce slightly faster transfers on very fast connections or low-spec computers. 8931/E - Spent a while performance-tuning the dialog resizing system to avoid flickering as much as possible while resizing, and also to shorten initial dialog display times. 8939/E - When Ad Muncher aborts filtering of a page due to unrecognized content encodings it will now display a message stating that in the "triggered filters" recent list. 8940/E - The "Remove background music and sound files" option now also prevents mp3s from playing in the background. 8953/E - Param tag analysis now treats name=src the same way as name=movie 8956/E - Ad Muncher will now automatically load the default server list included in its .exe file if the list build number is higher than the one stored in the ServerStrings.dat file. 8981/E - After many requests, and 5 years of intensive development, we are very pleased to announce... *drum roll* ...the Ad Muncher system tray icon now makes cute little munching faces when it blocks an advert! A mostly useless option, but we've had so many requests for it over the years that including it is bound to make some (admittedly strange) people happy :-) It can of course be disabled if required, but when active it will "munch" once for each advert removed, but for no more than a few seconds after the page has been loaded (so it's not munching continuously long after an advert-heavy page has loaded). 9000/E - Removed the code to remove title= specs under Opera, as all recent versions (since 7.2) handle it in the same way as IE/Netscape. Ad Muncher v4.51a Changelog Release date: December 17th, 2003 [Build]/[Type] - [Description] - E=Enhancement / F=Fix ========================== 8416/F - The only change in this version was a small fix to restore hotmail.com to working order. The site was considered important enough to justify a quick release to correct the issue. Ad Muncher v4.51 Changelog Release date: September 13th, 2003 Most significant changes: New filter scanning system which has improved filtering speed on some sites by as much as 30 times, should make a noticeable difference in browsing speed, especially on faster connections. Plus the usual round of bug fixes and filtering enhancements. Note: a small update was done after v4.51 release, to build number 8415, which only included some additions to the server-supplied list. [Build]/[Type] - [Description] - E=Enhancement / F=Fix ========================== 7000/E - New format for changelog so people can see what's new to each specific beta build, due to popular demand ;-) 7015/E - Added new "Recent requests" section to the fault reporting module, as people generally had a lot of trouble remembering the sites they were on when a fault had occurred. 7033/E - Added code to change: "64kb warning dialog) 7060/E - Added "suggest" button to the filter targets dialog (when the server- supplied list is displayed). 7106/E - Extended filter targets matching so +process:80 also matches against common proxy ports like 1080, 3128, 8080, etc. 7113/F - Fixed the mozilla warnings that window.events, document.onmousedown and document.layers weren't defined. 7150/F - Fixed bugs in previous v4.51 betas which were causing some popups to be blocked when they shouldn't be, and certain onload structures to be not executed correctly. 7163/E - Improved filtering performance by minimizing unnecessary checks of the custom/server filter list. 7168/F - Changed the blank image replacement setup so it replaced 468x60 images with a blank 468x60 image (rather than a 1x1 image) to avoid problems when a page only had a width or height spec in its ... (with the ">" immediately following
"); which wouldn't correctly remove the open(). 7652/E - Implemented brand new filter list scanning system using a new scanning method. Significantly reduces CPU usage in this portion of the filtering code (by a factor of several hundred times), should noticeably improve filtering speed. 7675/E - Significantly improved performance of recent list maintenance and duplicate checks using a new buffer format. 7691/F - Override filter entries which match against src= attributes can now stop removal based on alt tag keyword matches. 7724/E - Completed complete re-write of advanced filter internals, making use of the new filter list scanning system to dramatically improve filtering speed, and a new format for the advanced list to improve memory usage. 7786/E - More performance enhancements, filtering speed of a test page now 28 times that of v4.5. 7791/F - Fixed crash in new CharLower proc. 7792/E - More specific detection of what filenames might be images to avoid problems with certain yahoo sites being blocked incorrectly. 7800/F - Fixed crash in AppendRecentLists.DoQAllocBCCheck when recent items list buffer size was 1kb and certain sites were loaded. 7819/E - Ad Muncher now patches WSAConnect properly - allowing it to correctly filter the new Opera 7.2 betas (and presumably the final). My apologies to anyone given the mistaken impression that this problem was being caused by remaining breakpoints in the betas, while this was the case (on my system, due unfortunately to something else) it wasn't the cause of the problem. 7821/F - Fixed bug in recent betas where the "adverts removed" counter would lose the last 30 seconds of increments when the config window was opened. 7825/E - Added button to reset the recent filter targets lists. 7830/E - Better detection of advanced filter match/replacement text length, preventing crashes when a filter entry something like: match: a**b replacement: a*bc was used. 7831/E - Added check to warn user when there were mismatched numbers of asterisks in match/replacement texts of advanced filters. 7836/F - Fixed incorrect removal of X=MoveTo; 7845/E - Fixed filter targets process name detection to properly convert 8.3 filenames to their full names. 7853/E - Implemented a new command line option on the installer, /R, to install without the "Chat with other Ad Muncher users" dialog, useful in corporate installations etc. 7861/F - Fixed bug in new filter scanning system where the entries: Src keyword: /banners/ Override filter: /banners/*x.gif Would still prevent the /banners/ keyword from matching against anything (x.gif or not). 7862/E - Changed the default settings so the "prevent messenger service popups" is enabled by default - as I was getting far too many complaints from new users saying that Ad Muncher doesn't block those popups ;-) 7889/F - Fixed problem with incorrect replacement of onmousedown tags. 7893/F - Fixed mishandling of ""). - Improvements to overlap correction when filtering javascript files (.js) - Added option to "Prevent mouse-trail visual effects". - Later the above mouse-trail option was moved into the "Prevent interference with mouse behaviour" option. - Added new filter category, "Remove div tags with text", to help combat floating CSS adverts. - Sorting of the custom list is now done based on the order of the filter categories in the drop-down category box, instead of simply the alphabetical order of the category prefixes in the CustomStrings.dat file. - Recent items div/script/table lists now remove white space before and after the asterisks. - Extended option to "prevent status bar modifiers" so it also removes "defaultstatus" modifications. Originally this was intentionally left alone because it doesn't obscure the targets of links etc, but too many people didn't like the behaviour so out it goes :-) - Improvements to overlap correction in regards to dealing with brackets inside of scripts, resulting in more reliable script filtering. - Lots more improvements to overlap correction in regards to alignment of script functions in