how to run hashcat legacy rules on new hashcat v3?
#1
(This is related to my other question.)

In an attempt to run rules that I previously had to run on CPU hashcat legacy, in hashcat v3, I try:

hashcat64.exe  --opencl-device-types 1

Which gets:

OpenCL Platform #1: NVIDIA Corporation
======================================
- Device #1: GeForce GTX 970, skipped

OpenCL Platform #2: Intel(R) Corporation
========================================
- Device #2: Intel(R) Core(TM) i3 CPU         550  @ 3.20GHz, 4061/16247 MB allocatable, 4MCU

But most of the rules get this warning, like:

WARNING: Cannot convert rule for use on OpenCL device in file  testCPU.rule on line 1741: @a

So how do I run a rule like "@a"?

Edited:
It turns out that either on the CPU alone or the GPU alone, the same 20 of the 2,379 rules do run.
(Edited later: I found that those 20 were simple "append" rules that shouldn't hav been in the CPU-only collection file.)
So both OpenCL devices reject the same rules.
But the question remains how to run a rule file that ran OK on CPU hashcat-legacy on the new hashcat v3?
#2
Only -j and -k accept rejection rules.
#3
In '\docs\rules.txt' I see the section:
/* With -j or -k only */

But purge rule is above that:
#define RULE_OP_MANGLE_PURGECHAR '@' // purge all instances of char X

Should it be moved below?

(In other words, if I want to use '@" I have to use it with -j or -k, since hashcat v3 can't simply run CPU hashcat-legacy rules directly?)

So every time I get this warning:
WARNING: Cannot convert rule for use on OpenCL device in file  testCPU.rule on line 1741: @a
I need to change it to something using -j or -k?

(Footnote: In the new 'rules\d3ad0ne.rule', this is line 8,247.)
#4
Re-stating my question:
With the new ' rules\d3ad0ne.rule' from the hashcat v3 distribution, out of the 34 thousand rules, 956 are not allowed, giving warnings starting with:

WARNING: Cannot convert rule for use on OpenCL device in file rules\d3ad0ne.rule on line 21: $ @9

and ending with:

WARNING: Cannot convert rule for use on OpenCL device in file rules\d3ad0ne.rule on line 33546: z5O07@p

So that rule file cannot be used as is, we have to do something different to run those 956 rules?
#5
It will ignore the rules that are not compatible. All the other rules are executed.
#6
How do I get it to run all the rules?

CPU hashcat-legacy can run all the rules in rules\d3ad0ne.rule -- is there any way that the new hashcat v3 can run the same rule file in its entirety?

If not, the guides should clarify this.

(We don't want rules ignored, we want them run. Do I still need to keep hashcat-legacy around to run those rules, or will guidelines to convert/re-cast those rules be written?)
#7
With hashcat v3.00 there's a chance that some of the rules, for example the @ rule, can be support. This requires some extension. Since it's unclear yet which rules I can make to work and which not it would be wrong to delete all of them. As I said, it's not disturbing hashcat while it runs.
#8
So for now, I have to continue my practice of:
1. Run a rule file in GPU hashcat to test it.
2. Collect the rules that won't run into a named CPU rules file.
3. Remove the CPU rules from the main rules file, and name that a named GPU rules file.
4. Run the GPU rules on a GPU hashcat, either the old v2.01 or the new v.300.
5. Run the CPU rules on a CPU hashcat, which for now is only hashcat-legacy v2.01.

In other words, for now, I need to split the provided rules\d3ad0ne.rule into GPU and CPU rules to have all of them run?

Is it planned to ever have the new hashcat v3 simply take a whole rule file and run them all?
#9
Quote:In other words, for now, I need to split the provided rules\d3ad0ne.rule into GPU and CPU rules to have all of them run?

Yes, that's a pretty good idea.

Quote:Is it planned to ever have the new hashcat v3 simply take a whole rule file and run them all?

Unknown if possible. As I said I think some will work, others not.
#10
Are you actually getting any kind of decent hitrate from the unsupported rules? I wouldn't think that you are. Seems like a lot of effort for very little return.