Moved from hashcat forum: https://hashcat.net/forum/thread-4891.html
The problem with packaging hashcat right now, as dropdead and I were discussing, is that hashcat doesn't exactly adhere to the FHS. Basically the hashcat directory is a working directory, and that's rather contradictory to the FHS.
Ideally before we go down the road of Linux packaging, we would re-organize the file structure, such that binaries are in /usr/bin; kernels, rule files, etc. are in /usr/share/hashcat; and user files (pot, restore, induct) are in the user's home directory, e.g. ~/.hashcat).
Otherwise, we basically just have to stuff everything in /usr/share/hashcat and have the user run from that directory as root.
We discussed the new "layout", this is the final suggestion:
Have 3 types of folders:
- Install folder
- Profile folder
- Session folder
Since this problem does not affect Windows, there will be no change. Everything will stay inside the Install folder as it is already.
For Linux it's different:
- The Install folder is generally not so important as for Windows, it's usually /usr/bin and /usr/share
- The Profile folder will be: ~/.hashcat
- The Session folder will be: $profile/$session
We'll move files from the source tree to the following destinations (hopefully self-explaining) aka Install folder:
- /usr/bin/*.bin
- /usr/share/doc/oclHashcat/ (stuff from docs/* and example* files)
- /usr/share/doc/oclHashcat/extra/*
- /usr/share/oclHashcat/hashcat.hcstat
- /usr/share/oclHashcat/charsets/*
- /usr/share/oclHashcat/kernels/*
- /usr/share/oclHashcat/masks/*
- /usr/share/oclHashcat/rules/*
The Profile folder will have:
- ~/.hashcat/kernels/4098/*.kernel
- ~/.hashcat/hashcat.pot
- ~/.hashcat/hashcat.dictstat
The Session folder will have:
- ~/.hashcat/$session/hashcat.log
- ~/.hashcat/$session/hashcat.restore
- ~/.hashcat/$session/hashcat.restore.new
- ~/.hashcat/$session/outfiles/
- ~/.hashcat/$session/induct/
Moved from hashcat forum: https://hashcat.net/forum/thread-4891.html
We discussed the new "layout", this is the final suggestion:
Have 3 types of folders:
Since this problem does not affect Windows, there will be no change. Everything will stay inside the Install folder as it is already.
For Linux it's different:
We'll move files from the source tree to the following destinations (hopefully self-explaining) aka Install folder:
The Profile folder will have:
The Session folder will have: