Fixed possible crash when "Allow popups" filters were used with a "%" character in the URL.
Fixed possible crash when using IP scramble.
Fixed conflict with video player on jmeeting.com.
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).
Added option, enabled by default, to remember lock status when Ad Muncher is closed.
Moved "Lost your code?" button from the about tab to directly underneath the code entry fields to help people find it.
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.
Improved submit() javascript function redirection to avoid some possibly incorrect redirections.
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.
Modified browser extension for Firefox/etc to work with Flock.
Fixed resource leak in connection routing code when a connect to loopback failed.
Fixed bug in config.dat writer that could cause some errors to not be detected.
Fixed bug in license.dat writer that could cause some fields to not be deleted correctly when they should be.
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.
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.
New installer layout adopted that more closely matches what people expect an installer to look like, making it more intuitive to use.
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.
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.
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.
Installation progress is now displayed while installing, rather than simply pausing the display while operations are performed.
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.
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.
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.
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).
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.
The installer will now remember the preferences used so that they don't need to be chosen again when reinstalling.
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.
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.
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 toindex it and reducing the download size for the vast majority of people who don't use the help file.
Added 48x48 icon to the installer to improve the appearance when saved to the desktop under Vista.
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.
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.
Fixed race condition in registration dialog that could cause a blank "check status" window to appear.
Added code so that the installer will automatically locate and import any configuration files stored in Windows Vista's "virtual store" whenupgrading from a previous version.
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.
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.
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).
Removed "[Moo! 1000th Ad Munched]" advert replacement (used to be displayed every 1000 removals), didn't think it was entirely appropriate for corporate environments.
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.
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.
Fixed bug in Install.ini saving code that could cause blank fields to not be correctly saved.
Improved Install.ini saving code to save the fields to the file in a more logical order.
Moved browser extension startup code into its own thread to reduce Ad Muncher's startup time.
Added some extra path sanity checks to the installer to make sure it never modifies anything it shouldn't.
Fixed lack of synchronize flag when setting shared file permissions.
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.
Fixed possible crash in CPUID handling code.
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.
Fixed crash in the new uninstaller when clicking the "Back" button in certain situations.
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.
Fixed incorrect default install path when a previous version of Ad Muncher had been configured to disable the built-in chat client.
Fixed bug in IE browser extensions uninstaller that could leave entries behind in certain situations (thanks Noctem).
Fixed misaligned "Lost your code?" button on "About" tab when window was resized.
Improved IPC system to avoid possible erroneous communication between different builds of Ad Muncher.
Fixed IPC-5 error on some Vista machines.
Fixed hook loading problem under Windows 9x.
Fixed failure when setting security permissions when running on a non- English version of Vista.
Fixed fault reporting failure on some Vista machines.
Fixed possible problems when launching Ad Muncher after installing on some Vista machines.
Fixed possible erroneous detection of temp path when downloading and launching Ad Muncher updates.
Added extra code to the fault reporting HTML to avoid odd behavior when opened in IE7 under Vista.
Changed Load/Save/Reset tab to have all section options enabled by default, as this is what most people will actually be doing.
Modified configuration importing code to write the content to configuration files without first deleting them so that any security permissions are retained.
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.
Added a more useful error message if the UAC prompt is declined when installing under Vista.
Fixed lack of "Ad Muncher" submenu in IE browser extensions under IE 7.
Improved installer to automatically remove empty directories when the option for where to store the configuration files is changed.
Changed text on registration/trial start dialog to clarify that the 30-day trial is free of charge.
Fixed some cosmetic title case problems on push buttons.
Improved file enumeration code to avoid possible problems when deleting files using a wildcard.
Added button to import configuration to the trial start/registration dialog.
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.
Added extra code to avoid crashes when working alongside some buggy Windows message hooks.
Fixed crash after a large number of processes had been logged to the filter targets activity logs.
Reduced startup time significantly.
Fixed potential crash in the installer.
Added code to check for leftover DLLs from very early versions of Ad Muncher to avoid potential conflicts.
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.
Fixed browsing problems when another program overwrote Ad Muncher's winsock hooks and Ad Muncher tried to restore them.
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.
Fixed incorrect error handling in some mutex code.
Improved patching system reliability.
Fixed IPC error when using "Run as" to launch Ad Muncher as a different user under XP.
Added code to avoid a conflict with the menus on box.net.
Changed messagebox handling code to avoid the possibility of some critical messages being obscured by other windows.
Fixed outdated homepage link in Firefox browser extension, andclarified the error displayed if an outdated extension is used with a newer version of Ad Muncher.
Fixed bug where "Add to list" button on logs tab would not be enabled when entries were highlighted using the search function.
Betas will now be forced to use daily update checks to ensure that important fixes are distributed quickly.
Fixed flawed title rendering in the installer when using non-standard Windows color schemes.
Modified messagebox display code to always include the Ad Muncher icon so it's obvious which program is showing it.
Fixed incorrect dialog display when the "Import Configuration" button was clicked on the registration dialog when the configuration dialog was already open.
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.
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.
Fixed incorrect mutex error handling in some parts of Ad Muncher.
Fixed possible crash when updating the default filter list.
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.
Improved the file extraction functions used by the installer, speeding up extraction and avoiding some possibly incorrect "insufficient space" error messages.
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.
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.
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.
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.
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.
Added text to the browser extensions dialog clarifying that the password is no longer required due to several enquiries about this.
Fixed erroneous "Fault Outside AM" message when a program lockup was detected.
Improved CallNextHookEx hook handle passing under NT-based versions of Windows.
Modified IPC error reporting in hook DLL to only report errors if the error would definitely prevent a connection from being filtered.
Fixed possible lockup when verifying the license by clicking on the "Verify license" button on the "About" tab.
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.
Minimized the amount of code executed within the hook DLL mutex to improve performance and avoid possible deadlocks.
Modified manifest information to allow XP visual styles to affect Ad Muncher.
Fixed delayed progress bar updates in the installer under Vista Aero.
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.
Fixed possible crash when updating the default filter list.
Fixed possible crash when verifying license on a fresh installation.
Fixed possible interference with other windows hooks on NT-based windows systems.
Added version information to all EXE and DLL files in Ad Muncher.
Fixed conflict with Haute Secure.
Fixed possible crash if a stack overflow occurred while in the fault trapping code.
Fixed possible javascript damage.
Fixed bug in treatment of SWF filenames.
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.
Added code to mark ops on the "Live chat and tech support" with a "@" prefix to help people see which users are developers.
Fixed delayed closure of the "Live chat and tech support" connection if the configuration window were closed without disconnecting.
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.
Fixed potential page stalling when blocking SWF content.
Fixed possible crash when walking the function call stack from within the memory allocation handler.
Fixed possible crash when loading corrupted license information.
Fixed possible lockup when a 0x08 byte was present in a filter keyword.
Improved file type detection in referrer changing code.
Fixed possible failure to correctly reset corrupted configuration files.
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.
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.
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.
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.
Fixed weird tab behavior if you clicked the "About" option from the system tray menu while scanning for proxies on the IP Scramble tab.
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.
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.
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.
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.
Fixed failure to log process names in the "Programs that made connections" list if they were not targeted in the filter targets list.
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.
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.
Improved FLV blank content replacement.
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.
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.
Fixed crash when a referrer field replacement was configured which contained a percentage character ('%').
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.
Added filter category for the default list, "No filtering on content", allowing us to avoid filtering on specific content without excluding entire pages.
Fixed bug that could cause Ad Muncher to load an incompatible list type from its configuration files.
Repackaged as a final release.
Changes from v4.7 Build 27105 to v4.71
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.
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.
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.