{"id":2978,"date":"2015-04-10T18:32:17","date_gmt":"2015-04-10T18:32:17","guid":{"rendered":"http:\/\/www.hexacorn.com\/blog\/?p=2978"},"modified":"2015-04-11T16:36:14","modified_gmt":"2015-04-11T16:36:14","slug":"introducing-filighting-and-the-future-of-dfir-tools","status":"publish","type":"post","link":"https:\/\/www.hexacorn.com\/blog\/2015\/04\/10\/introducing-filighting-and-the-future-of-dfir-tools\/","title":{"rendered":"Introducing filighting and the future of DFIR tools"},"content":{"rendered":"<p>Filighting (FIle highLIGHTING) is a proof of concept idea that I implemented in perl as a naive clustering and data reduction algorithm modeled on the way software is built on Windows platform.<\/p>\n<p>TL;DR; The algo is as follows:<\/p>\n<ul>\n<li>enumerate all the files in a directory<\/li>\n<li>read all the files one by one and try to see if any of them contain actual references to other files<\/li>\n<li>cross-reference these<\/li>\n<li>profit<\/li>\n<\/ul>\n<p>Yup. It&#8217;s that simple.<\/p>\n<h5><strong>How Windows Software is built?<\/strong><\/h5>\n<p>Windows software can be built in many ways, using various programming languages, platforms and frameworks.<\/p>\n<p>For the purpose of this post we will focus on the most typical software packages that contain a couple of components:<\/p>\n<ul>\n<li>Main program file &#8211; the actual program &#8211; portable executable (.exe)<\/li>\n<li>Additional executable files &#8211; typically libraries, but sometimes other .exe and kernel mode drivers (.exe, .dll, .sys, .ocx, etc.)<\/li>\n<li>Localization\/Language files (e.g. .lng, .mui, etc.)<\/li>\n<li>Configuration files (.cfg, etc.)<\/li>\n<li>Templates (.template, .theme, etc.)<\/li>\n<li>Databases (.db, .sql, etc.)<\/li>\n<li>Readme files, Help files (.txt, .hlp, etc.)<\/li>\n<li>GFX files (.jpg, .png, etc.)<\/li>\n<li>Plug-ins (.dll, etc.)<\/li>\n<li>and whatever else that is required for the program to offer some functionality<\/li>\n<li>+ Registry entries (which I skip in this post)<\/li>\n<\/ul>\n<p>Notably, there are programs that are basically a single executable &#8211; many OS programs used to be just simple .exe f.ex. Notepad.exe, or Calc.exe. In newer versions of Windows they rely on additional localization files ( .mui), or are just links to other programs f.ex. Calc.exe on Windows 10 linking to a Metro application. While the programs that are just single executables are not the focus of this post, they certainly could be highlighted as possible &#8216;orphans&#8217; by the very same algorithm, or its spin-offs.<\/p>\n<h5>Okay, what can we do with this knowledge?<\/h5>\n<p>Knowing that software contains many files gives us a hint that there must be some links between them all that are somehow established during the compilation, installation, or program use phases.<\/p>\n<ul>\n<li>The building process may compile hardcoded file names into the final main program file and\/or its libraries, configuration files, etc..<\/li>\n<li>The installation program drops the files in respective folders and creates configuration files, registry entries, etc.<\/li>\n<li>The program use is the activity that user or application performs and it affects how the files are created, added, modified, etc.<\/li>\n<\/ul>\n<p>While it is hard to keep a track of it all, it certainly makes sense to try to imagine these interconnections and attempt to create a hidden graph that connects all these components together.<\/p>\n<p>It is also tempting to imagine that recognizing these connections would allow us to cluster files into buckets that could be then hidden from the &#8216;view&#8217; during analysis!<\/p>\n<p>This is not an easy thing to do for the whole file system, but it works pretty well for selected case-scenarios and in particular &#8211; directories. And there is really a lot of ways to improve this especially if file format is considered and links not only between files, but also between files and the Registry are considered.<\/p>\n<p>As usual: subject to a further research!<\/p>\n<h5>Weaknesses<\/h5>\n<p>It&#8217;s very easy to abuse it. You just need to drop files that self-reference each other and to make it even more tricky, reference &#8216;good&#8217; files on the system.<\/p>\n<p>Installations that cover more than one folder are also problematic (&#8216;Common Files&#8217; subfolder is a good example for &#8216;multi-folder&#8217; installation).<\/p>\n<p>Protected files &#8211; usually compressed, virtualized main program executable files won&#8217;t reveal references to other files.<\/p>\n<p>There are probably more&#8230;<\/p>\n<p>Still&#8230; I do believe this is the future of DFIR tools, even if the possible implementations may vary a lot from the idea I am discussing here.<\/p>\n<p>&#8216;Known hashes&#8217; is good.<\/p>\n<p>&#8216;Known hashes+files&#8217; is good+.<\/p>\n<h5>Time for a simple example<\/h5>\n<p>Okay, just writing about stuff is not enough.<\/p>\n<p>Let&#8217;s see how it works in practice.<\/p>\n<p>In this test I install Total Commander &#8211; the latest 32-bit version from <a href=\"http:\/\/www.ghisler.com\/download.htm\">http:\/\/www.ghisler.com\/download.htm<\/a><\/p>\n<p>Once installed, the installation folder contains the following list of files:<\/p>\n<ul>\n<li>CABRK.DLL<\/li>\n<li>CGLPT64.SYS<\/li>\n<li>CGLPT9X.VXD<\/li>\n<li>CGLPTNT.SYS<\/li>\n<li>DEFAULT.BAR<\/li>\n<li>DESCRIPT.ION<\/li>\n<li>FRERES32.DLL<\/li>\n<li>HISTORY.TXT<\/li>\n<li>KEYBOARD.TXT<\/li>\n<li>NO.BAR<\/li>\n<li>NOCLOSE.EXE<\/li>\n<li>REGISTER.RTF<\/li>\n<li>SFXHEAD.SFX<\/li>\n<li>SHARE_NT.EXE<\/li>\n<li>SIZE!.TXT<\/li>\n<li>TC7Z.DLL<\/li>\n<li>TC7ZIPIF.DLL<\/li>\n<li>TCMADMIN.EXE<\/li>\n<li>TCMDLZMA.DLL<\/li>\n<li>TCMDX64.EXE<\/li>\n<li>TCUNINST.EXE<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TCUNZLIB.DLL<\/li>\n<li>TcUsbRun.exe<\/li>\n<li>TOTALCMD.CHM<\/li>\n<li>TOTALCMD.EXE<\/li>\n<li>TOTALCMD.EXE.MANIFEST<\/li>\n<li>TOTALCMD.INC<\/li>\n<li>UNACEV2.DLL<\/li>\n<li>UNRAR.DLL<\/li>\n<li>UNRAR9X.DLL<\/li>\n<li>WC32TO16.EXE<\/li>\n<li>WCMICONS.DLL<\/li>\n<li>WCMICONS.INC<\/li>\n<li>WCMZIP32.DLL<\/li>\n<li>WCUNINST.WUL<\/li>\n<li>wcx_ftp.ini<\/li>\n<li>wincmd.ini<\/li>\n<li>LANGUAGE\\WCMD_CHN.INC<\/li>\n<li>LANGUAGE\\WCMD_CHN.LNG<\/li>\n<li>LANGUAGE\\WCMD_CHN.MNU<\/li>\n<li>LANGUAGE\\WCMD_CZ.INC<\/li>\n<li>LANGUAGE\\WCMD_CZ.LNG<\/li>\n<li>LANGUAGE\\WCMD_CZ.MNU<\/li>\n<li>LANGUAGE\\WCMD_DAN.INC<\/li>\n<li>LANGUAGE\\WCMD_DAN.LNG<\/li>\n<li>LANGUAGE\\WCMD_DAN.MNU<\/li>\n<li>LANGUAGE\\WCMD_DEU.INC<\/li>\n<li>LANGUAGE\\WCMD_DEU.LNG<\/li>\n<li>LANGUAGE\\WCMD_DEU.MNU<\/li>\n<li>LANGUAGE\\WCMD_DUT.INC<\/li>\n<li>LANGUAGE\\WCMD_DUT.LNG<\/li>\n<li>LANGUAGE\\WCMD_DUT.MNU<\/li>\n<li>LANGUAGE\\WCMD_ENG.MNU<\/li>\n<li>LANGUAGE\\WCMD_ESP.INC<\/li>\n<li>LANGUAGE\\WCMD_ESP.LNG<\/li>\n<li>LANGUAGE\\WCMD_ESP.MNU<\/li>\n<li>LANGUAGE\\WCMD_FRA.INC<\/li>\n<li>LANGUAGE\\WCMD_FRA.LNG<\/li>\n<li>LANGUAGE\\WCMD_FRA.MNU<\/li>\n<li>LANGUAGE\\WCMD_HUN.INC<\/li>\n<li>LANGUAGE\\WCMD_HUN.LNG<\/li>\n<li>LANGUAGE\\WCMD_HUN.MNU<\/li>\n<li>LANGUAGE\\WCMD_ITA.INC<\/li>\n<li>LANGUAGE\\WCMD_ITA.LNG<\/li>\n<li>LANGUAGE\\WCMD_ITA.MNU<\/li>\n<li>LANGUAGE\\WCMD_KOR.INC<\/li>\n<li>LANGUAGE\\WCMD_KOR.LNG<\/li>\n<li>LANGUAGE\\WCMD_KOR.MNU<\/li>\n<li>LANGUAGE\\WCMD_NOR.LNG<\/li>\n<li>LANGUAGE\\WCMD_NOR.MNU<\/li>\n<li>LANGUAGE\\WCMD_POL.LNG<\/li>\n<li>LANGUAGE\\WCMD_POL.MNU<\/li>\n<li>LANGUAGE\\WCMD_ROM.INC<\/li>\n<li>LANGUAGE\\WCMD_ROM.LNG<\/li>\n<li>LANGUAGE\\WCMD_ROM.MNU<\/li>\n<li>LANGUAGE\\WCMD_RUS.INC<\/li>\n<li>LANGUAGE\\WCMD_RUS.LNG<\/li>\n<li>LANGUAGE\\WCMD_RUS.MNU<\/li>\n<li>LANGUAGE\\WCMD_SK.LNG<\/li>\n<li>LANGUAGE\\WCMD_SK.MNU<\/li>\n<li>LANGUAGE\\WCMD_SVN.INC<\/li>\n<li>LANGUAGE\\WCMD_SVN.LNG<\/li>\n<li>LANGUAGE\\WCMD_SVN.MNU<\/li>\n<li>LANGUAGE\\WCMD_SWE.LNG<\/li>\n<li>LANGUAGE\\WCMD_SWE.MNU<\/li>\n<\/ul>\n<p>This is quite a lot of files. If you come across it during exam, you won&#8217;t be able to tell which ones are legit and which are not. You need to browse through it all. It takes a lot of human cycles away.<\/p>\n<p>Using a simple script which implements the aforementioned algo I was able to generate the following list of links established between all these files (files are sorted in order of &#8216;what file is the most popular&#8217;, or &#8211; in other words &#8211; &#8216;which file is referenced by others the most frequently&#8217;:<\/p>\n<ul>\n<li>wcmzip32.dll 21\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>WCMD_CHN.LNG<\/li>\n<li>WCMD_CZ.LNG<\/li>\n<li>WCMD_DAN.LNG<\/li>\n<li>WCMD_DEU.LNG<\/li>\n<li>WCMD_DUT.LNG<\/li>\n<li>WCMD_ESP.LNG<\/li>\n<li>WCMD_FRA.LNG<\/li>\n<li>WCMD_HUN.LNG<\/li>\n<li>WCMD_ITA.LNG<\/li>\n<li>WCMD_KOR.LNG<\/li>\n<li>WCMD_NOR.LNG<\/li>\n<li>WCMD_POL.LNG<\/li>\n<li>WCMD_ROM.LNG<\/li>\n<li>WCMD_RUS.LNG<\/li>\n<li>WCMD_SK.LNG<\/li>\n<li>WCMD_SVN.LNG<\/li>\n<li>WCMD_SWE.LNG<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>tcuninst.exe 20\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>WCMD_CHN.LNG<\/li>\n<li>WCMD_CZ.LNG<\/li>\n<li>WCMD_DAN.LNG<\/li>\n<li>WCMD_DEU.LNG<\/li>\n<li>WCMD_DUT.LNG<\/li>\n<li>WCMD_ESP.LNG<\/li>\n<li>WCMD_FRA.LNG<\/li>\n<li>WCMD_HUN.LNG<\/li>\n<li>WCMD_ITA.LNG<\/li>\n<li>WCMD_KOR.LNG<\/li>\n<li>WCMD_NOR.LNG<\/li>\n<li>WCMD_POL.LNG<\/li>\n<li>WCMD_ROM.LNG<\/li>\n<li>WCMD_RUS.LNG<\/li>\n<li>WCMD_SK.LNG<\/li>\n<li>WCMD_SVN.LNG<\/li>\n<li>WCMD_SWE.LNG<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>descript.ion 18\n<ul>\n<li>HISTORY.TXT<\/li>\n<li>WCMD_CHN.LNG<\/li>\n<li>WCMD_DEU.LNG<\/li>\n<li>WCMD_DUT.LNG<\/li>\n<li>WCMD_ESP.LNG<\/li>\n<li>WCMD_FRA.LNG<\/li>\n<li>WCMD_HUN.LNG<\/li>\n<li>WCMD_ITA.LNG<\/li>\n<li>WCMD_KOR.LNG<\/li>\n<li>WCMD_NOR.LNG<\/li>\n<li>WCMD_POL.LNG<\/li>\n<li>WCMD_ROM.LNG<\/li>\n<li>WCMD_RUS.LNG<\/li>\n<li>WCMD_SK.LNG<\/li>\n<li>WCMD_SVN.LNG<\/li>\n<li>WCMD_SWE.LNG<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>totalcmd.inc 14\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>WCMD_CHN.INC<\/li>\n<li>WCMD_CZ.INC<\/li>\n<li>WCMD_DAN.INC<\/li>\n<li>WCMD_DEU.INC<\/li>\n<li>WCMD_FRA.INC<\/li>\n<li>WCMD_FRA.LNG<\/li>\n<li>WCMD_HUN.INC<\/li>\n<li>WCMD_KOR.INC<\/li>\n<li>WCMD_ROM.LNG<\/li>\n<li>WCMD_RUS.INC<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>wcx_ftp.ini 6\n<ul>\n<li>HISTORY.TXT<\/li>\n<li>WCMD_CZ.LNG<\/li>\n<li>WCMD_RUS.LNG<\/li>\n<li>WCMD_SK.LNG<\/li>\n<li>TCUNINST.EXE<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>noclose.exe 5\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>KEYBOARD.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>unrar.dll 5\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<li>UNRAR9X.DLL<\/li>\n<\/ul>\n<\/li>\n<li>totalcmd.exe 5\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.EXE<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TcUsbRun.exe<\/li>\n<\/ul>\n<\/li>\n<li>tc7z.dll 4\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TC7ZIPIF.DLL<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>sfxhead.sfx 4\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>tcmdx64.exe 4\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>wcmicons.dll 4\n<ul>\n<li>DEFAULT.BAR<\/li>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>cglptnt.sys 4\n<ul>\n<li>CGLPT64.SYS<\/li>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>tcmadmin.exe 4\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>unrar9x.dll 4\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>tcunzlib.dll 4\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>tcusbrun.exe 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>freres32.dll 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>share_nt.exe 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>cabrk.dll 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>wc32to16.exe 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>wincmd.ini 3\n<ul>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.EXE<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>default.bar 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>tc7zipif.dll 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>unacev2.dll 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>tcmdlzma.dll 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>cglpt9x.vxd 3\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<li>TOTALCMD.EXE<\/li>\n<\/ul>\n<\/li>\n<li>wcuninst.wul 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>history.txt 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>tcuninst.wul 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.EXE<\/li>\n<\/ul>\n<\/li>\n<li>register.rtf 2\n<ul>\n<li>WCMD_FRA.LNG<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>size!.txt 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>totalcmd.chm 2\n<ul>\n<li>TCUNINST.EXE<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>totalcmd.exe.manifest 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>cglpt64.sys 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_deu.lng 2\n<ul>\n<li>HISTORY.TXT<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmicons.inc 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>no.bar 2\n<ul>\n<li>DESCRIPT.ION<\/li>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_deu.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_pol.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_hun.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_kor.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_dut.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_rom.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_swe.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_swe.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_svn.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_cz.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_dut.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_kor.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_kor.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_cz.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_fra.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_rus.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_cz.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_fra.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_ita.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_nor.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_esp.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_rom.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_dan.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_deu.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_rus.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_hun.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_chn.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_eng.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_ita.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_dan.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_sk.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_pol.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_sk.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>keyboard.txt 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_dan.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_esp.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_chn.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_nor.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_fra.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_rom.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_esp.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_chn.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_svn.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_ita.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_rus.lng 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_dut.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_hun.inc 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<li>wcmd_svn.mnu 1\n<ul>\n<li>TCUNINST.WUL<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h5>The simple example &#8211; what does it tell us?<\/h5>\n<p>While simple, the example above allows us to link all of the files produced during the installation of Total Commander and build a cluster which we could call &#8216;totalcmd&#8217;.<\/p>\n<p>I&#8217;d love to see a DFIR tool that would allow me to implement this sort of clustering and then help me to hide such filighted files with a click of a mouse. And then applying the same logic to other directories (f.ex. Program Files) one by one could allow us to build such clusters automatically and exclude these files from the &#8216;view&#8217; as well.<\/p>\n<p>Utilizing such automatically generated clusters + clusters of whitelisted\/blacklisted software (potentially focused on problematic cases) could allow to significantly reduce analysis time (on top of other data reduction techniques).<\/p>\n<p>See the second part <a title=\"Introducing filighting and the future of DFIR tools, part 2\" href=\"https:\/\/www.hexacorn.com\/blog\/2015\/04\/11\/introducing-filighting-and-the-future-of-dfir-tools-part-2\/\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Filighting (FIle highLIGHTING) is a proof of concept idea that I implemented in perl as a naive clustering and data reduction algorithm modeled on the way software is built on Windows platform. TL;DR; The algo is as follows: enumerate all &hellip; <a href=\"https:\/\/www.hexacorn.com\/blog\/2015\/04\/10\/introducing-filighting-and-the-future-of-dfir-tools\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[39,19,40],"tags":[],"_links":{"self":[{"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/posts\/2978"}],"collection":[{"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/comments?post=2978"}],"version-history":[{"count":9,"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/posts\/2978\/revisions"}],"predecessor-version":[{"id":2994,"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/posts\/2978\/revisions\/2994"}],"wp:attachment":[{"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/media?parent=2978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/categories?post=2978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hexacorn.com\/blog\/wp-json\/wp\/v2\/tags?post=2978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}