It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
It's possible to activate Knife DLC in GOG version. All you have to do is:
- Open game folder
- Open !Backup folder
- Copy SaboteurLauncher.exe and paste it in the game folder
- Run launcher
- Press F4
- Use this code - BH87-VJ52-VK5Z-8J4N
- Done.
Note: You will have to start New Game for knife to work.
Post edited April 09, 2020 by Madferit_UA
I can confirm that using the 'SaboteurLauncher.exe' method works


I managed to activate it using the following method :::

- Place the 'SaboteurLauncher.exe' in Game folder
- Run the 'SaboteurLauncher.exe' launcher program
- Press F4 to bring up the Code Entry dialog box
- Type in the following code BH87-VJ52-VK5Z-8J4N
- Exit out of the Launcher Application completely
- Start up a fresh new Game to access the Content

To use this new Kill in-game .. hold the high-profile
Stealth Kill activation key/button to instigate the
use of the Nazi Knife, which is a very blatant kill
best used when unobserved ... compared with the perk
'Touch of Death' which is a very subtle kill move ...


With the Nazi Knife enabled, there are actually 5 stealth kill moves available [only 4 at once]

Tapping the low-profile stealth attack will break the victim's neck from behind using the traditional fashion
Holding the low-profile stealth attack will perform a tap on the shoulder followed by a single sucker punch
Tapping the high-profile stealth attack will perform a violent series of blows to back of the enemy's head
Holding the high-profile stealth attack will activate the Nazi Knife execution which is rather violent indeed

Unlocking the 'touch of death' perk replaces the series of blows to the back of the head with a single stab
to the victim's right kidney resulting in a silent kill that is most effective when stealth is of utmost importance

The 'sucker punch' perk can be used as a stealth kill move as well, provided it remains unseen by enemies
Post edited April 13, 2020 by HerrZoot
Where I can find this "SaboteurLauncher.exe"?
Fresh install via Galaxy and the SaboteurLauncher.exe is missing from the root install location.
avatar
Gamesiarz: Where I can find this "SaboteurLauncher.exe"?
I also don't have such file in game installation folder...
I don't have the folder or the launcher either I open something called launcher it either launches the game or has a notepad of text
You can also try to launch the VideoSetup.exe with the parameter "-unlock" (without the quotes). Actually this executable does both, video settings and the unlocking for the knife. After it is unlocked, a file named "data01.bin" will appear in "Documents\My Games\The Saboteur\SaveGames".

Basically it's the same file for everyone, would be nice if GOG automatically include this.
Can anybody help me out? I tried every method but none of them worked. I probably did them wrong. I just started using a computer for gaming, so i only very rare experience and knowledge. Anynone willing to help me, contact me dirtectly or just write below.
thx :)
So I did what you guys wrote but this didn't worked for me. I tried all the stealth kills but Sean is still using his hands. There's no knife.
avatar
fresco: You can also try to launch the VideoSetup.exe with the parameter "-unlock" (without the quotes). Actually this executable does both, video settings and the unlocking for the knife. After it is unlocked, a file named "data01.bin" will appear in "Documents\My Games\The Saboteur\SaveGames".

Basically it's the same file for everyone, would be nice if GOG automatically include this.
Thanks! worked like a charm!
avatar
fresco: You can also try to launch the VideoSetup.exe with the parameter "-unlock" (without the quotes). Actually this executable does both, video settings and the unlocking for the knife. After it is unlocked, a file named "data01.bin" will appear in "Documents\My Games\The Saboteur\SaveGames".

Basically it's the same file for everyone, would be nice if GOG automatically include this.
worked, thanks. can't find the !Backup folder or anything, but this works. basically you create a shortcut on desktop and add [space]-unlock after the double quotes.
if you launch the shortcut it'll show you a box to enter the code.
Somehow I can't get the executable condition to be triggered
Hello,

The method described by Fresco using the VideoSetup.exe work.

To launch the VideoSetup.exe with the -unlock condition, I just use a command prompt window.

1) Go in your "The Saboteur" installation folder.

2) Delete the path in the address bar (example : C:\Program Files\....)

3) In the address bar type CMD and press enter. This will open a command prompt window already located in your "The Saboteur" installation folder.

4) Type this command : VideoSetup.exe -unlock

5) The pop up window to enter the key should appear

6) Enter this key : BH87-VJ52-VK5Z-8J4N

7) You must have a successfull message

Note : Now you have "data01.bin" in "Documents\My Games\The Saboteur™\SaveGames". However you can also have this file in the folder if for exeample you enter a wrong key. But in that case, the Nazi Knife won't be available in game.

There is no way to my knowledge to distinguish a "data01.bin" file whith a successfully activated knife and a "data01.bin" file without a successfully activated one. Both files have the exact same size (196ko)

Once unlocked, the game tell you to start a new save but it's not a requierment. You can just load your save.

An easier alternative method :

Just download the "data01.bin" file from the link below and put it in your "Documents\My Games\The Saboteur™\SaveGames" folder.

Hope this post will help some of you :-)

PS : Unfortunately, GOG don't let me post a link
Attachments:
01.png (2 Kb)
02.png (3 Kb)
03.png (4 Kb)
Post edited July 24, 2023 by Dave.Park
avatar
Dave.Park: [snip]
Believe it or not, you actually can see the differences!

What is data01.bin?
- Stores the index & the code saved within a unsigned integer stored in bytes.

data01.bin is simply copied to the following directory on pressing OK:
- "%userProfile%\Documents\My Games\The Saboteur™\SaveGames"
- This is then followed up by adding a few bytes to the top of the file header on success.

Header Information
The one stored in the main installation directory.
header is: 00 00 00 00 00 00 00 00 A8 7F B8 21 3D B9 5D CA

The Unlocked in the SaveGames directory on success
header is: DB 5A 00 00 8C 72 C2 3B A8 7F B8 21 3D B9 5D CA

This means that:
The two differences are the following:
00 00 00 00 00 00 00 00 //Not unlocked / Default
DB 5A 00 00 8C 72 C2 3B //Unlocked and enabled

This also means that:
- Alternatively... One can make a unlocker that simply opens the original data01.bin in the game's directory.
- Edit the first 8 bytes of it to correspond with the above
- Save it to their saves folder removing the whole key code issue.
- Enjoy it in game.

After curiously throwing VideoSetup.exe into ida, I realized this application is a C# app.
Then decompiled it into readable source code with DnSpy
- I also realized my theory about data01.bin was partially correct.

Now deep diving into the decompiled 'VideoSetup" src..
We can start to see a clearer picture of what's going on to put this issue to rest.

Reversing VideoSetup:
There's a form called UnlockKey.cs while opening and clicking the forms ok button we start to see the code responsible.

The code corresponds to the following and we see the above method may not work.
Can you figure it out?
```
string text = this.KeyField.Text;
if (text.Length < 19)
{
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_KeyTooShort));
return;
}
uint num = this.CalcStrCRC(text);
for (int i = 0; i < this.KeyCRCTableLength; i++)
{
if (this.KeyCRCTable[i] == num)
{
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_Success));
this.WriteCodeToFile((uint)i, 0x1557F8D2 ^ num); //Remember this for later.
base.Close();
return;
}
}
this.WriteCodeToFile(0, 0);
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_Failed));
```
If you answered: uint num = this.CalcStrCRC(text); then you'd be right. This CRC32 table is checked.
Answer: The code shown has a CRC32 check that is written to those 8 bytes.
```
private uint CalcStrCRC(string strIn)
{
char[] array = strIn.ToCharArray();
if (array.Length == 0)
{
return 0;
}

uint num = 0x811C9DC5;

for (int i = 0; i < array.Length; i++)
{
num ^= (uint)(array[i] | ' ');
num *= 0x1000193;
}
return (num ^ 0x2A) * 0x1000193;
}
```

I noticed something odd in this line
```
this.WriteCodeToFile((uint)i, 0x1557F8D2 ^ num); //Remember this for later.
```

This is also referenced here:
```
private const uint NaziKnifeCRC = 358086866U;
```

Converting: 358086866U to Hex is: 0x1557F8D2 where have we seen this before?
Meaning this CRC32 check only ensures it matches that value or it will throw an error.
- This is good cause these bytes never change! We can use another persons file that is already unlocked if we wish!

App Message Responses
We start to look a bit deeper and start to have the following messages:
```

// Already have it unlocked
this.m_LocalizedText[23] = "You already entered a valid unlock code.";

//On success
this.m_LocalizedText[24] = "Congratulations! You have unlocked the knife stealth kill. To use it, sneak up behind an enemy, then press and hold <SK1>.";

//Invalid code entered
this.m_LocalizedText[25] = "You entered an invalid code.";

//Code 2 short
this.m_LocalizedText[26] = "Unlock code too short.";
```

In turn it calls:
- If Successful
```
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_Success));
```
or
- If Failure
```
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_Failed));
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_KeyTooShort));
MessageBox.Show(this.TextManager.GetLocalizedString(LocalizedID.Unlock_AlreadyEntered));
```

Finally, we start to see what's actually going on by going into the "WriteCodeToFile" function.
- Open save folder path
- Setup a BinaryWriter to write to our directory.
- Write data01.bin index and code
- Write CRC32 hash of the file to the 8 byte header.
- Close the file and clean up and you're done
```
private void WriteCodeToFile(uint index, uint code)
{
try
{
if (!Directory.Exists(this.TextManager.GetSaveFolder()))
{
Directory.CreateDirectory(this.TextManager.GetSaveFolder());
}
FileStream fileStream = new FileStream(this.TextManager.GetSaveFolder() + "data01.bin", FileMode.Create);
BinaryWriter binaryWriter = new BinaryWriter(fileStream);
binaryWriter.Write(index);
binaryWriter.Write(code);
for (int i = 0; i < this.KeyCRCTableLength; i++)
{
binaryWriter.Write(this.KeyCRCTable[i]);
}
binaryWriter.Close();
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
}
```

Hope this helps ;)

Cheers!
- BTB
Attachments:
Post edited September 19, 2023 by BetaTesterBoi
None of the listed method worked.

There's no alternate launcher for The Saboteur so it's useless.
Adding "-unlock" to VideoSetup didn't open the code pop up.
Obtaining a modified data01.bin file DIDN'T unlock the knife animation too.

I don't know how any of you people did it, but I'm sure as hell it wasn't even GOG and I don't get why this version can't unlock that one animation stored in the game files. Maybe EA forgot to include it in the GOG version. Either way, this thread should be considered obsolete as nothing works as of 2023 and 2024.
Post edited January 03, 2024 by BattyMare419