逆向——序列号相关总结
crackme常见的形式是输入注册码,序列号。对常用破解方法进行总计
破解思路
1、密码相邻性,在输入假码后,在内存窗口段跟踪假码,通常在假码上下左右,临近位置发现真码。
2、利用消息断点,如mfc编写的程序,在点击按钮之后获得程序断点WM_LBUTTONUP。
3、利用提示信息,进行字符串查找。
字符串比较形式
1、寄存器比较,直接进行比较,或者每次比较一个字符
2、函数比较,比较数字直接放在寄存器中,再调用比较功能的函数或者作者自己写的函数,例如经过算法处理再比较。这时call指令通常返回bool值,结果通过eax返回。
3、串比较,edi指向字符串a,esi指向字符串b,比较字符串a、b(reqz cmpsd)
制作注册机
1、明码比较,使用内存注册机,直接修改修改程序比较之后的bool值。
2、算法求逆,常见的指令如xor,add/sub,inc/dec,rol/ror
3、利用工具将汇编代码提取出来,直接嵌入高级语言。