[Archive] Brute force CASC hashes
[Archive] Brute force CASC hashes
Quote: Since I'm really desperate about the music files from Warlords (I know they are already on Youtube, but I want them straight from the data files), I created a tool to brute force the file names of the missing file hashes in Blizzard's CASC file system.
I know that brute forcing is not a very good method to get the file names (reading dbs files, analysing changed files or injecting code in the client and listening to the file names seem better ideas), but it might help to get some missing names.
At the moment, it only works for music file names that are not too long, but you should easily be able to change my source code to any file name patterns.
It could be faster in my opinion, but it does its job. This is my very first C# program (not my very first program, don't worry), so there might be some odds in the source code. Feel free to optimize it. Every thread only outputs the current file name every 100.000 file names to the command window, so it's 100k times as fast as you can see.
Jenkins96 hash algorithms is taken from TOM_RUS's CASCExplorer.
Make sure you read my notes to understand how it works.
You can find the source code and executables here:
https://github.com/valyron/Jenkins96HashBreaker
So if you have a really fast computer and maybe coding experience, you might want to give it a try.
Archived author: valyron • Posted: 2025-11-04T11:37:45.835738
Original source
Quote: Since I'm really desperate about the music files from Warlords (I know they are already on Youtube, but I want them straight from the data files), I created a tool to brute force the file names of the missing file hashes in Blizzard's CASC file system.
I know that brute forcing is not a very good method to get the file names (reading dbs files, analysing changed files or injecting code in the client and listening to the file names seem better ideas), but it might help to get some missing names.
At the moment, it only works for music file names that are not too long, but you should easily be able to change my source code to any file name patterns.
It could be faster in my opinion, but it does its job. This is my very first C# program (not my very first program, don't worry), so there might be some odds in the source code. Feel free to optimize it. Every thread only outputs the current file name every 100.000 file names to the command window, so it's 100k times as fast as you can see.
Jenkins96 hash algorithms is taken from TOM_RUS's CASCExplorer.
Make sure you read my notes to understand how it works.
You can find the source code and executables here:
https://github.com/valyron/Jenkins96HashBreaker
So if you have a really fast computer and maybe coding experience, you might want to give it a try.
Quote:Update: Added more file names
Some missing music filenames:
Code:
SOUND\MUSIC\DRAENOR\MUS_60_WolfAtTheGates_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WolfAtTheGates_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WolfAtTheGates_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_C1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_C2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_CallOfTheWarrior_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_CallOfTheWarrior_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_CallOfTheWarrior_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Wonder_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Wonder_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_B3.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H3.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H4.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_C2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_D1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_D2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_G.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEssence_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEssence_H2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EagleOfDraenor_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_BFreedom_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_BFreedom_H2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ArmyLife_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Voce_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Tome_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Tome_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Tome_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_StrangeFever_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_StrangeFever_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_StrangeFever_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Shakedown_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Shakedown_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Shakedown_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Sacrifice_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PrevalentConfliction_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_A3.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentPrescience_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentPrescience_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_LaboriousMisery_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_LaboriousMisery_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_H.MP3
Archived author: valyron • Posted: 2025-11-04T11:37:45.835738
Original source
Quote:Update: Added more file names
Some missing music filenames:
Code:
SOUND\MUSIC\DRAENOR\MUS_60_WolfAtTheGates_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WolfAtTheGates_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WolfAtTheGates_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MountainsOfNagrand_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_C1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_C2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mobilize_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Eagle_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_CallOfTheWarrior_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_CallOfTheWarrior_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_CallOfTheWarrior_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Blackrock_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Wonder_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Wonder_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_B3.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H3.MP3
SOUND\MUSIC\DRAENOR\MUS_60_WarriorsJourney_H4.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Village_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_C2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_D1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_D2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_G.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Mystic_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEssence_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEssence_H2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EagleOfDraenor_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_BFreedom_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_BFreedom_H2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ArmyLife_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Voce_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_TsHaveIt_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Tome_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Tome_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Tome_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_StrangeFever_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_StrangeFever_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_StrangeFever_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Shakedown_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Shakedown_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Shakedown_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_Sacrifice_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PatiencePoint_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_PrevalentConfliction_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_A1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_A2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_A3.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_ManDown_H1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentPrescience_B.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentPrescience_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_B1.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_B2.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_MalevolentMystique_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_LaboriousMisery_A.MP3
SOUND\MUSIC\DRAENOR\MUS_60_LaboriousMisery_H.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_C.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_D.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_E.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_F.MP3
SOUND\MUSIC\DRAENOR\MUS_60_EtherealEmbers_H.MP3
Quote: Wouldn't it be possible to derive the file names from some of the DBC files?
Also - I have experience with name-breaking in old MPQ (MPQ Archivy - Name breaking). It takes quite long even if the number of letters in 8 and less. Every new letter adds one rank to the length of the process. Maybe it would better to open file by its Encoding Index (OpenFileByEncodingKey) and then check if it's a music file?
Archived author: Ladik001 • Posted: 2025-11-04T11:37:45.835738
Original source
Quote: Wouldn't it be possible to derive the file names from some of the DBC files?
Also - I have experience with name-breaking in old MPQ (MPQ Archivy - Name breaking). It takes quite long even if the number of letters in 8 and less. Every new letter adds one rank to the length of the process. Maybe it would better to open file by its Encoding Index (OpenFileByEncodingKey) and then check if it's a music file?
Quote: Originally Posted by Ladik001
Wouldn't it be possible to derive the file names from some of the DBC files?
Also - I have experience with name-breaking in old MPQ (MPQ Archivy - Name breaking). It takes quite long even if the number of letters in 8 and less. Every new letter adds one rank to the length of the process. Maybe it would better to open file by its Encoding Index (OpenFileByEncodingKey) and then check if it's a music file?
99% can be retrieved from reading from the binary, reading DBC's, reading files retrieved from DBC's, etc... But some hard referenced cannot be. See the other thread with the extractor.
Archived author: stoneharry • Posted: 2025-11-04T11:37:45.835738
Original source
Quote: Originally Posted by Ladik001
Wouldn't it be possible to derive the file names from some of the DBC files?
Also - I have experience with name-breaking in old MPQ (MPQ Archivy - Name breaking). It takes quite long even if the number of letters in 8 and less. Every new letter adds one rank to the length of the process. Maybe it would better to open file by its Encoding Index (OpenFileByEncodingKey) and then check if it's a music file?
99% can be retrieved from reading from the binary, reading DBC's, reading files retrieved from DBC's, etc... But some hard referenced cannot be. See the other thread with the extractor.
Quote: Originally Posted by valyron
Since I'm really desperate about the music files from Warlords (I know they are already on Youtube, but I want them straight from the data files), I created a tool to brute force the file names of the missing file hashes in Blizzard's CASC file system.
I know that brute forcing is not a very good method to get the file names (reading dbs files, analysing changed files or injecting code in the client and listening to the file names seem better ideas), but it might help to get some missing names.
At the moment, it only works for music file names that are not too long, but you should easily be able to change my source code to any file name patterns.
It could be faster in my opinion, but it does its job. This is my very first C# program (not my very first program, don't worry), so there might be some odds in the source code. Feel free to optimize it. Every thread only outputs the current file name every 100.000 file names to the command window, so it's 100k times as fast as you can see.
Jenkins96 hash algorithms is taken from TOM_RUS's CASCExplorer.
Make sure you read my notes to understand how it works.
You can find the source code and executables here:
https://github.com/valyron/Jenkins96HashBreaker
So if you have a really fast computer and maybe coding experience, you might want to give it a try.
you are my hero
did you get a change to see if you can get the new blackrock foundry music out?
Archived author: edenc • Posted: 2025-11-04T11:37:45.835738
Original source
Quote: Originally Posted by valyron
Since I'm really desperate about the music files from Warlords (I know they are already on Youtube, but I want them straight from the data files), I created a tool to brute force the file names of the missing file hashes in Blizzard's CASC file system.
I know that brute forcing is not a very good method to get the file names (reading dbs files, analysing changed files or injecting code in the client and listening to the file names seem better ideas), but it might help to get some missing names.
At the moment, it only works for music file names that are not too long, but you should easily be able to change my source code to any file name patterns.
It could be faster in my opinion, but it does its job. This is my very first C# program (not my very first program, don't worry), so there might be some odds in the source code. Feel free to optimize it. Every thread only outputs the current file name every 100.000 file names to the command window, so it's 100k times as fast as you can see.
Jenkins96 hash algorithms is taken from TOM_RUS's CASCExplorer.
Make sure you read my notes to understand how it works.
You can find the source code and executables here:
https://github.com/valyron/Jenkins96HashBreaker
So if you have a really fast computer and maybe coding experience, you might want to give it a try.
you are my hero
did you get a change to see if you can get the new blackrock foundry music out?