none
Experimental patching of mnyob99.dll for versions of Money other than Money Plus Deluxe

    General discussion

  • This post is aimed at a very limited number of people. It is for technical people who want to be able to patch mnyob99.dll for a version other than Money Plus Deluxe. It could also be for people who are a little technical who are motivated and want to ask for help on this. It is hoped that those who lead the way will be able to contribute to those who have the need but are not programmers. Maybe Ameridan will accumulate positive results.

    patch99.zip is available for download at **edit: link stopped working. See later link for replacement file I posted August 3, 2015/
    It is 2,035 bytes long. Its MD5 is 064be83fc84aabeb7fb9105b6b272cd0
    The zip file  contains
     1.patch99.py -- a python program for patching mnyob99.dll for versions other than Money Plus Deluxe.

     2. patch99.txt -- a text file that is aimed at the advanced person who wants to use the patch99.py program. It offers tips, and it asks
    people who do patch to post certain information.

    Note that this is not pretty. It is experimental.




    Tuesday, February 05, 2013 10:21 PM
    Moderator

All replies

  • Cal,

    I don't know that I agree with your NOTE at the top of your sticky:  It appears that the patched version of mnyob99.dll  being downloaded is only for Microsoft Money Plus Deluxe including Sunset. It is not for Business...

    as I've applied it to my Sunset Home & Business edition with no issues.  What leads you to that statement?

    Friday, February 08, 2013 6:39 PM
  • A quite knowledgeable person told me that the mnyob99.dll is different for each version. One thing you could do is to post the MD5 for your un-patched mnyob99.dll from your Business install. The MD5 for the unpatched Deluxe mnyob99.dll is cfe79399e2d2aca2c59df29cfef82ab1. So if your unpatched mnyob99.dll for Business is the same then the mnyob99.dll files are the same.

    Friday, February 08, 2013 7:02 PM
    Moderator
  • The MD5 for my unpatched mnyob99.dll for Sunset Home & Business is 8E1D9F03F3FF7F3890B265ADB8DBCC56, so I guess you are correct.  I'll therefore be a beta tester for your patch and report back...



    • Edited by ameridan Friday, February 08, 2013 8:09 PM
    Friday, February 08, 2013 7:48 PM
  • On Tue, 5 Feb 2013 22:21:25 +0000, Cal Learner wrote:
     
    >
    >
    >This post is aimed at a very limited number of people. It is for technical people who want to be able to patch mnyob99.dll for a version other than Money Plus Deluxe. It could also be for people who are a little technical who are motivated and want to ask for help on this. It is hoped that those who lead the way will be able to contribute to those who have the need but are not programmers. Maybe Ameridan will accumulate positive results.
    >
    >patch99.zip is available for download at http://filenurse.com/5x0
    >It is 2,035 bytes long. Its MD5 is 064be83fc84aabeb7fb9105b6b272cd0
    >The zip file  contains
    > 1.patch99.py -- a python program for patching mnyob99.dll for versions other than Money Plus Deluxe.
    >
    > 2. patch99.txt -- a text file that is aimed at the advanced person who wants to use the patch99.py program. It offers tips, and it asks
    >people who do patch to post certain information.
    >
    >Note that this is not pretty. It is experimental.
    >
    Cal,
      Here's some additional information that may or may not be useful. 
     
    I took a look at your script.  First of all, I DO have Money Plus Deluxe. My version is 17.0.120.1415.
     
    In any event, the string of "bad_bytes" shows up twice in this mnyob99.dll file, at 4C8250 and again at 4C827A.  If I'm correct,
    the MD5 checksum is C0948314C7013609B364AF51D55F7D33
     
    (I don't know about the MD5.  It was generated by my Hex Editor but I don't see anything in the file properties to compare it with).
     

    Ron
    Friday, February 08, 2013 8:18 PM
  • Suggestion for your instructions (txt file):

    Here is the method I suggest:

    Install Python.
    ActivePython 2.6.5.14 (ActiveState Software Inc.) was used in the testing,
    but other versions will probably work.

    Create a folder to do your work in.
    I will call mine WorkF.  Copy PATCH99.PY into WorkF.  Find the mnyob99.dll from your
    MNYCoreFiles folder, and copy it to WorkF.  In WorkF, ren your copy
    of mnyob99.dll to "mnyob99.dll.orig".  That is the fixed name the
    patching program reads.  The modified output file created by simply double-clicking PATCH99.PY will be called
    "mnyob99.dll.fix".



    • Edited by ameridan Friday, February 08, 2013 8:57 PM
    Friday, February 08, 2013 8:33 PM
  • I took a look at your script.  First of all, I DO have Money Plus Deluxe. My version is 17.0.120.1415.
    In any event, the string of "bad_bytes" shows up twice in this mnyob99.dll file, at 4C8250 and again at 4C827A.  If I'm correct,
    the MD5 checksum is C0948314C7013609B364AF51D55F7D33
    (I don't know about the MD5.  It was generated by my Hex Editor but I don't see anything in the file properties to compare it with).

    Ron

    Ahh.. Looking at my mnyob99.dll  from Money Plus Deluxe Sunset I see date,time,size
    02/22/2010  03:56 PM         9,529,200 mnyob99.dll

    I presume that yours is not Sunset and that your file is dated earlier. The Sunset/non-Sunset may be functionally compatible, but different.  However that is a very interesting data point.

    Also note that the offset of the patched string in Raymond Chen's writeup was 003FACE8, which is the first occurance of the target string in the Money Plus Deluxe Sunset mnyob99.dll. So that makes me suspect that the files differ by more than a date stamp. Of course there could have been a different compiler version that just located things in a different place.



    Friday, February 08, 2013 8:41 PM
    Moderator
  • Suggestion for your instructions (txt file):

    Here is the method I suggest:

    Install Python.
    ActivePython 2.6.5.14 (ActiveState Software Inc.) was used in the testing,
    but other versions will probably work.

    Create a folder to do your work in.
    I will call mine WorkF.  Copy PATCH99.PY into this folder. 
    MNYCoreFiles folder, and copy it to WorkF.  In WorkF, ren your copy
    of mnyob99.dll to "mnyob99.dll.orig".  That is the fixed name the
    patching program reads.  The modified output file created by simply double-clicking PATCH99.PY will be called
    "mnyob99.dll.fix".

    Good points, especially the point about putting patch.py into WorkF and running it there. I won't upload a changed zip yet, but the info will be helpful to those reading the thread. Regarding the double-clicking, I actually did my stuff in a command window. So maybe I could say the modified output file is created when you run/open the patch.py file to be more generic.

    Remember to post the MD5 for the patched Money Plus Business Sunset

    Example:
    Version: Money Plus Deluxe Sunset
    Diagnostics:  9529200 ,  2 ,  0 .
    MD5 of mnyob99.dll.orig: cfe79399e2d2aca2c59df29cfef82ab1
    MD5 of mnyob99.dll.fix:  e413d40c05d1a2fbe179ed0f776ee3bb
    Result: I was not having a problem, but I did the patch anyway.

    Note that the 9529200 is the length of the file, 2 is the number of occurances of the problem string before the patch was generated, and the 0 is the number of occurances of the replacement string before the patch was made. The patching process replaces the first occurance of the problem string. The second occurance is probably as it should remain.

    Maybe I should have make the program write the patched code to a file named mnyob99.dll rather than mnyob99.dll.fix. I wanted to let the person operating the process to not mix up the pieces although it added a a step or two for the user.

    Friday, February 08, 2013 9:06 PM
    Moderator
  • I always use the Windows version of Python.  That would explain why I don't get any diagnostic codes :)   I'll delete my post if you think it confuses things (or you could produce a txt file with the diagnostics*).  Just in case a user doesn't create the WorkF folder, I think I would leave the fix file name as mnyob99.dll.fix  as they should already be familiar with renaming a file in order to start this process.

    I'm using MD5 Checker 2.30 written in Emergence Basic from Ionic Wind Software - I hope it produces comparable checksums.

    Here's my data:

    Version: Money Plus Sunset Home & Business
    Diagnostics:
    MD5 of mnyob99.dll.orig: 8E1D9F03F3FF7F3890B265ADB8DBCC56
    MD5 of mnyob99.dll.fix:  1ABFE5D27B1A70611C4FAAD7881AB4E4
    Result: I was not having a problem, but I did the patch anyway and just confirmed that the program behaves well.
                (I haven't had a problem using the downloaded patched dll file either; MD5 of that file: 
                 E413D40C05D1A2FBE179ED0F776EE3BB)

    Cal, I'd be happy to post the findings / results on my blog as another reference source.

    * P.S.  If your python script did produce a diagnostics txt file, you could also use "hashlib.md5(open(fname, 'r').read()).hexdigest()" to print the MD5 checksums as well.

    • Edited by ameridan Friday, February 08, 2013 11:14 PM
    Friday, February 08, 2013 9:22 PM
  • Ahh.. Looking at my mnyob99.dll  from Money Plus Deluxe Sunset I see date,time,size
    02/22/2010  03:56 PM         9,529,200 mnyob99.dll

    I presume that yours is not Sunset and that your file is dated earlier. The Sunset/non-Sunset may be functionally compatible, but different.  However that is a very interesting data point.

    Also note that the offset of the patched string in Raymond Chen's writeup was 003FACE8, which is the first occurance of the target string in the Money Plus Deluxe Sunset mnyob99.dll. So that makes me suspect that the files differ by more than a date stamp. Of course there could have been a different compiler version that just located things in a different place.



    Not much question then that they are different.  The corresponding figures for mine are 2/19/2008  9:04:08 AM and 9,746,960.  But I find it curious that there were two instances of the "bad byte" strings.

    On another computer, I did modify according to Raymond's writeup, and did find the "bad bytes" at the location he posted, so I doubt it is a compiler issue.


    Ron

    Saturday, February 09, 2013 12:19 AM
  • Hi, Cal - I greatly appreciated finding your fix for this nasty bug in MS Money Sunset but, after downloading your "Patch99" files, I still have a problem.  Nowhere on my C:/ drive can I find a file named "mnyob99.dll".  Is there a "fixed" version of that file that I could download and see if that fixes my Sunset version?

    I've used MS Money since about 2000, and my latest version is MS Money 2006 Small Business, Vs. 15.0.150.513.  About three years ago, I downloaded MS Money Plus Home & Business for my business computer and have been using it without a problem until about a month ago when, after downloading some bank transactions, this "needs to close" error began appearing.  At first, it didn't happen every time, but Money wouldn't show the downloaded transactions, even though the message on the Home Page said "You have Statements to read".

    Since two weeks ago, the "needs to close" error appears every time Money opens and (of course) when I click Close, Money obediently closes itself.  Today I discovered that, if I move the error window down near the Task Bar where it doesn't cover the screen, I can still use some portions of Money.  I've been able to use the Reports menu to print a report for two accounting periods using Customize to change the dates, and I can view different accounts.  However, when I try to enter a new transaction I get an error window "Your information is being updated.  Click OK, wait a few moments, and then try again. ..."  Trying again doesn't work.  So I can't enter any new data.  It works only with the transactions that have been entered before the glitch.

    Maybe you don't need to know all this, but it might help to know some of the side effects of this bug.

    Please let me know if there's a "fixed" mnyob99.dll that I can download.

    Thank you, very much...  LAS77

    Wednesday, March 20, 2013 2:26 AM
  • The file is in
    C:\Program Files\Microsoft Money Plus\MNYCoreFiles

    That folder is hidden, so you can either make the folder not hidden , as shown in http://windows.microsoft.com/en-US/windows-vista/Show-hidden-files , or paste the location into Windows Explorer, or paste
    cd "C:\Program Files\Microsoft Money Plus\MNYCoreFiles"
    into a command window. Bobjbkin points out that the file is a system folder. However I don't know if making that to not be a system folder is needed.

    See Ameridan's posting of the MD5 information. If you had a patched your file and got the same MD5 as he got, you would know that your copy of mnyob99.dll matched his. I don't know that anybody has made the patched Business version available for download.

    Of course keep a copy of the unpatched file in case the modification does not help.

    It may be that you would get by with using the pre-patched Deluxe Sunset file on the Business version, but patching the Business file is more sure to be right.

    • Edited by Cal LearnerModerator Wednesday, March 20, 2013 3:09 PM CORRECTED based on bobjbkln's observations
    Wednesday, March 20, 2013 3:04 AM
    Moderator
  • That folder is hidden, so you can either make the folder not hidden, as shown in http://windows.microsoft.com/en-US/windows-vista/Show-hidden-files , or paste the location into Windows Explorer, or paste
    cd "C:\Program Files\Microsoft Money 2006\MNYCoreFiles"

    If I read LAS77 message correctly, s/he is now using MS MoneyPlus so the revised mnyob99.dll is a known fix.  Note that to see the MNYCore files it does not suffice to "show hidden files and folders" as for some perverse reason this folder is designated a System file.  In order to make it visible, one must uncheck the box that says "Hide Protected Operating System files (Recommended)" and ignoring the warning message.  After switching out the mnyob99.dll file, it would be best to go back and recheck the box. 
    Wednesday, March 20, 2013 2:46 PM
  • If I read LAS77 message correctly, s/he is now using MS MoneyPlus so the revised mnyob99.dll is a known fix.  Note that to see the MNYCore files it does not suffice to "show hidden files and folders" as for some perverse reason this folder is designated a System file.  In order to make it visible, one must uncheck the box that says "Hide Protected Operating System files (Recommended)" and ignoring the warning message.  After switching out the mnyob99.dll file, it would be best to go back and recheck the box. 

    D'oh!!! You are right. I mis-read, thinking he was using Money 2006.  Thanks, and sorry for causing LAS77 needless pain.

    I don't know if clearing the system attribute is needed. I generally work in a command window for that kind of thing, and I launch the command window by right-clicking the icon and choosing RunAsAdministrator if I run into any permissions problem. However I know that most people are not going to work that way. I have launched Windows Explorer by right-clicking the icon and choosing RunAsAdministrator. I think that would help with a permissions thing. Thanks bobjbkln

    Wednesday, March 20, 2013 2:50 PM
    Moderator
  • Cal (and LAS77),

    I just noted that you mentioned someone making a download available for the patched dll file for the H&B version of Sunset Money.   I never gave it a thought since the original patched dll file worked for me.   But I did subsequently patch my H&B dll file using your script and I made it available today on my blog.

    I was quite surprised to learn that there were 2,300 downloads of the original patched dll file.   There are quite a few of us using Microsoft Money yet :)


    • Edited by ameridan Wednesday, March 20, 2013 4:49 PM
    Wednesday, March 20, 2013 4:13 PM
  • Cal,

    Many thanks for the patch. It worked perfectly with MS Money 2007 on Windows 8 Pro.  It no longer hangs up when ofx files from bank accounts are imported. Money 2007 seems to have the advantage over the Sunset version in that it is fully functional, updating stock prices automatically.

    Regards, Jerry

    Thursday, May 02, 2013 3:42 AM
  • Hi Cal, any chance you could re-post the python script? The link is dead now and with the move to Windows 10, I need to apply the fix. Many thanks James
    Monday, August 03, 2015 8:47 AM
  • Hi Cal, any chance you could re-post the python script? The link is dead now and with the move to Windows 10, I need to apply the fix. Many thanks James

    Note: this is for the more advanced motivated person who wants to make a patched version of a mnyob99.dll file. Note that the text file encourages you to post info about your patched file. In the over 2 years since I posted the original, that happened maybe once. Feel free to try to make this more usable by more people via documentation or modification.

    I have made a slight change a few days after posting the original, and I just posted a zip file at  http://s000.tinyupload.com/?file_id=90424410019360242653 (re-uploaded 2017-3-25)

    The patch99a.zip file contains

    02/09/2013  01:48 AM             2,939 PATCH99.TXT
    02/08/2013  05:25 PM             1,509 PATCH99A.PY

    Here are the MD5 and SHA1 for the zip file.

    >fciv patch99a.zip   -both
    //
    // File Checksum Integrity Verifier version 2.05.
    //
                    MD5                             SHA-1
    -------------------------------------------------------------------------
    da2a47f8373b6c3f21b0398e619adecc 0a4880061404b5273ffcedb31d1085d2d6402472 patch99a.zip

    For a while I did not find where I had saved this patch program, but I did find it fortunately.

    Note that the use of this patching program is for people who can do more advanced things. The coding is in Python, which is the same language that PocketSense is coded in. PocketSense is a the program I use to bring credit card and broker statements via their OFX servers.


    Monday, August 03, 2015 5:31 PM
    Moderator
  • Thanks for this thread - it has fixed my issue since upgrading to Windows 10. Here is my data:

    Microsoft Money Plus Home & Business v17.0.150.3817

    String offset in file: 4173032 hex: 0x3face8

    Diagnostics:  9529208 ,  2 ,  0 .

    MD5 for mnyob99.dll.orig:  8e1d9f03f3ff7f3890b265adb8dbcc56

    Patching the fileMD5 for mnyob99.dll.fix:  1abfe5d27b1a70611c4faad7881ab4e

    Hope this helps others as much as it did me!!

    Cheers,

    Stu

    Wednesday, August 05, 2015 10:33 AM
  • Thanks for this lifesaving post - it helped me solve MS Money issue after upgrade to W10. I thought might be useful to post as the error reported was for another dll, as seen in Event Viewer "Faulting module path: C:\Program Files\Microsoft Money Plus\MNYCoreFiles\UTLSRF08.DLL". So although its for UTLSRF08.DLL after applying this fix to mnyob99.dll MS Money works correctly.

    stress relieved and order is restored!

    Details are:

    Version: Microsoft Money Plus Home & Business v17.0.150.3817

    Diagnostics:

    MD5 of mnyob99.dll.orig: 8e1d9f03f3ff7f3890b265adb8dbcc56

    MD5 of mnyob99.dll.fix:  1abfe5d27b1a70611c4faad7881ab4e4

    Result: MS Money was crashing after sign in while trying to import data. It was reporting that UTLSRF08.DLL was the faulting module. updated  mnyob99.dll and MS Money now works.

    Wednesday, August 19, 2015 7:59 AM
  • Hi Cal, any chance you could re-post the python script? The link is dead now and with the move to Windows 10, I need to apply the fix. Many thanks James

    Note: this is for the more advanced motivated person who wants to make a patched version of a mnyob99.dll file. Note that the text file encourages you to post info about your patched file. In the over 2 years since I posted the original, that happened maybe once. Feel free to try to make this more usable by more people via documentation or modification.

    I have made a slight change a few days after posting the original, and I just posted a zip file athttp://s000.tinyupload.com/?file_id=39046199592851494277

    The patch99a.zip file contains

    02/09/2013  01:48 AM             2,939 PATCH99.TXT
    02/08/2013  05:25 PM             1,509 PATCH99A.PY

    Here are the MD5 and SHA1 for the zip file.

    >fciv patch99a.zip   -both
    //
    // File Checksum Integrity Verifier version 2.05.
    //
                    MD5                             SHA-1
    -------------------------------------------------------------------------
    da2a47f8373b6c3f21b0398e619adecc 0a4880061404b5273ffcedb31d1085d2d6402472 patch99a.zip

    For a while I did not find where I had saved this patch program, but I did find it fortunately.

    Note that the use of this patching program is for people who can do more advanced things. The coding is in Python, which is the same language that PocketSense is coded in. PocketSense is a the program I use to bring credit card and broker statements via their OFX servers.

    Hi...! I wonder if you could post this again as the latest link you have is no longer valid (no more file there!)

    I'm still using Money 2004, and after the latest (March'17) Windows 7 security update, Money will not run correctly. It runs, but does not display anything other than initial splash screen. After that, the window quickly disappears. The program is actually running, but nothing will display. I'm hoping that the patch will bring it back as there is nothing wrong with Money'04 - works perfectly for my needs.

    I had to roll back (system restore) prior to the March'17 security rollup to get money working again. (Uninstall of the Windows update did not help, but system restore did.)

    Saturday, March 25, 2017 2:00 AM
  • Hi...! I wonder if you could post this again as the latest link you have is no longer valid (no more file there!)

    I'm still using Money 2004, and after the latest (March'17) Windows 7 security update, Money will not run correctly. It runs, but does not display anything other than initial splash screen. After that, the window quickly disappears. The program is actually running, but nothing will display. I'm hoping that the patch will bring it back as there is nothing wrong with Money'04 - works perfectly for my needs.

    I had to roll back (system restore) prior to the March'17 security rollup to get money working again. (Uninstall of the Windows update did not help, but system restore did.)

    I just reloaded the  patch99a.zip file at  http://s000.tinyupload.com/?file_id=90424410019360242653 (re-uploaded 2017-3-25)

    I have my doubts that it will apply to Money 2004. There was a big change in Money code in 2005, and nobody has indicated that even Money 2005 was helped by this.  Let us know how your experiment goes. Success would be a pleasant surprise.

    Saturday, March 25, 2017 3:46 PM
    Moderator