除了上次的序列号验证以外,还有这种密钥授权模式,需要密钥文件授权才能打开文件;
老办法,先拖进OD中动态分析再说:
然后F8进行调试这时候发现了一个条件跳转函数jnz下面是说跳转未实现,那我们发现上面有个Key.dat文件,应该是授权文件,但是我们没有,我们可以尝试跳转,jnz条件是>>ZF=0,即修改值为1可以跳转,我们这里可以汇编进行无条件跳转,函数是(jmp):
然后继续调试F8:,又发现一个跳转函数jnz,按照老办法对上面进行无条件跳转:
继续F8进行调试下面,又发现了一个跳转函数jl,跳转条件是SF!=ZF,即SF值不等于ZF是跳转,顺着函数红线查看跳转位置,指向了key文件无效,这说明我们不能跳转,一跳转就指向无效提示了,这时我们可以nop填充汇编;
然后继续F8调试,又碰到je函数,不过看跳转位置,不用修改,因为没有指向无效key文件
继续F8调试,又发现了jl跳转函数,又一看位置,指向无效key文件,果断nop填充;
然后继续F8调试,发现了一个无条件跳转函数jmp,我们看一下指向,这是正确的,即我们成功跳转到授权成功画面了:
全选上述修改进行保存为reverseMe1.exe:
然后测试一下;
原文件;
修改后的文件:
这就类似于补丁,通过修改文件来修改执行方式.