Skip to content

Instantly share code, notes, and snippets.

@scorpius
Last active October 6, 2023 20:25
Show Gist options
  • Save scorpius/b19023b74754bd8f55da067070d67ed5 to your computer and use it in GitHub Desktop.
Save scorpius/b19023b74754bd8f55da067070d67ed5 to your computer and use it in GitHub Desktop.
How to Install TurboTax Deluxe 2020 in Windows 7

How to Install TurboTax Deluxe 2020 in Windows 7

Run the TurboTax installer until the error dialog pops up. Click the close button since you can't go any further. Now press WinKey-R and type %TEMP% to go to the temporary folder. Copy the ckz_xxxx folder to the desktop. Select the setup.exe file and press CTRL-C then CTRL-V to make a copy.

Now use radare as follows:

Command Description
r2 -A -w "setup - copy.exe" analyze and allow writing
axt str.Detected_OS_is_WIN_8_or_above look for references to this string
s 0x402ec2 seek to the location that was found in the previous command
VV now we are at the node references the string. You need to reverse the opcode in the previous node by changing je 0x402ed9 to jnz 0x402ed9
Shift-TAB go to previous node
( reverse the opcode
qq exit from visual mode
q quit radare

Now you can click on "setup - copy.exe" and install without error. (Note that the Verified publisher says "unknown" even though we only changed one byte.)

This is a much shorter/faster way that only needs a hexeditor.

Open the setup.exe file and at offset 0x000022c0 change the 74 to 75. Save it and you are done. Remember this offset only works with the version of TurboTax Deluxe mentioned above. If you have another version, follow the radare instructions above to find the right offset.

DISCLAIMER: This is for educational purposes only. Use TurboTax in Windows 7 at you own risk. It most likely will work just fine, but Intuit doesn't want to support older versions of Windows.

@mutleybird
Copy link

Anyone use radare for Home and Business, and find the offset that fully works? Someone must have figured it out by now. :)

@scorpius
Copy link
Author

scorpius commented Apr 9, 2021

You can't use the same offset for different versions. Let me see if I can find it for you. It would be a lot easier if I had the setup.exe file.

@haigha
Copy link

haigha commented Apr 9, 2021

Thanks for following up. I did go through the H & B .exe with the r2 commands you posted above. The offset was exactly the same and I verified the change to 0x75 with a binary diff. After that, it got past the initial check, but gave the error after downloading the files. Win 7 x64 Ultimate, which I should have mentioned. I've installed it on Win 10 now.

@mutleybird
Copy link

You can't use the same offset for different versions. Let me see if I can find it for you.

I really appreciate that. Waiting in anticipation :)

@scorpius
Copy link
Author

scorpius commented Apr 9, 2021

It seems that the offset is the same for H&B, as was stated above. Maybe you can try it and see if you get an error.

@jamiedevsandbox
Copy link

jamiedevsandbox commented Apr 10, 2021

Interesting info about setup.exe TurboTax 2020 Standard:

Testing OS: Windows 7 Ultimate SP1 x64 (intel cpu little endian)

Strings:

str.User_chose_to_install_on_Windows_7_SP1
str.User_chose_to_upgrade_to_Windows_10
str.User_clicked_to_FAQ_Hyperlink

.Caught_unknown_exception_in_Is
.OS_is_lower_than_Windows_7_SP1
.0123456789ABCDEFabcdef__Xx

str.OS_is_Windows_8_or_higher
str.Found_the_ReviveSwitch_pattern_in_JSON_PayLoad:___s
str.Either_response_PayLoad_is_empty_or_doesn_t_have_the_ReviveSwitch_pattern__PayLoad:___s
str.Detected_OS_is_WIN7_SP1__System_is_offline
str.Caught_std::exception_in_IsInstallationAllowedOnThisOS:__s
str.Caught_unknown_exception_in_IsInstallationAllowedOnThisOS

str.Error_creating_zip_in_file
str.zip_1.01_Copyright_1998_2004_Gilles_Vollant___http:__www.winimage.com_zLibDll
str.1.2.11
str..z_02d
str.deflate_1.2.11_Copyright_1995_2017_Jean_loup_Gailly_and_Mark_Adler

Offset info:

N.B. Windows 7 has ASLR(Address Space Layout Randomization) enabled (XP, 2000, 98, 95, etc.. don't have it implemented)

str.OS_is_Windows_8_or_higher is @ 0x404650

N.B. stack/heap/thread stack frame randomization, after reboot new address selected when PE is loaded in memory

located target address ==> 0x0040468f

N.B. opcode 0x75 => JNE/JNZ (ZF=0)

wB 0x75 @ 0x0040468f

if(OS_is_Windows_8_or_higher())
{
// Proceed with subroutine
} else {
// Windows version <= 7
printf("%s\n", "Detected Windows 7 (i686/x64/noarch etc ...) OS");
}

MSI Unpack Method:

Locate TurboTax TurboImpôt 2020.msi

Grant full access permissions on EXE:
icacls TurboTax TurboImpôt 2020.msi /T /C /grant administrators:F

Extract files (administrative network install):
GUI: msiexec /a TurboTax TurboImpôt 2020.msi
no GUI: msiexec /a TurboTax TurboImpôt 2020.msi TARGETDIR=C:\extractdir\ /qn
progressbar GUI: msiexec /a TurboTax TurboImpôt 2020.msi TARGETDIR=C:\extractdir\ /passive

Locate PE: tt2020.exe
Right click tt2020.exe => properties => compatibility => Privilege Level => Select Run as administrator (prompts Windows UAC)
Launch/Execute tt2020.exe and use TurboTax.

If extraction fails (Error: 1304, cannot write file due to insufficient privileges):
Use: lessmsi

Load MSI into lessmsi, to extract remaining files into destination directory.

@davidashby
Copy link

I'm getting this same error with my deluxe version: "It partially worked with my Home and Business version (same offset as above). The new setup-copy.exe runs, but as it starts installing, I get an error after the downloading files dialog gets to 100%. The error dialog says "Please help the TurboTax team eliminate this error by telling us what you were doing when this error occurred." There are fields for email address and description and a Send button." See attached for image of error dialog.
error

@scorpius
Copy link
Author

It might be due to different versions of the setup program. I am able to install while offline. Your error mentions downloading. Can you install while offline? And what is the MD5 hash of your exe?

@SluggerBaloney
Copy link

This no longer works. The offset is correct, 74 is there, you can change it to 75, and Turbotax appears to install then crashes on launch. This is for Deluxe. My filename even matches what was provided.

Please update this guide to indicate this method does not work. Leave incorrect information on the internet is bad for everyone

@scorpius
Copy link
Author

It still works fine for me. The only thing I did before installing deluxe was to install version 4.8 of the NET framework.

@ryanrd
Copy link

ryanrd commented Apr 19, 2021

After patching I see the same thing as davidashby's screenshot after the setup runs TurboTax 2020 Installer.exe from the TurboTax 2020 folder. VM time I guess :)

@brandonwu
Copy link

brandonwu commented Apr 24, 2021

Not sure if different distributions (web vs CD, different editions) have different installers. The TurboTax 2020/TurboTax 2020 Installer.exe does an additional check for OS version. You don't need to patch the setup.exe first if you have this installer, though you may have to manually install Prerequisites/dotNetFx452_setup.exe if you don't already have a .NET 4.5 or greater installation.

You can patch out the TurboTax 2020 Installer.exe check with the fantastic dnSpy.

  1. Install and launch dnSpy
  2. Make a copy of TurboTax 2020 Installer.exe for backup
  3. Drag original exe into the Assembly Explorer pane of dnSpy
  4. Browse to TurboTax 2020 Installer/TurboTax 2020 Installer.exe/Intuit.Tax.Installers.Setup.Common/OSInfo
  5. Press Ctrl-Shift-E with cursor on IsSupportedOs() or right click method and choose Edit method (C#)
  6. Change line 11 bool result = false to bool result = true, or just replace whole method body with return true
  7. Press Compile
  8. NEXT STEP WILL OVERWRITE YOUR ORIGINAL EXE, MAKE SURE YOU MADE A BACKUP IN STEP 2
  9. Press Save All (Ctrl-Shift-S) and press OK
  10. Run TurboTax 2020 Installer.exe

Note: I have Premier, it installed as Basic and asked for a license key to activate.

@renoob
Copy link

renoob commented May 16, 2021

Not sure if different distributions (web vs CD, different editions) have different installers. The TurboTax 2020/TurboTax 2020 Installer.exe does an additional check for OS version. You don't need to patch the setup.exe first if you have this installer, though you may have to manually install Prerequisites/dotNetFx452_setup.exe if you don't already have a .NET 4.5 or greater installation.

You can patch out the TurboTax 2020 Installer.exe check with the fantastic dnSpy.

1. Install and launch [dnSpy](https://github.com/dnSpy/dnSpy/releases)

2. Make a copy of `TurboTax 2020 Installer.exe` for backup

3. Drag original exe into the Assembly Explorer pane of dnSpy

4. Browse to `TurboTax 2020 Installer/TurboTax 2020 Installer.exe/Intuit.Tax.Installers.Setup.Common/OSInfo`

5. Press Ctrl-Shift-E with cursor on `IsSupportedOs()` or right click method and choose Edit method (C#)

6. Change line 11 `bool result = false` to `bool result = true`, or just replace whole method body with `return true`

7. Press Compile

8. **NEXT STEP WILL OVERWRITE YOUR ORIGINAL EXE, MAKE SURE YOU MADE A BACKUP IN STEP 2**

9. Press Save All (Ctrl-Shift-S) and press OK

10. Run `TurboTax 2020 Installer.exe`

Note: I have Premier, it installed as Basic and asked for a license key to activate.

Worked perfectly with Windows 7 Ultimate, and TurboTax 2020 Deluxe.
After updating, I got last years option- "Continue with Windows 7" button.
Thank you very much.

@STxFarmer
Copy link

Was able to install Deluxe with this modification. Did have to save TurboTax 2020 Installer.exe in a different location as it would not overwrite the original file. Once I figured that out it worked like a charm Installed and updated

@samsonsite1
Copy link

Can someone provide a solution that actually works?

First of all, do not give us an absolute memory address, as it obviously changes.
Instead, give us a snippet of the disassembled code to search for, that is sufficiently long and unique.

Secondly, MSI unpacking does not install files, it just unpacks them. It does not create Windows Registry entries,
or setup Windows services, etc... TurboTax does use a service called "Intuit Update Service v4" that needs to be installed
correctly. Only the installer can do this. MSI unpacking will just give you a broken installation, that isn't an installation at all.

The only acceptable solution is to modify Setup.exe. Files need to be installed properly.

@scorpius
Copy link
Author

You must edit two files: setup.exe (as described in the gist) and TurboTax 2020 Installer.exe (as described in the comment by brandonwu). Then run the modified setup.exe to have a complete installation. I haven't actually tried it on a clean install of Win7, but it should work.

@samsonsite1
Copy link

I have TurboTax 2021 Installer.exe and none of this works. I can modify these files, but first I need a snippet of disassembled code to search for.

@scorpius
Copy link
Author

scorpius commented Dec 13, 2021 via email

@SureshotM6
Copy link

SureshotM6 commented Jan 17, 2022

I got TurboTax Deluxe 2021 installing on Windows 7. I modified Setup.exe with Ghidra. After importing Setup.exe into Ghidra and analyzing it:

  1. Click Window -> Defined Strings

  2. Filter on "CurrentVersion" in strings and double click on that string
    image

  3. Click on the function XREF for this string in the center Listing view.
    image

  4. Scroll to the top of this function in the disassembly and click on its XREF (where it is called)
    image

  5. Right click on the JZ instruction after the CALL and click Patch Instruction
    image

  6. Change it to an unconditional JMP (Note: edited from original post):
    image

  7. Click File -> Export Program and save as a new PE format executable in the same directory as the original Setup.exe

  8. The incompatibility check should no longer appear.

I can't guarantee that everything else after that will work, but I was able to perform an update and start my return.

@samsonsite1
Copy link

samsonsite1 commented Jan 18, 2022

Thanks for the info. I don't have Ghidra or java runtimes installed to run it, but I did find and changed
the disassembled code with a simple hex editor:

e8b8e8ffff85c07432 (orig)
e8b8e8ffff85c06690 (edited)

Sorry, but I'm still getting the "OS doesn't meet minimum requirements" dialog. I tried NOP'ing some nearby jumps too, but still not working.

Note that this computer has never had TurboTax installed, so perhaps your setup is doing something differently if TurboTax has already been installed.

@SureshotM6
Copy link

Whoops, sorry. I originally ran it using a slightly different, more complicated modification, but decided to (incorrectly) simplify it when I went back and wrote it up. Try using eb 32 (JMP +0x32) instead of 66 90 (NOP). I'll edit the original post as well to remove the incorrect info.

@samsonsite1
Copy link

samsonsite1 commented Jan 19, 2022

Thank you, that was it! It went straight to the installer this time.

CORRECTION:
e8b8e8ffff85c07432 (orig)
e8b8e8ffff85c0EB32 (edit)

Tax preparation software shouldn't need the latest and greatest operating system to run in any universe.
Thanks again.

@mak2023
Copy link

mak2023 commented Mar 18, 2022

I could not figure this out. an easier tutorial please? can we get this done for "TurboTax_Individual_2021_PC.exe" ?

@scorpius
Copy link
Author

scorpius commented Mar 19, 2022 via email

@renoob
Copy link

renoob commented Mar 22, 2022

Well, the 2021 setup installer worked great, and all was going smooth until I tried to install a state-
The state installation will not stick.
The MSI is woriperStateIS.msi
Not able to upload it here.

MSIe8c6b.LOG

The operating system is not adequate for running woriperStateIS.
Property(S): DiskPrompt = [1]
Property(S): UpgradeCode = {CF0BCCF7-37B1-48B9-9E63-0C52C766A8C5}
Property(S): ProductCode = {3297D23E-3ECB-437B-9EF8-99FF9A4DFCBF}
Property(S): ISSETUPFILESCOMPLETED = Completed
Property(S): SUPPORTDIR = C:\Users\xxxx\AppData\Local\Temp{3297D23E-3ECB-437B-9EF8-99FF9A4DFCBF}
Property(S): ACTION = INSTALL
Property(S): SHIMFLAGS = 512
Property(S): MsiUIProgressOnly = 1
Property(S): UILevel = 3
Property(S): OriginalDatabase = C:\ProgramData\Intuit\Common\Update Service\v4\Data\19f2745da94d40aba983e9d0a57b1e50\C\C-woriperStateIS\021.000.0104_msi\v1\F\woriperStateIS.msi
Property(S): DATABASE = C:\Windows\Installer\a048f0e.msi

@princessrage
Copy link

IS there a fix for the state?

Whoops, sorry. I originally ran it using a slightly different, more complicated modification, but decided to (incorrectly) simplify it when I went back and wrote it up. Try using eb 32 (JMP +0x32) instead of 66 90 (NOP). I'll edit the original post as well to remove the incorrect info.

@wahyim
Copy link

wahyim commented Apr 5, 2022

IS there a fix for the state?

Whoops, sorry. I originally ran it using a slightly different, more complicated modification, but decided to (incorrectly) simplify it when I went back and wrote it up. Try using eb 32 (JMP +0x32) instead of 66 90 (NOP). I'll edit the original post as well to remove the incorrect info.

I'm interested to know about this as well - the initial mod works great for the main TT installation but state won't install. Any advice is much appreciated!

@davidashby
Copy link

IS there a fix for the state?

Whoops, sorry. I originally ran it using a slightly different, more complicated modification, but decided to (incorrectly) simplify it when I went back and wrote it up. Try using eb 32 (JMP +0x32) instead of 66 90 (NOP). I'll edit the original post as well to remove the incorrect info.

I'm interested to know about this as well - the initial mod works great for the main TT installation but state won't install. Any advice is much appreciated!

This is what I see too. The state seems to install.

  1. I hit "Start" next to Virginia, and I see this:
    image

  2. I hit "OK", and see this
    image

  3. I hit OK and see "Getting your state". I allow the program to make changes and see this:
    image

But when I hit "Continue using Turbo Tax", nothing changes. Selecting "Start" next to Virginia just sends me around the same loop.

@mak2023
Copy link

mak2023 commented Apr 12, 2022

Thx Scorpius
This fix was to be able to run Turbotax on Windows 7. the state issue is another problem not related to this. try downloading state without entering info for federal and see if it downloads that way. I got it to work that way. check your forms folder for your state forms if it downloaded.

@scorpius
Copy link
Author

scorpius commented Oct 11, 2022 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment