MDLDecompiler. This is used to actually decompile the weapon/model of your choice.
GUIStudioMDL 2.2. This will be used to re-compile the model after you've made your changes.
GCFScape 1.6.7. This will be used to access the .gcf files to gather your needed files.
i. Counter-Strike: Source. Let's begin by decompiling the default Counter-Strike: Source M4A1. We start off by loading GCFScape. You'll be greeted with a screen that looks like this:
(Click to enlarge)