dotnetresearcher
11-19-2009, 05:07 AM
I'm about half way through cracking some software, very simple stuff, stripping strong names and nop'ing license checks - which is about my limit.
I've hit a problem with a particular function. I can't use reflector, so I'm in Ildasm. I need to stop an exception being thrown and have the correct object returned. I've attached the ildasm view.
I've tried nop'ing the 7A "throw", which broke it (JIT compiler internal limitation) and I've tried nop'ing the switch statement (i don't fully understand how the jump tables work) but that caused a method access exception.
Help would be appreciated. I've cracked this software before, but they've changed the protection on this version.
Edit: I've managed to get a bit further. I changed:
IL_006c: /* 2B | C8 */ br.s IL_0036
to
IL_006c: /* 2B | 10 */ br.s IL_007E
Which I'm *fairly* sure directed the code to the happy path. The next exception certainly indicates that that I've got further, but the exception that is being thrown now is a MethodAccessException, which I suspect means I've fouled up somewhere.
Many thanks,
DNR
I've hit a problem with a particular function. I can't use reflector, so I'm in Ildasm. I need to stop an exception being thrown and have the correct object returned. I've attached the ildasm view.
I've tried nop'ing the 7A "throw", which broke it (JIT compiler internal limitation) and I've tried nop'ing the switch statement (i don't fully understand how the jump tables work) but that caused a method access exception.
Help would be appreciated. I've cracked this software before, but they've changed the protection on this version.
Edit: I've managed to get a bit further. I changed:
IL_006c: /* 2B | C8 */ br.s IL_0036
to
IL_006c: /* 2B | 10 */ br.s IL_007E
Which I'm *fairly* sure directed the code to the happy path. The next exception certainly indicates that that I've got further, but the exception that is being thrown now is a MethodAccessException, which I suspect means I've fouled up somewhere.
Many thanks,
DNR