That depends on which patch you want to do it on. I shall, for this first message, assume that you are doing this for the latest patch.
First of, to get the files from the game, you need a casc viewer. I recommend the one by Ladislav Zezula, called
CascView.
When you first open that program, you will be met with a dialog to set up where you want the files to be extracted to by default and a couple of other options which you don't need to change. Once you do that, you can open up a CASC storage - what contains all the internal files. You can use either "Open CASC Storage" and point it to the Warcraft 3 folder or use "Open Game Storage" and choose the game from the newly opened window.
From there on it will look similar as when opening all game mpqs with an MPQ editor, with
war3.w3mod being the root directory. For local files you will only need the paths relative to the first parent "*.w3mod" directory.
Basics of the CASC layout:
war3.w3mod: the main root
_balance/*.w3mod: balance-related files, for any particular map the usage of these is dictated by "Game Data Set" and "Game Data Version"
_deprecated.w3mod: files that should no longer be used by anything but kept for backwards compatibility
_hd.w3mod: the root for HD files
_locales/*.w3mod: language-dependent file overrides for HD
_teen.w3mod: teen asset mode files for HD
_tilesets/*.w3mod: tileset-dependent files for HD
_locales/*.w3mod: language-dependent files
_teen.w3mod: teen asset mode files
_tilesets/*.w3mod: tileset-dependent files
Probably unrelated to your question, this same structure applies to map files as well, with the actual map MPQ being the main root instead of war3.w3mod.
To edit the files themselves, you will only need a couple of programs:
Image files (icons and skins in your question) are dds so they can be edited with any image editing programs that support them, like GIMP.
For skins in HD, you might see that there are many more files than before and that is ok, for anything you would have 1 texture in SD, you have 3 or more in HD, all doing different things:
*_diffuse.dds is the main RGB texture,
*_normal.dds is the normal map,
*_orm.dds is Occlusion-Roughness-Metallicness map but it also stores the values for team colour in the alpha channel
*_emissive.dds is the emission map (this one isn't present on many models because they do not have emissions, an example of a model having it is the Frost Wyrm)
Addendum: File formats that worked for textures before will still work for backwards compatibility reasons, like the .tga; make sure the texture files has the correct extension for its format (do
not call a tga file .dds)
Sound files are flac and that's also not a special format so you can edit them in any good audio editor
Here comes the worst part - the models:
To edit models you will still need special programs, and reforged has updated the file format so none of the old programs will work (although many didn't work perfectly on the old format either)
The only program that supports the new format is
Retera's Model Studio (abbreviated to RMS), which does not have all the features of old model-editing programs but is still in active development.
There might also be a couple of importers and exporters to other programs but I don't know of them.
For RMS, there are plenty of tutorials by
Retera on youtube and he also has a discord for his tool
A giant side note is that you can still make the models in the old format and the game will still load them, possibly even better than before because now, instead of the whole model going missing if there's a single missing texture, only the part with a missing texture will turn white.
Feel free to use any program you used before, like older RMS versions, War3ModelEditor ( often called just <<Magos'>>), Mdlvis or any other if making a model with the old format. Models made with the old format
cannot be HD.
Now to the most important part - actually overriding game files:
You just have to set the registry key `HKEY_CURRENT_USER\SOFTWARE\Blizzard Entertainment\Warcraft III\Allow Local Files` of type dword to 1 and put the local files in their correct places in `Warcraft III\_retail_\`
Local file overrides also override map file overrides so use with caution.
TL;DR: open casc, get file and its correct path, edit it as wanted (alternatively just download a replacement from any place) and put it inside of Warcraft III\_retail_ with the correct path