hashcat Forum
Guidance for creation of custom kernels - Printable Version

+- hashcat Forum (https://hashcat.net/forum)
+-- Forum: Misc (https://hashcat.net/forum/forum-15.html)
+--- Forum: General Talk (https://hashcat.net/forum/forum-33.html)
+--- Thread: Guidance for creation of custom kernels (/thread-8424.html)



Guidance for creation of custom kernels - devilsadvocate - 06-15-2019

Can a guide be found anywhere on implementing custom kernels for hashcat?

One example that comes to mind would be implementing a kernel that mdxfind has, but hashcat doesn't have (at least, not yet).

https://www.hashes.org/mdxfind.php

If someone downloads a copy of the repository and wishes to add their own kernel, does anyone have a list of steps that are necessary in order to accomplish that?

Is it as simple as adding files to the OpenCL subfolder or is there more to it?

https://github.com/hashcat/hashcat


RE: Guidance for creation of custom kernels - philsmd - 06-15-2019

I would say that the best thing for now is to just have a look at the github commit history and check for the addition of (already added) new hash types, like this one: https://github.com/hashcat/hashcat/commit/ee97d18 (this example is also not 100% perfect since later commits added some missing changes to files e.g. docs/readme.txt).

The commit history is really very helpful if it comes to up-to-date stuff, because it NEEDS to be working and up to date. that's an advantage for sure.

Other than that, we have planned to add a wiki page for the new module architecture and explain how to add hash types by adding files to src/modules/ and OpenCL/ folder etc, but this is not yet done (not even started because there were more crucial things to do first, like adding support for CUDA platforms and the addition of the whole modular system and improving it... it doesn't make sense to write a wiki page without having completed the underlying refactoring).

On the other hand, if someone (maybe even not a "well-known hashcat dev") is trying to add a new hash type and documenting all the steps, it could be very handy to use this as a ground work for the planned wiki page (because if you are used to the system, i.e. a long-term dev that implemented a lot of hash types, you might take things for granted and forget to document/explain some crucial steps that one might think are obvious while they are not for new people playing around with the code).

Thanks


RE: Guidance for creation of custom kernels - Banaanhangwagen - 06-15-2019

In this blog post, you'll find a practical example on how it's done the "dirty" way.