no “this is not easy” but with the habit it becomes easier and it is the same process (also maybe you do not spent as many time in programming in assembler than you do in java).
I used to do that years ago when crack was not that easy to found (nowadays it is pretty useless to hack any soft because it took less time to find&download a crack on internet), my prefered tools use to be w32dasm, most of the time hafter running the soft in debugging mode, one simply had to change a single byte to build a patch (for example replacing a JNE by a JE or vice-versa) even for a cupple of well know software.
but as already explained in this thread : after all it doesn’t matter how hard it is or not to hack the dll you cannot rely on security based on the fact that the decompiled program will be harder to read (ASM vs Java). you can also add as many layer as polymorphic code you want, the energy the hack will requiere will not be proportional to the energy you will have spent to add this extra security layer.
here OP choose to make it classloader in native code, but the extra time/energy he have spent to do that (not to mention problem of compatibility), is a lot more than what he add in term of security